summaryrefslogtreecommitdiffstats
path: root/src/testlib/qplaintestlogger.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Output both global and local data tags in benchmark result headerMagdalena Stojek2024-12-131-2/+9
| | | | | | | | | | | | Modified QPlainTestLogger::printBenchmarkResultsHeader() to concatenate and display both global and local data tags, in the benchmark result header, in the format `global:local`. If only one tag is available, it is printed alone. Pick-to: 6.9 6.8 6.5 Fixes: QTBUG-127522 Change-Id: Ic9f3c712ef3f6858aad2546b80d8867ce860b644 Reviewed-by: Matthias Rauter <matthias.rauter@qt.io>
* Gui/Testlib: fix compilation for FEATURE_qrealTim Blechmann2024-08-231-1/+1
| | | | | | | Pick-to: 6.8 Task-number: QTBUG-118877 Change-Id: I4988f3b8b9ed09d8f01873fe34bf78d8105a25da Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
* QtTest: port from qsnprintf to std::snprintf and mark the module as ↵Marc Mutz2024-08-031-16/+18
| | | | | | | | | | | | qsnprintf-free Drive-by remove an explicit NUL-termination (std::snprintf() does that) and port a repeated use of printf argument checking to the protect() idiom. Pick-to: 6.8 Change-Id: Ida15940fe9aef0622e9836a229a398c909503a9a Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QPlainTextLogger: FixedBufString: simplify appendf()Marc Mutz2024-07-221-2/+2
| | | | | | | | | | | | | | | | | qsnprintf() does not make a difference between lvalue and rvalue arguments, so the wrapper doesn't need to perfectly forward. Use decay-copy via by-value arguments to potentially reduce the number of instantiations required for the existing calls. Adjust indentation so the continuation line doesn't need to be re-indented when we'll port qsnprintf() to std::snprintf(). Amends 0e8eb20af43ca473b7a7639bb2941c9e6bad537b. Pick-to: 6.8 6.7 6.5 Change-Id: Idcaa441517fdbf00fefd952db7928731779123ab Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add QTest option for repeating the entire test executionJøger Hansegård2023-11-151-0/+9
| | | | | | | | | | | | | | | | | Repeated test execution can be useful, under a debugger, to catch an intermittent failure or, under memory instrumentation, to make memory leaks easier to recognize. The new -repeat flag allows running the entire test suite multiple times within the same process. It works by executing all tests sequentially before repeating the execution again. This switch is a developer tool, and is not intended for CI. It can only be used with the plain text logger. Change-Id: I2439462c5c44d1c8aa3d3b5656de3eef44898c68 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Remove the manual undef of the min/max macros, or def NOMINMAXAmir Masoud Abdol2023-06-081-7/+0
| | | | | | | | | | We now add NOMINMAX to PlatformCommonInternal target which will be linked to everything else, so min/max will not be defined upon the inclusion of `windows.h`, or other headers. Pick-to: 6.5 6.6 Change-Id: I10016720dac7ce015e929885b7368ee86d8b6918 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Doc: Remove duplicate wordsAndreas Eliasson2023-02-281-1/+1
| | | | | | Change-Id: Ia7a38a1035bd34d00f20351a0adc3927e473b2e7 Pick-to: 6.5 6.4 6.2 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* QTestlib: Disambiguate static functionsFriedemann Kleint2023-01-231-5/+5
| | | | | | | | | They cause clashes in CMake Unity (Jumbo) builds. Task-number: QTBUG-109394 Pick-to: 6.5 Change-Id: I2920cc3f36ad60be1ee618c16653df5bc259019a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* QPlainTestLogger: include extra information in each resultThiago Macieira2022-11-091-0/+103
| | | | | | | | | | | RESULT : tst_MyClass::QString_toInt() 367 nsecs per iteration (total: 3,672,848, iterations: 10000) 1,019 CPU cycles per iteration, 2.775 GHz (total: 10,193,637, iterations: 10000) 3,123 instructions per iteration, 3.055 instr/cycle (total: 3,123,000,194, iterations: 1000000) 536 branch instructions per iteration, 1.459 G/sec (total: 5,360,022, iterations: 10000) Change-Id: I3c79b7e08fa346988dfefffd17203fff3ff5b774 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QPlainTestLogger: don't print "RESULT" before each additional resultThiago Macieira2022-11-091-17/+32
| | | | | | | | | | | | | | | | | We do that by passing the full list of results to the logger, to a virtual that is present in the base class to call the existing function. For all but the plain logger, we'll just print multiple results. The plain logger now prints: RESULT : tst_MyClass::QString_toInt() 383 nsecs per iteration (total: 3,837,324, iterations: 10000) 1,069 CPU cycles per iteration (total: 10,692,457, iterations: 10000) 3,123 instructions per iteration (total: 31,230,101, iterations: 10000) 536 branch instructions per iteration (total: 5,360,022, iterations: 10000) Change-Id: I3c79b7e08fa346988dfefffd17203cb5802693dd Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QPlainTestLogger: simplify printBenchmarkResult()Thiago Macieira2022-11-091-54/+47
| | | | | | | Avoids having lots of buffers that occupy the stack. Change-Id: I3c79b7e08fa346988dfefffd17203c5045a7fc86 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QPlainTestLogger::formatResult: use QByteArray instead of QStringThiago Macieira2022-11-091-14/+14
| | | | | | | | | Avoids operating in UTF-16 and having to convert. Drive-by fix int to qsizetype. Change-Id: I3c79b7e08fa346988dfefffd17203b044914d68d Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QBenchlib: use QBenchmarkMeasurerBase::Measurement in QBenchmarkResultThiago Macieira2022-11-091-4/+5
| | | | | Change-Id: I3c79b7e08fa346988dfefffd17202a818cde1d84 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Long live Q_UNREACHABLE_RETURN()!Marc Mutz2022-10-151-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a combination of Q_UNREACHABLE() with a return statement. ATM, the return statement is unconditionally included. If we notice that some compilers warn about return after __builtin_unreachable(), then we can map Q_UNREACHABLE_RETURN(...) to Q_UNREACHABLE() without having to touch all the code that uses explicit Q_UNREACHABLE() + return. The fact that Boost has BOOST_UNREACHABLE_RETURN() indicates that there are compilers that complain about a lack of return after Q_UNREACHABLE (we know that MSVC, ICC, and GHS are among them), as well as compilers that complained about a return being present (Coverity). Take this opportunity to properly adapt to Coverity, by leaving out the return statement on this compiler. Apply the macro around the code base, using a clang-tidy transformer rule: const std::string unr = "unr", val = "val", ret = "ret"; auto makeUnreachableReturn = cat("Q_UNREACHABLE_RETURN(", ifBound(val, cat(node(val)), cat("")), ")"); auto ignoringSwitchCases = [](auto stmt) { return anyOf(stmt, switchCase(subStmt(stmt))); }; makeRule( stmt(ignoringSwitchCases(stmt(isExpandedFromMacro("Q_UNREACHABLE")).bind(unr)), nextStmt(returnStmt(optionally(hasReturnValue(expr().bind(val)))).bind(ret))), {changeTo(node(unr), cat(makeUnreachableReturn, ";")), // TODO: why is the ; lost w/o this? changeTo(node(ret), cat(""))}, cat("use ", makeUnreachableReturn)) ); where nextStmt() is copied from some upstream clang-tidy check's private implementation and subStmt() is a private matcher that gives access to SwitchCase's SubStmt. A.k.a. qt-use-unreachable-return. There were some false positives, suppressed them with NOLINTNEXTLINE. They're not really false positiives, it's just that Clang sees the world in one way and if conditonal compilation (#if) differs for other compilers, Clang doesn't know better. This is an artifact of matching two consecutive statements. I haven't figured out how to remove the empty line left by the deletion of the return statement, if it, indeed, was on a separate line, so post-processed the patch to remove all the lines matching ^\+ *$ from the diff: git commit -am meep git reset --hard HEAD^ git diff HEAD..HEAD@{1} | sed '/^\+ *$/d' | recountdiff - | patch -p1 [ChangeLog][QtCore][QtAssert] Added Q_UNREACHABLE_RETURN() macro. Change-Id: I9782939f16091c964f25b7826e1c0dbd13a71305 Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Port from container.count()/length() to size()Marc Mutz2022-10-041-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is semantic patch using ClangTidyTransformator: auto QtContainerClass = expr(hasType(namedDecl(hasAnyName(<classes>)))).bind(o) makeRule(cxxMemberCallExpr(on(QtContainerClass), callee(cxxMethodDecl(hasAnyName({"count", "length"), parameterCountIs(0))))), changeTo(cat(access(o, cat("size"), "()"))), cat("use 'size()' instead of 'count()/length()'")) a.k.a qt-port-to-std-compatible-api with config Scope: 'Container'. <classes> are: // sequential: "QByteArray", "QList", "QQueue", "QStack", "QString", "QVarLengthArray", "QVector", // associative: "QHash", "QMultiHash", "QMap", "QMultiMap", "QSet", // Qt has no QMultiSet Change-Id: Ibe8837be96e8d30d1846881ecd65180c1bc459af Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Use SPDX license identifiersLucie Gérard2022-05-161-38/+2
| | | | | | | | | | | | | 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>
* QtTestLib: replace QLatin1String uses with _L1/_s/QStringLiteralSona Kurazyan2022-05-021-3/+5
| | | | | | | 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-5/+4
| | | | | | | | Required for porting away from QLatin1Char/QLatin1String in scope of QTBUG-98434. Change-Id: I3debae5f481037958bfb65caabca97a0d4681eb9 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Document what QtTest's various loggers doEdward Welbourne2022-03-221-1/+10
| | | | | | | | | 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>
* QTestLib: code tidiesGiuseppe D'Angelo2022-02-031-4/+4
| | | | | | | | Rename the `failureLocation` variable to `messageLocation`, as it does not necessarily contain information about a failure. Change-Id: I9e78dc76c8111c78e34c36f6623e9a8cc9e4764e Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QPlainTestLogger: do not print "failure location" if there's no failureGiuseppe D'Angelo2022-02-021-8/+19
| | | | | | | | | | | | | | | When running a test under increased verbosity levels, QTestLib would print "failure location" for every QTest function (QVERIFY, QCOMPARE, ...), even if there's no failure at all. Keep the code centralized, but split the formatting of failures and non-failures (other messages). Task-number: QTBUG-96844 Change-Id: I3c508653176b68579dc0eb0cffcc153a52da2e2c Pick-to: 5.15 6.2 6.3 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QPlainTestLogger: code tidiesGiuseppe D'Angelo2022-02-021-2/+4
| | | | | | | | | | | Remove a couple of unnecessary string literals that only coped with an impossible situation (default return after a switch that cover all the enumerators). Add a Q_UNREACHABLE() for good measure. Change-Id: I8065218554edf98408d9c0823b8c301932681c59 Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Remove spurious class prefixes from subclass codeEdward Welbourne2021-12-091-1/+1
| | | | | | | | | The subclass's code can refer to the base's public enums without needing the (long) class prefix. Change-Id: I4824440d216695aee9345776faba2e510130425e Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Ignore blackisted Pass and XFail when ignoring their plain formsEdward Welbourne2021-12-091-2/+2
| | | | | | | | | | | It makes no sense to include output for a blacklisted test that would have been excluded had it not been blacklisted. Task-number: QTBUG-96844 Change-Id: I164e0c26a921101cbf8986904851260d181be00f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Make Skip an incident in test loggingEdward Welbourne2021-12-091-7/+7
| | | | | | | | | | | | | | | Skip ends the test (albeit inconclusively). Rearrange the enums in the abstract logger, move code to handle skip between relevant function and tidy up various things that became simpler as a result. Also reorder the message enum, and its switches, to separate testlib's internals from the usual Qt messages, and put each group in ascending order of severity. Task-number: QTBUG-96844 Change-Id: I2c7a634b9f849830d64eafa750155e66e244b729 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* testlib: Rename QAbstractTestLogger::QSystem to QCriticalTor Arne Vestbø2021-08-101-2/+2
| | | | | | | | | | | | | It's used to handle qCritical() messages, and corresponds to QtMsgType's QtCriticalMsg, so change its name to reflect what it really is. In the process, reclassify the -maxwarnings overflow message as a warning, rather than a critical message. Pick-to: 6.2 Change-Id: I87626117a547ae4498d5dc352b93bd6db8bfb332 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Output QSysInfo::productType() and productVersion() in test config lineMitch Curtis2020-09-181-1/+2
| | | | | | | | | | This makes it easier to know which values to use in BLACKLIST files for a flaky test, for example. Pick-to: 5.15 Change-Id: I12af99d68f97e016aa42be9ae9d70de5fc0a58ed Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QTestLib: Fix class declarations/structureFriedemann Kleint2019-07-111-3/+1
| | | | | | | | | | | | - Remove virtual from functions declared as override - Use " = default" for trivial constructors/destructors - Remove all special functions from QTestLog Apply Fixits by Qt Creator with some amendments. Task-number: QTBUG-69413 Change-Id: I812b8116e5b4c927e4e5cee44e63bc705385d866 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* testlib: Add BXPASS and BXFAILOliver Wolff2019-01-291-0/+4
| | | | | | | | | | | | | | | Prioritize blacklisting over QEXPECT_FAIL so that a test that is blacklisted no longer fails if QEXPECT_FAIL returns true unexpectedly. To reflect this state properly, the two values of BXPASS and BXFAIL were added to testlib's output. [ChangeLog][Important Behavior Changes][QtTestLib] Blacklisting of tests will be taken into account for XPASS and XFAIL. A blacklisted test that causes an XPASS will no longer be a fail. Task-number: QTBUG-72928 Change-Id: Ia2232fdc714d405fa3fd9aea6c89eb2836bc5950 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* testlib: Feed test log messages to Apple Unified LoggingTor Arne Vestbø2018-03-091-15/+3
| | | | | | | | | | | | | | | | | | | QtTestLib uses its own message handler for plain text logging, so it doesn't go though the logic in qDefaultMessageHandler that dispatches logging to alternate logging sinks. Building on the approach of Android and Windows, we log to AUL from the plain text logger. A future improvement in this area would be to make QtTestLib make more use of the infrastructure in qlogging.cpp, but this is a bigger task and requires a better overview of the requirements. The AUL code has been isolated into a wrapper, to allow logging both to AUl and to e.g. the QPlainTextLogger. This is needed so that we short circuit the plain text logger in case AUL already has handled printing to stderr. Change-Id: Iee0c3902190bd081b7ffbaf77c41b3118ce7f6da Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* logging: Clarify and document how we look for the presence of a consoleTor Arne Vestbø2018-03-071-6/+4
| | | | | | | | | | | | | The privately exported qt_logging_to_console() function has been renamed to shouldLogToStderr, and exported in the QtPrivate namespace for QtTestLib. [ChangeLog][Important behavior changes][Logging (including qDebug and qWarning)] The QT_LOGGING_TO_CONSOLE environment variable has been deprecated. Use the more specific QT_ASSUME_STDERR_HAS_CONSOLE or QT_FORCE_STDERR_LOGGING, depending on your usecase. Change-Id: Ie29228eeac3b700c3de94fee022d5d66d9b5c210 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* un-crash QPlainTestLogger::printMessage()Jan Arve Sæther2018-02-221-6/+5
| | | | | | | | | | | | | | | | | | Commit cf4a6111150d866424ee07bda80a1d38f24ea02d refactored out test identifier buildup into a standalone function, but it returned the QTestCharBuffer as a value type, which ultimately caused it to crash: Unfortunately QTestCharBuffer is not copied correctly: Since it uses the default copy ctor it will copy the buf pointer and create a deep copy of the staticBuf pointer. When the dtor was later called it would then end up calling free(buf) (where buf pointed to the staticBuf of the original QTestCharBuffer). Task-number: QTBUG-66607 Change-Id: Ifa290658be6f077a0d6613451c26aeeffc8df41c Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> (cherry picked from commit 6ffb358822db2e0d30fb34853c3222cd866d57c5) Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* testlib: Pass on log message context to loggersTor Arne Vestbø2018-02-211-0/+5
| | | | | Change-Id: I1e0bb09d4f96b45f1e9757ea25ae3aba1ae42447 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* testlib: Split out test identifier buildup into standalone functionTor Arne Vestbø2018-02-131-19/+28
| | | | | Change-Id: I99aa106d5aab8f299e61835680709e4fd856defe Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Prefer rvalue versions of toLatin() and toUtf8()Anton Kudryavtsev2017-03-301-1/+1
| | | | | | | ... to re-use existing buffers. Change-Id: I7c42529b8cd4400520a59e658ab76f4f8e965cd4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QtTest: Remove Windows CE.Friedemann Kleint2016-04-061-14/+1
| | | | | | | | | Remove #ifdef sections for Q_OS_WINCE and wince .pro file clauses in library and tests. Task-number: QTBUG-51673 Change-Id: I552b3fe8d6e0eb7c8c7b3a3d41558e5e21904dd2 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Updated license headersJani Heikkinen2016-01-151-14/+20
| | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: I046ec3e47b1876cd7b4b0353a576b352e3a946d9 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Testlib: Output total test time in plain text logger.Friedemann Kleint2015-10-301-4/+5
| | | | | | | | | | | | | This makes it easier to spot slow tests. Produces: Totals: 314 passed, 0 failed, 0 skipped, 0 blacklisted, 137ms ********* Finished testing of tst_QStringRef ********* Task-number: QTBUG-38890 Change-Id: Iaee4dd677fd8f18b82f7c9c4934eb5b1119ade43 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
* Update copyright headersJani Heikkinen2015-02-111-7/+7
| | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Outdated header.LGPL removed (use header.LGPL21 instead) Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing combination. New header.LGPL-COMM taken in the use file which were using old header.LGPL3 (src/plugins/platforms/android/extract.cpp) Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license combination Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
* Add QtInfoMsgKai Koehne2015-01-091-1/+3
| | | | | | | | | | | | | | Add an 'info' message type that can be used for messages that are neither warnings (QtWarningMsg), nor for debugging only (QtDebugMsg). This is useful mainly for applications that do not have to adhere to the 'do not print anything by default' paradigm that we have for the Qt libraries itself. [ChangeLog][QtCore][Logging] QtInfoMsg got added as a new QtMsgType. Use the new qInfo(), qCInfo() macros to log to it. Change-Id: I810995d63de46c41a9a99a34d37c0d417fa87a05 Reviewed-by: Jason McDonald <macadder1@gmail.com>
* Update the detection of when to log to stderrThiago Macieira2014-09-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | On Windows, the detection changes only by inserting the use of the environment variable before the existing tests and removing the check on stderr. This commit adds logic similar to Windows's: if the application has a controlling TTY, we'll use stderr. Otherwise, we'll use the system log. This is technically a change in behavior: previously, we would always use the system log, unless the environment variable told us not to. In practice, the behavior doesn't really change: Android and BlackBerry and systemd-spawned applications are launched with no controlling TTY, so logging will go to their logging systems. [ChangeLog][Important behavior changes][Logging (including qDebug and qWarning)] Log output will now go to the system log (if support for it was compiled into Qt) if the application has no controlling terminal or console window. Set QT_LOGGING_TO_CONSOLE to 1 to force logging to go to stderr. Task-number: QTCREATORBUG-12564 Change-Id: I043c5c4f47c15f26d4f4a5cf43df466ea38cdbc7 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
* Update license headers and add new license filesMatti Paaso2014-09-241-19/+11
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
* Add support for blacklisting test functionsLars Knoll2014-09-211-4/+9
| | | | | | | | | | | | | | | | | We need to have a finer grained control over the tests we skip in our CI system. This adds a blacklisting mechanism that allows blacklisting individual test functions (or even test data) using a set of predefined matching keys for the operating system and some other relevant variables. QTestlib will search for a file called BLACKLIST in the test directory and parse it if found. The file contains a simple ini style list of functions to blacklist. For details see qtestblacklist.cpp. Change-Id: Id3fae4b264ca99970cbf9f45bfb85fa75c1fd823 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Use new QLibraryInfo::build() in testlib to log build information.Friedemann Kleint2014-02-271-5/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This produces: ********* Start testing of tst_QtJson ********* Config: Using QtTest library 5.3.0, Qt 5.3.0 (Feb 13 2014, GCC 4.6.3, 64 bit, debug build) PASS : tst_QtJson::initTestCase() <?xml version="1.0" encoding="UTF-8"?> <TestCase name="tst_QtJson"> <Environment> <QtVersion>5.3.0</QtVersion> <QtBuild>Qt 5.3.0 (Feb 13 2014, GCC 4.6.3, 64 bit, debug build)</QtBuild> <QTestVersion>5.3.0</QTestVersion> </Environment> <?xml version="1.0" encoding="UTF-8" ?> <testsuite errors="1" failures="1" tests="42" name="tst_QtJson"> <properties> <property value="5.3.0" name="QTestVersion"/> <property value="5.3.0" name="QtVersion"/> <property value="Qt 5.3.0 (Feb 13 2014, GCC 4.6.3, 64 bit, debug build)" name="QtBuild"/> </properties> <Environment> <QtVersion>5.3.0</QtVersion> <QtBuild>Qt 5.3.0 (Feb 13 2014, GCC 4.6.3, 64 bit, debug build)</QtBuild> <QTestVersion>5.3.0</QTestVersion> </Environment> [ChangeLog][QtTest] Tests now output build information. Change-Id: I0ab473371575f2b807db725256805b8bffea3454 Reviewed-by: Sergio Ahumada <sahumada@blackberry.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Frederik Gladhorn2014-01-211-1/+9
|\ | | | | | | refs/staging/dev
| * Windows: Do not print test output to both stdout and system debug logKai Koehne2014-01-131-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid piping the test output to both the Windows system debugger, and stdout. This fixes duplicate output in Qt Creator, which displays messages from both sources. [ChangeLog][QtTestLib] The (default) plain text logger on Windows now logs to either the system debug log (in case no console is open), or stdout, not both. Task-number: QTBUG-34630 Change-Id: I35fe9f4a50cc660d79fad7dffa6d19659b2102ae Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | Testlib: Use QString for messages in QAbstractTestLogger::addMessage()Friedemann Kleint2014-01-211-2/+2
|/ | | | | | | | Task-number: QTBUG-35743 [ChangeLog][QtTest][Windows] Use correct UTF-8 encoding for XML test results on platforms with different console encoding. Change-Id: Ice9d03192098f931e5dac358928e0c4421ab715e Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Fix: warning/compilation issue on androidaavit2013-09-251-1/+1
| | | | | | | | | | | Compiler would complain "error: format not a string literal and no format arguments [-Werror=format-security]", since the third argument of __android_log_print() is actually the format string. __android_log_write() is anyway more suited since we're not using any format here. Change-Id: Ic19102a9f15038a7cfcb06b605d7b9a73c3e1175 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* Support logcat output from tests on AndroidEskil Abrahamsen Blomfeldt2013-09-241-0/+6
| | | | | | | | | We usually do not have a console, so print out the messages to the log as well, so that it's easier to run single tests for debugging. Change-Id: I31908977aac25a6f6716f8245206b01026234aa9 Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>