summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/kernel
Commit message (Collapse)AuthorAgeFilesLines
* tst_QWidget: Fix UB (invalid member access) in ↵Marc Mutz2016-10-121-7/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | EnterTestMainDialog::eventFilter() Found by UBSan: tst_qwidget.cpp:10207:29: runtime error: member access within address 0x6060000e8880 which does not point to an object of type 'EnterTestModalDialog' 0x6060000e8880: note: object is of type 'QWidget' eb 00 80 45 10 4b 32 ab 11 2b 00 00 80 df 08 00 60 61 00 00 c0 4c 32 ab 11 2b 00 00 00 00 be be ^~~~~~~~~~~~~~~~~~~~~~~ vptr for 'QWidget' #0 0x6ca13f in EnterTestMainDialog::eventFilter(QObject*, QEvent*) tst_qwidget.cpp:10207 #1 0x2b11b8bc90c3 in QCoreApplicationPrivate::sendThroughApplicationEventFilters(QObject*, QEvent*) qcoreapplication.cpp:1081 #2 0x2b11a3c49b4a in QApplicationPrivate::notify_helper(QObject*, QEvent*) qapplication.cpp:3716 #3 0x2b11a3c8ec72 in QApplication::notify(QObject*, QEvent*) qapplication.cpp:3704 #4 0x2b11b8bccd0f in QCoreApplication::notifyInternal2(QObject*, QEvent*) qcoreapplication.cpp:988 #5 0x2b11aea5c34d in QCoreApplication::sendEvent(QObject*, QEvent*) qcoreapplication.h:231 #6 0x2b11aea5c34d in QGuiApplicationPrivate::_q_updateFocusObject(QObject*) qguiapplication.cpp:3690 #7 0x2b11aea61360 in QGuiApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) .moc/moc_qguiapplication.cpp:177 #8 0x2b11b8d1dc86 in QMetaObject::activate(QObject*, int, int, void**) qobject.cpp:3787 #9 0x2b11aea784a3 in QWindow::focusObjectChanged(QObject*) .moc/moc_qwindow.cpp:760 #10 0x2b11a3fb24f2 in QWidget::clearFocus() qwidget.cpp:6705 #11 0x2b11a3fc87b1 in QWidget::~QWidget() qwidget.cpp:1608 #12 0x2b11a526688c in QDialog::~QDialog() qdialog.cpp:352 #13 0x6c43e2 in EnterTestModalDialog::~EnterTestModalDialog() tst_qwidget.cpp:10160 #14 0x6c43e2 in EnterTestModalDialog::~EnterTestModalDialog() tst_qwidget.cpp:10160 #15 0x492be3 in EnterTestMainDialog::buttonPressed() tst_qwidget.cpp:10188 #16 0x492be3 in EnterTestMainDialog::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) .moc/tst_qwidget.moc:2056 #17 0x2b11b8d1dc86 in QMetaObject::activate(QObject*, int, int, void**) qobject.cpp:3787 #18 0x2b11a45cb833 in QAbstractButton::clicked(bool) .moc/moc_qabstractbutton.cpp:307 #19 0x2b11a45cd54b in QAbstractButtonPrivate::emitClicked() qabstractbutton.cpp:411 #20 0x2b11a45df73a in QAbstractButtonPrivate::click() qabstractbutton.cpp:404 [...] #41 0x6bb2cf in tst_QWidget::taskQTBUG_27643_enterEvents() tst_qwidget.cpp:10249 [...] Fix by checking the event type first, and accessing modal->button only if it's QEvent::Enter. Change-Id: I2c7df3a1f43ecbfe14741b5861729078a91a32d6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* tst_QShortcut: Fix UB (invalid cast) in shortcutDestroyed()Marc Mutz2016-10-051-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The slot is invoked from QObject::destroyed(), which is emitted from ~QObject. By that time the object is no longer a QShortcut, so the static_cast it invalid. Found by UBSan: tst_qshortcut.cpp:1210:53: runtime error: downcast of address 0x6020000289d0 which does not point to an object of type 'QShortcut' 0x6020000289d0: note: object is of type 'QObject' 10 00 80 17 c0 ce 63 df 93 2b 00 00 b0 02 00 00 d0 60 00 00 02 00 00 00 ff ff ff 04 04 00 00 00 ^~~~~~~~~~~~~~~~~~~~~~~ vptr for 'QObject' #0 0x42b3bb in tst_QShortcut::shortcutDestroyed(QObject*) tst_qshortcut.cpp:1210 #1 0x446cc9 in tst_QShortcut::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) .moc/tst_qshortcut.moc:186 #2 0x2b93dba52c86 in QMetaObject::activate(QObject*, int, int, void**) qobject.cpp:3787 #3 0x2b93dba55400 in QObject::destroyed(QObject*) .moc/moc_qobject.cpp:213 #4 0x2b93dba8d80d in QObject::~QObject() qobject.cpp:967 #5 0x2b93c6b6e032 in QShortcut::~QShortcut() qshortcut.cpp:476 #6 0x2b93c6b6e370 in QShortcut::~QShortcut() qshortcut.cpp:481 #7 0x42a5de in void qDeleteAll<QList<QShortcut*>::const_iterator>(QList<QShortcut*>::const_iterator, QList<QShortcut*>::const_iterator) qalgorithms.h:317 #8 0x42a5de in void qDeleteAll<QList<QShortcut*> >(QList<QShortcut*> const&) qalgorithms.h:325 #9 0x42a5de in tst_QShortcut::clearAllShortcuts() tst_qshortcut.cpp:1136 Fix by replacing QVector::replaceAll() with the erase-remove idiom, which does not require the cast, because it can perform mixed-type lookups. Change-Id: I4251c1895fa4398023f489dbfd7108d90c1a6c94 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Plug memleaks in tst_QWidgetMarc Mutz2016-09-281-3/+7
| | | | | | | | | | | | We need to delete the style returned from QStyleFactory::create() ourselves, so put them into a QScopedPointer. The alternative would have been to create this once, as a member of tst_QWidget, but this is the minimal approach that ensures behavior just as the old code, but without the leak. Change-Id: I527f1031c57be6f05942f4acc057e7dae1af2571 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* tst_QApplication: Fix UBs (invalid cast) in focusMouseClick()Marc Mutz2016-09-281-22/+3
| | | | | | | | | | | | | | | | | | | Found by UBSan: tst_qapplication.cpp:1754:48: runtime error: member access within address 0x7ffda11f2220 which does not point to an object of type 'SpontaneousEvent' 0x7ffda11f2220: note: object is of type 'QMouseEvent' The code attempted to model the layout of a QEvent with another class that allows public access to the memory location that (hopefully) corresponds to QEvent::spont, gaining access by casting a QEvent object to that specifically-crafted class. Fix by the using the existing QSpontaneKeyEvent::setSpontaneous() call, which, despite its name, works for all QEvent subclasses, and which has already been fixed to not invoke UB (in bc087db). Change-Id: I7db8b8a8a823f7d61ab17375142d19dc3874fea5 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Plug memleaks in tst_QGridLayoutMarc Mutz2016-09-271-3/+5
| | | | | | | | | | | | | In setMinAndMaxSize(), QLayout::removeItem() doesn't actually delete the removed item. We have to do that ourselves (RAII not necessary, since the spacer is owned by the layout until we remove it). In distributeMultiCell(), allocate the QStyle subclass on the stack so the compiler cleans it up properly on all exit paths (was: unconditional leak). Change-Id: I24f8f11af2bfc5abf78f9aab0139dcfe0187402b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Plug memleaks in tst_QBoxLayoutMarc Mutz2016-09-271-2/+2
| | | | | | | | | | | | In sizeConstraints(), QLayout::takeAt(), as the name suggests, doesn't actually delete the item. We have to do that ourselves. Likewise, in replaceWidget(), QLayout::replaceWidget() also doesn't delete the affected item, but returns it. That's spectacularly bad API design, but the leak is easy to fix: just delete the return value. Change-Id: I8dcbc59898949eabce766cda2c0edae2e1f2799e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* QtWidgets: Fix enter/leave events on popup menusBłażej Szczygieł2016-09-151-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | If the sloppy menu popups - send the leave event to the last active menu (except Cocoa), because only currect active menu gets enter/leave events (currently Cocoa is an exception). Check that the menu really has a mouse before hiding the sloppy menu - don't rely on enter events. This patch removes some unnecessary synthetic mouse enter/leave events from QMenu which causes event duplications with different mouse cursor position. Refactor sloppy menu timer handling - start or restart timers on mouse move events. Enter/leave events are not reliable. Fixes: - better enter/leave events handling for native widget actions, - reduce duplicated enter/leave events for menu actions, - better handle torn off sloppy menus. Partially reverts: 0ed68f3f58c63bd1496cb268bd83881da180051f Amends: 57ecd5aeeb1f609206933be66b92fcdf703703d7 Task-number: QTBUG-53068 Change-Id: I7ad56ac1619db124915d373fab82d0512d44c90e Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* QtWidgets: Send show/hide event to children on restore/minimizeBłażej Szczygieł2016-09-121-5/+43
| | | | | | | | | | | | | | | | | | | | | Child widgets should get the show/hide event when the TLW changes its state, because child widgets are also visible or invisible. This restores the Qt4 behavior (fixes the Qt4->Qt5 regression). Restoring/minimizing the TLW now sends the spontaneous show/hide event. Show events are now handled also in the expose event handler in the QWidgetWindow class, because the show event must occur before the expose event to avoid possible flicker e.g. the OpenGL content. This can happen e.g. on XCB platform. If the "WindowStateChange" event occur before the expose event (e.g. Windows platform) then the code in expose event handler will be ignored to prevent event duplications. Added autotest. Task-number: QTBUG-50589 Change-Id: Ie9a9329b1f29bff876de28d5948d0d5fb6bc1f05 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Remove tst_QWidget::immediateRepaintAfterShow().Friedemann Kleint2016-06-041-20/+0
| | | | | | | | | | | | | | | | | | | | | | | | It tested whether a paint event was received when calling QWidget::repaint() right after QWidget::show() without waiting for the window to be exposed. This caused a QEvent::UpdateRequest to be sent, which ended up in QWidgetBackingStore::sync() which returns after checking QWidgetBackingStore::discardSyncRequest(), since Qt::WA_Mapped is not set on the non-exposed widget. The test passed on Windows since it contains one call to QCoreApplication::processEvents() which causes the the initial WM_PAINT message to be processed in QWindowsWindow::handleWmPaint() which calls QWindowSystemInterface::flushWindowSystemEvents() and causes Qt::WA_Mapped to be set. This seems counter to the intention of the test. Remove the test since it won't pass anymore in Qt 5 unless Qt::WA_Mapped is set. Task-number: QTBUG-26424 Task-number: QTBUG-38327 Task-number: QTBUG-39842 Change-Id: Iede026d52825dcf1f2e9014a316d26d260309214 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* QtWidgets: Reduce paint events when resizing native widgetBłażej Szczygieł2016-05-191-0/+24
| | | | | | | | | | | | | | | | | | | | | | This patch reduces paint events by removing code which sets native widgets dirty in QWidgetWindow::handleExposeEvent. Native widgets are also marked dirty in QWidgetPrivate::drawWidget, so it is enough for proper painting. This restores Qt4 behavior when one resize means one repaint for native widgets. Without this patch the native widget is marked as dirty on every expose event, so one repaint is from syncBackingStore and second (or more) is from marking the widget dirty explicitly. This patch improves performance of native widgets and it also reduces locks when paint event is v-synced, e.g. on OpenGL swap buffers or on any other technology like VDPAU, VA-API, etc. Added autotest for checking number of paint events for native widgets. Task-number: QTBUG-50796 Change-Id: I4e1649069e2e73d15b038fd1834d0551915252ee Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Enable movedAndResizedAttributes test.Morten Johan Sørvig2016-05-101-5/+0
| | | | | | | | The test passes on OS X now. Task-number: QTBUG-8941 Change-Id: I7b57dc30ede7c1ed0bcb8bacb458ea56f222d987 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
* tst_qwidget: remove sheetOpacity testMorten Johan Sørvig2016-05-101-13/+0
| | | | | | | | Sheets are no longer transparent on newer OS X versions. Change-Id: Iaaed5aea9c9b130a5d991acd36717b76c3927cfb Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
* OS X: Remove unified toolbar test.Morten Johan Sørvig2016-05-102-42/+1
| | | | | | | | | The Qt 5 unified toolbar implementation does not move the toolbar to the “non-client” area. This test is no longer relevant. Change-Id: Ia32de2260f8ef400a0dc5acf3e5e3ff59083657a Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
* tst_QWidget: make it stable on OS XTimur Pocheptsov2016-05-062-23/+53
| | | | | | | | | | | | | | | | | This patch QSKIPs all tests that: - take to much time sitting in some QTRY_VERIFY or similar before failing - result in 'not in fullscreen mode' warning (with PASS) - thus completely flaky. - Where previously determined to not apply to OS X using QT_OS_MAC The intent is to make the test run-time more reasonable, both when running the test locally and on the CI system. Reduce the BLACKLIST - to avoid a 'double elimination' the tests that are skipped now, should not be BLACKLISTed so that we fix them for good. Task-number: QTBUG-52974 Change-Id: I34dc2010d0debc6b5b99f2375a6da902b7a17b29 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Change Q_OS_MAC -> Q_OS_OSXMorten Johan Sørvig2016-05-041-28/+28
| | | | | | | | | Q_OS_DARWIN is the general replacement for Q_OS_MAC, but most/all of the MAC sections in this test are OS X specific. Change-Id: Ic54af9d3dce1e1952a57e15b74acdedf2af60c79 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
* Add missing Q_DECL_OVERRIDEsMorten Johan Sørvig2016-05-041-3/+3
| | | | | Change-Id: I54552d9fdd0bc8871247246aea1da14848c4f7a0 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
* tst_QWidget/XCB: Use bottom/right corner of screen as safe cursor position.Friedemann Kleint2016-04-261-7/+15
| | | | | | | | | | | | Pushing the mouse rapidly to the top left corner causes KDE / KWin to switch to "Present all Windows" (Ctrl+F9) mode, showing all windows. This has been observed to be triggered programmatically by QCursor::setPos(0, 0) if there is no other window beneath and apparently depending on the perceived mouse "speed". Suppress this by using the bottom right corner for XCB. Change-Id: Id18d2f45a095ed4d4f365f010cf45a20b0d9435e Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
* QWidget::grab(): Use device pixel ratio.Friedemann Kleint2016-04-221-3/+18
| | | | | | | | | | Return pixmaps with device pixel ratio similar to QScreen::grabWindow(), cf c0963486ce689e778d59dafd26d36d8ef9e3ee74. Adapt kernel tests accordingly. Task-number: QTBUG-52137 Change-Id: I9ce276d5e2d87ae0d39c8639267d1ac283fed854 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Autotest: Remove blacklistingsSimo Fält2016-04-011-3/+0
| | | | | | | | | Removing blacklistings from tests that are now passing. Change-Id: I00aa1ce286d3e7715fb4bee4a36d0d77049a29ae Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com> Reviewed-by: Tony Sarajärvi <tony.sarajarvi@theqtcompany.com>
* QtWidgets: Add autotests for Qt::WA_OutsideWSRange flagBłażej Szczygieł2016-03-291-0/+66
| | | | | | | | | Task-number: QTBUG-48321 Task-number: QTBUG-49445 Task-number: QTBUG-51788 Change-Id: I6c04919ff788cad684df69d0aee73d86fd985bb9 Reviewed-by: Dmitry Shachnev <mitya57@gmail.com> Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
* Add auto-test for crash in QCocoaBackingStoreGabriel de Dietrich2016-03-211-0/+45
| | | | | | | | | This issue has been solved some time between 5.6 and 5.6.0. We just make sure to protect against further regressions. Change-Id: Ic3fdad901ed5f36792ae04b3d65047da95eea668 Task-number: QTBUG-50561 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* Make an implicit grab on TouchBegin for a widget subscribed to a gestureAlexander Volkov2016-03-051-0/+48
| | | | | | | | | | | | | | | | | | | | | A receiver of TouchUpdate and TouchEnd events is determined either as a widget which has an implicit grab for the touch point or as a visible widget if there are no implicit grabs. The events are sent if the receiver has accepted TouchBegin event or if it is subscribed to a gesture. Before sending the events to the widget they are delivered to the gesture manager. Thus, in order to detect gestures for the widget, it must own an implicit grab or be a visible widget. It can happen that the parent widget is subscribed to a gesture, but doesn't accept TouchBegin event, as in the case of QScrollArea. Then it will not get an implicit grab and gesture detection will be impossible. Activate an implicit grab for such widgets. Also don't send TouchUpdate and TouchEnd to them, because it's against the documentation. Task-number: QTBUG-43277 Change-Id: Id767583991def6d76c48ad15eb39af822cad115d Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
* QScreen::grabWindow(): Scale the coordinates.Friedemann Kleint2016-02-261-2/+4
| | | | | | | | | | | | | | The coordinates need to be scaled before calling QPlatformScreen::grabWindow() On return, set a devicePixelRatio on the pixmap. Adapt the QWidget test to scale the grabbed pixmaps. Fixes pixeltool displaying the wrong part of the screen when High DPI scaling is in effect. Task-number: QTBUG-46615 Change-Id: I12de7df0da669230cf0fae74f4a42d43f061d5ff Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
* Autotest: Enable make check on rhel 7.1Simo Fält2016-02-111-0/+4
| | | | | | | | Blacklisting all tests, which were failing locally. Task-number: QTQAINFRA-949 Change-Id: I40c25ab0155b8977596d61297ab252a546515f87 Reviewed-by: Tony Sarajärvi <tony.sarajarvi@theqtcompany.com>
* Clean up tst_qwidgetwindowBłażej Szczygieł2016-02-021-25/+13
| | | | | | | | | | | | | Rename TestWidget to PaintTestWidget, because this class tests only whether paint event occurs. Remove unused variables. Remove reset() method, because there is no need to reset only one variable in class method. Change-Id: I8f442c73598e3431baf2b0433fefc157d3f10ea6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* QtWidgets: Allow to cover up the window container by another widgetBłażej Szczygieł2016-01-281-0/+18
| | | | | | | | | | When the window container already has a window handle, allow embedded windows to use this handle as a parent. This change will allow proper window stacking and clipping. Task-number: QTBUG-50477 Change-Id: I8d656ecb99e0c42ae7a7ac461e5e5b5d801f5493 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Remove some old QT_MAC_USE_COCOA cruftTor Arne Vestbø2016-01-281-4/+0
| | | | | Change-Id: Ib9cb57563274c722023084e94f2cd439088366a8 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
* Fix reentrancy regression in QShortcutMap after c7e5e1d9eTor Arne Vestbø2016-01-121-2/+21
| | | | | | | | | | | When closing a popup dialog using a shortcut, when the popup was originally opened using a shortcut, the closing-shortcut would interfere with the state of the first shortcut, and we ended up sending a key event for the original shortcut. Task-number: QTBUG-50360 Change-Id: I62e5ddb9ca43b28519ede629775bc0d7598dccc4 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Fix compilation for WinRTMaurice Kalinowski2015-12-142-4/+7
| | | | | | | | TEST_HELPER_INSTALLS cannot be used on platforms with no QProcess support. Change-Id: I2a6a283d94ca4487fc628449c53fc37140dd291d Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
* Skip testing empty window sizes on WindowsJan Arve Saether2015-12-041-1/+16
| | | | | Change-Id: Ib4f3bc63196527583a274180c40d0f7847e13f55 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* Windows QPA: Fix window state transition from minimized to normal.Friedemann Kleint2015-12-011-4/+0
| | | | | | | | | | Use SW_SHOWNORMAL instead SW_SHOWNOACTIVATE as a parameter to ShowWindow() to enforce the window to be restored to normal state, even if the state before minimized was maximized. Task-number: QTBUG-48449 Change-Id: I9436623b1495f574a72050e50e8b31bfc83ced5c Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
* xcb: Add support for Qt::WA_ShowWithoutActivatingAlexander Volkov2015-10-081-23/+23
| | | | | | | | Also re-enable and update the tst_showWithoutActivating test. Change-Id: Ic7fa9b1bf7637e4661c593aaeabb3220cd4204ff Task-number: QTBUG-46098 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Tests: Harmonize code checking on platform name.Friedemann Kleint2015-09-242-2/+2
| | | | | | | | Use case insensitive comparison and static invocation of QGuiApplication::platformName(). Change-Id: I8c197c7b4f0669f71c019fbcee09a0f03dfab399 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
* tests/auto/widgets: Replace Q[TRY]_VERIFY(a == b) by Q[TRY]_COMPARE(a, b).Friedemann Kleint2015-07-3110-115/+115
| | | | | | | | | | | | - Replace Q[TRY]_VERIFY(pointer == 0) by Q[TRY]_VERIFY(!pointer). - Replace Q[TRY]_VERIFY(smartPointer == 0) by Q[TRY]_VERIFY(smartPointer.isNull()). - Replace Q[TRY]_VERIFY(a == b) by Q[TRY]_COMPARE(a, b) and add casts where necessary. The values will then be logged should a test fail. Change-Id: Ie29640451dddeb58342038a8cd5fac152cce39e5 Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
* high-DPI tweaks for autotestsMorten Johan Sørvig2015-07-302-8/+34
| | | | | | | Task-number: QTBUG-46615 Change-Id: I724f56fb3bc1a4b671b5d010765ef4e354412e2e Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* tst_QApplication: Remove test windowsCommandLine().Friedemann Kleint2015-07-294-88/+0
| | | | | | | | | | | | | According to history, the test was supposed to verify the correct parsing of the command line on Windows by the qWinCmdLine() function in corelib. It did not test anything since the test application printed out argv[1] instead of QCoreApplication::arguments()[1]. Since qWinCmdLine() has been replaced by the WinAPI CommandLineToArgvW(), the test no longer makes sense and also starts to fail then warnings are printed to the error output. Change-Id: Idf642783ebb56eaa8fba9004174557485563a84f Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* Tests: Replace Q[TRY]_VERIFY(v == true|false) by QVERIFY(v)|QVERIFY(!v).Friedemann Kleint2015-07-271-7/+7
| | | | | | | | Preparing the replacement of Q[TRY]_VERIFY(a == b) by Q[TRY]_COMPARE(a, b) for non-boolean types. Change-Id: Iab6ec2f0a89a3adc79e18304573994965013dab5 Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.5' into HEADSimon Hausmann2015-07-172-4/+42
|\ | | | | | | | | | | | | Conflicts: src/plugins/platforms/windows/qwindowsopengltester.cpp Change-Id: Ia7abeba9395ccf84e2fa81b91a5725a86dedb9fe
| * Stabilize tst_QApplication::touchEventPropagation().Friedemann Kleint2015-07-161-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The test checks whether a child window receives mouse events synthesizes from touch. Enlarge the child window so that it fully covers the parent and move the touch point a bit inside so that it is not affected by window manager positioning issues. Use QTRY_VERIFY. FAIL! : tst_QApplication::touchEventPropagation() 'widget.seenMouseEvent' returned FALSE. () Loc: [/work/build/qt/qtbase/tests/auto/widgets/kernel/qapplication/tst_qapplication.cpp(2107)] Change-Id: Ic08e68b1e547cc7148cd8994464fdc2a14ac507b Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
| * Test QAction::autoRepeatFrederik Gladhorn2015-07-071-0/+38
| | | | | | | | | | | | | | | | Sending several key presses with repeat=true should trigger the action several times, unless autoRepeat is set to false. Change-Id: I6469bbd78a608a87852554882c1632ce34422662 Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.5' into devLiang Qi2015-07-015-4/+8
|\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.cpp src/corelib/global/qglobal.h src/corelib/global/qsysinfo.h src/corelib/global/qsystemdetection.h src/corelib/kernel/qobjectdefs.h src/plugins/plugins.pro tests/auto/widgets/itemviews/qlistview/qlistview.pro Change-Id: Ib55aa79d707c4c1453fb9d697f6cf92211ed665c
| * tst_qtooltip: Move cursor away from tooltip.Friedemann Kleint2015-06-301-0/+4
| | | | | | | | | | | | | | | | | | | | When executing the test in a sequence (as done by make check after tst_qstackedlayout), tst_QToolTip::task183679 often fails since apparently the tooltip is hidden when the cursor is near it. Move to the cursor to the right corner of the widget to fix this. Change-Id: I3b13239e77cb387f1b1425fab79c8d6faa27b5bb Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
| * Replace MAC OS X with OS XNico Vertriest2015-06-301-1/+1
| | | | | | | | | | | | Task-number: QTBUG-46374 Change-Id: I7bc633ab551740bd328a24b0ccae1d534af47138 Reviewed-by: Martin Smith <martin.smith@digia.com>
| * fix usage of wince scopeOswald Buddenhagen2015-06-053-3/+3
| | | | | | | | | | | | | | Fix style issues along the way. Change-Id: Ic6a6de28e198eb0b14c198b802e78845703909b9 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | tst_formlayout: Fix top level widget leaks.Friedemann Kleint2015-06-271-198/+189
| | | | | | | | | | | | | | | | | | | | | | Instantiate widgets on stack and add cleanup function for the check. Change all functions instantiating a QFormLayout without widget on the stack to use a toplevel widget and pointer variables since otherwise, the labels automatically created by a call like QFormLayout::addRow("bla", widget) leak. Change-Id: I72a7a9c3175b5793a9450c6fcb970012ccd2274b Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
* | tst_qboxlayout: Fix top level widget leaks.Friedemann Kleint2015-06-271-63/+36
| | | | | | | | | | | | | | | | Instantiate widgets on stack and add cleanup function for the check. Change-Id: Ia527c228f9173d1b5aeba94ba4e14e1beba60731 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
* | tst_gridlayout: Fix visible top level widget leaks.Friedemann Kleint2015-06-271-85/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Gather member variables testWidget, testLayout, w1..w3 and sp used in getItemPosition() and itemAtPosition() in Helper class ItemTestWidget. Remove member variables m_grid, m_toplevel and instantiate the top level widget on the stack in minMaxSize(). Remove empty slots and functions. Add a cleanup() test checking that no visible top levels are leaked with explanatory comment about data driven tests. Change-Id: Ia30120d78144dab3b7c73864c6fbcef606cb19d3 Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
* | Add check for top level widget leaks in kernel test of QtWidgets.Friedemann Kleint2015-06-166-0/+20
| | | | | | | | | | | | | | | | | | Add a cleanup function for the check and disable animations in tst_qwidgetaction to prevent effect widgets from interfering (vista style animations). Change-Id: I043ecb131c8dcd07b6ef10bc75c9e010ab569e85 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
* | Blacklist and skip various tests that are flakeySimon Hausmann2015-06-146-66/+26
| | | | | | | | | | | | | | | | | | | | They didn't show up in the "old" CI runs because they usually pass the second time they are executed - which the testrunner does. The new CI doesn't do that anymore, instead we now mark those tests explicitly and will track their record of passing and failing in the new metrics database. Change-Id: Id34dd6f792f38995b07b6fec88f833df64de2f8b Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Add qHash(QSizePolicy)Marc Mutz2015-06-121-2/+18
| | | | | | | | | | | | | | | | | | | | | | Size policies can be compared for equality, so qHash should be overloaded, too. [ChangeLog][QtWidgets][QSizePolicy] Added qHash(QSizePolicy). Change-Id: Id219f47ac6cb236efdd73cad7b892c8efd034d5c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>