summaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* Exclude test from compilation without qprocessKrzysztof Sommerfeld2024-01-311-0/+4
| | | | | Change-Id: Iea3a28b25bdb828b0eb2ae0381489aa207f348fd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Exclude VxWorks from cxx 23 mode compilation of qcomparehelpersKrzysztof Sommerfeld2024-01-311-1/+1
| | | | | Change-Id: Ia217a76ad96851a3ad9dedae4ab3ff1c2b3b92c6 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add cxx11_future in QPromise tests and disable it for VxWorksKrzysztof Sommerfeld2024-01-311-0/+22
| | | | | | | | | | | cxx11_future flag should be disabled for VxWorks. VxWorks still does have some bugs related to this std features and some parts of code needs to be excluded. At least till the 24.03 VxWorks release as for now this is the expected release that should contain fixes. Task-number: QTBUG-115777 Change-Id: Ic652403697d727f4ae05ae7287ff8285075d3802 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Skip compilation of tst_QLocalSocket::verifyListenWithDescriptor on VxWorksŁukasz Matysiak2024-01-311-1/+1
| | | | | | | | | | This test uses socketpair which is not available on vxworks, so it fails to compile. Task-number: QTBUG-115777 Pick-to: 6.7 Change-Id: I46f3b4ebd937dc4ca2511381dd58451434e6a2fc Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QFileSystemModel: blacklist a flaky unittest on macosAhmad Samir2024-01-301-0/+2
| | | | | | | Task-number: QTBUG-74471 Pick-to: 6.7 6.6 6.5 Change-Id: I4cda7794300c1a9d941e1543ee66b37efb0dea15 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QPainterPath: Fix boundingRect and controlPointRect ignoring start pointNoah Davis2024-01-301-0/+28
| | | | | | | | | | | | | | | | | | | | | | The boundingRect and controlPointRect did not use the start point from the `QPainterPath(const QPointF &startPoint)` constructor until the `dirtyBounds` or `dirtyControlBounds` member variables were set to true. Those two are false on construction. This bug was fixed by adding a new constructor for QPainterPathPrivate that initializes the `elements`, `bounds` and `controlBounds` member variables with the start point from the constructor. There is also an autotest to verify that the top left of the boundingRect and controlPointRect are at the same position as elementAt(0) when the start point constructor is used. [ChangeLog][QtGui][QPainterPath] boundingRect() and controlPointRect() now use the start point from QPainterPath(const QPointF &startPoint). Pick-to: 6.7 6.6 6.5 Change-Id: I7bf30364406c14ed60f75d24b78a9a5535f75d93 Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* QBitArray: avoid overflow in size-to-storage calculationsMarc Mutz2024-01-301-0/+44
| | | | | | | | | | | | | | | | | | | | | | | Unlike other containers, a QBitArray's size() is not limited by storage, but, esp. on 32-bit platforms, its size_type: A INT_MAX size() QBitArray only requires 256MiB of storage. So we can't rely on "won't happen in practice" here and need to avoid the potential UB (signed overflow) in the (size + 7) / 8 logical-to-storage-size calculation by using unsigned arithmetic. Use the opportunity to Extract Methods storage_size() and allocation_size(), which differ by one (d[[0] contains the size() mod 8), making it clear what's what. [ChangeLog][QtCore][QBitArray] Fixed a bug with QBitArrays whose size() came within 7 of the size_type's maximum. Pick-to: 6.7 6.6 6.5 6.2 5.15 Change-Id: I5d94bae9c9c210ba1e36f8cf03609125c81bd15d Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* tst_QHostInfo: enable the IPv6 reverse lookups in more systemsThiago Macieira2024-01-301-6/+4
| | | | | | | | | I've noticed that on some Windows systems, the resolver refuses to resolve IPv6-only addresses. But it can still do reverse resolution from IPv6. Change-Id: I5dd50a1a7ca5424d9e7afffd17adfe739ded932e Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* tst_QHostInfo: remove QProcess dependencyThiago Macieira2024-01-301-53/+27
| | | | | | | | | | Our ideal scenario was to run python to run its getnameinfo()... so just use getnameinfo() directly. This also avoids the problem of Python not being present and our falling back to nslookup. Pick-to: 6.7 Change-Id: I5dd50a1a7ca5424d9e7afffd17adfc830386306f Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* tst_QHostInfo: reorganize the #includesThiago Macieira2024-01-301-16/+12
| | | | | | Pick-to: 6.7 Change-Id: I5dd50a1a7ca5424d9e7afffd17adfb5d0bb9a54c Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Add expect-fail test-cases for und_US, und_GB to tst_QLocale::ctor()Edward Welbourne2024-01-301-0/+4
| | | | | | | | These exhibit the problem described by a recent bug report. Task-number: QTBUG-121485 Change-Id: Ia09acfa22e687ba096091a73f30df1ffd22a6e32 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* Rework tst_QLocale::ctor() - split up and make data-drivenEdward Welbourne2024-01-301-67/+111
| | | | | | | | | | | | | | | | | | | | | There were three things going on in this test (itself a sufficient reason to split it up): * Some reporting and checking of the default locale; the reporting is duplicated in defaulted_ctor() and the check fitted more naturally there. * Checks that various combinations of language, script and territory got resolved according to likely-subtag rules. These were handled via a macro and natural candidates to become data-driven. * A test that territory is preserved when it's the only given tag (with a few known exceptions); broken out as a steparate test. In the process, give the data-rows of the likely-subtag parts names that let me extend their testing to also test construction from string. The territory-only cases can't support that, as QLocale doesn't support und_* forms of tags for unspecified language. Change-Id: Id9f0fc46f30eb887b47931bad1619255acb44266 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QTEST()-ify QLocale testsEdward Welbourne2024-01-301-33/+16
| | | | | | | | | Replace various QFETCH()/QCOMPARE() pairs with QTEST(). Just because it's terser. Change-Id: I8496a293e3634991dcb33b8c7939f1c3028a63c5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Take QJsonDocument as a parameterJuha Vuolle2024-01-301-7/+7
| | | | | | | | | | | Instead of separate QJsonObject and QJsonArray types. Resulted from API-review Pick-to: 6.7 Change-Id: I977d692d3709a8c3aa872683ddda54a143c25e67 Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Rename QRestReply data accessors as read* functionsJuha Vuolle2024-01-301-17/+17
| | | | | | | | | | | | This naming should make it clearer that (successful) calls to readJson(), readBody(), and readText() consume the data received so far. Resulted from API-review Pick-to: 6.7 Change-Id: I09ca9eac598f8fc83eecb72c22431ac35b966bf5 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Make QRest* APIs non-owning and non-duplicatingJuha Vuolle2024-01-291-553/+305
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Note: documentation will be updated in a follow-up commit This commit makes QRestReply and QRestAccessManager classes lighter, non-owning wrappers. Furthermore their APIs don't duplicate the wrapped QNetwork* APIs. This makes it easier to use / opt-in to these helpers in pre-existing applications which are based on QNetworkAccessManager and QNetworkReply. Since APIs are no longer duplicated, the QRest classes are more obviously a convenience _wrapper_, as opposed to being an alternative vertical stack. In practice this change consists of: - QRestAM never instantiates QNetworkAccessManager, but accepts it via constructor. It does not take ownership of the QNetworkAccessManager. - QRestReply accepts QNetworkReply via constructor. It does not take ownership of the QNetworkReply - Signals and most duplicated functions are removed from both QRestAM and QRR. - QRestReply is no longer a QObject - Since QRestAM doesn't have much to report anymore, the debug operator is dropped. Resulted from API-review Pick-to: 6.7 Change-Id: Ib62d9cc2df41cac631396a84bb7ec4d2d54b0c8c Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Fix infinite loop in QTextLayout with setNumColumns()Eskil Abrahamsen Blomfeldt2024-01-291-7/+19
| | | | | | | | | | | | | | | | | | | | | | If the line width is negative, then we might exit the layout loop before consuming any text, and thus the loop will never finish. This is a side effect of a change for maximumWidth: 991c056438b311566bc4ea543af0f33dfd5dffbb. 49a63d375972079ae3000c8b7d512d58d4de32bb fixed this issue for QTextLayout::setFixedSize(), but I forgot to do the same in the overload of QTextLayout::setNumColumns() which includes an alignment width and therefore sets the line width in addition to the column count. Basically, we just make sure the line width is never negative so that the width > line.width condition also means the width > 0. Pick-to: 6.5 6.6 6.7 Fixes: QTBUG-115459 Change-Id: If904bfc64cd74e819a0864db55fa9555073d0781 Reviewed-by: Vladimir Belyavsky <belyavskyv@gmail.com> Reviewed-by: Lars Knoll <lars@knoll.priv.no>
* QJniArray: make reverse-iterableVolker Hilsheimer2024-01-291-0/+11
| | | | | | | | | | | | Add rbeing/rend overload, relevant typedefs, and decrement operators. As a drive-by, add noexcept to begin/end functions. Found during header review. Pick-to: 6.7 Task-number: QTBUG-119952 Change-Id: I32d9a7d50a1f03550944c2247516c455d4822fe7 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QJniArray: add missing post-increment operatorVolker Hilsheimer2024-01-291-0/+11
| | | | | | | | | Augment test case. Found during header review. Pick-to: 6.7 Task-number: QTBUG-119952 Change-Id: I326395397167edb05ff1f45f7151614c02b7e7eb Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QJniArray: add missing typedefsVolker Hilsheimer2024-01-291-0/+8
| | | | | | | | | | | | | | Add missing nested typedefs for both the QJniArray container and the QJniArrayIterator. Expand test case to make sure that some standard algorithms (such as std::distance and ranged for) work with those types. Found during header review. Pick-to: 6.7 Task-number: QTBUG-119952 Change-Id: I96f348215c6f1e0e1ce777d9bdd2f172d7e52974 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Update public suffix listMårten Nordheim2024-01-291-0/+0
| | | | | | | | | | | | | | Version 883ced078a83f9d79a98933145425c221a5e51f0, fetched on 2024-01-25. [ChangeLog][Third-Party Code] Updated the public suffix list to upstream SHA 883ced078a83f9d79a98933145425c221a5e51f0. Pick-to: 6.7 6.6 6.5 6.2 5.15 Task-number: QTBUG-121325 Change-Id: I95e82b5c351218c1641e11e7a166ae21be2c5ad6 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* tst_QLocale: add some basic endonym testsEdward Welbourne2024-01-291-0/+35
| | | | | | | | | | | | | Actually triggered by investigating QTBUG-121485, where the issue turns out to be at construction time, but the complete lack of any testing of endonyms clearly needed addressed in any case. In the process, break up the long list of private slots in the test-class declaration. Task-number: QTBUG-121485 Change-Id: I49021f78d3bea2e1e55b2755a45943ab3fc23722 Reviewed-by: Øystein Heskestad <oystein.heskestad@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* tst_QLocale::dayName(): Convert some dangling code into test rowsEdward Welbourne2024-01-291-9/+12
| | | | | | | | | | Every test row was following its locale-specific test with tests for Irish and Greek day names, repeated regardless of the locale-specific data. Express these tests as rows in their own right and shorten the per-row testing, so we only do each once. Change-Id: I8f919b50ac54423bacab6e5a9d34254b7db59a55 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Package up a repeated piece of testing in a macroEdward Welbourne2024-01-291-24/+12
| | | | | | | In the process, change it to use QCOMPARE(A, B) rather than QVERIFY(A == B). Change-Id: I26c64100b08aef43c56f5266c0de71f5cde12816 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QTest: add -[no]throwon{fail,skip} command line argumentsMarc Mutz2024-01-271-4/+15
| | | | | | | | | | | | ... to complement QTEST_THROW_ON_FAIl/SKIP environment variables. This allows to conveniently test both modes by running each test twice. Task-number: QTBUG-66320 Change-Id: I8b2810e8345061c98472d846017de910a11e0657 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* QTest: add opt-in changing QCOMPARE etc to exit with throw, not returnMarc Mutz2024-01-2766-1/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add exception classes and use them to change the control flow for QTEST_{FAIL,SKIP}_ACTION from return'ing from just the immediate function to the full way to the QTestLib infrastructure, here we filter them out. There are three modes: - If QT_NO_EXCEPTION, then we return - If QTEST_THROW_ON_... is also defined, #error out - Otherwise, if QTEST_THROW_ON_... is defined, always throw - Otherwise, the decision is made at runtime (with defaults read from QTEST_THROW_ON_... environment variables). Three selftests depend on the old behavior, as they explicitly check that multiple FAIL SKIP etc emerge, which the new framework, of course, prevents. Locally disable throwing at the test function level. Add initial docs and enable exceptions in all of the selftest subprograms to facilitate switching between the two runtime-selectable modes. [ChangeLog][QtTest] Added QTEST_THROW_ON_FAIL and QTEST_THROW_ON_SKIP C++ macros and environment variables that, when defined, change how QCOMPARE/QVERIFY/QSKIP etc exit the test function on failure. Instead of a return, exiting only the immediately-surrounding function, they throw a special exception instead, thereby exiting from subfunctions of the test function, all the way to QtTestLib. Fixes: QTBUG-66320 Change-Id: I96c38d2a1dcdd9de84942cf448a8bbf3ab6d3679 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* moc: store the FQN in JSON superClass objectsMarc Mutz2024-01-263-0/+50
| | | | | | | | | | | Tooling can then use this information to find the correct base class, even absent C++ scoping information. Pick-to: 6.7 6.6 6.5 Task-number: QTBUG-101141 Change-Id: I5350da8d2d9aaf5ec86027357131ebac1eb50372 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* QSpan: make adl_begin() etc SFINAE-friendlyMarc Mutz2024-01-261-0/+3
| | | | | | | | | | | | | | The definition of iterator_t, and, therefore, of is_compatible_range depends on this, otherwise say, 0, is being treated as a valid range and hits a hard error in adl_begin() when trying to call begin(int&). TIL: decltype(auto) does _not_ SFINAE. Fix by calculating the return type manually, re-enabing SFINAE. Pick-to: 6.7 6.6 Change-Id: Icacd70554f4050ecaeb396c9ae60bc4f21a220c9 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QFileSystemModel: respect dir filtersAhmad Samir2024-01-261-0/+34
| | | | | | | | | | | | | | | | | | | | | Given a dir A that has some files and a subdir B, when a model is set to only show files, setting the root path to A, the filters are initially respected. Setting the root path to B then back to A, the filters would be ignored and B would be visible in the model. Traversing the path elements in node() led to dir B getting added to the bypassFilters hash table, which made filtersAcceptNode() bypass the filters. I couldn't find a commit explaining the logic behind using bypassFilters (the trail goes cold at the 'Qt 4.5' mega commit). The only clue I found was the "// always accept drives" comment in the code, which hints at this being useful only on Windows(?). Fixes: QTBUG-74471 Pick-to: 6.7 6.6 6.5 Change-Id: Icb9055524a28990c591e924634a63e29a49835aa Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add required network libs for VxWorksTomasz Kozłowski2024-01-261-1/+1
| | | | | | | | | | It is needed for proper inet socket address working on this platform. Pick-to: 6.7 Task-number: QTBUG-115777 Change-Id: Icde7ff7baf257762339f5f72a783c92f6b297a46 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* tst_manualqdatastream: fix gcc errorIvan Solovev2024-01-261-6/+1
| | | | | | | | | | | | | | | | | | GCC has a bug [1] that does not allow to specialize templates outside of a namespace. An attempt to build the test results in the following error: tst_manualqdatastream.cpp:18:15: error: explicit specialization in non-namespace scope ‘class tst_QDataStream’ Fix it by converting the template specializations into simple function overloads. [1]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85282 Pick-to: 6.7 Change-Id: I7803cce1687ca8ae992f1a57394346eb6fc90c8b Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* tst_manualqdatastream.cpp: update the licenseIvan Solovev2024-01-261-1/+1
| | | | | | | | | | The file was added in fd48ce0b73c74dafd5db27bc1f2752ef665df7ef by a TQtC employee, so the header should mention The Qt Company Ltd. Pick-to: 6.7 Change-Id: Ib191d2d63656c42f783db87de489814d387dfbca Reviewed-by: Øystein Heskestad <oystein.heskestad@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QDataStream: add a new SizeLimitExceeded status codeIvan Solovev2024-01-261-2/+2
| | | | | | | | | | | | | | | | | | This status is supposed to be used when the stream tries to read or write more data than it is supported by the current platform. For example, reading more than 2 GiB of data on a 32-bit platform will result into this status, but it will work fine on a 64-bit platform. This patch uses the new status in read operations. Amends fd48ce0b73c74dafd5db27bc1f2752ef665df7ef Found in 6.7 API review Pick-to: 6.7 Change-Id: I675b1ee25fafba174ce8f94c3470dbb7893d6d9e Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* moc/QMetaProperty: Remove limitation on non-own-class notify signalsFabian Kosmale2024-01-262-1/+45
| | | | | | | | | | | | | | | | | | | | | | | | | The moc generated code does a sanity check that NOTIFY signals actually exist in the parent class when they cannot be found in the class moc currently runs on. The logic there was however too simplistic, and couldn't deal with signals taking a parameter. Fix this, and take the opportunity to use a proper static_assert instead of generating a "normal" compile error. We do not do any checks for the presence of QPrivateSignal, as the whole point of QPrivateSignal is that it should be private (and not e.g. protected). Moreover, we adjust QMetaProperty::notifySignalIndex to take single-argument notify methods into consideration as well when encontering an unresolved notify index. Fixes: QTBUG-115989 Pick-to: 6.7 Change-Id: I8a056a15777f3132691e207b4b9ab6c2c9b2126d Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Http2: fix 401 authentication required w/o challengeMårten Nordheim2024-01-253-6/+26
| | | | | | | | | | | | | The code did not handle the path where we didn't have a challenge. We cannot recover from that so we just have to fail the request. Amends fe1b668861e8a3ef99e126821fcd3eeaa6044b54 Pick-to: 6.7 6.6 6.6.2 6.5 6.2 Fixes: QTBUG-121515 Change-Id: Ie39a92e7439785a09cad28e8f81599a51de5e27f Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Fix clipped text when combining multiple writing systemsEskil Abrahamsen Blomfeldt2024-01-251-0/+21
| | | | | | | | | | | | | | | | | | | When a QTextLine consists of multiple different scripts and the fonts had negative bearing, the background for a script item could overdraw the previous item's text, causing it to look clipped. This was because the background and text was drawn in a single pass, and moving the background drawing into its own pre-pass fixes the issue. [ChangeLog][QtGui] Fixed an issue where drawing text from different writing systems in the same line and including a background could cause parts of the text to be clipped. Pick-to: 6.5 6.6 6.7 Fixes: QTBUG-121040 Change-Id: I3f79e6d33c09a2a92853bc8752dbe11a0bea2dd0 Reviewed-by: Lars Knoll <lars@knoll.priv.no>
* tests: fix a crash in tst_QItemDelegate::reuseEditor() on WaylandLiang Qi2024-01-251-1/+2
| | | | | | | Pick-to: 6.7 6.6 6.5 Task-number: QTBUG-107153 Change-Id: Ic041302753bee4e2292b2afd898dd176966cf951 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Remove qfunctions_vxworks files and usage as it is no longer neededMarcin Zdunek2024-01-251-2/+0
| | | | | | Task-number: QTBUG-115777 Change-Id: I0d803ac7ce067737b79a39a267a2b0eb509ae0b8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Network: Use QHttpHeaders in QHttpHeaderParserLena Biliaieva2024-01-257-96/+111
| | | | | | | | | | | | | QHttpHeaderParser::headers() method is changed to return QHttpHeaders. QAuthenticatorPrivate::parseHttpResponse() method is changed to work with QHttpHeaders. QHttpNetworkHeader::header() method is updated to return QHttpHeaders. Tests are updated. Task-number: QTBUG-120133 Change-Id: I20a18b509acd7a8b8d93884cff8349519d64293e Reviewed-by: Ievgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Øystein Heskestad <oystein.heskestad@qt.io>
* Avoid detection of heading in tst_QTextMarkdownImporter::thematicBreaksShawn Rutledge2024-01-241-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In md4c 0.4.8, three or more hyphens immediately after text were seen as a thematic break: some text --- But in 0.5.1 it makes the text into an H2 heading (even though this style of heading would normally have the text fully "underlined" with hyphens). The CommonMark spec 0.30 says If a line of dashes that meets the above conditions for being a thematic break could also be interpreted as the underline of a setext heading, the interpretation as a setext heading takes precedence. Thus, for example, this is a setext heading, not a paragraph followed by a thematic break: https://spec.commonmark.org/0.30/#example-59 So the new behavior seems more correct. But rather than testing so deeply, just disambiguate by adding a newline, since Qt may be expected to work with various versions of md4c, and such minor behavior differences are not expected to come up often in practice. QTextMarkdownWriter already adds a newline when writing such markdown. Pick-to: 6.2 6.5 6.6 6.6.2 6.7 Change-Id: I5a4bf8720d994616274eb8534b4d7085399130fc Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
* QObject: Let moveToThread return succcess stateChristian Ehrlicher2024-01-241-3/+5
| | | | | | | | | | | | | | | Add bool QObjectPrivate::moveToThread() which returns the success state of the attempt to move the object to the new thread. For Qt7 the public signature of QObject::moveToThread() should be changed to directly return this value. [ChangeLog][QtCore][QObject] QObject::moveToThread() now returns a boolean success state. Pick-to: 6.7 Change-Id: I8441c8155a76b804b473ab9c45c2be6840ef1677 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* tests: make tst_QAIV::removeIndexWhileEditing() work on WaylandLiang Qi2024-01-241-0/+2
| | | | | | | | | This amends 04415264489cd96a4a542a2ae7db1c14558397a5. Pick-to: 6.7 6.6 6.5 Fixes: QTBUG-121498 Change-Id: I7606bbe482edcc7395f0ff5634d374ab4784b19b Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add VxWorks to skip condition when utimensat function is requiredKrzysztof Sommerfeld2024-01-241-1/+1
| | | | | | | VxWorks does not implement utimensat function Change-Id: I4c507b76636c912c8b6161292f73e020b29da49b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QJniArray: fix const_iterator declaration, make it default-constructibleVolker Hilsheimer2024-01-241-0/+17
| | | | | | | | | | | | | | | Iterators are required to be default-constructible and value-initialized iterators must compare equal. In a const_iterator, the pointee should be const, not the iterator itself. Found during header review. Pick-to: 6.7 Task-number: QTBUG-119952 Change-Id: I036c0a62ade8c59dc5d62c0823b375223719af3f Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Add the new Android bluetooth permissions to the manual test appJuha Vuolle2024-01-231-1/+5
| | | | | | | | | Otherwise the bluetooth permission requests fail on 12+ Android. Fixes: QTBUG-114941 Pick-to: 6.7 6.6 6.5 Change-Id: I545299e38a7b30df840863ac880ad5bdff5fbc5e Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* QWidget: Clean up state that depends on QWindow from ~QWidgetWindow()Tor Arne Vestbø2024-01-231-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We were assuming that QWidget was in full control of QWidgetWindow destruction, via deleteTLSysExtra(), and that we could limit any cleanups to that function. But in some situations QWidgetWindow is destructed from other code paths, in which case we were left with dangling pointers to the QWidgetWindow in both QTLWExtra, as well as the backingstore. This can happen if there's a child widget hierarchy where there is not a 1:1 mapping between QWidgets and QWindows, for example if the window attribute WA_DontCreateNativeAncestors has been set. In this situation our normal recursion into children in QWidget::destroy() stops at the first widget without a window handle. When we then delete the top level QWindow, the QWindow destructor will delete any child QWindows, which includes our leaf QWidgetWindow. We should probably fix up QWidget::destroy to continue looking for children, even if we don't destroy the current child. But independently of that we should make sure the QWidgetWindow cleans up when it's being deleted, regardless of how it ended up there. There's further room to clean up the deleteTLSysExtra() function and friends, but that's been left for a later time. Fixes: QTBUG-120509 Pick-to: 6.7 6.6 6.6.2 6.5 Change-Id: Ib691df164d7c9c83cb464c0a6bf3bc2116e8ca43 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QJniArray: add test case for QJniArray::sizeVolker Hilsheimer2024-01-231-0/+15
| | | | | | | | | Fix build of the test by removing the reference from the container type before accessing the nested typedef. Pick-to: 6.7 Change-Id: Ic35f312bac70b8f8f80149a3432329070c8c8c7d Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* QProcess: align treatment of early start errorsThiago Macieira2024-01-221-3/+87
| | | | | | | | | | | | | | | | There are a couple of possible runtime errors that could happen before the state was changed to QProcess::Starting. This aligns the Unix code with Windows, which has the state transition at the top, and with the documentation which says we will enter QProcess::Starting state. Complements commit 956b2495285251e4840ec32885ffa2cfbb7bd79c, repeating what it did for Unix (removing the overwriting of the error message that openChannel() sets) on Windows. We also need to ensure cleanup() is always called. Pick-to: 6.6 6.7 Change-Id: I76ffba14ece04f24b43efffd17aafdd47f908bf1 Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* tst_bench_{qhash,qset}: set deterministic seedMårten Nordheim2024-01-232-0/+8
| | | | | | | | | | | | | | There's a lot of variation in the benchmark graphs for QHash presumably caused by variation in seed. Optimally we would set deterministic seed for all benchmarks, but we don't know whether or not it is one until the macro is reached. Pick-to: 6.7 6.6 6.5 Change-Id: I4e412e4d4e2cc65eada94ed123243ed0047dd9cf Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Un-blacklist QMessageLogger backtrace tests for b2qt 64bitJoerg Bornemann2024-01-221-4/+0
| | | | | | | | They are working fine by now. Change-Id: I24b1ac61791a850da85347c9718df678dfea2706 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>