summaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | 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>
| * | tst_bench_QUuid: eliminate an unused variableEdward Welbourne2018-06-141-3/+2
| | | | | | | | | | | | | | | | | | | | | Fixes a warning while compiling. Change-Id: I6d463d5ab6e95714fcf96a883577249593490380 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@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>
* | tst_QMenu: Skip tests when window activation is not supportedJohan Klokkhammer Helsing2018-06-291-0/+18
| | | | | | | | | | | | | | | | Makes sure the tests are skipped on Wayland. Task-number: QTBUG-62188 Change-Id: Ia50d6cc02fbbac0fb6b77a16eb6372c1adb422d8 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | QIntValidator: Intermediate for number if digits equal or less than maxTuomas Heimonen2018-06-292-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Input value which is over the highest acceptable value, but consisting of a number of digits equal to or less than the max value should be considered intermediate. [ChangeLog][QtGui][QIntValidator] Input value with over the highest acceptable value, but with equal or less amount of digits than the maximum value is now considered intermediate. Task-number: QTBUG-59650 Change-Id: I71a77c9c266f0f3b62c71ac6cb995019385c1cf5 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
* | tst_qfile: Do not build helper application for winrtOliver Wolff2018-06-281-1/+2
| | | | | | | | | | | | | | | | The existence of the helper application confuses Coin which will result in an error. Change-Id: I3edf3f27acbe133b180d41a8ae950991e9a5b5da Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* | Remove leftovers of wincmdline test from test's .pro fileOliver Wolff2018-06-281-4/+1
| | | | | | | | | | | | | | The test and its helper were removed some time ago. Change-Id: Id82a2a1bf829f272e9c1447e697935934c923092 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | tst_qapplication: Fix execution for WinRTOliver Wolff2018-06-284-43/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not putting executables into debug/release subdirectories leads to the WinRT AppxManifest being overwritten by the wrong configuration. When Qt is configured with -release for example, it was possible that the debug manifest (Manifest files are always created next to the target) is written last and thus contains debug VCLibs as a dependency. Additionally the test was changed in that way, that the resulting file system structure (having helper and test application in a "top level" debug and release folder) is the same structure as in tst_qobject. Change-Id: I017b501506c54c4b89773d2b949c097598bc7049 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | tst_qthreadstorage: Fix execution for WinRTOliver Wolff2018-06-283-25/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not putting executables into debug/release subdirectories leads to the WinRT AppxManifest being overwritten by the wrong configuration. When Qt is configured with -release for example, it was possible that the debug manifest (Manifest files are always created next to the target) is written last and thus contains debug VCLibs as a dependency. Additionally the test was changed in that way, that the resulting file system structure (having helper and test application in a "top level" debug and release folder) is the same structure as in tst_qobject. Change-Id: I53d5238ff36706eb9c6f8eb04b954ec595ca30de Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | tst_qfile: Fix execution for WinRTOliver Wolff2018-06-285-12/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not putting executables into debug/release subdirectories leads to the WinRT AppxManifest being overwritten by the wrong configuration. When Qt is configured with -release for example, it was possible that the debug manifest (Manifest files are always created next to the target) is written last and thus contains debug VCLibs as a dependency. Additionally the test was changed in that way, that the resulting file system structure (having helper and test application in a "top level" debug and release folder) is the same structure as in tst_qobject. Change-Id: I55078563304959c41e0dd9bb7bb91a6fc51e005a Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | QTableView: update editor geometries directly after scrollbars are adjustedChristian Ehrlicher2018-06-281-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QTableView::doItemsLayout() updated the scroll offset for the vertical header after layouting was done. Since the scroll offset affects the viewport of the editors, the adjustment was done too late. Therefore we update the scroll offset right after the scrollbars are set inside QTableView::updateGeometries() [ChangeLog][QtWidgets][QTableView] Fixed calculating geometries for editors Task-number: QTBUG-48244 Task-number: QTBUG-49548 Change-Id: I3b057764cf99d42d861928a1c73277d34b440f9a Reviewed-by: David Faure <david.faure@kdab.com>
* | DTLS cookie auto-test - do not check the exact UDP socket errorsTimur Pocheptsov2018-06-281-2/+0
| | | | | | | | | | | | | | | | | | | | It was observed on OpenSUSE VM in CI - apparently, even after succesfull read from UDP socket error was not UnknownSocketError. While it's under investigation, the DTLS auto-test should limit itself by DTLS things and barely test IO success (socket-wise) when needed. Change-Id: I0773a02c591432b0d6c894f4131f70e41dc7ed72 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | tst_QSslSocket::qtbug18498_peek() - fix several problemsTimur Pocheptsov2018-06-281-18/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It all started from the compiler's warnings about 'this' captured but not used in lambdas. While fixing this it was noticed that 'client' socket has a lifetime longer than the test case itself (the socket has a parent, which is tst_QSslSocket object). The 'server' socket was simply leaked. So there is no guarantee that some of them (or both) later, after the test failed in one of QVERIFY, for example, does not emit 'encrypted' upon receiving more data; this will result: in reading/writing from/to invalid memory location (captured local 'encryptedCount') and/or probably exiting event loop when it's not expected to do so. Change-Id: I51de0493d989a5ba36de2cef58d35526c0e26cda Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | QRegularExpression: fix compiler warning in testGiuseppe D'Angelo2018-06-271-1/+1
| | | | | | | | | | | | | | | | QTest::addRow expects a format specifier; this usage makes GCC complain with -Wformat-security. Use the "old" newRow call instead. Change-Id: Ieed8e4f64ff5e3d0d4e87325629d20ed6839ff9d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | qmake: make argument validation of built-ins data drivenOswald Buddenhagen2018-06-271-36/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | at the time this patch was conceived, it was meant as an exercise in getting rid of usages of ProString::toQString(m_tmp). however, this was meanwhile superseded by use of toQStringView(). but the change itself should have been done a long time ago already, and there is no harm in going through with it. on the way, this also unifies and fixes some of the error messages. Change-Id: I337aff994c508df783df4794c3fa0762d83a691b Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | QByteArray: implement qstricmp with SSE 4.1Thiago Macieira2018-06-271-0/+6
| | | | | | | | | | | | | | Using SSE 4.1 because of the need for PMINUB. Change-Id: Ib48364abee9f464c96c6fffd152ebd3f8ea7fe94 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Fix QString::localeAwareCompare with composed/decomposed strings on WindowsSimon Hausmann2018-06-271-8/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With ICU and on macOS it appears that the comparison is done on a canonical form, while CompareString(Ex) does not do that, as the added test verifies. Explicit normalization fixes that. As a bonus, this also unifies the code path between regular Windows and UWP by unconditionally using CompareStringEx (which requires Vista or later). This issue surfaced while running the ECMASCript 6 Conformance Test Suite in QtQml. This re-uses the existing test for localeAwareCompare, which was disabled on Windows, macOS and Linux with ICU (the common case). Change-Id: I52440fce60b54745ead1eff005ec51e98e2a79ec Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
* | tst_qlogging: Fix execution for WinRTOliver Wolff2018-06-273-12/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not putting executables into debug/release subdirectories leads to the WinRT AppxManifest being overwritten by the wrong configuration. When Qt is configured with -release for example, it was possible that the debug manifest (Manifest files are always created next to the target) is written last and thus contains debug VCLibs as a dependency. Additionally the test was changed in that way, that the resulting file system structure (having helper and test application in a "top level" debug and release folder) is the same structure as in tst_qobject. Change-Id: I034752b4e5d22b98f6def95fb53c2b1947dded03 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | tst_qobject: Fix execution in debug&release shadow buildsOliver Wolff2018-06-264-16/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous approach of having the signalbug helper in a subdirectory did not work for shadow builds, as QFINDTESTDATA would not find that dir. By putting both test and helper into the same directory, the helper will be found in the test's current working directory. The second problem was that not putting executables into debug/release subdirectories might have lead to the WinRT AppxManifest being overwritten by the wrong configuration. When Qt is configured with -release for example, it was possible that the debug manifest (Manifest files are always created next to the target) is written last and thus contains debug VCLibs as a dependency. Change-Id: Ia39315432860405642542449296c16dd2ae9fa9f Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* | winrt: tst_qdoublespinbox: Remove QEXPECT_FAIL for editingFinishedOliver Wolff2018-06-261-7/+0
| | | | | | | | | | | | | | | | Behavior has been fixed. Task-number: QTBUG-68297 Change-Id: I217fffc3c9a189d48e673356b1123f9eda8af94a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | xcb: rely on WM_SIZE_HINTS gravity to handle x,y positioningGatis Paeglis2018-06-261-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The original code was added by b316c3ac5e4acac75505bfd77677cecc181599a (in 2012). This patch changes two things: 1) We now rely on WM to position a window based on the set gravity. It should not be necessary to calculate coordinates manually as was done in windowToWmGeometry(). We don't even know the decoration size before the window is mapped. 2) We now update gravity whenever needed instead of hardcoding based on what Qt APIs (setGeometry vs setFramePosition) where used to set the initial window position. The patch from b316c3a says: "Determine gravity from initial position. Do not change later as it will cause the window to move uncontrollably" Since it did not elaborate on the situation, we can only assume that it was caused by another bug in Qt at the time or perhaps a broken WM. From [1]: "Applications are free to change their win_gravity setting at any time. If an Application changes its win_gravity then the Window Manager should adjust the reference point, so that the client window will not move as the result." Tested on Ubuntu/Unity, KDE/KWin, Gnome-shell/Mutter, Lubuntu/OpenBox. Works as expected everywhere expect Unity. Unity seems to ignore XCB_GRAVITY_STATIC and treats it as XCB_GRAVITY_NORTH_WEST, which means that setGeometry/setFramePosition produce the same placement on this WM (the behavior was the same also before this patch). P.S. Also renamed xRect -> rect, which was a leftover from ae5f2a66720a4bb22c120bd7d1564652cac00367 With this change we can un-blacklist QWidget save/restore geometry auto tests. [1] https://specifications.freedesktop.org/wm-spec/latest/ar01s09.html Task-number: QTBUG-66708 Change-Id: I381eef5d34dddb04de16a897ce5540b9c430b216 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
* | tests: un-blacklist tst_QSizeGrip::hideAndShowOnWindowStateChange on xcbGatis Paeglis2018-06-251-2/+0
| | | | | | | | | | | | | | | | According to local testing and Grafana statistics for the period of the last 1 year, this test has not been failing on XCB. Change-Id: I86640b22c9e7a258965805a661e1e8c3ead8d012 Reviewed-by: Kari Oikarinen <kari.oikarinen@qt.io>
* | tests: un-blacklist tst_QGestureRecognizer::panGesture on xcbGatis Paeglis2018-06-251-2/+0
| | | | | | | | | | | | | | | | According to local testing and Grafana statistics for the period of the last 1 year, this test has not been failing on XCB. Change-Id: Ia7fda4c42d4aeaecd4485d18383cf46bf6af63d1 Reviewed-by: Kari Oikarinen <kari.oikarinen@qt.io>
* | widgets: fix QWidget::save/restoreGeometry()Gatis Paeglis2018-06-253-17/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QWidget::restoreGeometry() is calling QWidget::move() with restoredFrameGeometry, which internally calls setGeometry() and sets positionPolicy = QWindowPrivate::WindowFrameExclusive, which is invalid: restoredFrameGeometry is WindowFrameInclusive geometry. QPA plugins rely on correctly set policies when interpreting x,y. QWidget::move() was not designed for this AFAICT, so making it to accept frame geometry is no-op. It is widely used legacy code, changing it could cause regressions. Save/restore API was introduced in Qt 4.2, at that time we did not have APIs like QWindow::setFramePosition(), so its unclear why geometry() was not stored instead. The documentation also is somewhat unclear: "[..] save the geometry when the window closes [..]" Frame or client geometry? It does not specify. And from the code we see that frame geometry was passed as client geometry, not making the original intention clearer. Besides that, restoreGeometry() is full of other undocumented assumptions where to place windows and when to fail (fortunately its easy to write your own save/restore logic). Added a Qt 6 note in the source code. What this patch changes: Now we store geometry() in saveGeometry() and use that value in restoreGeometry() by setGeometry(). This does not cause any behavior difference in window positioning (tst_QWidget::saveRestoreGeometry still works). Geometry restored from data saved with earlier versions of saveGeometry() might be positioned at: x + leftMargin, y + topMargin. This patch makes tst_QWidget::saveRestoreGeometry to always fail instead of being flaky. Blacklisting for XCB instead of selected distros. Also enabled excluded code paths for XCB on tst_QDockWidget::restoreDockWidget(). It does not seem to be flaky, maybe it was in 2015, but lot of things have changed since then. Task-number: QTBUG-66708 Change-Id: Ic86a6fd091e2c71b7550b2f476386da704253cd4 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | Fix window(child)geometry manual testsTor Arne Vestbø2018-06-252-12/+12
| | | | | | | | | | | | Task-number: QTBUG-67632 Change-Id: I16482d3501cc7c7893d6eac4617c77dc70e1e215 Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
* | widgetwindow: send DragMove for every DragEnterGatis Paeglis2018-06-251-0/+2
| | | | | | | | | | | | | | | | | | | | ... as specified in the documentation. This was a regression from Qt4 and can cause mouse cursor flickering durig dragging on e.g. custom widget where some areas of the widget do not accept drag-and-drop. Task-number: QTBUG-67155 Change-Id: Iaa6f9407181931ed8e3d6a8fec13fd59d3c8625d Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | dnd: send DragEnter and DragMove on DnD startGatis Paeglis2018-06-251-0/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was a regression from Qt4 and also is the documented behavior. In addition this patch fixes various issues with cursor shape updating that were discovered along the way and that are necessary for testing the new changes. The code in QGuiApplicationPrivate::processDrag() also needed a fixup, particularly the resetting of QGuiApplicationPrivate::currentDragWindow. Without this fix we would get DragMove (the one that immediately follows the DragEnter) only for the first DragEnter event. For example when dnd starts on mouse press then for mouse click we would get: <click> DragEnter->DragMove->DragLeave <click> DragEnter->DragLeave but the expected is: <click> DragEnter->DragMove->DragLeave <click> DragEnter->DragMove->DragLeave Task-number: QTBUG-34331 Change-Id: I3cc96c87d1fd5d1342c7f6c9438802ab30076e9e Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* | QByteArray: add compare() with case sensitivity optionsThiago Macieira2018-06-221-3/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | Need to do the same for startsWith() and endsWith(). indexOf() is a lot harder. [ChangeLog][QtCore][QByteArray] Added compare(), which takes Qt::CaseSensitivity as one of the parameters. This function is more efficient than using toLower() or toUpper() and then comparing. Change-Id: Ib48364abee9f464c96c6fffd152e69bde4194df7 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* | QListView: do not delete item on internal moveChristian Ehrlicher2018-06-221-0/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When an internal DnD occoures in IconMode, the item is moved to it's new place but the logic in filterStartDrag() has no clue about the fact that an internal move happend. Therefore the item gets deleted. Fix it by changing the event's drop action to Qt::CopyAction to avoid the deletion as it is done within QListWidget DnD code. [ChangeLog][QtWidgets][QListView] Do not delete item on internal move. Task-number: QTBUG-67440 Change-Id: I873d3c9fa76e107e108d9af0dcf8cecd1e18a18f Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
* | QRegularExpression: refactor pattern optimizationGiuseppe D'Angelo2018-06-229-291/+147
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After the move to PCRE2, optimizing patterns has been a thorn in the side due to the fact that PCRE2's JIT compiler modifies the pattern object itself (instead of returning a new set of data, like PCRE1 did). To make this fit with the existing behavior, a read/write lock was introduced, with the read part locking when matching and the write when compiling (or JIT-compiling) the pattern. This locking strategy however introduced a performance issue, as we needed: * to acquire a write lock to compile/optimize the pattern (incl. the common case where the pattern was already compiled, so bailing out immediately); * to acquire a read lock during the actual match, to prevent some other thread from optimizing the pattern under our nose. This was due to the "lazy" optimization policy of QRegularExpression -- optimize a pattern after a certain number of usages. The excessive amount of locking effectively limited scalability. Simplify the code, and drop that policy altogether: since JIT compiling in PCRE2 is faster and pretty much "always recommended", just always do it for any pattern (unless it gets disabled via env variables) when compiling it. This allows to go back to a plain QMutex, and now the actual matching doesn't require acquiring any locks any longer. Of course, there is still a mutex acquired just before matching for checking whether the pattern needs recompiling in the first place; this can probably be further optimized via double-checked locking (using atomics), but not doing it right now. This shift makes a couple of pattern options controlling optimization useless, and allows to centralize the 3 QRegularExpression tests (which were actually the very same test, just setting slightly different optimizations strategies). While at it, install a stress-test for threading, with the idea of running it under TSAN or helgrind to catch bugs in QRegularExpression's locking. [ChangeLog][Important Behavior Changes][QRegularExpression] Regular expressions are now automatically optimized (including JIT compiling) on their first usage. The pattern options OptimizeOnFirstUsageOption and DontAutomaticallyOptimizeOption no longer have any effect, and will get removed in a future version of Qt. QRegularExpression::optimize() can be still used to compile and optimize the regular expression in advance (before any match), if needed. Task-number: QTBUG-66781 Change-Id: Ia0e97208ae78255fe811b78029ed01c204e47bd2 Reviewed-by: David Faure <david.faure@kdab.com>
* | Add ObjectMode coordinate mode to QGradientEirik Aavitsland2018-06-222-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ObjectBoundingMode coordinate mode of QGradient allows specifying the gradient coordinates relative to the object being painted. But if the gradient brush also has a transformation, that transformation is applied in the logical, not object, coordinate space. That behavior is counterintuitive. However, changing it now would break existing code. Instead, we introduce a new coordinate mode enum with the expected behavior, and document the old one as deprecated. This prepares to fix the bugs below in qtsvg, by making it possible to specify the same behavior in Qt as SVG has. [ChangeLog][QtGui][QGradient] Add ObjectMode coordinate mode [ChangeLog][Important Behavior Changes] QDataStream version bumped up to 18 to account for changes in the serialization of QGradient. Task-number: QTBUG-59978 Task-number: QTBUG-67995 Change-Id: I8820a2555359812f3e1a46e37d6ac2cc29a2091d Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Fix tst_qtextbrowser for configurations with builtin testdataOliver Wolff2018-06-222-13/+25
| | | | | | | | | | Change-Id: I1dc17642934e8fd2d5e3b7f245e1fb0c26b8e75a Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* | winrt: Make widgets/widgets auto tests passOliver Wolff2018-06-2224-2/+185
| | | | | | | | | | | | Task-number: QTBUG-68297 Change-Id: I64d6e89e515a6284fbd8625cded22511de783481 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | winrt: make widgets/kernel auto tests passOliver Wolff2018-06-226-6/+125
| | | | | | | | | | | | Task-number: QTBUG-68297 Change-Id: I96839927fd98e2c6e533a2a3587ae66e599ec8fc Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* | winrt: Make itemview auto tests passOliver Wolff2018-06-229-2/+75
| | | | | | | | | | | | Task-number: QTBUG-68297 Change-Id: I285dca678c34fd4170686635c7541e598442aa29 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* | winrt: make dialog auto tests passOliver Wolff2018-06-224-2/+21
| | | | | | | | | | Change-Id: I2d31c2e9513944ba722b59ac69e91973a7aabba5 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | winrt: Fix/blacklist failing text related auto testsOliver Wolff2018-06-223-2/+20
| | | | | | | | | | | | | | | | | | winrt still has some issues with some character sets. These tests are skipped/blacklisted for now and will be investigated. Task-number: QTBUG-68297 Change-Id: I898e3383a4673b6dc87815a75e705f3302a4cbba Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | winrt: Skip QGuiApplication auto tests that do no applyOliver Wolff2018-06-221-0/+6
| | | | | | | | | | Change-Id: I618eb0d6aa0bb09ab635f56e64c8d0df33c2dab3 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* | tst_qresourceengine: Fix position of testqrc for builtin testdataOliver Wolff2018-06-221-1/+1
| | | | | | | | | | | | | | | | A change between 5.11 and dev has modified the position of testqrc inside the resource list. Adapt accordingly. Change-Id: I697103f4b8c9e93bb613e814c47a4e68e9a997ab Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* | winrt: Skip network auto tests for nowOliver Wolff2018-06-222-2/+2
| | | | | | | | | | | | | | | | | | | | In order to get winrt CI checked, the network tests are being skipped for now. As soon as winrt has landed in CI, these will be fixed and re-enabled. Task-number: QTBUG-68297 Change-Id: I692d72f9e0c97840bd7396551b4e707eec845ebb Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* | winrt: Make tst_qwindow passOliver Wolff2018-06-222-2/+35
| | | | | | | | | | | | Task-number: QTBUG-68297 Change-Id: I9b5e90faa60a4fa2063b217db3b59ea3e89e4444 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
* | Add tst_QDtls auto-testTimur Pocheptsov2018-06-2115-1/+1583
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The test is somewhat similar to tst_QSslSocket but is smaller (in scope, will grow in future), it has no QTcpSocket/QAbstractSocket-specific things and has more DTLS-specific code. At the moment it does not use our network test server, all work is done in the same process with two QUdpSockets and two QDtls objects. We test (both on client/server ends): - parameters validation (for all functions that do this) and the correctness of error codes/handshake states - handshake procedure (with/out certificates and with pre-shared keys) - timeouts and re-transmissions during (D)TLS handshake - peer verification (and related verification errors) - aborted/resumed handshake - encrypted I/O - DTLS shutdown For now, this test is OpenSSL-only. Task-number: QTBUG-67597 Change-Id: I27006bfe3d6c02b89596889e8482a782c630402a Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* | QDtlsClientVerifier - add auto-testTimur Pocheptsov2018-06-193-2/+502
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This part of DTLS is relatively easy to test: we never do a complete handshake. Certificates, verification, ciphers, etc. - do not matter at this stage (to be tested in tst_QDtls). Errors are mostly insignificant and can be ignored or handled trivially. The test is OpenSSL-only: SecureTransport failed to correctly implement/ support server-side DTLS, the problem reported quite some time ago and no fixes from Apple so far. Task-number: QTBUG-67597 Change-Id: I21ad4907de444ef95d5d83b50083ffe211a184f8 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | QTreeWidget: Keep items hidden even if their parents are reparentedAndy Shaw2018-06-151-0/+30
| | | | | | | | | | | | | | | | | | | | | | When an item is explicitly hidden, then it should stay that way even if its parent is reparented. The item itself needs to be explicitly shown for it to be made visible. Task-number: QTBUG-54843 Change-Id: I0c6eea9a936f82d5874e3246292bd16365440411 Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* | Blacklist tst_QMenuBar::check_menuPositionJoni Jantti2018-06-151-0/+1
| | | | | | | | | | | | | | | | This autotest fails on Ubuntu 18.04 builds. Task-number: QTBUG-68865 Change-Id: Ia245f72826be071e5617c417e3d9f50bdcc689a9 Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
* | Blacklist tst_QWidget_window::setWindowStateJoni Jantti2018-06-151-0/+1
| | | | | | | | | | | | | | | | This autotest fails on Ubuntu 18.04 builds. Task-number: QTBUG-68864 Change-Id: Ib4baa458b80eea5861e89145b85d865e9a78989c Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
* | Blacklist tst_QWidget::updateWhileMinimizedJoni Jantti2018-06-151-0/+1
| | | | | | | | | | | | | | | | This autotest fails on Ubuntu 18.04 builds. Task-number: QTBUG-68862 Change-Id: Ib02c28ede135c9ba4303dbf0224b32b080762a31 Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>