summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib
Commit message (Collapse)AuthorAgeFilesLines
...
* QCborValue: fix sorting of UTF8-to-UTF16 stringsThiago Macieira2024-04-081-0/+36
| | | | | | | | | | | | | We must compare the raw string length in UTF-8, not the UTF-16 one. [ChangeLog][QtCore][QCborValue] Fixed a bug that caused certain non-US-ASCII string comparisons to produce results not in line with the CBOR specifications. Pick-to: 6.5 6.6 6.7 Change-Id: I5f663c2f9f4149af84fefffd17c05d1c0f1bbc3a Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* JNI: check for pending exception first in getCleanJniObject()Assam Boudjelthia2024-04-042-0/+28
| | | | | | | | | | | | | returning early if the object is null will not clear pending exceptions from the previous failed JNI call, and that will crash the app on the next jni call if an explicit exception clearing is not done, wish mostly the case. Checking and clearing for exceptions has to always be done under this call. Pick-to: 6.7 Fixes: QTBUG-122135 Change-Id: I0d42d012a4d1305fa07147fd22860d7c005f9b83 Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
* Fix Qt::AA_DontUseNativeMenuWindows being unsettable on 32 bit systemsMitch Curtis2024-04-042-0/+54
| | | | | | | | | | | | | | | | f1bb9cfbf65ab56b67b5a52fa736071e0e534261 added this value, but it was only when a test in qtdeclarative tried to use it that it was discovered that it couldn't be set on 32 bit operating systems (armv7, AKA imx7) due to overflow as a result of the bit shifting that is done. Fix it by using an old, deprecated value. If any old codebase using that older flag tries to build against a newer Qt with this change, it shouldn't affect it, as setting the flag does nothing in Widgets, and native menus didn't exist in earlier versions. Task-number: QTBUG-69558 Change-Id: I520154d02e9ccf007ebd73807685212a19fbee1b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix warning: remove unused parameterVolker Hilsheimer2024-04-041-1/+1
| | | | | | | | Pick-to: 6.7 6.6 6.5 Change-Id: I5794e38e1e9871f14c9a8df6483e57c1922dace2 Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io> Reviewed-by: Artem Dyomin <artem.dyomin@qt.io> Reviewed-by: Pavel Dubsky <pavel.dubsky@qt.io>
* Add equality comparison between QJsonObject and QJsonValueConstRefTatiana Borisova2024-04-031-0/+3
| | | | | | | | - amends 839cffd5212cc1437661e9c650eb2ff4b19fa4e8 Fixes: QTBUG-123927 Change-Id: I9174e747478937d4c9ed6522dd603fea50daf203 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* Tests: check the output of QFile::openGiuseppe D'Angelo2024-03-2716-65/+62
| | | | | | | | | | Wrap the call in QVERIFY. tst_QTextStream::read0d0d0a was also faulty as it *never* opened the file because of a broken path. Fix it with QFINDTESTDATA. Change-Id: I61a8f83beddf098d37fda13cb3bfb4aaa4913fc5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QCborMap: add missing comparator to QCborValueConstRefThiago Macieira2024-03-261-2/+10
| | | | | | | | | And ensure all combination of CBOR types are tested. Amends e5ebb9022ab9e00ab01d0bce527755da77083217 Change-Id: I5f663c2f9f4149af84fefffd17c02d352cd41f3f Reviewed-by: Tatiana Borisova <tatiana.borisova@qt.io>
* QPolygonF: delegate QDataStream marshalling to QListThiago Macieira2024-03-261-12/+23
| | | | | | | | | | | | | | Like the QPolygon code. This fixes a mistake in failing to clear the list before de-marshalling in operator>>. Updated most of the QDataStream tests to have data in the objects they're streaming into, to ensure that the stream overwrites everything. Fixes: QTBUG-122684 Task-number: QTBUG-122704 Pick-to: 5.15 6.5 6.6 6.7 Change-Id: I01ec3c774d9943adb903fffd17b6920c72f5042b Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* QJsonArray iterators: use new comparison helper macrosTatiana Borisova2024-03-261-0/+35
| | | | | | | | | | | | | | | | New comparison macros are used for following classes: - QJsonArray::iterator - QJsonArray::const_iterator Replace public operators operator==(), operator!=(), operator!<(), etc of classes to friend methods comparesEqual(), compareThreeWay(); Use *_helper methods to have an access to protected members of QCborValueConstRef class from friend functions. Task-number: QTBUG-120300 Change-Id: I9b41b619107ce69d8b6dab4938232fab841aab51 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QJsonObject: use new comparison helper macrosTatiana Borisova2024-03-251-1/+21
| | | | | | | | | | | | | | | | | Replace public operators operator==(), operator!=() of QJsonObject to friend methods comparesEqual(). Use QT_CORE_REMOVED_SINCE and removed_api.cpp to get rid of current comparison methods and replace them with a friend. Add friend method comparesEqual(QJsonObject, QJsonValue) to the QJsonObject class, to support comparison between QJsonObject and QJsonValue elements, see test-case valueEquals(). Task-number: QTBUG-120300 Change-Id: Ibab0b4b39966205447e31c41e94e7e1a4e31e553 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* QJsonValue: use new comparison helper macrosTatiana Borisova2024-03-221-35/+49
| | | | | | | | | | | | | | | | | | Replace public operators operator==(), operator!=() of QJsonValue/QJsonValueConstRef/QJsonValueRef classes to friend methods comparesEqual(). Use QT_CORE_REMOVED_SINCE and removed_api.cpp to get rid of current comparison methods and replace them with a friend. Delete non-exported public operators operator==(), operator!=() for QJsonValueConstRef/QJsonValueRef classes. Add comparison check to auto-test. Task-number: QTBUG-120300 Change-Id: I01434af4ce5a7589733db4a9b14f54ad42e852ed Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* Revert "QTypeInfo: add detection for Clang's __is_trivially_relocatable"Tor Arne Vestbø2024-03-221-14/+0
| | | | | | | | | This reverts commit f4bac3ca173be9f219099c04e76d6d62c4d0e19e. It broke builds with Xcode 15 Change-Id: Iee232658ede3dfb09d65f3f6a95410c069941421 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QJsonDocument: use new comparison helper macrosTatiana Borisova2024-03-221-3/+20
| | | | | | | | | | | | | Replace public operators operator==(), operator!=() of QJsonDocument to friend methods comparesEqual(). Use QT_CORE_REMOVED_SINCE and removed_api.cpp to get rid of current comparison methods and replace them with a friend. Task-number: QTBUG-120300 Change-Id: I7b61765c34406b7a9fb7dd8b1fc554c87af6a3f3 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QTypeInfo: add detection for Clang's __is_trivially_relocatableGiuseppe D'Angelo2024-03-221-0/+14
| | | | | | | | | | Types marked with [[clang::trivial_abi]] are considered to be trivially relocatable for Clang. This is ABI compatible, since in Qt 6 we can change the value of QTypeInfo::IsRelocatable "after the fact" -- it simply means that code that doesn't get recompiled is pessimized. Change-Id: I32e52bfb212c7919b2ebcf7832ede4404358330f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* tst_qglobal: add a few tests for QTypeInfoGiuseppe D'Angelo2024-03-221-0/+49
| | | | | Change-Id: Iff4d8d9488d5b414d4504bc700b3191c799bf86c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* tst_qglobal: include what you useGiuseppe D'Angelo2024-03-221-1/+2
| | | | | | | | Fix the inclusions of stdlib headers to what is actually used in the test. Change-Id: I03ad4bdfd0b036bc4cee65b6bd2cd43ac7449722 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QJsonArray: use new comparison helper macrosTatiana Borisova2024-03-212-0/+41
| | | | | | | | | | | | | | | | | Replace public operators operator==(), operator!=() of QJsonArray to friend methods comparesEqual(). Use QT_CORE_REMOVED_SINCE and removed_api.cpp to get rid of current comparison methods and replace them with a friend. Add friend method comparesEqual(QJsonArray, QJsonValue) to the QJsonArray class, to support comparison between QJsonArray and QJsonValue elements, see test-case fromToVariantConversions() Task-number: QTBUG-120300 Change-Id: I8440ca0761bede8551ff792bfa7f22e47b56fa79 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QAbstractFileEngine: remove member FileTime and use QFile::FileTimeAhmad Samir2024-03-211-5/+5
| | | | | | | | | This is probably a remnant from when QAbstractFileEngine was public API since it's been changed to private API, just use QFile::FileTime. Pick-to: 6.7 Change-Id: I60d3d4ff811f95434b81d5ca115f5d43cfff8b15 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QFileSystemEngine: make factory functions return unique_ptr<QABFE>Ahmad Samir2024-03-214-26/+34
| | | | | | | | | | | | | | | | This makes the ownership of the returned pointer clearer. It also matches reality, some call sites were already storing the pointer in a unique_ptr. Also shorten the function name to "createLegacyEngine", you have to read its docs anyway to figure out what it does. Drive-by changes: less magic numbers; use sliced(); return nullptr instead of `0`. Change-Id: I637759b4160b28b15adf5f6548de336887338dab Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* QMetaMethod: document that fromSignal(nullptr) is okMarc Mutz2024-03-211-0/+7
| | | | | | | | | ... and add a test. Pick-to: 6.7 6.6 6.5 6.2 5.15 Change-Id: I907899d7c54349d2fc23ea5ab58a1e67826b622b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* tst_qdir: optimize setPath() testAhmad Samir2024-03-211-0/+1
| | | | | | | | | | | | | | | | | On Linux "../" is /tmp, which is more likely to cause issues with the dir.entrylist() below used in that test; /tmp could have a lot of temporary files, any of them can be gone in a jiffy. Noticed this test occasionally falking out when running tests in parallel (`ctest -R "foo|bar" -j3`). This may be an unintentional side effect of b3e9e80719f5a69c8f28f6eceaadbbdd7f1f5fe5, which changed the code to use a temporary dir for testing instead of creating/deleting dirs in the source dir ("../" from the source dir has a more stable entries count than /tmp). Change-Id: I98da86223792bc9f34c173fc02cc84049ed699ae Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* tst_qtemporarydir: refactor a testAhmad Samir2024-03-211-6/+8
| | | | | | | | | | | | | | Instead of using ~/Downloads, which we have no control over (OK for the CI, but not locally), create a parent temp dir, then another temp dir inside it. Also rename it to nestedTempDirs, the issue from the bug report wasn't tested because it relied on a dir being created, then failing to set permissions on it. The code has changed a lot since then. Pick-to: 6.7 6.6 6.5 6.2 Change-Id: I2b03d5d761117aaf436041c13c0dc394b106bf89 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QAbstractFileEngineIterator: add `bool advance()` virtual methodAhmad Samir2024-03-201-10/+11
| | | | | | | | | | | | | | | | | | | | | | | And remove hasNext/next() methods. This remodels QAFEI to be like QFileSystemIterator. This better fits the logic in the newly added QDirListing class (which uses STL-style iterators). QFSFileEngineIterator: Initialize the internal nativeIterator in the constructor; also replace the advance() private method with an override for the advance() method inherited from the base class. QResourceFileEngineIterator: Override currentFileInfo(), with a QResouces the QFileInfo is created on demand if/when this method is called. This is the backend/private API, and QDirListing is the public API that can be used in a ranged-for to iterate over directory entries. Change-Id: I93eb7bdd64823ac01eea2dcaaa6bcc8ad868b2c4 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Xml: use new comparison helper macrosTatiana Borisova2024-03-202-2/+77
| | | | | | | | | | | | | | | | | | | | | | New comparison macros are used for following classes: -QXmlStreamAttribute -QXmlStreamNamespaceDeclaration -QXmlStreamNotationDeclaration -QXmlStreamEntityDeclaration Replace public operators operator==(), operator!=() of classes to friend methods comparesEqual(); Use QT_CORE_REMOVED_SINCE to get rid of current comparison methods and replace them with a friend. Add checkStreamNotationDeclarations()/checkStreamEntityDeclarations() test-cases to test change. Task-number: QTBUG-120300 Change-Id: I0b5642b2e23cc21ede7bc4888f0a9bddd6c08d07 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QCborMap: use new comparison helper macrosTatiana Borisova2024-03-201-150/+169
| | | | | | | | | | | | | | | | | | | | | | Replace public operators operator==(), operator!=(), operator<() of QCborMap to friend methods comparesEqual() / compareThreeWay(). Use QT_CORE_REMOVED_SINCE to get rid of current comparison methods and replace them with a friend. Delete #if 0 && __has_include(<compare>) blocks, since they are not required anymore. Add friend methods comparesEqual(QCborMap, QCborValue) and compareThreeWay(QCborMap, QCborValue) to the QCborMap class, to support comparison between QCborMap and QCborValue elements, see test-case mapSelfAssign() -> QT_TEST_EQUALITY_OPS(it.key(), QCborMap({{0, v}}), true); Task-number: QTBUG-120300 Change-Id: I9e33df255d16484efd3124cf0632db859408fb5d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* Fix build of tst_qoperatingsystemversion.cpp with C++20Joerg Bornemann2024-03-191-2/+2
| | | | | | | | | The QCOMPARE_EQ macro was mistyped. This amends commit 5ea434b09f6a760b84fb14a69cc578063cad99a1. Change-Id: I313eb5ef02bb2266d659bdbe41d7d8f10691e0ca Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QCborArray: use new comparison helper macrosTatiana Borisova2024-03-191-34/+51
| | | | | | | | | | | | | | | | | | | | | | | Replace public operators operator==(), operator!=(), operator<() of QCborArray to friend methods comparesEqual() / compareThreeWay(). Use QT_CORE_REMOVED_SINCE to get rid of current comparison methods and replace them with a friend. Delete #if 0 && __has_include(<compare>) blocks, since they are not required anymore. Add friend methods comparesEqual(QCborArray, QCborValueConstRef) and compareThreeWay(QCborArray, QCborValueConstRef) to QCborArray to support comparison between QCborArray and QCborValueRef/QCborValueConstRef, see test-case mapMutation(). Add QT_TEST_EQUALITY_OPS/QT_TEST_ALL_COMPARISON_OPS tests for QCborArray test-cases. Task-number: QTBUG-120300 Change-Id: Ifad1a04c61363618e8bba73cf7c87757552d722a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* tst_qdir: don't use the source dir for testingAhmad Samir2024-03-191-5/+25
| | | | | | | | | | | | Copy test dirs from the source dir to a QTemporaryDir, this way each run starts with a clean slate. Also on some setups the source dir could be read-only. Task-number: QTBUG-117449 Change-Id: Iea5fd661b66dd3cbae0b663bb504b14c8ccbe491 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* wasm: Add qdiriterator test + minor runtime fixesEven Oscar Andersen2024-03-191-4/+12
| | | | | | | | | There was a runtime feilure in that we try to create directories until it fails. This does not fail on wasm so added a hardlimit of 20480 Change-Id: I6ef65f7be277fc8775879733f969d2ce008a439a Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
* QCborValueConstRef/QCborValueRef: use new comparison helper macrosTatiana Borisova2024-03-191-7/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | Replace public operators operator==() and operator!=() of QCborValueConstRef and QCborValueRef classes to friend methods comparesEqual(). Replace public operator<() of QCborValueConstRef and QCborValueRef classes to friend methods compareThreeWay() respectively. Use QT_CORE_REMOVED_SINCE to get rid of current comparison methods and replace them with a friend. Delete #if 0 && __has_include(<compare>) blocks, since they are not required anymore. Add comparison() test-case for QCborValueConstRef/QCborValueRef testing. Add QCborValue::operator==()/QCborValue::operator!=()/ QCborValue::operator<() and QCborValueRef::operator==()/ QCborValueRef::operator!=()/QCborValueRef::operator<() operators to the removed_api file. Task-number: QTBUG-120300 Change-Id: I2e8e4e32b7b5b49da321364cc12986e9c64b5f37 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QProperty: Destroy binding when refcount is 0Ulf Hermann2024-03-181-0/+44
| | | | | | | | | | This has to be done from all places where we deref it. Otherwise we leak memory. Pick-to: 6.7 6.6 6.5 Fixes: QTBUG-116086 Change-Id: I57307ac746205578a920d2bb1e159b66ebd9b2cc Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Test that QBAV(QL1SV) and QBAV(QU8SV) constructors are constexprIvan Solovev2024-03-181-0/+32
| | | | | | | | Because they always were, but we never tested it. Change-Id: I503c65ed41b90d710c651d879a4477965f2ef0d6 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* tst_qstringapisymmetry: add qCompareThreeWay() checksIvan Solovev2024-03-181-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | Check that all string-like types implement compareThreeWay() as a (hidden) friend function. This test revealed some problems: because QByteArrayView is implicitly constructible from QLatin1StringView, the qCompareThreeWay() call sometimes picked the compareThreeWay() overloads with QByteArrayView instead of picking the "reversed" overloads that use QLatin1StringView. This was leading to wrong results, because QByteArrayView is interpreted as utf-8 data, not latin-1. Explicitly add the missing compareThreeWay() and comparesEqual() overloads. Note that relational operators were never affected by this problem, because in C++17 mode we explicitly generate the reversed versions, and in C++20 mode the compiler does that for us. Task-number: QTBUG-117661 Change-Id: Ia96af59c60ebf2fae6cf2a49231d6b6f401aceaa Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* tst_qfuture: Update EXPECT_FAIL msvc conditionMårten Nordheim2024-03-181-1/+1
| | | | | | | | | | It is passing on my machine with Visual Studio 17.10 Preview 1. But only with C++20 enabled. Pick-to: 6.7 6.6 6.5 Task-number: QTBUG-101761 Change-Id: Ia5af3d75d35dda1df9b39bdc94f07dd746ff60af Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QAbstractFileEngine: add a path parameter to beginEntryList()Ahmad Samir2024-03-173-6/+6
| | | | | | | | | | | | | Change beginEntryList() to take a path parameter, which it passes on to the QAFEIterator constructor; setting the path at construction makes more sense, because typically the path isn't supposed to change during iteration, and this simplifies the code at the call site. Remove setPath(), the last usage in Qt repos was in QtCreator, and that has been ported away from it. Change-Id: I01baa688e0f9b582aacb63d7d98a794276e58034 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QAbstractFileEngine: make {begin,end}EntryList() return a unique_ptrAhmad Samir2024-03-173-6/+9
| | | | | | | | Makes ownership clearer. Change-Id: Ibb57ca900ef30b16d48964a977e997ba6705248b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* QCommandLineParser: remove redundant #ifdef from unittestAhmad Samir2024-03-161-4/+0
| | | | | | | | C++11 has been required for a long time. Pick-to: 6.7 6.6 6.5 Change-Id: Ib6c1571b100dd4eb8194d515f2180ca26481b556 Reviewed-by: David Faure <david.faure@kdab.com>
* QDir{Iterator,Listing}: fix unittestAhmad Samir2024-03-162-12/+12
| | | | | | | | | | | | QEXTRACTTESTDATA returns a QSharedPointer<QTemporaryDir>, so the member variable has to be of that type so that all code paths work. Amends 986b5b4f47cdac71bb66784abc50d4fff695984d (QDirIterator) and c39a0d1e8956e042139ce3065681e4c5d07412f3 (QDirListing). Change-Id: Ie4b76687125f0506a2c899acca222123f0b1c44a Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Fix truncation warnings in tst_qnumericIsak Fyksen2024-03-161-1/+1
| | | | | | | | | | | Add `f`-suffix to float assignments to avoid implicit conversion from double to float. Fixes: QTBUG-122303 Change-Id: I456e2952fe8c96783ab116ac4cb56a28b38de9d0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Fix overflow warnings in tst_qnumericIsak Fyksen2024-03-161-0/+3
| | | | | | | | | Suppress compiler warning on intended behavior. Fixes: QTBUG-122304 Change-Id: Ic093201ea766caec1df01afcc3b0af15d0f72963 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* wasm: Add corelib/io/largefileEven Oscar Andersen2024-03-161-5/+10
| | | | | | | | | | | The test does not run just like that it is necessary to: set maxSizeBits to 28 mapOffsetOverflow: Settings copied from Linux Change-Id: Idc276a7e2d777a9a6ad0c0e90d729fb4646a38b6 Reviewed-by: Piotr Wierciński <piotr.wiercinski@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* QFutureWatcher: Fix race for initial emission of resultReadyAt()Jarek Kobus2024-03-151-0/+23
| | | | | | | | | | | | | | | | | | | | | | When connecting a QFutureWatcher to the QFuture it will connect to the output interface, which will queue up events to notify about the current state. This happens in the thread of the QFutureWatcher. Since 07d6d31a4c0c17d8c897d783a9b0841df6834b02 unfortunately the sending of those events was done outside the lock, meaning the worker-thread could _also_ send events at the same time, leading to a race on which events would be sent first. To fix this we move the emission of the events back into the lock and because it is now inside the lock again anyway, we will revert back to posting the callout events immediately, so this patch also partially reverts 07d6d31a4c0c17d8c897d783a9b0841df6834b02 Fixes: QTBUG-119169 Pick-to: 6.7 6.6 Change-Id: If29ab6712a82e7948c0ea4866340b6fac5aba5ef Reviewed-by: Arno Rehn <a.rehn@menlosystems.com> Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
* Revert "wasm: Disable problematic qlocal test for time being"Piotr Wierciński2024-03-142-7/+3
| | | | | | | | | | | | This reverts commit c23d3ca1f08a7c7c76bb71602a56a79898efa117. Reason for revert: Update to Emscripten 3.1.50 has been merged. Change-Id: Ie2082dcc2ee34a6d4e519c143037fda9678be234 Reviewed-by: Even Oscar Andersen <even.oscar.andersen@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
* Port two tests' QAbstractEventDispatcher overrides to V2Thiago Macieira2024-03-131-6/+7
| | | | | Change-Id: I83dda2d36c904517b3c0fffd17b52c421bf08d5b Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* QAbstractEventDispatcher: port timer uses to the V2 APIThiago Macieira2024-03-131-40/+65
| | | | | | Change-Id: I83dda2d36c904517b3c0fffd17b52b71739928dc Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* CMake: Make a few more auto tests standaloneAlexandru Croitor2024-03-142-0/+12
| | | | | | Pick-to: 6.7 Change-Id: I80988114bd906447a2ab712d5432a489e095a5c1 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* QCborValue: use new comparison helper macrosTatiana Borisova2024-03-132-56/+46
| | | | | | | | | | | | | | | | | | | Replace public operators operator==() and operator!=() of QCborValue to friend method comparesEqual(). Replace public operator<() of QCborValue to friend method compareThreeWay(). Use QT_CORE_REMOVED_SINCE to get rid of current comparison methods and replace them with a friend. Delete #if 0 && __has_include(<compare>) blocks, since they are not required anymore. Task-number: QTBUG-120300 Change-Id: I884ff6ce2a71618b0e3eaa907f0852f93c2a073c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* QOperatingSystemVersion: use partial ordering for relational operatorsIvan Solovev2024-03-131-55/+52
| | | | | | | | | | | | | | | | | | | | | | QOperatingSystemVersion intentionally does not define operator==() and operator!=() since ae072cd9c4a575e0ed3f073c6ab395ccdf7c2b37. It means that we cannot use comparison helper macros. Still, we can manually define four relational operators or operator<=>() in C++20 mode, and give the class a partial ordering. We choose partial ordering, because versions of different OS types are incomparable. Implement the operators in terms of helper function compareThreeWay(), which potentially allows to use this class in some templated code. As a drive-by: make the static compare() function noexcept, because it really is. Fixes: QTBUG-120360 Change-Id: Id4c9ce740e42baa719ca0ee84146d087b21675c6 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QTypeRevision: use comparison helper macrosIvan Solovev2024-03-132-13/+18
| | | | | | | | | | | | | | | | | | | | | | | | | QTypeRevision consists of two quint8 values: major and minor version. Each of the versions can be unknown. The rules for comparing with the unknown version are as follows: zero version < unknown version < non-zero version At the same time, two unknown versions are considered equal. This makes the comparison a bit tricky, but it still fits into the category of strong ordering. Replace the existing friend relational operators with helper functions and comparison helper macros, making this type strongly ordered. Update the unit-tests to use the new comparison helper test functions. As the test functions check the reversed arguments as well, we can reduce the number of rows for the data-driven comparison test. Fixes: QTBUG-120359 Change-Id: Ib6f1037fc7b5fed148e35ee48b56b05dcd36b3b4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QTypeRevision: convert comparison test to data-drivenIvan Solovev2024-03-131-8/+39
| | | | | | | | | | This patch simplifies the checks when migrating the class to comparison helper macros. Task-number: QTBUG-120359 Change-Id: I47a6ba20d3b89c31edc2f432621eae9385fbd0a3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>