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
Friedemann Kleint 2011-12-07 16:45:14 +01:00 committed by Qt by Nokia
parent 1e37a053ed
commit dd2b5b88be
1 changed files with 20 additions and 2 deletions

View File

@ -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