From ae5b0310b6dda3aba659fbe960671e149847b52f Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sat, 11 Feb 2017 03:09:18 +0100 Subject: [PATCH] refs #875, moved already existing test utility classes to BlackMisc::Test --- src/blackmisc/test.cpp | 33 ------------- src/blackmisc/test.h | 66 -------------------------- src/blackmisc/test/test.cpp | 36 +++++++++++++++ src/blackmisc/test/test.h | 69 ++++++++++++++++++++++++++++ src/blackmisc/{ => test}/testing.cpp | 15 ++++-- src/blackmisc/{ => test}/testing.h | 22 ++++----- 6 files changed, 123 insertions(+), 118 deletions(-) delete mode 100644 src/blackmisc/test.cpp delete mode 100644 src/blackmisc/test.h create mode 100644 src/blackmisc/test/test.cpp create mode 100644 src/blackmisc/test/test.h rename src/blackmisc/{ => test}/testing.cpp (96%) rename src/blackmisc/{ => test}/testing.h (68%) diff --git a/src/blackmisc/test.cpp b/src/blackmisc/test.cpp deleted file mode 100644 index 781d2f09c..000000000 --- a/src/blackmisc/test.cpp +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (C) 2016 - * swift project Community / Contributors - * - * This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level - * directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project, - * including this file, may be copied, modified, propagated, or distributed except according to the terms - * contained in the LICENSE file. - */ - -#include "blackmisc/test.h" - -namespace BlackMisc -{ - CTestBase::CTestBase(int argc, const char *const *argv) - { - for (int i = 0; i < argc; ++i) - { - m_arguments.append(argv[i]); - } - - // Output to stdout - m_arguments.append({ "-o", "-,txt" }); - } - - CTestBase::~CTestBase() - {} - - int CTestBase::exec(QObject *test, const QString &name) - { - auto additionalArguments = QStringList { "-o", name + "_testresults.xml,xml" }; - return this->qExec(test, m_arguments + additionalArguments); - } -} diff --git a/src/blackmisc/test.h b/src/blackmisc/test.h deleted file mode 100644 index 705fcf432..000000000 --- a/src/blackmisc/test.h +++ /dev/null @@ -1,66 +0,0 @@ -/* Copyright (C) 2016 - * swift project Community / Contributors - * - * This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level - * directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project, - * including this file, may be copied, modified, propagated, or distributed except according to the terms - * contained in the LICENSE file. - */ - -//! \file - -#ifndef BLACKMISC_TEST_H -#define BLACKMISC_TEST_H - -#include "blackmisc/blackmiscexport.h" -#include - -#ifdef QT_TESTLIB_LIB -#include -#endif - -class QObject; - -namespace BlackMisc -{ - /*! - * Helper base class for executing unit tests. - * Contains the parts that do not depend upon QtTest library, and pure - * virtual functions for derived class to implement the parts that do. - */ - class BLACKMISC_EXPORT CTestBase - { - public: - //! Constructor expects command line arguments. - CTestBase(int argc, const char *const *argv); - - //! Destructor. - virtual ~CTestBase(); - - //! Execute the given test case. - int exec(QObject *test, const QString &name); - - private: - virtual int qExec(QObject *test, const QStringList &args) = 0; - - QStringList m_arguments; - }; - -#ifdef QT_TESTLIB_LIB - /*! - * Helper derived class for executing unit tests. - * Defined inline and only when building with QT += testlib so blackmisc - * doesn't need to link against QtTest library. - */ - class CTest : public CTestBase - { - public: - using CTestBase::CTestBase; - - private: - virtual int qExec(QObject *test, const QStringList &args) override { return QTest::qExec(test, args); } - }; -#endif -} - -#endif diff --git a/src/blackmisc/test/test.cpp b/src/blackmisc/test/test.cpp new file mode 100644 index 000000000..8872f0186 --- /dev/null +++ b/src/blackmisc/test/test.cpp @@ -0,0 +1,36 @@ +/* Copyright (C) 2016 + * swift project Community / Contributors + * + * This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level + * directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project, + * including this file, may be copied, modified, propagated, or distributed except according to the terms + * contained in the LICENSE file. + */ + +#include "blackmisc/test/test.h" + +namespace BlackMisc +{ + namespace Test + { + CTestBase::CTestBase(int argc, const char *const *argv) + { + for (int i = 0; i < argc; ++i) + { + m_arguments.append(argv[i]); + } + + // Output to stdout + m_arguments.append({ "-o", "-,txt" }); + } + + CTestBase::~CTestBase() + {} + + int CTestBase::exec(QObject *test, const QString &name) + { + auto additionalArguments = QStringList { "-o", name + "_testresults.xml,xml" }; + return this->qExec(test, m_arguments + additionalArguments); + } + } // ns +} // ns diff --git a/src/blackmisc/test/test.h b/src/blackmisc/test/test.h new file mode 100644 index 000000000..af2d1fe43 --- /dev/null +++ b/src/blackmisc/test/test.h @@ -0,0 +1,69 @@ +/* Copyright (C) 2016 + * swift project Community / Contributors + * + * This file is part of swift project. It is subject to the license terms in the LICENSE file found in the top-level + * directory of this distribution and at http://www.swift-project.org/license.html. No part of swift project, + * including this file, may be copied, modified, propagated, or distributed except according to the terms + * contained in the LICENSE file. + */ + +//! \file + +#ifndef BLACKMISC_TEST_TEST_H +#define BLACKMISC_TEST_TEST_H + +#include "blackmisc/blackmiscexport.h" +#include + +#ifdef QT_TESTLIB_LIB +#include +#endif + +class QObject; + +namespace BlackMisc +{ + namespace Test + { + /*! + * Helper base class for executing unit tests. + * Contains the parts that do not depend upon QtTest library, and pure + * virtual functions for derived class to implement the parts that do. + */ + class BLACKMISC_EXPORT CTestBase + { + public: + //! Constructor expects command line arguments. + CTestBase(int argc, const char *const *argv); + + //! Destructor. + virtual ~CTestBase(); + + //! Execute the given test case. + int exec(QObject *test, const QString &name); + + private: + virtual int qExec(QObject *test, const QStringList &args) = 0; + + QStringList m_arguments; + }; + +#ifdef QT_TESTLIB_LIB + /*! + * Helper derived class for executing unit tests. + * Defined inline and only when building with QT += testlib so blackmisc + * doesn't need to link against QtTest library. + */ + class CTest : public CTestBase + { + public: + using CTestBase::CTestBase; + + private: + virtual int qExec(QObject *test, const QStringList &args) override { return QTest::qExec(test, args); } + }; +#endif + } // ns +} // ns + +#endif // guard diff --git a/src/blackmisc/testing.cpp b/src/blackmisc/test/testing.cpp similarity index 96% rename from src/blackmisc/testing.cpp rename to src/blackmisc/test/testing.cpp index 6e06be914..ea8884686 100644 --- a/src/blackmisc/testing.cpp +++ b/src/blackmisc/test/testing.cpp @@ -17,8 +17,8 @@ #include "blackmisc/pq/units.h" #include "blackmisc/propertyindexvariantmap.h" #include "blackmisc/sequence.h" -#include "blackmisc/testing.h" #include "blackmisc/variant.h" +#include "testing.h" #include #include @@ -34,7 +34,7 @@ using namespace BlackMisc::PhysicalQuantities; namespace BlackMisc { - namespace Aviation + namespace Test { CAtcStationList CTesting::createAtcStations(int number, bool byPropertyIndex) { @@ -161,8 +161,7 @@ namespace BlackMisc " 8° 21′ 13″ N", "11° 47′ 09″ W", "18° 21′ 13″ S", "11° 47′ 09″ E", "09° 12′ 13″ S", "11° 47′ 09″ W" - } - ); + }); CCoordinateGeodetic c; const CAltitude a(333, CLengthUnit::m()); @@ -172,5 +171,11 @@ namespace BlackMisc c = CCoordinateGeodetic::fromWgs84(wgsLatLng.at(idx), wgsLatLng.at(idx + 1), a); } } - } // namespace + + const CAtcStationList &CTesting::stations10k() + { + static const CAtcStationList s = createAtcStations(10000, false); + return s; + } + } // namespace } // namespace diff --git a/src/blackmisc/testing.h b/src/blackmisc/test/testing.h similarity index 68% rename from src/blackmisc/testing.h rename to src/blackmisc/test/testing.h index 2394d0770..62a78b8fa 100644 --- a/src/blackmisc/testing.h +++ b/src/blackmisc/test/testing.h @@ -9,35 +9,34 @@ //! \file -#ifndef BLACKMISC_TESTING_H -#define BLACKMISC_TESTING_H +#ifndef BLACKMISC_TEST_TESTING_H +#define BLACKMISC_TEST_TESTING_H #include "blackmisc/aviation/atcstation.h" #include "blackmisc/aviation/atcstationlist.h" #include "blackmisc/blackmiscexport.h" - #include //! Generate data for testing purposes. namespace BlackMisc { - namespace Aviation + namespace Test { //! Generate data for testing aviation classes class BLACKMISC_EXPORT CTesting { public: //! Generate number of ATC stations - static CAtcStationList createAtcStations(int number, bool byPropertyIndex = false); + static BlackMisc::Aviation::CAtcStationList createAtcStations(int number, bool byPropertyIndex = false); //! Single station, annotated by index - static CAtcStation createStation(int index, bool byPropertyIndex = false); + static BlackMisc::Aviation::CAtcStation createStation(int index, bool byPropertyIndex = false); //! Generate number of ATC stations - static void readStations(const CAtcStationList &stations, bool byPropertyIndex = false); + static void readStations(const BlackMisc::Aviation::CAtcStationList &stations, bool byPropertyIndex = false); //! Read properties of a station and concatenate them - static QString readStation(const CAtcStation &station, bool byPropertyIndex = false); + static QString readStation(const BlackMisc::Aviation::CAtcStation &station, bool byPropertyIndex = false); //! Calculate n times distance (greater circle distance) static void calculateDistance(int n); @@ -46,16 +45,11 @@ namespace BlackMisc static void copy10kStations(int times); //! Const 10000 stations - static const CAtcStationList &stations10k() - { - static const CAtcStationList s = createAtcStations(10000, false); - return s; - } + static const BlackMisc::Aviation::CAtcStationList &stations10k(); //! parse coordinates from WGS static void parseWgs(int times); }; - } // ns } // ns