summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAxel Spoerl <axel.spoerl@qt.io>2024-12-13 12:12:08 +0100
committerAxel Spoerl <axel.spoerl@qt.io>2024-12-13 14:10:36 +0100
commit8efd399f605164dae7b558d3ca2444c0e9b68582 (patch)
treeee784fc5b061e2b33e6237270aebace7c58a7820 /src
parent818bd1dd8459b392a53d22f97337b59d6639ebdd (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.cpp12
-rw-r--r--src/network/networktest.cpp25
-rw-r--r--src/network/networktest.h8
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