summaryrefslogtreecommitdiffstats
path: root/src/testlib
Commit message (Collapse)AuthorAgeFilesLines
* StackTraceHandler: call the debugger directly, instead of via /bin/shThiago Macieira2022-05-231-14/+29
| | | | | | | | | | | | | This removes one middle-man and a 512-byte variable in favor of a simple 32-bit enum. This was done in a way so we can extend to use either gdb or lldb in any OS. I've renamed the debuggerPresent() function to make its meaning clearer. Pick-to: 6.3 Change-Id: I5ff8e16fcdcb4ffd9ab6fffd16eba561628ff89b Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* StackTraceHandler: simplify the gdb and lldb commandsThiago Macieira2022-05-231-11/+2
| | | | | | | | | | Instead of piping stuff via the shell into them, just use batch mode. And also take the opportunity to tell them not to read their user- provided configuration files. Pick-to: 6.3 Change-Id: I5ff8e16fcdcb4ffd9ab6fffd16eba21e71afaefa Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* FatalSignalHandler: chain back to the original crash handlerThiago Macieira2022-05-201-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | If a previous handler was already installed, ensure it is called, because there may be a reason why it was there. For example, the Android ART adds a signal action to every fatal signal for logging purposes. We do that by restoring the signal handler we had and re-raising the signal. If our handler was overridden by something else, then that handler was already called, but will get uninstalled after our code runs. It won't be a problem, because the application is exiting anyway. [ChangeLog][QtTest][Behavior Change] On Unix, the QtTest code to handle Unix/POSIX fatal signals will now call back to the original handler that was installed, if there was one. This allows logging frameworks (such as Android ART's), for example, to log the crash too. Additionally, if there was no handler, the application should exit with the correct signal instead of SIGABRT. Fixes: QTBUG-97652 Pick-to: 6.3 Change-Id: Ifc4fca159b490d8d0b614d736e46caefcb903a4c Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* FatalSignalHandler: remember the previous signal's handlerThiago Macieira2022-05-201-41/+23
| | | | | | | | | | | | And only restore those signals, instead of iterating over all possible signals, instead of attempting to restore to SIG_DFL. Also, as a consequence, we will install our handler even if there was already a handler installed for the signal. Pick-to: 6.3 Change-Id: I5ff8e16fcdcb4ffd9ab6fffd16eb756685f4e8b8 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* 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 QAbstractItemModelTester or QFileSystemModelAndreas Buhr2022-05-182-4/+21
| | | | | | | | | | | | This patch enables usage of QAbstractItemModelTester on QFileSystemModel. QAbstractItemModelTester called fetchMore() on all items. QFileSystemModel represents the whole file system. This led to very long test runs. To avoid this, this patch introduces a new feature in QAbstractItemModelTester, namely to disable calling of fetchMore(). Change-Id: Ie5d2e22fa4c143be7c080d9f79632cd2cbe07aac Reviewed-by: David Faure <david.faure@kdab.com>
* Use SPDX license identifiersLucie Gérard2022-05-16100-3808/+207
| | | | | | | | | | | | | 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>
* Add missing header files to the module sourcesAlexey Edelev2022-05-121-0/+3
| | | | | | | | | All module header files should be listed in the corresponding sections of modules SOURCEs to be accessible in CMake routines. Task-number: QTBUG-103196 Change-Id: Ieb77ae70557e35e546a5b00387e1e0aa40338239 Reviewed-by: Alexandru Croitor <alexandru.croitor@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>
* De-pessimize QBenchmarkValgrindUtils::extractResult()Marc Mutz2022-05-051-8/+12
| | | | | | | | | | | | | | As if QIODevice::readLine() and QIODevice::Text open-mode aren't slow enough, the old code took the line QByteArray, converted it to a QString so it could apply a trivial regex to it: '^summary: (\d+)'. We can, of course, use QByteArray::startsWith("summary: ") followed by std::from_chars(), these days, to get the same effect, without having to JIT-compile an RX and convert every line into UTF-16 first. Change-Id: I20d80ffb469329d3c3efd08c71fcf5abf9f486d3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> 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>
* QTeamCityLogger: fix .arg() placeholder injectionMarc Mutz2022-05-041-3/+2
| | | | | | | | | | | | | | Since each .arg() call starts from scratch, a file name containing a suitable %n would mess up the formatting of the following .arg() call. Fix by using multiArg(), which requires to pre-format the line into a QString, but which performs only a single-pass, so doesn't suffer from the placeholder injection problem that plagues .arg()-chaining. Pick-to: 6.3 6.2 5.15 Change-Id: I549527643da657fca0bea63d5e3becadac529d4b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
* QBenchmarkValgrindUtils::extractResult(): use std::optionalMarc Mutz2022-05-031-5/+5
| | | | | | | | | | ... instead of a pair of val and valSeen variables. More elegant. Pick-to: 6.3 Change-Id: I0fcf9a3b5611e30fb81d92619993a7828496cd1b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QAbstractTestLogger: disable copyingMarc Mutz2022-05-031-0/+1
| | | | | | | | | Fixes clazy-copyable-polymorphic. Pick-to: 6.3 6.2 5.15 Change-Id: I31a68da6e402ada91099b09540b29a1d56f9cc56 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QTestLog: simplify construction of a log messageSona Kurazyan2022-05-021-2/+5
| | | | | Change-Id: I055efa45ec468cae43a38a9746a47af0382ca8c1 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QtTestLib: replace remaining uses of QL1String with QL1StringViewSona Kurazyan2022-05-028-35/+36
| | | | | | | | | 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-027-82/+88
| | | | | | | Task-number: QTBUG-98434 Change-Id: Ie327fd4af1880002e5a1e09b43384f2b709625e7 Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QAbstractItemModelTester: Fix typos in debug outputFlorian Bruhin2022-04-291-3/+3
| | | | | | | Introduced in 2f6faca901442631299af0c0d15b3edf257f225b Change-Id: Iab01bbd572ee1fdc7f590b608d7bf504dbf18769 Reviewed-by: David Faure <david.faure@kdab.com>
* QtTestLib: stop using QLatin1Char constructor for creating char literalsSona Kurazyan2022-04-286-18/+17
| | | | | | | | Required for porting away from QLatin1Char/QLatin1String in scope of QTBUG-98434. Change-Id: I3debae5f481037958bfb65caabca97a0d4681eb9 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QtTest: includemocsMarc Mutz2022-04-281-0/+2
| | | | | | | | | | | Including moc files directly into their classes' TU tends to improve codegen and enables extended compiler warnings, e.g. about unused private functions or fields. Pick-to: 6.3 6.2 5.15 Task-number: QTBUG-102886 Change-Id: I9378ddcabbfa0ec5ca895f6ce55ab5f1ec2cade3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Support test-case selection based on global data tagEdward Welbourne2022-04-254-29/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* QBENCHMARK: Replace the double underscore with something not reservedThiago Macieira2022-04-141-4/+4
| | | | | | | | | Clang with -Wreserved-identifier complains. Pick-to: 6.3 Fixes: QTBUG-102431 Change-Id: If2e0f4b2190341ebaa31fffd16e441ee35b0e3b9 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Replace uses of _qba with _baSona Kurazyan2022-04-071-1/+3
| | | | | | | Task-number: QTBUG-101408 Change-Id: I5175428c2be934b09f45bd06b0b47643003e25c7 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Make keyClick safer for QWindows going away on presses or during waitAllan Sandfeld Jensen2022-04-061-0/+3
| | | | | | | | | We already have similar logic in the QWidget variant. Pick-to: 6.3 6.2 Task-number: QTBUG-102253 Change-Id: Idf1e3474f3189909f1cba7d5dedc2cde12f1338e Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Tidy up QTapTestLogger::addIncident()'s regex parsingEdward Welbourne2022-03-291-13/+14
| | | | | | | | | | It had some repetition that could be refactored out, some long lines and a bool it worked out the hard way, when it had previously determined the answer in passing without recording it. Change-Id: I9e53ed087dfbe8067686b27b6cf9ac32040fbf19 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* TAP test logger: report B?XFAIL (mostly) as a messageEdward Welbourne2022-03-292-103/+121
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, only the first B?XFAIL would be reported, all others would be discarded. Furthermore, if a B?XFAIL had happened, B?PASS was also not reported, since the B?XFAIL served as test line. However, if the B?XFAIL was followed by a SKIP, B?XPASS or B?FAIL, these were reported as normal, producing exactly the kind of duplicated test line that the skipping of B?PASS was meant to supply. So change B?XFAIL to be reported among the messages, but retain the TODO annotation of the first on the test line of a subsequent B?PASS, if nothing more drastic happens in the mean time. So now more than one B?XFAIL can be reported, the test is still marked as a TODO and we don't get duplicate test lines for a subsequent non-passing result. This replaces the bool m_wasExpectedFail member with a QTestCharBuffer m_firstExpectedFail that records the first XFAIL's TODO line (so its isEmpty() fully replaces m_wasExpectedFail). Previously, the at/file/line information for a B?XFail would be supplied as top-level keys in the YAML block for a "Pass" reported as not ok due to the XFail, as this location information is now part of the B?XFail's message in the extensions/messages block. Duplicating the first B?XFail's location at top level would add complexity and is arguably misleading, as the test result is really a pass (after ignoring known issues), and the location of the pass is indeterminate (nominally the end of the test function, but actually also after the cleanup() call for this test, when relevant), which is why a Pass has no location information. Task-number: QTBUG-96844 Change-Id: Ib3f24f56266ff49bf3bc9759ac8263ac69a62130 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Move TAP's messages block to after the primary report detailsEdward Welbourne2022-03-292-15/+25
| | | | | | | | | In the process, split it from its comments block and don't bother with a YAML block if it would only have contained comments. Task-number: QTBUG-96844 Change-Id: I08c20f796252bb270ba9caa4c055cdcc0843a88b Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Introduce QTestPrivate::androidCompatibleShow() helper functionIvan Solovev2022-03-291-0/+13
| | | | | | | | | | | | | | This function should be used in QWidget-related test cases instead of QWidget::show() when you need to move or resize the widget and then compare its position or geometry with the expected value. The reason for introducing it is that on Android QWidget::show() is showing the widget maximized by default, so its position and size can't be changed. Task-number: QTBUG-87668 Pick-to: 6.3 6.2 Change-Id: I8ec5c07b73968b98d924a41e5d41ddb4d7be1ced Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Include file and line information in TAP diagnostics blocksEdward Welbourne2022-03-291-1/+1
| | | | | | | | | | | When producing a diagnostics block, include the file and line information, if we have it, to describe it. This presently only adds this information for skip, but could in principle do the same for a B?XPass. Task-number: QTBUG-96844 Change-Id: I6cc375d98e2369eba262010f9c2dfbcba931a6f1 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* TAP test logger: move messages into the diagnostics blockEdward Welbourne2022-03-294-29/+148
| | | | | | | | | | | | | | | | | | | | | | | | | | | Our TAP output was delivering messages as comments before the test line, where TAP clearly expects the details of a test to follow its test line. Version 13 provides a YAML block to deliver diagnostics and encourages use of this, so accumulate our messages in a QTestCharBuffer instead of emitting them one by one. However, messages produced after a test has produced its test line belong to that test, but are too late to be included in its diagnostics block, so should be emitted immediately as before, albeit now with a type prefix. This at least separates such messages, from the end of one test, from messages produced early in the next. In the process, add a type-prefix to each, to make clear what type of message it was. Since the Yamlish supported by TAP consumers doesn't support a way to have many messages, use the extensions: top-level hash tag with a messages: sub-tag to gather our messages as a list. (This expands at least one expected output file significantly and substantially rewrites some others.) Add methods to QTestCharBuffer, and a helper function, to support this. Task-number: QTBUG-96844 Change-Id: If44a33da5879ed1670ef0980042599afd516f9d2 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Doc: Add \relates command for documented global functions/macrosTopi Reinio2022-03-251-0/+1
| | | | | | | | | | | | | Global functions need an associated header file/class/namespace to make the documentation visible. Remove QDoc comment tag (/*!) for an internal function. Pick-to: 6.3 Task-number: QTBUG-99578 Change-Id: Id390d433d7e081fc90fa57a02097b6c37fa13bee Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* QAbstractItemModelTester: use the right types for some rolesGiuseppe D'Angelo2022-03-241-2/+3
| | | | | | | | | | | | Models are expected to return Qt::Alignment and Qt::CheckState when asked for the text alignment / check state roles, respectively. However, for legacy reasons, models may return `int` for either possibility. Extend the tester to cover this. Task-number: QTBUG-75172 Change-Id: I64bfc898466e8bb4d4a8a35726986ae610a8ffbe Pick-to: 6.2 6.3 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Document some details of TAP's use of YAMLishEdward Welbourne2022-03-221-1/+67
| | | | | | | ... along with how QtTest soon shall be using it. Change-Id: I9c723ebdb8ee5be1c4152aa911ae7c846ea61b5c Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Use a cheaper is-empty test for a C-stringEdward Welbourne2022-03-221-1/+1
| | | | | | | | We only need to look at the first byte to determine whether the length is > 0; no need to count how many more bytes after it aren't '\0'. Change-Id: Id2db2a9a993086c0aee02c99396fcb346b1a348e Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Avoid duplicate descriptions in TAP's incident YAMLEdward Welbourne2022-03-221-2/+2
| | | | | | | | | | | | | | When a B?Fail's description doesn't match the QVERIFY/QCOMPARE regexes, it got output as a comment in the YAML block after the test line had already reported it as a TODO comment. An empty description would also have lead to an empty comment in the YAML block. Condition this fallback output case on there being a description that hasn't yet been reported in the test line. Task-number: QTBUG-96844 Change-Id: Id7fe81d26ddb01da3d8003ada8fa590a5e1a166f Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix indentation of some continuation lines in qtaptestlogger{.cpp,_p.h}Edward Welbourne2022-03-222-4/+4
| | | | | Change-Id: I33dc05b61b07f077edc7c4816d43d0b53f5f4b43 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* TAP test logger: treat blacklisted XFail the same as XFailEdward Welbourne2022-03-221-1/+1
| | | | | | | | | | | In all places but one they were treated the same; fix that last one to match the rest. This removes one line from the YAML block for each blacklisted XFail test; in each case, this message duplicates the one on its "not ok ... # TODO..." test line. Change-Id: Iff2028afccd979db7f2c84e85d1b78541900008e Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Match QtTest command-line output options to the help outputEdward Welbourne2022-03-221-8/+10
| | | | | | | | | Reorder the different formats to match the order in the help output and include missing entries from the list of formats supported by the -o filename,format variant. Change-Id: I884f9facc7cfde7cec0bee75944efdd72d66a83e Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Document what QtTest's various loggers doEdward Welbourne2022-03-229-10/+87
| | | | | | | | | Provide basic (internal) documentation of each logging class and link the command-line documentation to pages relevant to the formats not defined by Qt. Change-Id: I3251dd1304203c6ab87dfe1f2dec0e9787ab69f8 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Fix deprecated use of QBA/Q*String::countMårten Nordheim2022-03-151-6/+6
| | | | | | | 'Use size() or length() instead' Change-Id: I284fce29727c4c1ec9ea38a4e8ea13a9e0af5390 Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
* Use LogElementType rather than int as test-element typeEdward Welbourne2022-03-143-8/+8
| | | | | | | | | All callers do in fact pass members of the enum, so just making the defualt value be LET_Undefined rather than -1 eliminates any need for it to be an int. Change-Id: Ic1c9ae1522363666d1208aba60d4b4df5eff6ce0 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>