From cc1dc42c1f78f0f1e7899a446e7ce181f2f85824 Mon Sep 17 00:00:00 2001 From: Daniel Smith Date: Fri, 16 Nov 2018 13:42:16 +0100 Subject: Update lancelot tests to use non-system-specific host info collection Change the lancelot baseline test runner to use generic text files for host info data collection. This also avoids relying on QProcess and scraping the bash scripts output from stdout. Fixes: QTBUG-71836 Change-Id: I88a46c99dbb11f71afc18cae5a6d2fbebcbe76c5 Reviewed-by: Eirik Aavitsland (cherry picked from commit 651dd26403052f98397783927ad02e008acf0552) --- tests/baselineserver/shared/qbaselinetest.cpp | 28 ++++++++++----------------- 1 file changed, 10 insertions(+), 18 deletions(-) (limited to 'tests') diff --git a/tests/baselineserver/shared/qbaselinetest.cpp b/tests/baselineserver/shared/qbaselinetest.cpp index 11fb208f20..3587cd01ea 100644 --- a/tests/baselineserver/shared/qbaselinetest.cpp +++ b/tests/baselineserver/shared/qbaselinetest.cpp @@ -28,10 +28,8 @@ #include "qbaselinetest.h" #include "baselineprotocol.h" -#if QT_CONFIG(process) -# include -#endif #include +#include #define MAXCMDLINEARGS 128 @@ -146,20 +144,15 @@ void addClientProperty(const QString& key, const QString& value) */ void fetchCustomClientProperties() { -#if !QT_CONFIG(process) - QSKIP("This test requires QProcess support"); -#else - QString script = "hostinfo.sh"; //### TBD: Windows implementation (hostinfo.bat) - - QProcess runScript; - runScript.setWorkingDirectory(QCoreApplication::applicationDirPath()); - runScript.start("sh", QStringList() << script, QIODevice::ReadOnly); - if (!runScript.waitForFinished(5000) || runScript.error() != QProcess::UnknownError) { - qWarning() << "QBaselineTest: Error running script" << runScript.workingDirectory() + QDir::separator() + script << ":" << runScript.errorString(); - qDebug() << " stderr:" << runScript.readAllStandardError().trimmed(); - } - while (!runScript.atEnd()) { - QByteArray line = runScript.readLine().trimmed(); // ###local8bit? utf8? + QFile file("hostinfo.txt"); + if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) + return; + QTextStream in(&file); + + while (!in.atEnd()) { + QString line = in.readLine().trimmed(); // ###local8bit? utf8? + if (line.startsWith(QLatin1Char('#'))) // Ignore comments in file + continue; QString key, val; int colonPos = line.indexOf(':'); if (colonPos > 0) { @@ -171,7 +164,6 @@ void fetchCustomClientProperties() else qDebug() << "Unparseable script output ignored:" << line; } -#endif // QT_CONFIG(process) } -- cgit v1.2.3