Changed selftests unittest to not fail but warn when valgrind not installed.

- Changed to detect valgrind at runtime and skip test instead of failing.
- subprograms inherit QT_QPA_PLATFORM value from parent if set.

Change-Id: I280acee389df1ee74ee6758a0dd1601226e103c7
Reviewed-by: Kurt Korbatits  <kurt.korbatits@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
bb10
Kurt Korbatits 2012-01-10 13:46:12 +10:00 committed by Qt by Nokia
parent 28bfa8f6cc
commit de6d3d5b1d
1 changed files with 15 additions and 0 deletions

View File

@ -466,11 +466,26 @@ static inline QProcessEnvironment processEnvironment()
if (!displayValue.isEmpty())
result.insert(display, displayValue);
#endif
const QString platform = QStringLiteral("QT_QPA_PLATFORM");
const QString platformValue = systemEnvironment.value(platform);
if (!platformValue.isEmpty())
result.insert(platform, platformValue);
return result;
}
void tst_Selftests::doRunSubTest(QString const& subdir, QStringList const& loggers, QStringList const& arguments)
{
#if defined(__GNUC__) && defined(__i386) && defined(Q_OS_LINUX)
if (arguments.contains("-callgrind")) {
QProcess checkProcess;
QStringList args;
args << QLatin1String("--version");
checkProcess.start(QLatin1String("valgrind"), args);
if (!checkProcess.waitForFinished(-1))
QSKIP(QString("Valgrind broken or not available. Not running %1 test!").arg(subdir).toLocal8Bit());
}
#endif
QProcess proc;
static const QProcessEnvironment environment = processEnvironment();
proc.setProcessEnvironment(environment);