summaryrefslogtreecommitdiff
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/tqtc/lts-5.15.9' into ↵v5.15.9-lts-lgpl5.15Tarja Sundqvist2023-03-23707-7166/+883
|\ | | | | | | | | | | tqtc/lts-5.15-opensource Change-Id: Iaff6b55275e50d19973e1020853d8622587069f9
| * Check for null driver() before trying to exec()Edward Welbourne2022-03-171-1/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | QSqlQuery::exec() took for granted that it can dereference driver(), which should be true for all sane usage; however, it should not crash if used misguidedly. Added regression test, based on bug report's reproducer, which crashes without the fix. Amended to call QString::mid() instead of sliced(), which was added in Qt 6. Fixes: QTBUG-100037 Change-Id: I94600bc60f89e82a1121b418144006a683921a38 Reviewed-by: Andy Shaw <andy.shaw@qt.io> (cherry picked from commit 78eac57f3dc788345f8f3e9b6dbd3dce70b8f511)
| * tst_QIODevice: fix UB (precondition violation) in ↵Marc Mutz2022-03-161-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SequentialReadBuffer::readData() memcpy() mustn't be called with a nullptr, even if the size is zero. Fixes ubsan error: tst_qiodevice.cpp:561:15: runtime error: null pointer passed as argument 1, which is declared to never be null Even though ubsan only complained about one of them, fix all three occurrences of the pattern in the test. Change-Id: I5c06ab4a20a9e9f8831392c46c6969c05248fdac Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit 572b55baa42787447643169811784bc64024fb5e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * QString::asprintf: check that passing field widths as arguments worksMarc Mutz2022-03-161-0/+6
| | | | | | | | | | | | | | | | | | Change-Id: Ifb36179b9c26ce15378f10c2947c8cb1e38e10d4 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 0aaada0ddc586d20a494880322f89d50c9d572c3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Backport recent QFlags testsMarc Mutz2022-03-161-0/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a backport of the tst_qflags parts of - 6f50e54138f9a2aa9ab6d84add449f197d545de3 (QFlags: fix missing bitwise xor operators in QT_TYPESAFE_FLAGS builds) - 53890b5d3cd771d66d6b73940eb38e3c3fc6d60f (qtestmouse.h: compile with QT_TYPESAFE_FLAGS) These changes were originally only picked to 6.3 because it was thought only 6.3 was failing the tests. In order to check that this is indeed the case, and to help future cherry-picking, backport the tst_qflags additions to 6.2 and 5.15. Change-Id: Iecfa11a8a83388c60f659238a28a26142b579380 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> (cherry picked from commit 4feaf095f44861fb93694483ac209b14974bf037) Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
| * Rewrite tst_qdataurl as a data-driven testMarc Mutz2022-03-141-30/+32
| | | | | | | | | | | | | | | | | | | | ... to make adding new test cases simpler. Change-Id: I54d08cebc7ae4bea9f0397ba3eec1ef6308a5161 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit 52092802b74b2f66818d7efbbd84a2008baf1502)
| * QCompleter: fix crash when setting the same model twiceDavid Faure2022-03-141-0/+10
| | | | | | | | | | | | | | | | | | Found when retesting the testcase completer.zip from QTBUG-54642 Change-Id: Id84eefeb3a33dc6d790cfa23755352381cc097a9 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 7382e5735ea734fe5e5777518394963593603c32) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Fix C++20 ambiguous relational operators between QJsonValue{,Ref}Marc Mutz2022-03-112-0/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In C++20, any given relational operator is also considered in its reversed form, so e.g. given op==(X, Y) and X x, Y y, then y == x will compile, by using the reversed op(X, Y) This, unfortunately, makes some existing asymmetric operator overload sets ambiguous, and instead of applying tie-breaker rules, at least Clang is warning about these. For us, this means we need to make our overload set non-ambiguous. The QJsonValue{,Ref} classes failed this, because they only provide the following member-operators: - QJsonValue::op==(const QJsonValue&) const - QJsonValueRef::op==(const QJsonValue &) const For member functions, there are no implicit conversions on the LHS. So in C++17, we have a nice dichotomous overload set: - LHS is QJsonValue -> use QJsonValue::op==(QJsonValue) - LHS is QJsonValueRef -> use QJsonValueRef::op==(QJsonValue) In both of these, it the RHS is a QJsonValueRef, it's implicitly converted to QJsonValue for the call. Enter C++20, and the reversed signatures are suddenly available, too, which is a problem for QJsonValueRef <> QJsonValueRef, which could be resolved, as in C++17, using lhs.QJVR::op==(QJV(rhs)) or it could now be rhs.QJVR::op==(QJV(lhs)); // reversed Says Clang 10: tst_qtjson.cpp:990:5: warning: ISO C++20 considers use of overloaded operator '==' (with operand types 'QJsonValueRef' and 'QJsonValueRef') to be ambiguous despite there being a unique best viable function [-Wambiguous-reversed-operator] CHECK(r0, a0, r1); ^ ~~ ~~ qjsonvalue.h:189:17: note: ambiguity is between a regular call to this operator and a call with the argument order reversed inline bool operator==(const QJsonValue &other) const { return toValue() == other; } ^ A similar argument makes op!= ambiguous. Says Clang 10: tst_qtjson.cpp:988:5: error: use of overloaded operator '!=' is ambiguous (with operand types 'QJsonValueRef' and 'QJsonValueRef') CHECK(r0, r0, r1); ^ ~~ ~~ qjsonvalue.h:190:17: note: candidate function inline bool operator!=(const QJsonValue &other) const { return toValue() != other; } ^ qjsonvalue.h:189:17: note: candidate function inline bool operator==(const QJsonValue &other) const { return toValue() == other; } ^ qjsonvalue.h:189:17: note: candidate function (with reversed parameter order) To fix, provide the missing operators as free inline functions (so Qt 6.2 and 5.15 don't get new symbols added) so there's always exactly one best match. This is a fix for 6.2 and 5.15. At the time of writing, 6.3 isn't released, yet, so there, we could QT_REMOVED_SINCE the pre-existing member operators in favor of hidden friends (as per QTBUG-87973). Use C++17'isms to prevent an automatic merge to 5.15, which requires contains(QT_CONFIG,c++2a):CONFIG += c++2a added to tst_qtjson.pro. [ChangeLog][QtCore][QJsonValue] Fixed relational operators to not cause warnings/ambiguities when compiling in C++20. Change-Id: Ic70f3cad9987c87f7346d426c29cc2079d85ad13 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit ec03db7bb394c6d3e1b77e1532d26551da1dde78) Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
| * Blacklist: test cases blacklisted in tst_QDBusConnection:CI Insignificant Platforms Monitor Bot2022-03-101-0/+4
| | | | | | | | | | | | | | | | - registerObjectPeer2 on ubuntu-20 Task-number: QTBUG-101636 Change-Id: I255b879f2a44201ccb706d56a3556bbca4051d4e Reviewed-by: CI Insignificant Platforms Monitor Bot <ci_insignificant_platforms_monitor_bot@qt.io>
| * QProcess/Unix: ensure we don't accidentally execute something from CWDThiago Macieira2022-02-287-4/+183
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unless "." (or the empty string) is in $PATH, we're not supposed to find executables in the current directory. This is how the Unix shells behave and we match their behavior. It's also the behavior Qt had prior to 5.9 (commit 28666d167aa8e602c0bea25ebc4d51b55005db13). On Windows, searching the current directory is the norm, so we keep that behavior. This commit does not add an explicit check for an empty return from QStandardPaths::findExecutable(). Instead, we allow that empty string to go all the way to execve(2), which will fail with ENOENT. We could catch it early, before fork(2), but why add code for the error case? See https://kde.org/info/security/advisory-20220131-1.txt [ChangeLog][Important Behavior Changes] When passed a simple program name with no slashes, QProcess on Unix systems will now only search the current directory if "." is one of the entries in the PATH environment variable. This bug fix restores the behavior QProcess had before Qt 5.9. If launching an executable in the directory set by setWorkingDirectory() or inherited from the parent is intended, pass a program name starting with "./". For more information and best practices about finding an executable, see QProcess' documentation. Change-Id: I54f205f6b7314351b078fffd16cf7013c97ee9fb Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 29fceed2ffb41954a63001414bd042611f2d4980) Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
| * QAbstractItemModel: fix persistent index corruption when moving columnsDavid Faure2022-02-281-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QHeaderView creates persistent indexes in _q_sectionsAboutToBeChanged(), called by the slot connected to rowsAboutToBeMoved/columnsAboutToBeMoved. In the case of rows, QAbstractItemModel emits the signal *before* preparing to update persistent indexes in itemsAboutToBeMoved(), so it can see the ones newly created by QHeaderView, all is well. In the case of columns, the emit was done *after* calling itemsAboutToBeMoved(), so the additional persistent indexes created by QHeaderView were ignored, and in endMoveRows() we could end up with: ASSERT failure in QPersistentModelIndex::~QPersistentModelIndex: "persistent model indexes corrupted" This bug has been there since the very beginning of beginMoveColumns(), but was undetected because moving columns in a model is pretty rare (in my case there's a QTransposeProxyModel that turns columns into rows in the underlying model, and a proxy that handles dropMimeData...) Change-Id: I74bad137594019a04c2a19c2abb351ff3065c25a Reviewed-by: Andreas Buhr <andreas.buhr@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> (cherry picked from commit 74a4d88e9a002ec30b4bb7bbaf7776b458ae15db) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Http2: Fix redirect-handlingMårten Nordheim2022-02-223-1/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | The redirect handling for http2 was a little simple. E.g. not handling relative URLs. Fix this using the redirect response parsing function which the http1 protocol handler already uses. Fixes: QTBUG-100651 Change-Id: Ic0cec4cacc92707e7a7fde1f4665f80995a6057e Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> (cherry picked from commit db5b8bbea3f3cf1675d2ddd449359b6fbedc523e)
| * tst_QSystemSemaphore: give proper path to test-helperMårten Nordheim2022-02-221-1/+8
| | | | | | | | | | | | | | | | | | Amends 29fceed2ffb41954a63001414bd042611f2d4980 Change-Id: Ie386d3af68e4dff84ae893cd24cb96caf2d8e08e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 98de89cc1569be25e9845fe99ada76342aa27ad9) Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
| * Update public suffix listIevgenii Meshcheriakov2022-02-181-1/+1
| | | | | | | | | | | | | | | | | | | | Adjust the testcase that uses domain .nym.ie. This domain was removed from public suffix list. Fixes: QTBUG-100990 Change-Id: Icfcc7882be35b85bfd8828c6950e2cf23f7ede65 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (adapted from commit 1e468432f624642db4ca3997140431640499025d)
| * Gui: test also depends for clipboard featurePasi Petäjäjärvi2022-02-161-3/+3
| | | | | | | | | | | | | | Change-Id: Id8684b6800bd5659991bc56f8b374ec3989ee590 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 8aba951d98484992d68266d5820f82941d4e6d10) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * QDesktopServices: deprecate destroying URL handlers w/o explicit ↵Marc Mutz2022-02-161-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | unsetUrlHandler() [ChangeLog][QtGui][QDesktopServices] URL handlers that have been passed to setUrlHandler() must now be removed by calling unsetUrlHandler() before they are destroyed. Relying on the handler's destructor to implicitly unset it is now deprecated, because it may already be in use by concurrent openUrl() calls. Support for implicit unsetting will be removed in 6.6 and, until then, a qWarning() is raised if it is exercised. Fixes: QTBUG-100775 Fixes: QTBUG-100779 Change-Id: I0c4f91b78f847b135fdeb38766babc892bdc1379 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io> (cherry picked from commit 37a25fce94976ab2a0f94abe43f1ed6ad950672f)
| * BLACKLIST: tst_QGlyphRun::mixedScripts for Ubuntu 20.04Heikki Halmet2022-02-141-0/+1
| | | | | | | | | | | | Task-number: QTBUG-68860 Change-Id: I86024d0a98eae8b1e8e81de0b056f5fe9de17ac6 Reviewed-by: Tarja Sundqvist <tarja.sundqvist@qt.io>
| * BLACKLIST test_Gestures tests for RHEL-8.4Heikki Halmet2022-02-091-0/+5
| | | | | | | | | | | | Task-number: QTBUG-84258 Change-Id: I01ffc0f4b23bd0cffbabb839e1422dd910a18efb Reviewed-by: Tarja Sundqvist <tarja.sundqvist@qt.io>
| * QPlainTestLogger: do not print "failure location" if there's no failureGiuseppe D'Angelo2022-02-051-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit a605b9297d03943dbd7464f823460c9934aa2c31) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Don't QEXPECT_FAIL tst_QLineEdit::testQuickSelectionWithMouse on macOS ARMTor Arne Vestbø2022-02-031-1/+1
| | | | | | | | | | | | Task-number: QTBUG-99362 Change-Id: Ia7fc273cb0acd0790eca5251806352601f4cc60e Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
| * Update float16 part of TestLib selftestTor Arne Vestbø2022-02-018-3162/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | Make the test more robust, incorporating parts of 92f8043759dc97191a1208ed60d46ef44ce96c52. Updated test expection for txt and deleted for other formats, as they're skipped (in tst_selftests.cpp) for this test. Refined the generator script to know about this test only being tested for txt. Change-Id: Idead8001ed6847f1259a59df2798e2a2acd798e2 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
| * Blacklist tst_QFileSystemWatcher::signalsEmittedAfterFileMoved on all ↵Ivan Solovev2022-01-311-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Windows versions The test was already blacklisted for Windows 10 and Windows 7. Now it is flaky on Windows 11 as well. Blacklist it for all windows platforms. Task-number: QTBUG-98478 Change-Id: I870fb6ce80cfe244a76d08bf40677fdb6becab97 Reviewed-by: Heikki Halmet <heikki.halmet@qt.io> (cherry picked from commit 26fa539ad21ebe6366975ac613ea83451d0bf5da) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * BLACKLIST tst_qfont for Red Hat 8.4 and Ubuntu 20.04Heikki Halmet2022-01-281-0/+6
| | | | | | | | | | | | Task-number: QTBUG-84248 Change-Id: I1d21411ddb7007217404cf54d46dbb9629a38c02 Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
| * Fix memory leak in QtConcurrent::run when called with a NULL QThreadPoolSona Kurazyan2022-01-261-0/+23
| | | | | | | | | | | | | | | | | | | | | | QThreadPool automatically deletes the runnable after it finishes running the task. In case QThreadPool is nullptr, we should delete the runnable manually. This amends 87b93c29be02f0a7ff9424b5e2b6431e20bd4c40. Change-Id: Id7e4ed3d4d6de05990edf62e4099852983debc64 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit 4cd8eeaf8c6a05f09bdbc92690b63f5233abdad0) Reviewed-by: Marc Mutz <marc.mutz@qt.io>
| * QTransform benchmark: measure what was promisedMarc Mutz2022-01-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | The function name suggests that the *= operator is to be benchmarked, not simple multiplication. Use the correct operator. Change-Id: I6718e8aea640a153083858b39963199e7bab26e9 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit b084c885dbaf1c89189c03a9466984648c0f5835) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * JSON: When clearing duplicate object entries, also clear containersUlf Hermann2022-01-191-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, if you had multiple entries with the same name in an object, and some of them were again objects or arrays, parsing the JSON document would leak memory. Also, we use std::stable_sort instead of std::sort now, so that we don't accidentally randomize the order of elements with equal keys. [ChangeLog][QtCore][JSON] A memory leak in the JSON parser when reading objects with duplicate keys was fixed. Fixes: QTBUG-99799 Change-Id: Ic2065f2e490c2d3506a356745542148ad9c24262 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit 1b4a5ecc91c87ffe7869d233c00a37d1b5b9cb13) Reviewed-by: Marc Mutz <marc.mutz@qt.io>
| * Convert date-time to UTC before claiming it's in GMTEdward Welbourne2022-01-181-9/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QNetworkHeadersPrivate::toHttpDate() used a custom format to output a date-time; the format supplied GMT as suffix, but neglected to convert the date-time to UTC, so local-time was formatted as if it were UTC, regardless of its actual offset from it. Fixing this (by the obvious toUTC() call) broke formatting when the supplied header value was a QDate, since it's packaged as a QVariant and QVariant's conversion of QDate to QDateTime uses local time's (not UTC's) start of day. So fix headerValue() to separate QDate and QDateTime cases and use startOfDay(Qt::UTC) to get the right start of the day. Added tests for non-UTC date-times appearing correctly in HTTP headers. Fixes: QTBUG-80666 Change-Id: I2792bce14a07be025cf551b0594630260c112269 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit aa8fd6bc39f929a2bfad6bba4bf26e69624cd88a) Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
| * Remove execute permission from XML filesEdward Welbourne2022-01-184-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | Files that are not meant to be executed should not have the execute permission bit set. Task-number: QTBUG-81503 Change-Id: I10666bd958adfc5c425216bcff7456facd1fe5f3 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Ievgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io> (cherry picked from commit 6ee2664883391c14b44eb9f959782c96e42def8b) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Add test case for style sheet selectors for enum propertiesVolker Hilsheimer2022-01-181-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In Qt 5, such selectors have to use the integer value of the enum value. Using the enum value name does not work. In Qt 6, such selectors must use the enum value by name, using the integer does not work. It's not clear yet what changed, possible a side effect of the changes and improvements in the meta object system and QVariant in Qt 6. So for now, document the difference in behavior in a test. Task-number: QTBUG-99642 Change-Id: I96e0280b191b8ca06b16a97ab3ed367e9a8f43a0 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Axel Spoerl <axel.spoerl@qt.io> (cherry picked from commit b749163bb81c1a5e46ec14fa0fecdbced1a7ed85) Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| * Fix an assertion failure in massageAdjustedDateTime()Edward Welbourne2022-01-141-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The QDateTimeData &d it's passed is a copy that's about to be modified; before we do so, we haven't detached so its internals have a ref-count of two, contradicting an assertion in the non-const Data::operator->(); so just directly access d.d->m_timezone, since we know that spec == TimeZone implies !isShort(). Added test that triggered the assertion and now doesn't. Fixes: QTBUG-99668 Change-Id: I07321ad91be5adce524be18e4ab82eee7110dc6a Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit 5d228beb520d92c985497fb43fa91d2920db6cb0)
| * Relax tst_qvulkan::vulkanVersionRequest to make it compatible with 1.1Laszlo Agocs2022-01-141-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Vulkan spec changed the behavior for VkApplicationInfo::apiVersion in 1.1, conveniently breaking compatibility with all existing 1.0 logic. We can no longer assume that the 1.0 behavior, which was failing instance creation with VK_ERROR_INCOMPATIBLE_DRIVER for an unsupported version, is always in place. So do not rely on this in the test, and add a reminder in QVulkanInstance docs as well. Fixes: QTBUG-85040 Change-Id: I8f5c7a7830877b72d106c444aebfaea191083ee0 Reviewed-by: Christian Strømme <christian.stromme@qt.io> (cherry picked from commit ed231455cc22f6280be917780013584020d208d8) Reviewed-by: Andy Nichols <andy.nichols@qt.io>
| * Add a markdown writer test for a checklist item ending with `code`Shawn Rutledge2022-01-131-0/+29
| | | | | | | | | | | | | | | | Task-number: QTBUG-81583 Change-Id: I32540615be66f4e45bb1b3b19e914bea3aacf3e7 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io> (cherry picked from commit 8d2417ed9a591100115cd58a278f75912b20f51a) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Use QTextCharFormat::fontFixedPitch to remember Markdown backtick spansShawn Rutledge2022-01-131-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the editing app (like qtbase/examples/widgets/richtext/textedit) has controls only for setting a specific font, and someone uses it to write markdown "from scratch", then we need to detect that they chose Courier or some other fixed-pitch font, and write the backticks, because Markdown has no syntax for selecting a specific font family. If the user loads markdown into such an application, the font is set to QFontDatabase::systemFont(QFontDatabase::FixedFont). Round-trip editing was already working, as long as such a font exists. QTextCharFormat::setFont() calls setFontFixedPitch(font.fixedPitch()), but for the chosen "mono" font, font.fixedPitch() can be false. For semantic completeness and separation of concerns, we now set fontFixedPitch explicitly if a `backtick` span is encountered. As a followup to f1e60de66540b198d696253ab5148de4fcbff319 this should get its autotest passing reliably. Fixes: QTBUG-99676 Change-Id: I4987a1f0f819f82ec64546bdc3ef53e7d29933de Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit 17dca04a613b632d6c0d4340eedbdc86e250c455) Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
| * tst_QGraphicsView: fix memleakMarc Mutz2022-01-061-4/+4
| | | | | | | | | | | | | | | | | | | | | | Found by asan. Amends 01aeb5f7e4fd977e9698fffdc7650897664ecb82. Change-Id: Id61fc1bc1f40494371ac27cb258a22c89db24683 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit b385632ea69b93a3463228eb985f6e5d7d0a98d3) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * tst_QItemModel: fix memleaksMarc Mutz2022-01-051-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | When creating proxied models, make the source model a QObject child of the proxy model, so the source isn't leaked when the proxy is deleted. This drove asan nuts. Change-Id: I0f7fc9ab8e99d030c941cfb336ee4e2323b362ae Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 9f713e8d25c330cc9ab598755b81b9881df830e8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * tst_qanimationgroup: fix memleaksMarc Mutz2022-01-051-2/+4
| | | | | | | | | | | | | | | | | | Silences asan. Change-Id: I4995d9a6f0d4bb617fbb82b68289f7ad1ec0e96b Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 682831a00c93480e5f04f8d8d706f9791fa50dfd) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * tst_qtranslator: fix memleakMarc Mutz2022-01-041-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | QCoreApplication::installTranslator() does not take ownership of the QTranslator. The QTranslator dtor removes itself from QCoreApplication again. Change-Id: I17eb7ab350631eb32fe76af29d9a576a0efa05d8 Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit ab2439080432b5d637f3c22d4a0767cc842079d9) Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
| * tst_QStringList: check that join(u'\0') embeds NULsMarc Mutz2021-12-291-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | ... as opposed to QByteArray::toHex('\0'), which doesn't. Picking to all LTSs because it's in a test. Change-Id: I392d5714c4865e530a246ed30a13cdac26b98e0b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit a5076c54fe6c466ecf21d6d968016726e3928a78) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * tst_qsharedmemory: skip readOnly() test under asanMarc Mutz2021-12-231-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | The test helper is expected to crash, but when built with asan, it just fails. Skip the test in that case. Change-Id: I583142f5ec623895df62498100c1a30539b149ab Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 50ad52d8047cffdcc64b43e7443f1a58e6b9d86e) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * QXmlStreamReader: update test distributionIvan Solovev2021-12-23653-3918/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As mentioned in the linked bugreport, we are not allowed to distribute the uncompressed files from one of the XML test datasets that we use in our tests. This patch removes the uncompressed version, and replaces it by the xmltest.zip archive taken from [0]. Once the test is started, QZipReader is used to uncompress the archive, and once the test is done, the uncompressed data is removed. However the test data from [0] is very old, so it is slightly different from what we had previously (the previous data was taken from w3c). As a result, 4 test cases are failing with this data. To fix it, we store the updated versions of 4 xml files separately, and replace them after uncompressing the archive. [0]: http://www.jclark.com/xml/ Fixes: QTBUG-81503 Change-Id: Ied5233970a529deebca56b1eab07fe1c328a2ee0 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> (cherry picked from commit f8b74a49576ea453b3bfc7356a23cd4f2171fa76) Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
| * QTextHtmlParser: fix prefix lookahead and html commentsOliver Eftevaag2021-12-221-0/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The hasPrefix() function would only use the second 'lookahead' parameter to check if there was more unparsed text after the current character. When it's obvious from the codebase that it should actually look ahead of the current character being processed, and compare againt that future character. Html comments were also not handled quite right. Partially because of the broken hasPrefix() function, but also because it would advance the current index tracker by 3 instead of 2. Remember that the beginning of an html comment is <!-- meaning that there are only supposed to be 2 dashes required, not 3. The result would be that something like this <!----> would not automatically close, because the current index tracker would jump over the first 3 dashes when it begins a comment, and the remaining unprocessed string would be -> Also, because of the broken lookahead in hasPrefix(), a comment could actually be started with just <!- not requiring a second dash at all. Fixes: QTBUG-99147 Change-Id: I8f4d4a1107eaf2dae16d16b7b860525d45a1c474 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit b369dc6021e83e70b95d04f886cfda4dfcf56c45) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * QtConcurrent::run crashes on program exitTianlu Shao2021-12-211-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | When an application is about to be closed and all the destructors are called, if there isQtConcurrent::run on the way, it crashes as the internal threadpool pointer is nullptr. Fixes: QTBUG-98901 Change-Id: Idd84d1518fc6a225263e6666a0f1de2ccef79c82 (cherry picked from commit 87b93c29be02f0a7ff9424b5e2b6431e20bd4c40) Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
| * tst_QPropertyAnimation: fix leaks occurring under normal operationMarc Mutz2021-12-191-11/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | Tests were leaking objects even if all tests passed. In two cases, there just wasn't a delete at all, in a third, the existing delete wasn't reached because of a QSKIP. tst_QPropertyAnimation is now, locally, LSan-clean. Change-Id: Ia53d6f6e467f1d2598a7c50efcdf3a3732fe54df Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> (cherry picked from commit dc672cf35ab693a5505f704d93d4cf4ea2c848c7) Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
| * tst_QPropertyAnimation: fix wrong commentMarc Mutz2021-12-171-1/+5
| | | | | | | | | | | | | | | | | | | | | | ... and add some additional checks that hopefully leave the next reader of the code a little less confused than this one was. Change-Id: I73c1b9b1ed1683e3b2de0d811d9b20d65464dff4 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io> (cherry picked from commit 2fef4636aaf00832effdff6045005df0cfb71937) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * Fix qt_scrollRectInImage when scrolling outside of the imageTor Arne Vestbø2021-12-141-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We were clipping the source rect to the image, both pre and post scrolling, but did not apply the same logic to the target position. By computing the target position based on the already clipped source rect we ensure that the target position is also correct. This was causing valgrind warnings on Linux, and crashes on Windows, when trying to test the lower level QBackingStore::scroll() function. The reason we were not seeing this in practice was that QWidget does its own sanitation and clipping of the arguments before passing them on. As a drive-by, fix the access of image to use constBits instead of a manual cast, and rename variables to better reflect their use. Change-Id: Ibc190c2ef825e634956758f612a018f642f4202b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> (cherry picked from commit ae6dc7d6df12b3a5631d20b968823e23f6d7f1f2) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* | Merge remote-tracking branch 'origin/tqtc/lts-5.15.8' into ↵v5.15.8-lts-lgplTarja Sundqvist2022-11-1135-95/+924
|\ \ | |/ | | | | | | | | tqtc/lts-5.15-opensource Change-Id: I569a2246c9e8d70430e8c5405b9f3df2218078ee
| * tst_containerapisymmetry: test ranged ctors with pure input_iterator typesMarc Mutz2021-12-101-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | Fails in Qt 6, succeeds in Qt 5.15, therefore needed to add the version check. Task-number: QTBUG-99036 Change-Id: I9da1b2511d844b5fdcb63fdc58c8bc34d0f65736 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit 2e07d045ff617173dbbb1382b67f7afe30564699) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
| * QVarLengthArray: fix size update on failed append()Marc Mutz2021-12-091-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the in-place constructor throws, the old code had already updated the container's size(). Fix by delaying the update to after the in-place construction. [ChangeLog][QtCore][QVarLengthArray] Fixed a bug whereby a failed append() would leave the container with an inconsistent size(). Change-Id: Ief1e668d945149bd8ba96c8af1398baaa7876880 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit d4a88e4ea4dd0d24c9c43553dd4c48a79635803c) Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
| * QVarLengthArray: add some basic checks for default-ctorMarc Mutz2021-12-081-0/+21
| | | | | | | | | | | | | | | | | | | | | | There seems to have been no-one that checked a simple empty()/isEmpty()... Change-Id: I7fa567f556532dfa21db759719f1303a768a9732 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> (cherry picked from commit cb00db5a7e644d381ec58f7b715e0312c57f282a) Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
| * Blacklist tst_QTimer::zeroTimer on Ubuntu 20.04Andreas Buhr2021-12-081-0/+3
| | | | | | | | | | | | | | Task-number: QTBUG-84291 Change-Id: I0e448eaf82ca443685333aecbe7680a94f44f7bd Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Tarja Sundqvist <tarja.sundqvist@qt.io>