tst_selftests: Fix mistaken early return when checking error output

In porting the selftest machinery to Catch2 in 24e83de8d1 we
accidentally added an unconditional early return when determining
whether to check for unexpected stderr output, resulting in not
checking error output on any platform.

The return statement has now been moved into the Q_CC_MINGW
condition, but as we now seem to have similar issues on macOS
and Linux with some of the tests outputting "Received signal 6
(SIGABRT)" as we do for QEMU, we need to add a few more explicit
early return conditions to the function.

Pick-to: 6.5 6.6
Change-Id: I7a25f000843b5f1003a5db883f08285185046b46
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
This commit is contained in:
Tor Arne Vestbø 2023-07-27 16:39:54 +02:00
parent 2e9d33e534
commit 118f2210c6

View File

@ -767,14 +767,22 @@ void checkErrorOutput(const QString &test, const QByteArray &errorOutput)
#ifdef Q_CC_MINGW
if (test == "blacklisted" // calls qFatal()
|| test == "silent") // calls qFatal()
#endif
return;
#endif
#ifdef Q_OS_WIN
if (test == "crashes")
return; // Complains about uncaught exception
#endif
#ifdef Q_OS_UNIX
if (test == "assert"
|| test == "crashes"
|| test == "failfetchtype"
|| test == "faildatatype")
return; // Outputs "Received signal 6 (SIGABRT)"
#endif
#ifdef Q_OS_LINUX
// QEMU outputs to stderr about uncaught signals
if (QTestPrivate::isRunningArmOnX86() &&