summaryrefslogtreecommitdiffstats
path: root/src/testlib/qtestcase.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* FatalSignalHandler: simplify SA_RESETHAND codeThiago Macieira2022-05-201-13/+6
| | | | | | | | | And remove the unreachable code after std::abort() that was meant to mimic that in INTEGRITY. The next commit will fix this properly. Pick-to: 6.3 Change-Id: I5ff8e16fcdcb4ffd9ab6fffd16eb772018add694 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* FatalSignalHandler: simplify the SA_SIGINFO handlingThiago Macieira2022-05-201-9/+10
| | | | | | | | | The #if around the function declaration was ugly. Pick-to: 6.3 Change-Id: I5ff8e16fcdcb4ffd9ab6fffd16eb7540f5da080f Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* FatalSignalHandler: use std::optional instead of QScopedPointerThiago Macieira2022-05-201-2/+4
| | | | | | | | We get stack space reserved instead of using the heap. Pick-to: 6.3 Change-Id: I5ff8e16fcdcb4ffd9ab6fffd16eb73fff0174150 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* FatalSignalHandler: split the Windows and Unix contentsThiago Macieira2022-05-201-57/+58
| | | | | | | | | | | | They're very different, so there's no point in having them even in the same class body. I've renamed the Windows one because Windows does not report crashes via signals anyway. If you have an IDE that can scan both branches of the #if, it will help you find the Windows-specific code too. Pick-to: 6.3 Change-Id: I5ff8e16fcdcb4ffd9ab6fffd16eb73ba196cfb74 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Put DebugSymbolResolver and FatalSignalHandler in an unnamed namespaceThiago Macieira2022-05-201-1/+4
| | | | | | | Pick-to: 6.3 Change-Id: I5ff8e16fcdcb4ffd9ab6fffd16eb735315b337b6 Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* FatalSignalHandler: remove call to qEnvironmentXxx from handler codeThiago Macieira2022-05-201-1/+6
| | | | | | | | | | | | | | The Qt environment handling functions lock a mutex. That's a big no-no in signal handlers. [ChangeLog][QtTest][Behavior Change] QtTest will now check the value of the environment variable QTEST_PAUSE_ON_CRASH in QTest::qRun(), so if a test wants to modify this variable, it must do so from the main() or initMain() functions, not in the test itself (including initTestCase()). Pick-to: 6.3 Change-Id: I5ff8e16fcdcb4ffd9ab6fffd16eb78867cd8f54e Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* qtestcase: make the stack trace generation more signal-safeThiago Macieira2022-05-201-25/+44
| | | | | | | | | | This should work so long as there's no async-unsafe pthread_atfork()- registered callback. Pick-to: 6.3 Change-Id: I5ff8e16fcdcb4ffd9ab6fffd16eb72e4e313bc19 Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* qtestcase.cpp: fix warning about ignoring the result of writev()Thiago Macieira2022-05-191-2/+2
| | | | | | | | I don't get it on openSUSE Tumbleweed, but this is not the only place I don't get a warn_unused_result warning and it happens elsewhere. Change-Id: I7e305799c8594ebab255fffd16ee12ff30df6d4d Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Use SPDX license identifiersLucie Gérard2022-05-161-39/+3
| | | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* qtestcase/Unix: remove fprintf from signal handlerThiago Macieira2022-05-051-8/+100
| | | | | | | | | | | It's not async-signal-safe, so don't use it. Instead, let's use writev() (which should write atomically and we won't need to have a buffer) and std::to_chars to format numbers where available (where not, we roll out our own implementation with divisions). Pick-to: 6.3 Change-Id: I5ff8e16fcdcb4ffd9ab6fffd16eb70a158f44864 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* qtestcase.cpp: use #ifdef RLIMIT_CORE to guard RLIMIT_CORE usageThiago Macieira2022-05-041-2/+2
| | | | | | | Instead of trying to guess which OSes have this functionality. Change-Id: I5ff8e16fcdcb4ffd9ab6fffd16ebc20fe7eca346 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QtTestLib: replace remaining uses of QL1String with QL1StringViewSona Kurazyan2022-05-021-18/+19
| | | | | | | | | Remove unneeded \fn qdoc lines as a drive-by. Task-number: QTBUG-98434 Change-Id: Id93ddbb38b97a8f5a6734bfbc82686ccb3a87aa6 Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QtTestLib: replace QLatin1String uses with _L1/_s/QStringLiteralSona Kurazyan2022-05-021-27/+27
| | | | | | | Task-number: QTBUG-98434 Change-Id: Ie327fd4af1880002e5a1e09b43384f2b709625e7 Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QtTestLib: stop using QLatin1Char constructor for creating char literalsSona Kurazyan2022-04-281-6/+6
| | | | | | | | Required for porting away from QLatin1Char/QLatin1String in scope of QTBUG-98434. Change-Id: I3debae5f481037958bfb65caabca97a0d4681eb9 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Support test-case selection based on global data tagEdward Welbourne2022-04-251-23/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | In the same ways as for blacklisting. In the process, move reporting of an unrecognised tag outside the global-data loop, as the tag might be, or start with, a global data tag; and also report the global data alongside the test-specific data. Indent the lines reporting tags, as this makes the structure of the lists more evident. Converted the tag argument to QLatin1String() to facilitate searching and matching. Updated documentation, including expanding on the option of specifying the data tags on the command-line. Drive-by: fixed a link in the documentation, removed a snippet that was nowhere used. [ChangeLog][QtTest] When specifying what tests to run on a QtTest command-line, it is now possible to include a global data tag in the same way as a function-specific data tag or in combination with it. Thus if the test reports itself as tst_Class::function(global:local), command-line option function:global:local will select that specific test and function:global will run all data-rows for the function on the given global data tag. Fixes: QTBUG-102269 Change-Id: I7c86d6026933b05f7994bfc3663a2ea6a47f5f38 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Spacing-only change: fix indents and spacing in qtestcase.cppEdward Welbourne2022-04-141-73/+73
| | | | | | | Separated from other clean-ups to avoid inanity 'bot complaints. Change-Id: Ia33f87da224dba7c50bbf14beb642825dc46fe90 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* qtestcase.cpp: s/QString::fromLatin1/QLatin1String/ where viableEdward Welbourne2022-04-141-15/+15
| | | | | | | | | Now that QL1S has its own arg(), we can use that directly instead of going via QString before calling arg(). Only works in most cases, as the QL1S::arg() overload set is more limited. Change-Id: Ie4c566c5998538b1b8a953b1ba4481e0f1663bf7 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Support global data tags in blacklisting identification of test-casesEdward Welbourne2022-03-141-1/+8
| | | | | | | | | | | | | | | | | | | | | Previously the blacklisting file format only worked with slot:data or plain slot names for the items to blacklist. However, tests with global data report themselves with the global data-row tag in the same way as function-specific ones do; and tests which have both join the two as slot(global:data) in the test output name, so the reader is apt to mistake global:data for a data tag. In any case, it is potentially desirable to be able to blacklist a function with either or both of global and local data-row tags specified. Add support for that and remove a blacklisting that was only needed due to the lack of this support. For now, make the new parameter to checkBlackLists() optional, so that qtdeclarative's qmltest framework can adapt to this change. Fixes: QTBUG-100870 Change-Id: I9125811ebdab75d3fb462ba8b60561f003426502 Reviewed-by: Pasi Petäjäjärvi <pasi.petajajarvi@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix deprecated uses of QScopedPointerMårten Nordheim2022-03-081-8/+9
| | | | | | | | | By changing it to unique_ptr. Pick-to: 6.2 6.3 Change-Id: I91abb69445b537d4c95983ae735341882352b29d Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Tidy up QTest::FatalSignalHandlerSamuel Mira2022-03-021-12/+12
| | | | | | | | | Rename some variables: avoid abbreviated names. (Don't bother with renaming variables an imminent commit removes, though.) Pick-to: 6.2 6.3 Change-Id: I3bd11f37ca687047555d43dff83c3c2f935135d8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Adapt QTest::FatalSignalHandler() to support sa_sigaction when availableEdward Welbourne2022-03-021-6/+23
| | | | | | | | | | | | | | | | We don't currently have a use for the extra parameters, but Samuel Mira's fix to ensure we don't miss fatal signals on Android needs to be able to call the prior handler, which may need these parameters. In the process, check returns from sigaction() and use its nullptr semantics to query first when detecting whether to restore the default when done, rather than setting and then restoring if it turns out we've been replaced in the meantime. Task-number: QTBUG-97652 Pick-to: 6.2 6.3 Change-Id: If30a0db35946c3dceb409ae3f41aa437149472e6 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* macOS: Don't print stack trace via lldb on test failure if SIP prevents itTor Arne Vestbø2022-02-091-1/+8
| | | | | | | | | | | | | | | If the CSR_ALLOW_UNRESTRICTED_FS bit of System Integrity Protection (SIP) is enabled lldb will fail to print a valid stack trace when launched from the crashed process, and might also resulting in hanging or crashing the parent process (Terminal e.g.): https://github.com/llvm/llvm-project/issues/53254 We detect this situation and avoid printing a stack trace if so. Pick-to: 6.3 6.2 Change-Id: Iad8cab5fcdc545d810ca4d4e985aefc0988d0234 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Make counts of various types of test result add up correctlyEdward Welbourne2022-01-131-20/+28
| | | | | | | | | | | | | | | | | | | | | | | | | Added tests for repeated skips and failures (from within void lambdas, to simulate skips and failures from within event handlers). These exhibit yet more ways to count more than one outcome for a test. The new QTest::failOnWarning() can also provoke more than one failure from a single test, and several existing selftests exhibited various ways for the Totals line's counts to add up to more than the number of actual tests run. Fixed counting so that only the first decisive incident is counted. Tests can still report later failure or skipping, but only the first is counted. Added a currentTestState in qtestlog.cpp, by which it keeps track of whether the test has resolved to a result, and clearCurrentTestState() by which other code can reset that at the end of each test. This brought to light various places where test-end clean-up was not being handled - due to failure or skipping in a *_data() method or init, or a skip in cleanup. Fixes: QTBUG-95661 Change-Id: I5d24a37a53d3db225fa602649d8aad8f5ed6c1ad Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Tidy up testlib's parsing of -callgrind parameterEdward Welbourne2021-12-091-9/+12
| | | | | | | | | | Invert a condition to turn a nested if (that was missing one of its layers of braces) into an else-if chain, split some long strings to limit line length. Change-Id: I10d90487a09affe981aa11c3588281aeb3666df5 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Suppress test set-up and tear-down in callgrind parent processEdward Welbourne2021-12-061-4/+18
| | | | | | | | | | | | | | | | | | | | | | | When running a test using -callgrind, we recurse into a child process, run under valgrind, to which we pass -callgrindchild; and we only want the output from the child process, since the parent won't actually be running any tests. We also won't be using the global data table for the test in the parent process. So bypass the set-up and tear-down of both logging and the global data table in the parent process. Prior to commit 3ee6d8d336db2d9d15818b234ce16531ea0cdd48, these parts of the set-up and tear-down were skipped in the callgrind parent process, but that refactoring split qExec() up into qInit(), qRun() and qCleanup() to enable QtQuick to recombine them to implement an equivalent of qExec(), calling qRun() once for each built-in style. It needs these pieces of set-up to happen in qInit(), and of tear-down in qCleanup(), to avoid repeating them for each style. Leave a comment in qExec() that might help future readers to understand why it's done the way it is. Change-Id: Ieaca9a125c713b8fcf8dec8f9be0c024a798d504 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QTest: de-inline QVERIFY_THROWS_EXCEPTION message formattingMarc Mutz2021-11-261-0/+34
| | | | | | | | | | | | Extract Method QTest::qCaught() to take the string handling out of the header. This should help a bit in speeding up compilation of large unit test files (provided they use QVERIFY_THROWS_EXCEPTION), although I have no data to support that. Since we changed the error message, update the selftest accordingly. Change-Id: Id4a3c8c34d5df8d0c7a861106d269097f4a6de5c Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Add QTest::failOnWarningMitch Curtis2021-11-261-0/+62
| | | | | | | | | | | | | | This solves the long-standing problem of not being able to easily fail a test when a certain warning is output. [ChangeLog][QtTest] Added QTest::failOnWarning. When called in a test function, any warning that matches the given pattern will cause a test failure. The test will continue execution when a failure is added. All patterns are cleared at the end of each test function. Fixes: QTBUG-70029 Change-Id: I5763f8d4acf1cee8178be43a503619fbfb0f4f36 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Add some missing entries to QTest::qExec()'s \sa lineEdward Welbourne2021-11-261-1/+1
| | | | | Change-Id: I45300d5f9df519c5edb68d24232830bd0850915a Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Use a QVarLengthArray for FatalSignalHandler's alternate stackEdward Welbourne2021-11-181-3/+4
| | | | | | | | | | | The stack needs to be at least SIGSTKSZ, which isn't constexpr, so we can't allocate it at compile time. However, we can resize(SIGSTKSZ) a QVarLengthArray that's probably big enough anyway. At the same time, increase the compile-time size to 32k, to match what our Catch2 harness for the self-test uses. Change-Id: I3a34ece73901dd402672cd6fe4da66923f1932c8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Rework FatalSignalHandler to use ranged-for loops over signalsEdward Welbourne2021-11-181-7/+7
| | | | | | | | Shrinks the const array by one zero-terminator and makes the code accessing it read more gracefully. Change-Id: I4034116a83ff3cd05ea0feb0ce8a4340c54a9faa Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Test the return from sigaction()Edward Welbourne2021-11-181-11/+19
| | | | | | | | | | | | | | If we fail to install our own action, the contents of oldact are noise anyway, so we can't use them to decide anything; and, in any case, we didn't replace the prior action, so have no duty to restore it. In the process, restructure and comment the code to make it easier to follow what's going on and why. Package a conditional in a lambda to make the #if-ery less problematic. This should also make it easier to hack any other complications into the condition, should they arise. Change-Id: I712335ee27f68a8594dc2fe6441a91f686967da2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QTestLog: Properly own the loggersUlf Hermann2021-11-091-1/+1
| | | | | | | | | | | | | | | Previously, the loggers would leak if the application failed to call stopLogging(). Now they are owned by the global static which will delete them in that case. Also, since we have to adapt loggerCount() to the fact that std::vector uses size_t, recognize that we only ever want to know whether the number of loggers is 0. Change the method to only provide that information rather than the actual number. Change-Id: Ieb2e185048d573ec7f36373ad49bb2a0ca391ce3 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Deprecate QTest::qWarn() and replace its last useEdward Welbourne2021-09-231-2/+6
| | | | | | | | The one place that actually called it with file and line number was internal to QtTest, so could call QtTestLog::warn(). Change-Id: I8be10fc81996cc3de4d2eea3ecedc59671ffe759 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Remove spurious QTestResult::setCurrentTestData(nullptr);Edward Welbourne2021-09-221-1/+0
| | | | | | | | | Calls to QTestResult::setCurrentTestData() are handled via an RAII class, QTestDataSetter, that ensures this final call passing nullptr was redundant. Change-Id: I7788e3ce898e5628d5590ef9d34182f05e85fe50 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Clean up some notes in QtTestLib documentationEdward Welbourne2021-08-111-11/+11
| | | | | | | | | | | Use \note instead of \b{Note:}, don't refer to functions as macros, and don't lie. The data-table set-up functions can delegate their calls to addColumn(), addRow() and newRow() to functions not called directly by the test framework. Change-Id: I3bef22cf1a45df91dc822ac04f07e7d15053825f Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* testlib: Update a few remaining instances of the deprecated -xunitxml formatTor Arne Vestbø2021-07-291-3/+9
| | | | | | | | The format was renamed in 27db9e458cef512fca3a6b5c9ebbcda7a8172428. Pick-to: 6.2 Change-Id: I53975c7467d8768dc9dc9ac2d89c42eefa12e22f Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QDirIterator: add nextFileInfo()Marc Mutz2021-07-281-3/+1
| | | | | | | | | | | | | | | | | | | | | | | Before this change, next() was the only way to advance the iterator, whether the caller was ultimately interested in just the filePath() (good) or not (bad luck, had to call .fileInfo()). Add a new function, nextFileInfo(), with returns fileInfo() instead. Incidentally, the returned object has already been constructed as part of advance()ing the iterator, so the new function is faster than next() even if the result is ignored, because we're not calculating a QString result the caller may not be interested in. Use the new function around the code. Fix a couple of cases of next(); fileInfo().filePath() (just use next()'s return value) as a drive-by. [ChangeLog][QtCore][QDirIterator] Added nextFileInfo(), which is like next(), but returns fileInfo() instead of filePath(). Change-Id: I601220575961169b44139fc55b9eae6c3197afb4 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* testlib: Disable automatic backtrace when test crashes on macOS on ARMTor Arne Vestbø2021-07-191-3/+6
| | | | | | | | | Take two. f20edffcc8089fe573e03bd5e092dafc9b0ce568 only disabled the backtrace preamble. Pick-to: 6.2 Change-Id: I972d007af59d13ec6eb11da44fc2b5e25c36e46e Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Tidy up qtestcase.cpp's WatchDogEdward Welbourne2021-07-151-6/+11
| | | | | | | | | It now uses QtPrivate::condition_variable, it pulls in the correct header for that, so #include <condition_variable> is no longer needed. Separate opening braces of function bodies onto next line. Change-Id: I08f721c4d52756932bb9409e34e51dcbb3eda104 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* QTest: remove unneeded cast in toPrettyUnicode()Marc Mutz2021-07-071-2/+2
| | | | | | | | char16_t, as returned from QStringView::utf16(), is guaranteed to be unsigned, so there's no need to reinterpret_cast to ushort. Change-Id: I7432dd26b4814c61fe70cc33ed307097ef46ce4e Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QtTest: de-pessimise TestMethods::MetaMethods handlingMarc Mutz2021-06-221-5/+6
| | | | | | | | | | MetaMethods is a std::vector, so we should avoid copying it. Add strategic std::move()s and pass to the TestFunctions ctor by value, not cref. Change-Id: Iaa2879ae427b9603a7abaab0e3015556d9c247fc Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Fix QFAIL() to interract correctly with QEXPECT_FAIL()Edward Welbourne2021-06-151-3/+3
| | | | | | | | | | | | | | | | | | | Previously, it went direct to QTestResults::addFailure() without going via the checking for expected failure. Add QTestResults::fail() to take care of this checking, as for verify() and compare(). Tidied up the code implementing expected failure and QFAIL(), while I was about it. Adjusted an existing test to verify that expecting a QFAIL() works, by using QFAIL() instead of QVERIFY(false). Remove the QVERIFY(false) whose comment brought this to my attention. [ChangeLog][QtTestLib][QFAIL] QEXPECT_FAIL() now correctly anticipates a subsequent QFAIL(). Previously QFAIL() counted as a fail regardless. Change-Id: Icc28cf70e5ff3006363791ea03aa01f2f591eb71 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QtTest: move QTRY_X error message formatting out-of-lineMarc Mutz2021-06-151-0/+8
| | | | | | | | | | | Clazy warns about the fromUtf8() call with a constant argument, for every use of the macro, so hide the stuff behind a compiler firewall. Also fix the format injection error by using QLatin1String::arg() instead of QString::arg() chaining. Change-Id: I4bb4d4af56443540efc0c38c75819aa152a441fc Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* wasm: fix threaded buildsLorn Potter2021-06-081-0/+2
| | | | | | | set the thread pool size default to 4 Change-Id: I038a81610c82ac4d162c044d0e1f58196cffc7b7 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* QTestlib: Add formatting for QObject * in QCOMPAREFriedemann Kleint2021-05-261-0/+18
| | | | | | | | | | | Output object name and class in QCOMPARE(). This should help to debug flaky QWidget tests that for example check on focusWidget(). [ChangeLog][QtTestLib] QCOMPARE() now reports QObject * values by class and objectName(). Task-number: QTBUG-64446 Change-Id: Ife04e89bba04fc78d077c8f0f07af17a17c9cf8c Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* testlib: Disable automatic backtrace when test crashes on macOS on ARMTor Arne Vestbø2021-05-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | The trick we use by spawning lldb to print the backtrace doesn't work for some reason, and just results in: Process 91619 stopped * thread #1, stop reason = signal SIGSTOP frame #0: 0xffffffffffffffff Target 0: (No executable module.) stopped. Architecture set to: . (lldb) bt all * thread #1, stop reason = signal SIGSTOP frame #0: 0xffffffffffffffff thread #2 frame #0: 0xffffffffffffffff thread #3 frame #0: 0xffffffffffffffff thread #4 frame #0: 0xffffffffffffffff Debugging the stopped process manually with lldb works fine. Change-Id: If5582803a11f1c5c84c31b42d1ae52bdd245bbbb Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QTestlib: Fix formatting of pointers in QCOMPAREFriedemann Kleint2021-05-231-0/+5
| | | | | | | | | | After 1ed8a7bff503aacf55f7f880ddaad461ea15e5e1, volatile needs to be specified for toString(), else it is not used by compare_ptr_helper(). Add an overload. Pick-to: 6.1 5.15 Change-Id: I3c335f324df346233623272d1014c8360ca33160 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix thread-sanitizer warning about a data raceLars Knoll2021-05-121-9/+10
| | | | | | | | | Not 100% sure if this is a bug in tsan, but turning expected into an atomic variable will avoid the warnings. Change-Id: I6d6a5d58f90258d201ae3880473228638de0a215 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
* Exclude unused functions from WASM buildMorten Sørvig2021-04-301-0/+2
| | | | | | | | Fix “unused function” warnings. Change-Id: I1d8d1de3c181385769bffc094d6c9e3319e1dc98 Reviewed-by: Lorn Potter <lorn.potter@gmail.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* testlib: Don't abort on unrecognized -AppleFoo command line argumentsTor Arne Vestbø2021-02-111-1/+6
| | | | | | | | Allow passing command line arguments such as -AppleLocale, that override user preferences for the test process. Change-Id: I9e58e91fcb01a36f9d6c64ef52369308be5e95b5 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>