summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib
Commit message (Collapse)AuthorAgeFilesLines
* Blacklist two tests on macOS that a planned CI change shall breakEdward Welbourne2018-08-242-0/+4
| | | | | | | | | | | | | We have #if-ery on Q_OS_DARWIN controlling an expectation of gettign "GMT+1" and "GMT+2" instead of "CET" and "CEST" in two tests; this turns out to not be a deficiency of macOS so much as of how we configure Coin's VMs. While we fix that, we need to ignore failures in these tests, so that we can pull the #if-ery out and clear the blacklist once the VMs are set up properly. Task-number: QTBUG-70149 Change-Id: If3577200cf980b3329161ab3eea7bd2e9d0124e0 Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
* Test for fractional part of Costa Rican currencyEdward Welbourne2018-08-231-0/+4
| | | | | | | | | | | | CLDR up to somewhere between v29 (used by 5.9) and v31.0.1 (used by 5.10 and later) claimed Costa Ricans don't include fractions in their currency; now it claims they expec two digits. Apparently one of them does expect those digits, so this is the regression test I'll be cherry-picking back to LTS, to accompany the CLDR updates they need. Task-number: QTBUG-70093 Change-Id: I138772cc6013fa74de4f7c54b836cac83421eab2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* _q_interpolate<T> is unsafe with unsigned template argumentsLuca Beldi2018-08-221-0/+25
| | | | | | | | | _q_interpolate<T> subtracts 2 arguments of type T, for unsigned types this can cause wrapping around Task-number: QTBUG-57925 Change-Id: Iffa59f413579a3d5de8cb728fe71443d8e8a04aa Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* QSortFilterProxyModel inserting at bottom of source modelLuca Beldi2018-08-171-0/+237
| | | | | | | | | | | | | | | | Before this change, if you try to insert a row at the bottom of QSortFilterProxyModel the row will be inserted in the source model at position proxy->rowCount rather than at the bottom. This causes insert at apparently random positions in the source. [ChangeLog][QtCore][QSortFilterProxyModel] QSortFilterProxyModel::insertRows(row,count,parent) with row == QSortFilterProxyModel::rowCount will insert at the bottom of the source model rather than at the row QSortFilterProxyModel::rowCount of the source model Task-number: QTBUG-58499 Task-number: QTBUG-69158 Change-Id: Ie78416c8fbc429303b8c9c98375630e3e4d85f6d Reviewed-by: David Faure <david.faure@kdab.com>
* QUrl: Make sure we do reject URLs for which IDNA nameprep failedThiago Macieira2018-08-161-1/+18
| | | | | | | | | | | | | | qt_nameprep() already reset the string to its original length to indicate failure, but we didn't handle that in qt_ACE_do(). So make it have a return value whcih makes it easier to handle that case and do handle it. [ChangeLog][QtCore][QUrl] Fixed a bug that caused URLs whose hostnames contained unassigned or prohibited Unicode codepoints to report isValid() = true, despite clearing the hostname. Change-Id: I41e7b3bced5944239f41fffd1545b7274c4b419d Reviewed-by: David Faure <david.faure@kdab.com>
* QObject: do allow setProperty() to change the type of the propertyThiago Macieira2018-08-041-1/+13
| | | | | | | | | | | [ChangeLog][QtCore][QObject] Fixed a bug in setProperty() that caused a property change not to take effect if the old value compared equal using QVariant's equality operator, but the values were not strictly equal. Task-number: QTBUG-69744 Change-Id: I00e04a465fcf4fc1a462fffd1547885861a07a64 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* QProcess::startDetached: Fix behavior change on WindowsJoerg Bornemann2018-08-035-25/+126
| | | | | | | | | Do not overwrite stdout/stderr by default, but only if requested. This restores the behavior of QProcess::startDetached of Qt 5.9. Task-number: QTBUG-67905 Change-Id: Idccf7b0da7bd80f88a0624286ddf2851bc974fb1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* QJsonDocument: Make emptyObject an objectJüri Valdmann2018-07-311-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A default-constructed QJsonObject has no data payload, it is only a pair of null pointers. So, when it becomes necessary to 'materialize' such an object, a special global emptyObject constant is used as the substitute payload. There is a small problem with this global constant though, namely that it's is_object flag is unset. In other words, the emptyObject is not an object, but an array. Fix by setting the is_object flag on emptyObject. The example code in the bug report QJsonObject parent; QJsonObject child; parent["child"] = child; // 1 child = parent["child"].toObject(); // 2 child["test"] = "test"; // 3 runs into this problem on line 1. Inserting the default-constructed child means inserting a copy of emptyObject. On line 2 a pointer to this copy of emptyObject is retrieved and cast to an object. But it's not an object, it's an array, so things go wrong hereafter. Specifically, on line 3, two inserts are performed, one from operator[] and one from operator=. Each insert increments a compaction counter. The second insert triggers compaction (QJsonObject::insert calls Value::requiredStorage calls Data::compact) and compaction branches based on the is_object flag. Replacing line 3 with child.insert("test", "test"); causes the example to appear to work since compaction is not triggered and the JSON serializer does not look at the is_object flag. Still, any further insert() calls would trigger compaction and memory corruption. Task-number: QTBUG-69626 Change-Id: I8bd5174dce95998bac479c4b4ffea70bca1a4d04 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QSFPM unittest: check dataChanged and layoutChanged signalsDavid Faure2018-07-281-0/+48
| | | | | | | | | | | | | | | I'm not sure why QSFPM purposefully emits dataChanged for a source dataChanged that triggers a layoutChanged (i.e. due to sorting, multiple rows are moving around). (This predates the git import in Qt 4.5.) Surely whoever is listening will not gain much from the "small" dataChanged after the "big" layoutChanged... anyhow, this documents the current behavior, at least. It also proves that the bug I saw long ago (changing a filtered-out value used to emit dataChanged(invalid, invalid), IIRC) is no longer present. Change-Id: I8975c549db88226b2b3393de9f8dca4f4109df15 Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de> Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
* tst_qpluginloader: Fix preprocessor conditionOliver Wolff2018-07-271-1/+1
| | | | | Change-Id: Icb7767cb6b0e091a21196518d3908a810970592a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Check against copying the husk left by a moveEdward Welbourne2018-07-261-0/+3
| | | | | | | | | | | | | The copy-assign operator tests against other.d being NULL but the copy-constructor didn't. This can only matter if the value being copied has been moved from, so we could probably replace with an assertion in practice, but we should at least be consistent. Amended test to check this case too; and verified new test crashes without this fix. Change-Id: I46872a677775944bbdf6a9112e719873e574ae60 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* tst_qplugin: Re-enable loadReleasePlugin test caseOliver Wolff2018-07-261-0/+1
| | | | | | | Change-Id: I678a8748ac757ae2918dd80e4a6d802d7de7b0b0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Skip qplugin auto test for static configurationsOliver Wolff2018-07-261-0/+1
| | | | | | | | | | | All test cases use QPluginLoader which will not work for static builds of Qt. Change-Id: I7dcddcd5213681bd3ae4cd85e49ee0bb5748f687 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* Fix the fix for mmap() overflow checkThiago Macieira2018-07-251-3/+3
| | | | | | | | | | | | | | | | The code I introduced in 4ee74257940e2ed21b653b986ad02a746e8438a6 only dealt with systems that reasonably used a 64-bit off_t parameter. Turns out that we don't turn on largefile support on 32-bit Android, which meant that the fix caused a regression. [ChangeLog][QtCore][QFile] Fixed a regression that caused QFile::map() to succeed or produce incorrect results when trying to map a file at an offset beyond 4 GB on 32-bit Android systems and on some special Linux configurations. Task-number: QTBUG-69148 Change-Id: I2c133120577fa12a32d444488bac3e341966f8d7 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Let QDir::absoluteFilePath() use isAbsolutePath() for resource pathsEdward Welbourne2018-07-231-15/+29
| | | | | | | | | | | Using QFileSystemEntry::isAbsolute() broke handling of resource paths. Extended QDir::absoluteFilePath() tests to cover absolute resource path and some UNC variants also resolved in the same fix. Amend existing filePath tests to use drives where needed. Task-number: QTBUG-68337 Change-Id: I4f02cf67828ad93e562857118f8442037f18bab7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Plugins: fix crash if the binary JSON data contains invalid sizeThiago Macieira2018-07-194-2/+163
| | | | | | | | | | | | | | Eight bytes into the Binary JSON header there's a 32-bit little-endian size, which qJsonFromRawLibraryMetaData uses to determine the size of the stored metadata. That value is passed as a size to QByteArray, which means certain values could cause crashes due to being too big or via sign-extension in 64-bit. [ChangeLog][QtCore][QPluginLoader] Fixed an issue that could cause a crash when certain damaged or corrupt plugin files were scanned. Change-Id: I117816bf0f5e469b8d34fffd153dc5425cec39a7 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* QPluginLoader: limit the amount of memory used when scanning pluginsThiago Macieira2018-07-141-2/+2
| | | | | | | | | | | | | | | | | | | When using actual memory allocation, limit to 64 MB, not the full file size. On most systems, the memory map technique will work, so this won't even be tried. In any case, we don't need the fix for the OOM situation that was applied in commit e211ab76d766878b4dbe88901b9a7a4a70ce7332. As for the memory mapping technique, this commit limits the allocation to reasonable values given the virtual memory addressing space. Half a gigabyte is probably acceptable on 32-bit systems, where there should be a contiguous space for the OS to allocate the file in. This commit also fixes an overflow when converting from qint64 of the file size to ulong (32-bit on 32-bit platforms and on Windows). For 64-bit systems, we currently limit to 1 TB. Change-Id: I117816bf0f5e469b8d34fffd153dc1705a8eedc4 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix regression in QPointF::operator==Allan Sandfeld Jensen2018-07-091-0/+3
| | | | | | | | | Handle hard zero independently in each coordinate, otherwise hard zero is never equal to anything but itself. Task-number: QTBUG-69368 Change-Id: I8b1131472bb92efc706a04e0b067e2211a5ccb0c Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Fix a mis-use of QSKIP() to use qDebug() insteadEdward Welbourne2018-07-041-1/+4
| | | | | | | | | QSKIP() discards the whole test it appears in; so is not the right way to announce that (and why) the test has just skipped a few sub-tests. This was concealing a later failure on macOS, here fixed. Change-Id: I9b07208413b9e101569a22505ad41f07ade4062b Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Fix tst_QLocale's mis-use of QSKIP() to use qDebug() insteadEdward Welbourne2018-07-041-1/+4
| | | | | | | | | | QSKIP() discards the whole test it appears in; so is not the right way to announce that (and why) the test has just skipped a few sub-tests. This was concealing a later failure on macOS, here fixed. This matches an earlier fix for tst_QDateTime. Change-Id: Idaf34a9d60d84202fd41d15455209457cc281f60 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Android: Pass tst_QFactoryLoaderMårten Nordheim2018-06-302-0/+19
| | | | | | | | | Similar to the changes made for tst_QLibrary: 0ac09c40f28987169786b3063af423e9fe93c6b8 but even less intrusive. Change-Id: I4bc0ba385e639f07f9b39cf8ba9542c27be8a3ff Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix metatype trait for types that are both QObject and Q_GADGETDaniel Vrátil2018-06-301-0/+11
| | | | | | | | | | Fixes ambiguous template instantiation for types that derive from both a QObject and Q_GADGET. For such types we treat them only as QObjects as they extend the functionality of the gadget. Task-number: QTBUG-68803 Change-Id: Ic42766034e14e5df43c4e6f7811e2c0be1dc7e74 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Android: Pass tst_qlibraryMårten Nordheim2018-06-292-15/+57
| | | | | | | | | | To make the minimum amount of changes: - Extract the library files into the expected hierarchy. - Introduce a variable with the path to the directory. - Make the static function a member function so it can use the variable Change-Id: Ibf3106c3606d198a8deb8cb2a5cbde57207221c7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Android: Make tst_qfile passMårten Nordheim2018-06-281-3/+22
| | | | | | | | | | | | | By disabling the "stdinprocess"-related tests/code... ... but differently. After fixing my earlier mistakes I'm getting segmentation faults when it executes a couple different library calls after the QProcess object has started. Task-number: QTBUG-68596 Change-Id: Id42a1f939c000754a187dee90c4a4cdfec816232 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Android: fix tst_qloggingMårten Nordheim2018-06-282-1/+19
| | | | | | | | | | | The "app" subfolder was already excluded in the .pro-file but Android supports QProcess, so lets include it in the build. Unfortunately it currently has trouble and crashes (the child process or both processes). So we skip those tests. Task-number: QTBUG-68596 Change-Id: I2e6d0869c408bf08b22c02145db8ce522c64c617 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Android: Pass tst_qlocaleMårten Nordheim2018-06-281-4/+19
| | | | | | | | | | | | To make it run we make sure it finds the syslocaleapp, however since it causes a crash we skip the test that uses it... "formatTimeZone" was failing, but it is the exact same issue as in e08ba34f26197fb9893fd48a38bdd0dfff7d4a60, so we solve it the exact same way. Change-Id: Ifd5c796735775dad94acf55210cf18c0f4d375ca Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* Android: Pass tst_QUuidMårten Nordheim2018-06-281-0/+11
| | | | | | | | Same issue as has been seen a few other places: path to executable being wrong, and then a crash when the paths are fixed. Change-Id: I77a596c6e52d2a02a69a6b9dfe91f878b3ffe07c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QSortFilterProxyModel unittest: add test for filtered-out-after-setDataDavid Faure2018-06-281-6/+33
| | | | | | | | | | | | The row names for this test were very unspecific. After reverse-engineering what they are testing, I gave them proper descriptive names, which allowed me to notice that there were tests for "filtered in after sourceModel->setData" but not for "filtered out after sourceModel->setData". Change-Id: Ib79108db803ae77fb65d29cf0c0ef96c26655980 Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de> Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
* tst_qthreadpool: Skip "stackSize" if unsupportedMårten Nordheim2018-06-271-0/+8
| | | | | | | | | If you're on a Unix platform which don't have the necessary defines then the thread will never be launched due to an error. Skip the test instead. Change-Id: I83159988b8f330a750c7aa328a8805e4fa478070 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
* QAbstractItemModelTester: fix out-of-bounds index() callsDavid Faure2018-06-271-3/+9
| | | | | | | | | | | | | | When removing rows, the tester is looking at the data of the row "just before" and the row "just after" the removed rows, to see if they are still the same at the end of the removal operation. Guard this with bounds check, in case there is no row just before or just after. This is the opportunity to use modeltester in tst_qidentityproxymodel, which was already a testcase for removing the only row in a given parent. Change-Id: Iec8228c16b9c670b794e2665356d153679178494 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Android: tst_qtimezone: Blacklist a bunchMårten Nordheim2018-06-271-0/+171
| | | | | | | | | Task-number: QTBUG-69122 Task-number: QTBUG-69128 Task-number: QTBUG-69129 Task-number: QTBUG-69131 Change-Id: Ida626a6675764e9554785b5e56cfba3ab7206f17 Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
* Android: tst_QTimeZone::transitionEachZone: skip 2 zonesMårten Nordheim2018-06-271-0/+4
| | | | | | | | | When testing zones "America/Mazatlan" and "Mexico/BajaSur" the test crashes from an assert. Skip testing the zones for now. Task-number: QTBUG-69132 Change-Id: I595089647792e9a2c094d63cb837584b8cdc9cb9 Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io>
* Kludge round Android's ignorance of some esoteric time-zone transitionsEdward Welbourne2018-06-261-3/+9
| | | | | | | | | | Skip a few tests that Android's time-zone information doesn't suffice to get right. Task-number: QTBUG-68835 Change-Id: Ibf8d213c96b29d74fc478a0ede686ae52b5200fb Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* tst_QTimer: Replace unconditional qWait()s with QSignalSpyKari Oikarinen2018-06-261-152/+111
| | | | | | | | | | | | | | | | | | | | | | | Where possible. Sometimes the replacement is QTRY_COMPARE instead. Also don't use QTestEventLoop directly when it can also be replaced with QSignalSpy use. Remove the TimerHelper class, since its uses can be done with QSignalSpy (and a lambda when remainingTime is checked). Although checking static single-shot timers still needs a target object, so use a stripped down version in those tests. remainingTimeDuringActivation() was not actually testing the repeating case, but single-shot case twice, so fix that. In the repeating case the remaining time is exactly 20 ms on my machine, but QEMU emulation seems to be slow enough for time to advance before the lambda is executed, so relax the conditions. Task-number: QTBUG-63992 Change-Id: Iae92ff7862a13d36e695eec63b54403ec872f2b4 Reviewed-by: Sami Nurmenniemi <sami.nurmenniemi@qt.io> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io> Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
* Make tests compile for AndroidLiang Qi2018-06-259-7/+18
| | | | | | | | | | | | | | | | | | This only enables compilation, it doesn't fix any test. Qt on Android supports process, but not TEST_HELPER_INSTALLS. See also acdd57cb for winrt. android-ndk-r10e is used to compile, see http://doc-snapshots.qt.io/qt5-5.11/androidgs.html . corelib/io/{qdir,qresourceengine} need to be fixed later. Done-with: Frederik Gladhorn <frederik.gladhorn@qt.io> Done-with: Mårten Nordheim <marten.nordheim@qt.io> Change-Id: I34b924c8ae5d46d6835b8f0a6606450920f4423b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
* Android: fix qdiriterator testMårten Nordheim2018-06-212-10/+10
| | | | | | | | | | | | ... by adding a prefix to the resource. On android there is a resource ("qpdf") which gets included in the root in all applications, included from "src/gui/painting/painting.pri". So we move the test data to a sub-folder. Task-number: QTBUG-68596 Change-Id: I67f2ed79a32c68d9a76cafba8ef23fe0da7c0fe8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Android: tst_qthread: terminate is not supportedMårten Nordheim2018-06-211-4/+4
| | | | | | | | | "terminate" and "terminated" both fail on Android since QThread::terminate not supported on Android. So we should skip them. Task-number: QTBUG-68596 Change-Id: Id0d1dde2cfa02bb2978e5dd16087bf8f3bf112b0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Cope if mktime() deems times in a spring forward gap to be invalidEdward Welbourne2018-06-211-27/+35
| | | | | | | | | | | | | | | | In tst_QDateTime::springForward(), we test correct handling of times in the gap; these are formally invalid and a mktime() implementation may reasonably reject them causing our date-time code to produce an invalid result. So handle that case gracefully in the tests, only insisting on consistency between the two ways of preparing the date. In one test, package the repeated code I was going to adapt into a macro to save repeitition. Task-number: QTBUG-68832 Task-number: QTBUG-68839 Change-Id: Ib8a16ff007f4e75ab2ccff05b1ccf00a45e50dc8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Add Android to exceptions in tst_QDateTime::toString_textDate_extra()Edward Welbourne2018-06-211-4/+8
| | | | | | | | | | | Android doesn't use the proper zone-abbreviation, so just check it starts with the right date-time. Revised the way the #if-ery for that is handled, to avoid repetition of the (now more complex) condition in the two tests affected. Task-number: QTBUG-68833 Change-Id: Iceb5469f46c69ba5cdbaf7ca050ad70f2bb74f44 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Cope with Android's lack of time-zone abbreviationsEdward Welbourne2018-06-211-4/+12
| | | | | | | | | | Have a test expect what it does produce rather than fail what we can't fix. Task-number: QTBUG-68837 Change-Id: Icda7bd9968682daf97d46d597f8bb0433560cde2 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make some QEXPECT_FAIL()s consistent in form and contentEdward Welbourne2018-06-211-6/+6
| | | | | | | | They used different messages for the same excuse, which weren't well worded in any case; and their #if-ery was differently decorated. Change-Id: I28f5032693aff1036cb086ac4032c669110a5cb5 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Make QString's formatting of doubles be consistent with other placesEdward Welbourne2018-06-141-0/+23
| | | | | | | | | | | | | | | | | | | | QString::sprintf(), like the C printf-family, always includes two digits in any exponent it outputs. Up to 5.6, number() and arg() taking a double did the same; but changes at 5.7 to enable opting out of the leading zero this implies for a single-digit exponent accidentally opted out of it in args() and number(). This commit fixes number() and arg() to include QLocaleData::ZeroPadExponent in the flags they pass down to the C locale's doubleToString(), restoring the prior behavior, including consistency with sprintf(). [ChangeLog][QtCore][QString] Formatting of doubles with single-digit exponent, by number() or args(), now includes a leading zero in that exponent, consistently with sprintf(), as it did up to 5.6. Task-number: QTBUG-63620 Change-Id: I10c491902b8556e9f19e605177ead8d9fd32abd9 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Use qFuzzyCompare instead of qFuzzyIsNull in QPointF ==Allan Sandfeld Jensen2018-05-301-0/+39
| | | | | | | | | | | | | qFuzzyIsNull has a fixed range, where qFuzzyCompare can tell if numbers are different in a more relative range. Without it QPointFs that are heavily scaled will be interpreted as identical, when they are quite different at their own scale. Task-number: QTBUG-60359 Task-number: QTBUG-62161 Change-Id: Ic4ba90e9e994aedff5548d690f053eb309b0a60b Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* macOS: Fix QFileSystemWatcher to watch paths with the same prefixMikhail Svetkin2018-05-291-28/+60
| | | | | | | | | It happens because our filesystemwatcher thinks it is subdirectory and not two different paths Task-number: QTBUG-60676 Change-Id: Ic753e9481cb26303a030044e0a5ab4d703bc529f Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* QSortFilterProxyModel: don't assert when old model gets destroyedChristian Ehrlicher2018-05-261-4/+14
| | | | | | | | | | | | | | When a new model was set with setSourceModel() and the mapping was built up, the destruction of the old model caused a reset in the QSortFilterProxyModel which lead to an empty view or an assertion. Now we properly disconnect the old model again and also clean up the old mapping/persistent indexes when a new source model is set. Task-number: QTBUG-44962 Task-number: QTBUG-67948 Task-number: QTBUG-68427 Change-Id: I2e0612899c210bde3ac0cfa59aefd78269deee5b Reviewed-by: David Faure <david.faure@kdab.com>
* Add support for QSharedPointer<cv qualified>::create()Thiago Macieira2018-05-171-0/+8
| | | | | | | | | | [ChangeLog][QtCore][QSharedPointer] Fixed a problem that made create() on a type with const qualification fail to compile. Task-number: QTBUG-68300 Change-Id: I0825ff5b5f6f4c85939ffffd152f3e55e5b9caae Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Skip tst_QProcess::processesInMultipleThreads under QEMUKari Oikarinen2018-05-142-0/+5
| | | | | | | | | | | | | | tst_QProcess hangs sometimes in QEMU. Based on my experiments in a debug VM the offending test seems to be processesInMultipleThreads(), since that was were I was able to reproduce the hanging in. Since the whole test executable hangs, blacklisting is not enough, so skip the test. Task-number: QTBUG-67760 Change-Id: I34f8852be955a8612deac22b369f68d79a139d11 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* QJsonDocument: Avoid overflow of string lengthsJüri Valdmann2018-05-142-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The added test case contains the binary JSON equivalent of ["ž"] with the modification that the string's length has been set to INT_MAX. In Value::usedStorage this length is used through the pointer d like so s = sizeof(int) + sizeof(ushort) * qFromLittleEndian(*(int *)d); Because 2 * INT_MAX is UINT_MAX-1, the expression as a whole evaluates to 2, which is considered a valid storage size. However, when converting this binary JSON into ordinary JSON we will attempt to construct a QString of length INT_MAX. Fixed by using String::isValid instead of Value::usedStorage. This method already takes care to avoid the overflow problem. Additionally, I've tried in this patch to clarify the behavior of Value::isValid a bit by writing it in a style that is hopefully more amenable to structural induction. Finally, the test case added in my previous patch had the wrong file extension and is renamed in this one. Task-number: QTBUG-61969 Change-Id: I45d891f2467a71d8d105822ef7eb1a73c3efa67a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* tst_qresourceengine: Fix test for static MSVC buildsOliver Wolff2018-05-071-0/+6
| | | | | | | | | The test relies on the existence of qt-project.org in resources. It contains mimetype data and is automatically added. For static builds on MSVC it is only added if it is actually needed though. Change-Id: Icd1d74466607196f9b635205f7cb4d9b300ec4b8 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* tst_qresourceengine: Fix test for configurations with builtin_testdataOliver Wolff2018-05-072-1/+13
| | | | | | | | | | If builtin_testdata is present additional data ends in inside of resources so that tests can access this data when needed. The addiitonal data has to be taken into account in the resource engine's test. Change-Id: I10de6b9612ca49b314d77cfadd5b2360a5d90d53 Reviewed-by: Andre de la Rocha <andre.rocha@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>