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 <jason.mcdonald@nokia.com>bb10
parent
1e37a053ed
commit
dd2b5b88be
|
|
@ -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<QByteArray> actualOutputs;
|
||||
|
|
@ -469,6 +478,15 @@ void tst_Selftests::doRunSubTest(QString const& subdir, QStringList const& logge
|
|||
QString logger = loggers[n];
|
||||
QList<QByteArray> res = splitLines(actualOutputs[n]);
|
||||
QList<QByteArray> 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
|
||||
|
|
|
|||
Loading…
Reference in New Issue