Fix x86 preprocessor check in testlib selftests
When deciding whether to run benchlibcallbrind, the code only tested _i386; it now tests __x86_64 as well, to match a recent change in the test itself. As there, reverse the test to reduce negations, flipping the stanzas it selects between. Also tidy up the code that tests for valgrind being present - and actually return true, to skip the test, when it claims to be skipping the test. Updated test results, now that the test can actually be run and produce sensible output. Added an _2.txt that matches the results presently seen in Coin on RHEL 8.4 (despite the fact that a local build on such a VM produces output matching the _1.txt results). Change-Id: Ibce09dca06a1eeb73e90fb1345834998683df9d8 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
This commit is contained in:
parent
e42fe5c775
commit
93830d9ed3
@ -1,6 +1,8 @@
|
||||
********* Start testing of tst_BenchlibCallgrind *********
|
||||
Config: Using QtTest library
|
||||
PASS : tst_BenchlibCallgrind::initTestCase()
|
||||
FAIL! : tst_BenchlibCallgrind::failInChildProcess() Running under valgrind!
|
||||
Loc: [qtbase/tests/auto/testlib/selftests/benchlibcallgrind/tst_benchlibcallgrind.cpp(0)]
|
||||
SKIP : tst_BenchlibCallgrind::twoHundredMillionInstructions() This test is only defined for gcc and x86.
|
||||
Loc: [qtbase/tests/auto/testlib/selftests/benchlibcallgrind/tst_benchlibcallgrind.cpp(0)]
|
||||
PASS : tst_BenchlibCallgrind::cleanupTestCase()
|
||||
|
@ -1,9 +1,11 @@
|
||||
********* Start testing of tst_BenchlibCallgrind *********
|
||||
Config: Using QtTest library @INSERT_QT_VERSION_HERE@, Qt @INSERT_QT_VERSION_HERE@
|
||||
Config: Using QtTest library
|
||||
PASS : tst_BenchlibCallgrind::initTestCase()
|
||||
FAIL! : tst_BenchlibCallgrind::failInChildProcess() Running under valgrind!
|
||||
Loc: [qtbase/tests/auto/testlib/selftests/benchlibcallgrind/tst_benchlibcallgrind.cpp(0)]
|
||||
PASS : tst_BenchlibCallgrind::twoHundredMillionInstructions()
|
||||
RESULT : tst_BenchlibCallgrind::twoHundredMillionInstructions():
|
||||
200,000,158 instruction reads per iteration (total: 200,000,158, iterations: 1)
|
||||
200,000,144 instruction reads per iteration (total: 200,000,144, iterations: 1)
|
||||
PASS : tst_BenchlibCallgrind::cleanupTestCase()
|
||||
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted
|
||||
Totals: 3 passed, 1 failed, 0 skipped, 0 blacklisted, 0ms
|
||||
********* Finished testing of tst_BenchlibCallgrind *********
|
||||
|
@ -0,0 +1,5 @@
|
||||
********* Start testing of tst_BenchlibCallgrind *********
|
||||
Config: Using QtTest library
|
||||
PASS : tst_BenchlibCallgrind::initTestCase()
|
||||
FAIL! : tst_BenchlibCallgrind::failInChildProcess() Running under valgrind!
|
||||
Loc: [qtbase/tests/auto/testlib/selftests/benchlibcallgrind/tst_benchlibcallgrind.cpp(0)]
|
@ -692,17 +692,18 @@ bool TestLogger::shouldIgnoreTest(const QString &test) const
|
||||
#endif
|
||||
|
||||
if (test == "benchlibcallgrind") {
|
||||
#if !(defined(__GNUC__) && defined(__i386) && defined(Q_OS_LINUX))
|
||||
// Skip on platforms where callgrind is not available
|
||||
return true;
|
||||
#else
|
||||
#if defined(__GNUC__) && (defined(__i386) || defined(__x86_64)) && defined(Q_OS_LINUX)
|
||||
// Check that it's actually available
|
||||
QProcess checkProcess;
|
||||
QStringList args;
|
||||
args << "--version";
|
||||
QStringList args{u"--version"_qs};
|
||||
checkProcess.start("valgrind", args);
|
||||
if (!checkProcess.waitForFinished(-1))
|
||||
if (!checkProcess.waitForFinished(-1)) {
|
||||
WARN("Valgrind broken or not available. Not running benchlibcallgrind test!");
|
||||
return true;
|
||||
}
|
||||
#else
|
||||
// Skip on platforms where callgrind is not available
|
||||
return true;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user