From dd2b5b88be78927cb3161a1c1e7219f36417b376 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 7 Dec 2011 16:45:14 +0100 Subject: [PATCH] QTestlib/Selftest: Fix Windows. - Do not run with empty environment. At least PATH is required at least (Qt + MSVC/MinGW runtime) - Account for MSVC's different formatting of double numbers. Change-Id: Ic7b1cf4a16a88c5384347b2651b011ac13c92d70 Reviewed-by: Jason McDonald --- tests/auto/testlib/selftests/tst_selftests.cpp | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/tests/auto/testlib/selftests/tst_selftests.cpp b/tests/auto/testlib/selftests/tst_selftests.cpp index 4308141..f7a485b 100644 --- a/tests/auto/testlib/selftests/tst_selftests.cpp +++ b/tests/auto/testlib/selftests/tst_selftests.cpp @@ -426,11 +426,20 @@ void tst_Selftests::runSubTest_data() } } +static inline QProcessEnvironment processEnvironment() +{ + QProcessEnvironment result; + const QString path = QStringLiteral("PATH"); + result.insert(path, QProcessEnvironment::systemEnvironment().value(path)); + return result; +} + void tst_Selftests::doRunSubTest(QString const& subdir, QStringList const& loggers, QStringList const& arguments) { QProcess proc; - proc.setEnvironment(QStringList("")); - proc.start(subdir + "/" + subdir, arguments); + static const QProcessEnvironment environment = processEnvironment(); + proc.setProcessEnvironment(environment); + proc.start(subdir + QLatin1Char('/') + subdir, arguments); QVERIFY2(proc.waitForFinished(), qPrintable(proc.errorString())); QList actualOutputs; @@ -469,6 +478,15 @@ void tst_Selftests::doRunSubTest(QString const& subdir, QStringList const& logge QString logger = loggers[n]; QList res = splitLines(actualOutputs[n]); QList exp = expectedResult(subdir, logger); +#ifdef Q_CC_MSVC + // MSVC formats double numbers differently + if (n == 0 && subdir == QStringLiteral("float")) { + for (int i = 0; i < exp.size(); ++i) { + exp[i].replace("e-07", "e-007"); + exp[i].replace("e+07", "e+007"); + } + } +#endif // For the "crashes" test, there are multiple versions of the // expected output. Load the one with the same line count as -- 2.7.4