tst_QPushButton: don't leak m_touchScreen

Same problem as in 49a87936ef50acb1ab7156809bf5f85671d36f24, same fix:
hold the result of createTouchDevice() in an owning pointer.

Amends d15d9d49ac1e5120c052bb6c7e8bac5350eea357.

Pick-to: 6.9 6.8 6.5
Change-Id: I348336d82c167d95545c9e3d46e7479606605df9
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
This commit is contained in:
Marc Mutz 2025-03-27 07:01:14 +01:00
parent 44a2d8cc20
commit 4981333ff3

View File

@ -71,7 +71,7 @@ private:
int release_count;
QPushButton *testWidget;
QPointingDevice *m_touchScreen = QTest::createTouchDevice();
std::unique_ptr<QPointingDevice> m_touchScreen{QTest::createTouchDevice()};
};
// Testing get/set functions
@ -376,10 +376,10 @@ void tst_QPushButton::clicked()
void tst_QPushButton::touchTap()
{
QTest::touchEvent(testWidget, m_touchScreen).press(0, QPoint(10, 10));
QTest::touchEvent(testWidget, m_touchScreen.get()).press(0, QPoint(10, 10));
QCOMPARE(press_count, 1);
QCOMPARE(release_count, 0);
QTest::touchEvent(testWidget, m_touchScreen).release(0, QPoint(10, 10));
QTest::touchEvent(testWidget, m_touchScreen.get()).release(0, QPoint(10, 10));
QCOMPARE(press_count, 1);
QCOMPARE(release_count, 1);
QCOMPARE(click_count, 1);
@ -389,8 +389,8 @@ void tst_QPushButton::touchTap()
click_count = 0;
testWidget->setDown(false);
for (uint i = 0; i < 10; i++) {
QTest::touchEvent(testWidget, m_touchScreen).press(0, QPoint(10, 10));
QTest::touchEvent(testWidget, m_touchScreen).release(0, QPoint(10, 10));
QTest::touchEvent(testWidget, m_touchScreen.get()).press(0, QPoint(10, 10));
QTest::touchEvent(testWidget, m_touchScreen.get()).release(0, QPoint(10, 10));
}
QCOMPARE(press_count, 10);
QCOMPARE(release_count, 10);