Changed selftests unittest to not fail but warn when valgrind not installed.
authorKurt Korbatits <kurt.korbatits@nokia.com>
Tue, 10 Jan 2012 03:46:12 +0000 (13:46 +1000)
committerQt by Nokia <qt-info@nokia.com>
Wed, 11 Jan 2012 03:09:32 +0000 (04:09 +0100)
- 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>
tests/auto/testlib/selftests/tst_selftests.cpp

index f33e7a3..04696a1 100644 (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);