diff options
author | Axel Spoerl <axel.spoerl@qt.io> | 2024-12-13 12:12:08 +0100 |
---|---|---|
committer | Axel Spoerl <axel.spoerl@qt.io> | 2024-12-13 14:10:36 +0100 |
commit | 8efd399f605164dae7b558d3ca2444c0e9b68582 (patch) | |
tree | ee784fc5b061e2b33e6237270aebace7c58a7820 /src | |
parent | 818bd1dd8459b392a53d22f97337b59d6639ebdd (diff) |
Ci Network test: Add versioning
Make executable know its version.
Add command line option to create a meaningful package name.
Change-Id: I00f0d3c333eb30c6ff1037adfc9a4cceefcca641
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/network/main.cpp | 12 | ||||
-rw-r--r-- | src/network/networktest.cpp | 25 | ||||
-rw-r--r-- | src/network/networktest.h | 8 |
3 files changed, 41 insertions, 4 deletions
diff --git a/src/network/main.cpp b/src/network/main.cpp index 347bb644..37f7fd5c 100644 --- a/src/network/main.cpp +++ b/src/network/main.cpp @@ -19,8 +19,8 @@ int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); - QCoreApplication::setApplicationName("NetworkTest"); - QCoreApplication::setApplicationVersion("1.0"); + QCoreApplication::setApplicationName(NetworkTest::applicationName()); + QCoreApplication::setApplicationVersion(NetworkTest::versionString()); QCommandLineParser parser; parser.addVersionOption(); @@ -34,6 +34,7 @@ int main(int argc, char *argv[]) "Write a copy of the default file to the given path", "file"); const QCommandLineOption showProgressOption({"show-progress", "p"}, "Show progress"); + const QCommandLineOption fileNameOption({"file-name", "n"}, "Output file name", "extension", "tgz"); parser.addOption(inputOption); parser.addOption(timeoutOption); @@ -41,8 +42,15 @@ int main(int argc, char *argv[]) parser.addOption(verbosityOption); parser.addOption(copyOption); parser.addOption(showProgressOption); + parser.addOption(fileNameOption); parser.process(a); + if (parser.isSet(fileNameOption)) { + const QString extension = parser.value(fileNameOption); + qInfo().noquote() << NetworkTest::packageName(extension); + return 0; + } + constexpr QLatin1StringView defaultFile(":/tests/DNSLookup.json"); const QString input = parser.isSet(inputOption) ? parser.value(inputOption) : defaultFile; const int timeout = parser.value(timeoutOption).toInt(); diff --git a/src/network/networktest.cpp b/src/network/networktest.cpp index f59f735a..09449698 100644 --- a/src/network/networktest.cpp +++ b/src/network/networktest.cpp @@ -18,7 +18,30 @@ #include <QJsonDocument> #include <iostream> +const QVersionNumber NetworkTest::m_version = QVersionNumber(1, 1); static constexpr QLatin1StringView normalDomain(".test.qt-project.org"); + +QString NetworkTest::applicationName() +{ + return "CiNetworkTest"; +} + +QString NetworkTest::packageName(const QString &extension) +{ + static const QSysInfo info; + static const QString name = QString("%1-%2-%3-%4-v%5").arg(applicationName(), + info.productType(), + info.kernelType(), + info.buildCpuArchitecture(), + versionString()); + return extension.isEmpty() ? name : name + "." + extension; +} + +QString NetworkTest::versionString() +{ + return version().toString(); +} + NetworkTest::NetworkTest(const QString &fileName, bool warnOnly, bool showProgress, int timeout, Verbosity verbosity) : m_warnOnly(warnOnly) , m_timeout(timeout) @@ -321,7 +344,7 @@ bool NetworkTest::test() if (verbosityCheck(Verbosity::Summary)) { qInfo() << "Network test finished at" << finished.toString() << "Total milliseconds consumed:" << started.msecsTo(finished); - qInfo() << "Processed" << m_array.count() << "records," << ignoredRecords << "ignored."; + qInfo() << "Processed" << count << "records," << ignoredRecords << "ignored."; qInfo() << errors << "error(s) occurred"; } return (errors == 0) || m_warnOnly ; diff --git a/src/network/networktest.h b/src/network/networktest.h index f26098f6..8d0a1ffe 100644 --- a/src/network/networktest.h +++ b/src/network/networktest.h @@ -18,6 +18,7 @@ #include <QtCore> #include <QJsonParseError> #include <QJsonArray> +#include <QVersionNumber> class QDnsLookup; class NetworkTest @@ -38,6 +39,10 @@ public: static Verbosity toVerbosity(int verbosity, bool *ok); static QString verbosityString(Verbosity verbosity); static QStringList verbosityStrings(); + static QVersionNumber version() { return m_version; } + static QString versionString(); + static QString packageName(const QString &extension = "tgz"); + static QString applicationName(); private: QJsonArray m_array; @@ -46,8 +51,9 @@ private: const int m_timeout; const Verbosity m_verbosity; const QString m_fileName; + static const QVersionNumber m_version; QStringList formatReply(const QDnsLookup *lookup) const; - bool verbosityCheck(Verbosity verbosity) const; + inline bool verbosityCheck(Verbosity verbosity) const; }; #endif // NETWORKTEST_H |