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.8 6.5
Change-Id: I348336d82c167d95545c9e3d46e7479606605df9
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
(cherry picked from commit 4981333ff3f8a5826a21ebf14c4f1e097a4d03dc)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Marc Mutz 2025-03-27 07:01:14 +01:00 committed by Qt Cherry-pick Bot
parent 681e3fe5c1
commit d146cfa268

View File

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