From dd687b7d904c17a1ae3ce4b15cad449ba1a60a69 Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Tue, 31 Jul 2018 21:41:34 +0200 Subject: [PATCH] Cppcheck and unit test fixes --- cppcheck.supp | 3 +++ src/blackcore/aircraftmatcher.cpp | 7 ++++--- src/blackcore/airspacemonitor.cpp | 1 + src/blackmisc/directoryutils.cpp | 8 +++++--- src/blackmisc/directoryutils.h | 5 ++++- src/blackmisc/predicates.h | 1 + src/blackmisc/statusmessage.h | 6 +++--- tests/blackmisc/testaircraftsituation.cpp | 14 +++++++++----- 8 files changed, 30 insertions(+), 15 deletions(-) diff --git a/cppcheck.supp b/cppcheck.supp index 60bdc7d91..7dd94cd60 100644 --- a/cppcheck.supp +++ b/cppcheck.supp @@ -21,6 +21,9 @@ passedByValue:src/blackmisc/logcategorylist.h passedByValue:src/blackmisc/platformset.cpp passedByValue:src/blackmisc/geo/coordinategeodeticlist.cpp +// variableHidingEnum for status message +variableHidingEnum:src/blackmisc/statusmessage.h + // Shared pointers should be passed by value passedByValue:src/blackmisc/lockfree.h diff --git a/src/blackcore/aircraftmatcher.cpp b/src/blackcore/aircraftmatcher.cpp index 120c7831a..c082d1f1e 100644 --- a/src/blackcore/aircraftmatcher.cpp +++ b/src/blackcore/aircraftmatcher.cpp @@ -658,9 +658,10 @@ namespace BlackCore { Q_UNUSED(mode); CAircraftModelList usedModelSet; - static const bool NoZeroScores = true; - static const bool PreferColorLiveries = true; - static const bool DoNotMindAboutColorLiveries = false; + // cppcheck-suppress variableScope + static constexpr bool DoNotMindAboutColorLiveries = false; + static constexpr bool NoZeroScores = true; + static constexpr bool PreferColorLiveries = true; // VTOL ScoredModels map; diff --git a/src/blackcore/airspacemonitor.cpp b/src/blackcore/airspacemonitor.cpp index 301001a7f..bcce6852e 100644 --- a/src/blackcore/airspacemonitor.cpp +++ b/src/blackcore/airspacemonitor.cpp @@ -1051,6 +1051,7 @@ namespace BlackCore } } + Q_UNUSED(haveRequestedElevation); return correctedSituation; } diff --git a/src/blackmisc/directoryutils.cpp b/src/blackmisc/directoryutils.cpp index 4b37a8132..fd33b8110 100644 --- a/src/blackmisc/directoryutils.cpp +++ b/src/blackmisc/directoryutils.cpp @@ -144,11 +144,11 @@ namespace BlackMisc return dirs; } - const QMap &CDirectoryUtils::applicationDataDirectoryMapWithoutCurrentVersion() + const CDirectoryUtils::FilePerApplication &CDirectoryUtils::applicationDataDirectoryMapWithoutCurrentVersion() { - static const QMap dirs = [ = ] + static const FilePerApplication dirs = [ = ]() -> FilePerApplication { - QMap directories; + FilePerApplication directories; for (const QFileInfo &info : CDirectoryUtils::applicationDataDirectories()) { if (caseInsensitiveStringCompare(info.filePath(), CDirectoryUtils::normalizedApplicationDataDirectory())) { continue; } @@ -170,6 +170,8 @@ namespace BlackMisc appInfo.setApplicationDataDirectory(info.filePath()); directories.insert(info.filePath(), appInfo); } + // https://stackoverflow.com/q/51635959/356726 + // cppcheck-suppress returnReference return directories; }(); return dirs; diff --git a/src/blackmisc/directoryutils.h b/src/blackmisc/directoryutils.h index 57cc5016e..32222b43a 100644 --- a/src/blackmisc/directoryutils.h +++ b/src/blackmisc/directoryutils.h @@ -29,6 +29,9 @@ namespace BlackMisc class BLACKMISC_EXPORT CDirectoryUtils { public: + //! File path and swift application + using FilePerApplication = QMap; + //! Returns the bin directory. On Windows/Linux this is the same directory as //! QCoreApplication::applicationDirPath(), but on MacOS the exceutable is //! located deeper in the hierarchy of the bundles @@ -59,7 +62,7 @@ namespace BlackMisc static QStringList applicationDataDirectoryList(bool withoutCurrent = false, bool decodedDirName = false); //! swift application data sub directories with info if available - static const QMap &applicationDataDirectoryMapWithoutCurrentVersion(); + static const FilePerApplication &applicationDataDirectoryMapWithoutCurrentVersion(); //! Other swift data directories static bool hasOtherSwiftDataDirectories(); diff --git a/src/blackmisc/predicates.h b/src/blackmisc/predicates.h index bf72b6248..88f839e98 100644 --- a/src/blackmisc/predicates.h +++ b/src/blackmisc/predicates.h @@ -69,6 +69,7 @@ namespace BlackMisc less = less && ! greater && (a.*member)() < (b.*member)(); greater = (b.*member)() < (a.*member)(); }); + Q_UNUSED(greater); // CPP style check return less; }; } diff --git a/src/blackmisc/statusmessage.h b/src/blackmisc/statusmessage.h index c85c82545..b87480351 100644 --- a/src/blackmisc/statusmessage.h +++ b/src/blackmisc/statusmessage.h @@ -167,10 +167,10 @@ namespace BlackMisc //! \copydoc BlackMisc::StatusSeverity //! @{ using StatusSeverity = BlackMisc::StatusSeverity; - constexpr static auto SeverityDebug = BlackMisc::SeverityDebug; - constexpr static auto SeverityInfo = BlackMisc::SeverityInfo; + constexpr static auto SeverityDebug = BlackMisc::SeverityDebug; + constexpr static auto SeverityInfo = BlackMisc::SeverityInfo; constexpr static auto SeverityWarning = BlackMisc::SeverityWarning; - constexpr static auto SeverityError = BlackMisc::SeverityError; + constexpr static auto SeverityError = BlackMisc::SeverityError; //! @} //! Properties by index diff --git a/tests/blackmisc/testaircraftsituation.cpp b/tests/blackmisc/testaircraftsituation.cpp index b7a85ac9a..a3fcdf64b 100644 --- a/tests/blackmisc/testaircraftsituation.cpp +++ b/tests/blackmisc/testaircraftsituation.cpp @@ -18,6 +18,7 @@ #include "blackmisc/network/fsdsetup.h" #include "blackmisc/aviation/aircraftsituationchange.h" #include "blackmisc/math/mathutils.h" +#include "blackmisc/stringutils.h" #include "blackconfig/buildconfig.h" #include @@ -26,6 +27,7 @@ #include using namespace BlackConfig; +using namespace BlackMisc; using namespace BlackMisc::Aviation; using namespace BlackMisc::PhysicalQuantities; using namespace BlackMisc::Network; @@ -215,6 +217,11 @@ namespace BlackMiscTest const int hint = time.elapsed(); const double ratio = static_cast(hint) / static_cast(noHint); // expected <0 + qDebug() << "MacOS:" << boolToYesNo(CBuildConfig::isRunningOnMacOSPlatform()); + qDebug() << "Access without hint" << noHint << "ms"; + qDebug() << "Access with hint" << hint << "ms"; + qDebug() << "Access ratio" << ratio; + // remark On Win/Linux access with hint is faster // on MacOS the times are the same, maybe with hint it is even slightly slower if (noHint >= hint) @@ -227,9 +234,6 @@ namespace BlackMiscTest } } - qDebug() << "Access without hint" << noHint << "ms"; - qDebug() << "Access with hint" << hint << "ms"; - qDebug() << "Access ratio" << ratio; QVERIFY2(hint <= noHint, "Expected hinted sort being faster"); } @@ -240,8 +244,8 @@ namespace BlackMiscTest // "CFB Bagotville","Bagotville","Canada","YBG","CYBG",48.33060073852539,-70.99639892578125,522,-5,"A","America/Toronto","airport","OurAirports" CAircraftSituationList situations; - qint64 ts = QDateTime::currentSecsSinceEpoch(); - qint64 os = CFsdSetup::c_positionTimeOffsetMsec; + const qint64 ts = QDateTime::currentSecsSinceEpoch(); + const qint64 os = CFsdSetup::c_positionTimeOffsetMsec; CAltitude alt(10000, CAltitude::MeanSeaLevel, CLengthUnit::m()); static const CCoordinateGeodetic dummyPos(48.33060073852539, -70.99639892578125, 522);