summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib
Commit message (Collapse)AuthorAgeFilesLines
...
* QProcess: fix startCommand() with whitespace-only stringsThiago Macieira2024-04-191-0/+20
| | | | | | | | | | | | | | We'd end up trying to takeFirst() from an empty QStringList. [ChangeLog][QtCore][QProcess] Fixed a bug that would cause startCommand() to crash if passed a string that was empty or contained only whitespace characters. Fixes: QTBUG-124512 Pick-to: 6.5 6.6 6.7 Change-Id: I455fe22ef4ad4b2f9b01fffd17c7689095c39272 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* QSaveFile: unittests: use strlen() instead of hardcoded numbersAhmad Samir2024-04-201-9/+14
| | | | | | | | DRY with respect to string literals. Change-Id: I606a4cbd502efb0f0f7d12176f4253fb2cd5eaa4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
* Fix duplicate data tag tst_QDate::fromStringFormat:year-match-1999Edward Welbourne2024-04-191-1/+1
| | | | | | | | | | | | | | There were two of it. The "year-match-*" tests have two year fields, one four-digit the other two-digit, and deal with whether they match. The second year-match-1999 had, however, only a "yy" year format; it in fact belongs to the "just-yy-*" family that follows. So rename it. Amends commit 5108192f67042656afdb3508f8cc2563167fae97 which landed in 6.7. Pick-to: 6.7 Task-number: QTBUG-107185 Change-Id: Ibfe0c33cb00dc068d0f670d27c43ec4dc4550c05 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* More consistent handling of feature timezoneEdward Welbourne2024-04-192-5/+3
| | | | | | | | | | | | | | Follow-up to commit ae6186c7e8cfdb9420b9119f5affbba7d069598d * require the feature in headers that should only be seen when it's enabled, * expose the auto-test to being run even when the feature is disabled (the parts of that depend on the feature have needed #if-ery) and * fix the Darwin-specific test's misguided #if-ery. Pick-to: 6.7 6.5 Task-number: QTBUG-108199 Change-Id: I398cf44c33ffdcb4bb04f54a9d8ccfef68741e4e Reviewed-by: Mate Barany <mate.barany@qt.io>
* Disable copy and move of QAbstractFileEngineHandlerEdward Welbourne2024-04-194-0/+23
| | | | | | | | | | | | They're not wanted and Axivion (SV71) grumbles about the lack of copy and move operators and constructors otherwise. Do the same in all derived classes. Some of these needed their default constructors made overt as a result. Similar for QAbstractFileEngineHandlerList. Task-number: QTBUG-122619 Change-Id: Iff016940f8c4884bd65dd781354b9bcda9b7cdd8 Reviewed-by: Tatiana Borisova <tatiana.borisova@qt.io> Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* Fix end-of-parse fixup of two-digit year in QDateTimeParserEdward Welbourne2024-04-191-0/+3
| | | | | | | | | | | | | | | | | When a date string contains day of the week, day of the month, month and two-digit year, it was still possible to get a conflicting result in the default century instead of a consistent result in the next (in fact present) century. The actual logic needed to get the right year has to take into account all date fields. This is all worked out already in actualDate(), so delegate to it instead of trying to make do with just the year info. Pick-to: 6.7 6.6 6.5 Fixes: QTBUG-123579 Change-Id: Id057128d8a0af9f3a7708d0ee173f854bb1a2a8e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Dennis Oberst <dennis.oberst@qt.io>
* Fix handling of am/pm indicators in mapping from CLDR to Qt formatsEdward Welbourne2024-04-191-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Both qlocale_mac.mm and dateconverter.py were mapping the CLDR am/pm indicator, 'a', to the Qt format token 'AP', forcing the indicator to uppercase. The LDML spec [0] says: May be upper or lowercase depending on the locale and other options. [0] https://www.unicode.org/reports/tr35/tr35-68/tr35-dates.html#Date_Field_Symbol_Table We don't support the "other options" mentioned, but we can at least (since 6.3) preserve the the locale-appropriate case, instead of forcing upper-case. As such, this change is a follow-up to commit 4641ff0f6a1b0da6f55db5e33c58a77be2032808 Changes locale data, as expected, to use "Ap" in place of "AP" in various formats in the time_format_data[] array. [ChangeLog][QtCore][QLocale] Where CLDR specifies an am/pm indicator, the case of the CLDR-supplied indicator is used, where previously QLocale forced it to upper-case. Change-Id: Iee7d55e6f3c78372659668b9798c8e24a1fa8982 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Cope with CLDR's "day period" format specifiersEdward Welbourne2024-04-191-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The LDML spec includes a 'b' pattern character which is like the 'a' pattern, for AM and PM, but would rather use noon and midnight indicators for those specific times. We don't support those and using am/pm will be right enough of the time to be better than simply discarding this option, if it ever gets used (which it currently isn't), so treat as an alias for 'a'. No locale in CLDR currently uses this. CLDR also has a 'B' specifiers for "flexible day periods", including things like "at night" and "in the day". At present only zh_Hant uses 'B'. As a result, this change only affects zh_Hant's formats for time and datetime, which only zh_Hant_TW uses - zh_Hant_HK overrides them to use am/pm markers and zh_Hant_MO inherits that from zh_Hant_HK. Based on this and user feed-back, I've opted to treat 'B' as another synonym of 'a'. This removes an entry from the time_format_data[] table (it happened to occupy one whole twelve-character row), causing many other locales' offsets into that table to be shifted by 12. Only zh_Hant_TW has an actual change to which entry in the table it uses. Added a test-case. [ChangeLog][QtCore][QLocale] CLDR's 'B' (flexible day period, e.g. "at night" &c.) field, not currently supported, is now handled as a synonym for the AM/PM field 'a', instead of leaving the B as literal text. Only affects zh_TW at present. Fixes: QTBUG-123872 Change-Id: I6ba008c0a048190bf7af8c7df7629a885b05804f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QStringConverterICU: Pass correct pointer to callbackFabian Kosmale2024-04-191-30/+42
| | | | | | | | | | | | | | | Pass the pointer to the current state, not a pointer to a pointer to it. [ChangeLog][QtCore][QStringConverter] Fixed a bug involving moved QStringEncoder/QStringDecoder objects accessing invalid state. Amends 122270d6bea164e6df4357f4d4d77aacfa430470. Done-with: Marc Mutz <marc.mutz@qt.io> Pick-to: 6.7 6.5 Change-Id: I70d4dc00e3e0db6cad964579662bcf6d185a4c34 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QXmlStreamWriter: fix attempts to write bad QStringsThiago Macieira2024-04-181-0/+20
| | | | | | | | | | | | | We weren't doing the decoding from UTF-16 to UTF-32, so weren't catching invalid code sequences [ChangeLog][QtCore][QXmlStreamWriter] The class now rejects writing UTF-8 and UTF-16 invalid input (improper code unit sequences). Task-number: QTBUG-122241 Pick-to: 6.5 6.6 6.7 Change-Id: I83dda2d36c904517b3c0fffd17b42d17c637fdc4 Reviewed-by: Mate Barany <mate.barany@qt.io>
* QXmlStreamWriter: decode UTF-8 into code pointsThiago Macieira2024-04-181-0/+125
| | | | | | | | | | | | | | | | | | | | | We were iterating over code *units* and that yielded wrong results. The one from the bug report was simply caused by the fact that QUtf8StringView::value_type is char, which is signed on x86, so the expression: *it <= u'\x1F' was true for all non-Latin1 content. But in attempting to fix this, I needed to do the proper UTF-8 decoding, as otherwise we wouldn't catch non-Latin1 sequences and such. [ChangeLog][QtCore][QXmlStreamWriter] Fixed a bug that caused the class to fail to write UTF-8 strings with non-US-ASCII content when passed as a QUtf8StringView. Fixes: QTBUG-122241 Pick-to: 6.5 6.6 6.7 Change-Id: I83dda2d36c904517b3c0fffd17b42bbf09a493d0 Reviewed-by: Mate Barany <mate.barany@qt.io>
* QDeadlineTimer: use new comparison helper macrosTatiana Borisova2024-04-182-0/+32
| | | | | | | | | | | Replace public friend operators operator==() and operator!=() of QDeadlineTimer to friend method comparesEqual(). Replace public friends operator<(),<=(),>(), etc of QDeadlineTimer to friend method compareThreeWay(). Task-number: QTBUG-120304 Change-Id: Ib855ccac9b31b54fe28b822f2985154608fefa27 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* QItemSelectionRange: use new comparison helper macrosTatiana Borisova2024-04-181-0/+10
| | | | | | | | | | | | Replace public operators operator==(), operator!=() of QItemSelectionRange class 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-120304 Change-Id: Ideff990c942d5ee1c89a93ac2081cc5d7067b23f Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* wasm: Enable fileselector testEven Oscar Andersen2024-04-186-1/+5
| | | | | | | Also add test files for emscripten platform to build Change-Id: Ief03e44a4e3f3339a65453469a7ae0a6969f2252 Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
* QNativeIpcKey: use new comparison helper macrosTatiana Borisova2024-04-172-0/+18
| | | | | | | | | | Replace public friend operators operator==(), operator!=() of QNativeIpcKey to friend methods comparesEqual() and Q_DECLARE_EQUALITY_COMPARABLE macro. Task-number: QTBUG-120304 Change-Id: If18d86fb18e44f8d2210cba7ca93e4ac478a2a48 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* QKeyCombination: use new comparison helper macrosTatiana Borisova2024-04-172-40/+29
| | | | | | | | | | Replace public friend operators operator==(), operator!=() of QKeyCombination to friend method comparesEqual() and Q_DECLARE_EQUALITY_COMPARABLE_LITERAL_TYPE macro. Task-number: QTBUG-120304 Change-Id: I679f3fa5fcc4c675a763cc5a5fe0e0880439a64f Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* wasm: introduce QT_BUILD_WASM_BATCHED_TESTSMorten Sørvig2024-04-171-1/+1
| | | | | | | | | | | | | | | | | | | We are selecting a subset of the tests for batching/CI, however this is done for the WASM configuration which interferes with non-batched tests. - we can only build and run tests which are in the batching subset - we are enabling threading tests which breaks the no-thread configuration. Add QT_BUILD_WASM_BATCHED_TESTS and enable for WASM and batching. There's then no restrictions on which tests can be selected for CI. Change-Id: I59a67b63e80cd00676cb28f916951d2a52b0ee2c Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* tst_QVariant: fix stringification of char16_t and char32_tThiago Macieira2024-04-151-1/+3
| | | | | | | | | | QVariant::toUInt() cannot convert from those two, so we always ended up with 0, producing lots of duplicated test rows. Pick-to: 6.7 Fixes: QTBUG-124349 Change-Id: Ie28eadac333c4bcd8c08fffd17c5a3e39a2cc3f6 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* tst_QVariant: remove duplicate rows from compareNumericsThiago Macieira2024-04-151-2/+1
| | | | | | | Task-number: QTBUG-124349 Pick-to: 6.7 Change-Id: Ie28eadac333c4bcd8c08fffd17c5a3d824fe76ec Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* tst_QVariant: fix copy & paste error in double-float comparisonsThiago Macieira2024-04-151-1/+1
| | | | | | | | | | | We wanted to test the (min,max) of each of the two types, but one of the four combinations wasn't correctly done. Task-number: QTBUG-124349 Pick-to: 6.7 Change-Id: Ie28eadac333c4bcd8c08fffd17c5a3ccb4205139 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* tst_qstandardpaths: check the return value of QFile::openAhmad Samir2024-04-131-17/+30
| | | | | | | | | If QFile::open() fails in any of the these helper functions, the test should fail. Task-number: QTBUG-123623 Change-Id: I3e4d65eccd3be32eed673d9607ef468ddc0fd6e5 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* wasm: Add auto test for qfileEven Oscar Andersen2024-04-131-19/+39
| | | | | | | | | | | | | | Problems: * mmap of size 0 works, add test in QFSFileEnginePrivate::map to make sure wasm platform behaves as the other platforms * qwe// is a valid filename on wasm, QSKIP test * applicationFilePath does not exist on wasm. * /dev/zero does not exist on wasm, file bug, skip test * blocking pipes do not exist on wasm, QSKIP test * socketpair does not exist on wasm, QSKIP test Change-Id: I1705c543782cbcb92a7ebed2fc2792613524c686 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* CBOR: fix sorting of UTF16-to-UTF16 stringsThiago Macieira2024-04-121-30/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This amends commit 394788c68efacdec2676988b4b4ff207b20557f2 (its ChangeLog applies to this commit too). That fixed sorting of UTF8-to- UTF16, but when adding more unit tests, I've discovered that some UTF-16 strings also sorted incorrectly. There were two problems: First, we were assuming that we could rely on the UTF-16 length as a proxy for the UTF-8 one, but that's not true for some cases: * both 1-, 2- and 3-codepoint UTF-8 sequences are 1 codepoint in UTF-16, so some strings would have identical UTF-16 length * 4-codepoint UTF-8 sequences shrink to 2-codepoint UTF-16 ones (2:1) but 3-codepoint UTF-8 sequences shrink to 1 (3:1), so some strings would be longer in UTF-16 but shorter in UTF-8. Second, QtPrivate::compareStrings performs UTF-16 codepoint comparisons not Unicode character ones, so surrogate pairs were sorting before U+E000 to U+FFFF. To fix all of this, we need to decode the UTF-16 string into UTF-32 and calculate the length of that in UTF-8 to be sure we have the sorting order right. Since this is a slight behavior change with a performance penalty, I am choosing to backport only to 6.7. The penalty mostly does not apply to 6.8 due to commit 61556627f25e7c7acbfcc5e54127a392b5239977. Pick-to: 6.7 Change-Id: If1bf59ecbe014b569ba1fffd17c4c4ddcc874aac Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* Tests: make some QFile::open calls failGiuseppe D'Angelo2024-04-133-7/+12
| | | | | | | | | | In some cases calls to QFile::open are made outside of a testfunction (so we can't use QVERIFY), or even in standalone executables that are executed by tests. Make them fail "visibly". Change-Id: Iec4d56f6d874be16aa2e9ad6974eeec2a98caa3f Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QCborMap iterators: use new comparison helper macrosTatiana Borisova2024-04-121-0/+19
| | | | | | | | | | | | | | | | | New comparison macros are used for following classes: - QCborMap::Iterator - QCborMap::ConstIterator 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: I71b6febaf3f31ea7ba668d91c375b0a7b6827d21 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* QJsonObject iterators: use new comparison helper macrosTatiana Borisova2024-04-121-0/+22
| | | | | | | | | | | | | | | | | New comparison macros are used for following classes: - QJsonObject::iterator - QJsonObject::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: I308e2c0a549ff186c1d6339b38e989b80dc388a3 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Skip tst_qcomparehelpers_cpp23 on Linux armIvan Solovev2024-04-121-1/+1
| | | | | | | | | Because it causes issues in the CI Pick-to: 6.7 Change-Id: I8cd232abf1c4ee1d9417a8bff9aa3bcf5f893e8f Reviewed-by: Tatiana Borisova <tatiana.borisova@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Android: fix 180 degree orientation issueLauri Pohjanheimo2024-04-121-5/+35
| | | | | | | | | | | | | | | | On android documentation orientation changes are sent via onConfigurationChanged callback. Previous implementation based orientation detection to onSizeChanged callback. That callback is not called when orientation turns 180 degrees. i.e. between landscape and inverted landscape. This fix adds detection to on onConfigurationChanged to catch those cases. Fixes: QTBUG-118887 Fixes: QTBUG-118236 Pick-to: 6.7 6.5 Change-Id: Ie2f81798de97e460de839f7ebfde9a9efa25909f Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* QCborArray iterators: use new comparison helper macrosTatiana Borisova2024-04-101-0/+29
| | | | | | | | | | | | | | | | | New comparison macros are used for following classes: - QCborArray::Iterator - QCborArray::ConstIterator 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 QCborValueRef class from friend functions. Task-number: QTBUG-120300 Change-Id: Ie8ffef3e2278dfbf2bf0b32c30a7bf98d99fd1c3 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Pass QVariant to QSystemLocale::query() as rvalue referenceEdward Welbourne2024-04-091-1/+1
| | | | | | | | | | QVariant is rather big for passing by value; and no caller has any further use for the QVariant it's passing in. Pick-to: 6.7 6.5 Task-number: QTBUG-122619 Change-Id: I2751745e715aacfa8982ac97b4ae777fde5e88de Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QSystemLocale(): disable copy and moveEdward Welbourne2024-04-091-0/+1
| | | | | | | | | | | | | Axivion (SV546) points out (based on a clazy "rule of three" that might be rule of five by now) the lack of move and copy assignment and construction. We don't want those anyway, so tell the compiler not to create them. Pick-to: 6.7 6.5 Task-number: QTBUG-122619 Change-Id: Ie951a2c3d60d76ad3448310d3f9bbda22190015b Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* tst_QCborValue: merge sorting() and comparison() testsThiago Macieira2024-04-081-91/+124
| | | | | | | | Drive-by add NaN value for testing. Change-Id: I5f663c2f9f4149af84fefffd17c035f099d01d55 Reviewed-by: Tatiana Borisova <tatiana.borisova@qt.io> Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* 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>