From dc1d5d8586f19099331741b32360b767ac07393e Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Sat, 11 Feb 2017 13:00:20 +0100 Subject: [PATCH] refs #875, refs #879, renamed CTestUtils to CDBusUtils * class now only contains DBus related code * other functions have been moved to CTesting --- samples/blackmiscdbus/main.cpp | 4 +- samples/blackmiscdbus/servicetool.cpp | 1 - src/blackmisc/dbusutils.cpp | 105 +++++++++++++++++++ src/blackmisc/dbusutils.h | 45 ++++++++ src/blackmisc/test/testserviceinterface.cpp | 1 - src/blackmisc/test/testutils.cpp | 109 -------------------- src/blackmisc/test/testutils.h | 48 --------- tests/blackmisc/testdbus.cpp | 9 +- 8 files changed, 157 insertions(+), 165 deletions(-) create mode 100644 src/blackmisc/dbusutils.cpp create mode 100644 src/blackmisc/dbusutils.h delete mode 100644 src/blackmisc/test/testutils.cpp delete mode 100644 src/blackmisc/test/testutils.h diff --git a/samples/blackmiscdbus/main.cpp b/samples/blackmiscdbus/main.cpp index c34ec86c2..bea8a0c61 100644 --- a/samples/blackmiscdbus/main.cpp +++ b/samples/blackmiscdbus/main.cpp @@ -13,7 +13,7 @@ #include "blackmisc/dbusserver.h" #include "blackmisc/registermetadata.h" #include "blackmisc/network/networkutils.h" -#include "blackmisc/test/testutils.h" +#include "blackmisc/dbusutils.h" #include "servicetool.h" #include #include @@ -132,7 +132,7 @@ int main(int argc, char *argv[]) if (mode.startsWith("2")) { out << "---------------------------------" << endl; - BlackMisc::Test::CTestUtils::showDBusSignatures(out); + BlackMisc::CDBusUtils::showDBusSignatures(out); out << "---------------------------------" << endl; goto Menu; } diff --git a/samples/blackmiscdbus/servicetool.cpp b/samples/blackmiscdbus/servicetool.cpp index 914e7490e..6ede8df85 100644 --- a/samples/blackmiscdbus/servicetool.cpp +++ b/samples/blackmiscdbus/servicetool.cpp @@ -14,7 +14,6 @@ #include "blackcore/application.h" #include "blackmisc/test/testservice.h" #include "blackmisc/test/testserviceinterface.h" -#include "blackmisc/test/testutils.h" #include "blackmisc/dbusserver.h" #include "blackmisc/network/server.h" diff --git a/src/blackmisc/dbusutils.cpp b/src/blackmisc/dbusutils.cpp new file mode 100644 index 000000000..c2c672866 --- /dev/null +++ b/src/blackmisc/dbusutils.cpp @@ -0,0 +1,105 @@ +/* Copyright (C) 2017 + * 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 "dbusutils.h" +#include "blackmisc/simulation/simulatedaircraftlist.h" +#include "blackmisc/aviation/airport.h" +#include +#include +#include + +using namespace BlackMisc; +using namespace BlackMisc::Aviation; +using namespace BlackMisc::Geo; +using namespace BlackMisc::Network; +using namespace BlackMisc::PhysicalQuantities; +using namespace BlackMisc::Simulation; + +namespace BlackMisc +{ + QString CDBusUtils::getQDBusArgumentSignature(const QDBusArgument &arg, int level) + { + arg.beginArray(); + QVariant qv; + const QString indent(level * 2, ' '); + QString out; + + while (!arg.atEnd()) + { + const QString type = CDBusUtils::dbusTypeAsString(arg.currentType()); + const QString signature = arg.currentSignature(); + qv = arg.asVariant(); // this advances in the stream + if (qv.canConvert()) + { + out += indent % type % QLatin1Literal("signature ") % signature % QLatin1Char('\n'); + out += CDBusUtils::getQDBusArgumentSignature(qv.value(), level + 1) % QLatin1Char('\n'); + } + else + { + out += indent % QLatin1Literal("type: ") % type % QLatin1Literal("signature ") % signature % QLatin1Literal(" value ") % qv.toString() % QLatin1Char('\n'); + } + } + arg.endArray(); + return out; + } + + QString CDBusUtils::dbusTypeAsString(QDBusArgument::ElementType type) + { + switch (type) + { + case QDBusArgument::BasicType: return QLatin1Literal("BasicType"); + case QDBusArgument::VariantType: return QLatin1Literal("VariantType"); + case QDBusArgument::ArrayType: return QLatin1Literal("ArrayType"); + case QDBusArgument::StructureType: return QLatin1Literal("StructureType"); + case QDBusArgument::MapType: return QLatin1Literal("MapType"); + case QDBusArgument::MapEntryType: return QLatin1Literal("MapEntryType"); + case QDBusArgument::UnknownType: + default: + return QLatin1Literal("Unknown type"); + } + } + + void CDBusUtils::showDBusSignatures(QTextStream &out) + { + const CCallsign cs; + const CLength l; + const CAircraftIcaoCode icao; + const CAircraftModel model; + const CCountry country; + const CAirportIcaoCode airportIcao; + const CLivery livery; + const CAirport airport; + const CSimulatedAircraft aircraft; + const CSimulatedAircraftList aircraftList; + const CVariant var; + QString s; + s = CDBusUtils::dBusSignature(cs); + out << "CCallsign" << " size: " << s.size() << " sig: " << s << endl; + s = CDBusUtils::dBusSignature(l); + out << "CLength" << " size: " << s.size() << " sig: " << s << endl; + s = CDBusUtils::dBusSignature(icao); + out << "CAircraftIcaoCode" << " size: " << s.size() << " sig: " << s << endl; + s = CDBusUtils::dBusSignature(airportIcao); + out << "CAirportIcaoCode" << " size: " << s.size() << " sig: " << s << endl; + s = CDBusUtils::dBusSignature(livery); + out << "CLivery" << " size: " << s.size() << " sig: " << s << endl; + s = CDBusUtils::dBusSignature(country); + out << "CCountry" << " size: " << s.size() << " sig: " << s << endl; + s = CDBusUtils::dBusSignature(airport); + out << "CAirport" << " size: " << s.size() << " sig: " << s << endl; + s = CDBusUtils::dBusSignature(model); + out << "CAircraftModel" << " size: " << s.size() << " sig: " << s << endl; + s = CDBusUtils::dBusSignature(aircraft); + out << "CSimulatedAircraft" << " size: " << s.size() << " sig: " << s << endl; + s = CDBusUtils::dBusSignature(aircraftList); + out << "CSimulatedAircraftList" << " size: " << s.size() << " sig: " << s << endl; + s = CDBusUtils::dBusSignature(var); + out << "CVariant" << " size: " << s.size() << " sig: " << s << endl; + } +} // ns diff --git a/src/blackmisc/dbusutils.h b/src/blackmisc/dbusutils.h new file mode 100644 index 000000000..6fb3509fc --- /dev/null +++ b/src/blackmisc/dbusutils.h @@ -0,0 +1,45 @@ +/* Copyright (C) 2017 + * 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_DBUSUTILS_H +#define BLACKMISC_DBUSUTILS_H + +#include "blackmisc/blackmiscexport.h" +#include +#include + +namespace BlackMisc +{ + //! Utils for UNIT tests / samples + class BLACKMISC_EXPORT CDBusUtils + { + public: + //! Get QDBusArgument signature (formatted) + static QString getQDBusArgumentSignature(const QDBusArgument &arg, int level = 0); + + //! Signature for BlackMisc::CValueObject + template + static QString dBusSignature(const ValueObj &obj) + { + QDBusArgument arg; + obj.marshallToDbus(arg); + return arg.currentSignature(); + } + + //! Type as string + static QString dbusTypeAsString(QDBusArgument::ElementType type); + + //! Show some (important) DBus signatures + static void showDBusSignatures(QTextStream &out); + }; +} // ns + +#endif // guard diff --git a/src/blackmisc/test/testserviceinterface.cpp b/src/blackmisc/test/testserviceinterface.cpp index 65e6472c0..4ae46e4cd 100644 --- a/src/blackmisc/test/testserviceinterface.cpp +++ b/src/blackmisc/test/testserviceinterface.cpp @@ -9,7 +9,6 @@ #include "testserviceinterface.h" #include "testservice.h" -#include "testutils.h" #include "testing.h" #include "blackmisc/test/testdata.h" #include diff --git a/src/blackmisc/test/testutils.cpp b/src/blackmisc/test/testutils.cpp deleted file mode 100644 index 9a427c708..000000000 --- a/src/blackmisc/test/testutils.cpp +++ /dev/null @@ -1,109 +0,0 @@ -/* Copyright (C) 2013 - * 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 "testutils.h" -#include "blackmisc/simulation/simulatedaircraftlist.h" -#include "blackmisc/aviation/airport.h" -#include -#include -#include -#include - -using namespace BlackMisc; -using namespace BlackMisc::Aviation; -using namespace BlackMisc::Geo; -using namespace BlackMisc::Network; -using namespace BlackMisc::PhysicalQuantities; -using namespace BlackMisc::Simulation; - -namespace BlackMisc -{ - namespace Test - { - QString CTestUtils::getQDBusArgumentSignature(const QDBusArgument &arg, int level) - { - arg.beginArray(); - QVariant qv; - const QString indent(level * 2, ' '); - QString out; - - while (!arg.atEnd()) - { - const QString type = CTestUtils::dbusTypeAsString(arg.currentType()); - const QString signature = arg.currentSignature(); - qv = arg.asVariant(); // this advances in the stream - if (qv.canConvert()) - { - out += indent % type % QLatin1Literal("signature ") % signature % QLatin1Char('\n'); - out += CTestUtils::getQDBusArgumentSignature(qv.value(), level + 1) % QLatin1Char('\n'); - } - else - { - out += indent % QLatin1Literal("type: ") % type % QLatin1Literal("signature ") % signature % QLatin1Literal(" value ") % qv.toString() % QLatin1Char('\n'); - } - } - arg.endArray(); - return out; - } - - QString CTestUtils::dbusTypeAsString(QDBusArgument::ElementType type) - { - switch (type) - { - case QDBusArgument::BasicType: return QLatin1Literal("BasicType"); - case QDBusArgument::VariantType: return QLatin1Literal("VariantType"); - case QDBusArgument::ArrayType: return QLatin1Literal("ArrayType"); - case QDBusArgument::StructureType: return QLatin1Literal("StructureType"); - case QDBusArgument::MapType: return QLatin1Literal("MapType"); - case QDBusArgument::MapEntryType: return QLatin1Literal("MapEntryType"); - case QDBusArgument::UnknownType: - default: - return QLatin1Literal("Unknown type"); - } - } - - void CTestUtils::showDBusSignatures(QTextStream &out) - { - const CCallsign cs; - const CLength l; - const CAircraftIcaoCode icao; - const CAircraftModel model; - const CCountry country; - const CAirportIcaoCode airportIcao; - const CLivery livery; - const CAirport airport; - const CSimulatedAircraft aircraft; - const CSimulatedAircraftList aircraftList; - const CVariant var; - QString s; - s = CTestUtils::dBusSignature(cs); - out << "CCallsign" << " size: " << s.size() << " sig: " << s << endl; - s = CTestUtils::dBusSignature(l); - out << "CLength" << " size: " << s.size() << " sig: " << s << endl; - s = CTestUtils::dBusSignature(icao); - out << "CAircraftIcaoCode" << " size: " << s.size() << " sig: " << s << endl; - s = CTestUtils::dBusSignature(airportIcao); - out << "CAirportIcaoCode" << " size: " << s.size() << " sig: " << s << endl; - s = CTestUtils::dBusSignature(livery); - out << "CLivery" << " size: " << s.size() << " sig: " << s << endl; - s = CTestUtils::dBusSignature(country); - out << "CCountry" << " size: " << s.size() << " sig: " << s << endl; - s = CTestUtils::dBusSignature(airport); - out << "CAirport" << " size: " << s.size() << " sig: " << s << endl; - s = CTestUtils::dBusSignature(model); - out << "CAircraftModel" << " size: " << s.size() << " sig: " << s << endl; - s = CTestUtils::dBusSignature(aircraft); - out << "CSimulatedAircraft" << " size: " << s.size() << " sig: " << s << endl; - s = CTestUtils::dBusSignature(aircraftList); - out << "CSimulatedAircraftList" << " size: " << s.size() << " sig: " << s << endl; - s = CTestUtils::dBusSignature(var); - out << "CVariant" << " size: " << s.size() << " sig: " << s << endl; - } - } // ns -} // ns diff --git a/src/blackmisc/test/testutils.h b/src/blackmisc/test/testutils.h deleted file mode 100644 index c8df4a83d..000000000 --- a/src/blackmisc/test/testutils.h +++ /dev/null @@ -1,48 +0,0 @@ -/* Copyright (C) 2013 - * 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_TESTUTILS_H -#define BLACKMISC_TEST_TESTUTILS_H - -#include "blackmisc/blackmiscexport.h" -#include -#include - -namespace BlackMisc -{ - namespace Test - { - //! Utils for UNIT tests / samples - class BLACKMISC_EXPORT CTestUtils - { - public: - //! Get QDBusArgument signature (formatted) - static QString getQDBusArgumentSignature(const QDBusArgument &arg, int level = 0); - - //! Signature for BlackMisc::CValueObject - template - static QString dBusSignature(const ValueObj &obj) - { - QDBusArgument arg; - obj.marshallToDbus(arg); - return arg.currentSignature(); - } - - //! Type as string - static QString dbusTypeAsString(QDBusArgument::ElementType type); - - //! Show some (important) DBus signatures - static void showDBusSignatures(QTextStream &out); - }; - } // ns -} // ns - -#endif // guard diff --git a/tests/blackmisc/testdbus.cpp b/tests/blackmisc/testdbus.cpp index 108a02057..1bbd1dd07 100644 --- a/tests/blackmisc/testdbus.cpp +++ b/tests/blackmisc/testdbus.cpp @@ -16,12 +16,13 @@ #include "testdbus.h" #include "blackmisc/simulation/simulatedaircraftlist.h" -#include "blackmisc/test/testutils.h" #include "blackmisc/test/testservice.h" #include "blackmisc/test/testserviceinterface.h" +#include "blackmisc/dbusutils.h" #include #include +using namespace BlackMisc; using namespace BlackMisc::Simulation; using namespace BlackMisc::Test; @@ -49,15 +50,15 @@ namespace BlackMiscTest // normally CSimulatedAircraftList is expected to be the biggest one const CAircraftModel model; - s = CTestUtils::dBusSignature(model); + s = CDBusUtils::dBusSignature(model); QVERIFY2(s.length() <= max, "Signature CAircraftModel"); const CSimulatedAircraft aircraft; - s = CTestUtils::dBusSignature(aircraft); + s = CDBusUtils::dBusSignature(aircraft); QVERIFY2(s.length() <= max, "Signature CSimulatedAircraft"); const CSimulatedAircraftList al; - s = CTestUtils::dBusSignature(al); + s = CDBusUtils::dBusSignature(al); QVERIFY2(s.length() <= max, "Signature CSimulatedAircraftList"); } }