Remove Q_ASSERT in gestures autotest
Rather than aborting on a bad gesture event in debug builds and ignoring the error in release builds, record a count of bad events and fail the test if the count is non-zero at the end of the test function. Change-Id: I6ddd46a5a656185c13eae4bbbb496b986a0c92f6 Task-number: QTBUG-17582 Reviewed-by: Rohan McGovern (cherry picked from commit 5953d930bc07fa6734a11d053d26a3f80e9c1e89)
This commit is contained in:
parent
80384827e0
commit
d9d1e72d76
@ -1518,17 +1518,20 @@ void tst_Gestures::autoCancelGestures()
|
||||
{
|
||||
class MockWidget : public GestureWidget {
|
||||
public:
|
||||
MockWidget(const char *name) : GestureWidget(name) { }
|
||||
MockWidget(const char *name) : GestureWidget(name), badGestureEvents(0) { }
|
||||
|
||||
bool event(QEvent *event)
|
||||
{
|
||||
if (event->type() == QEvent::Gesture) {
|
||||
QGestureEvent *ge = static_cast<QGestureEvent*>(event);
|
||||
Q_ASSERT(ge->gestures().count() == 1); // can't use QCOMPARE here...
|
||||
if (ge->gestures().count() != 1)
|
||||
++badGestureEvents; // event should contain exactly one gesture
|
||||
ge->gestures().first()->setGestureCancelPolicy(QGesture::CancelAllInContext);
|
||||
}
|
||||
return GestureWidget::event(event);
|
||||
}
|
||||
|
||||
int badGestureEvents;
|
||||
};
|
||||
|
||||
const Qt::GestureType secondGesture = QGestureRecognizer::registerRecognizer(new CustomGestureRecognizer);
|
||||
@ -1563,22 +1566,26 @@ void tst_Gestures::autoCancelGestures()
|
||||
event.serial = CustomGesture::SerialFinishedThreshold;
|
||||
QApplication::sendEvent(child, &event);
|
||||
QCOMPARE(parent.events.all.count(), 2);
|
||||
QCOMPARE(parent.badGestureEvents, 0);
|
||||
}
|
||||
|
||||
void tst_Gestures::autoCancelGestures2()
|
||||
{
|
||||
class MockItem : public GestureItem {
|
||||
public:
|
||||
MockItem(const char *name) : GestureItem(name) { }
|
||||
MockItem(const char *name) : GestureItem(name), badGestureEvents(0) { }
|
||||
|
||||
bool event(QEvent *event) {
|
||||
if (event->type() == QEvent::Gesture) {
|
||||
QGestureEvent *ge = static_cast<QGestureEvent*>(event);
|
||||
Q_ASSERT(ge->gestures().count() == 1); // can't use QCOMPARE here...
|
||||
if (ge->gestures().count() != 1)
|
||||
++badGestureEvents; // event should contain exactly one gesture
|
||||
ge->gestures().first()->setGestureCancelPolicy(QGesture::CancelAllInContext);
|
||||
}
|
||||
return GestureItem::event(event);
|
||||
}
|
||||
|
||||
int badGestureEvents;
|
||||
};
|
||||
|
||||
const Qt::GestureType secondGesture = QGestureRecognizer ::registerRecognizer(new CustomGestureRecognizer);
|
||||
@ -1614,6 +1621,7 @@ void tst_Gestures::autoCancelGestures2()
|
||||
event.serial = CustomGesture::SerialFinishedThreshold;
|
||||
scene.sendEvent(child, &event);
|
||||
QCOMPARE(parent->events.all.count(), 2);
|
||||
QCOMPARE(parent->badGestureEvents, 0);
|
||||
}
|
||||
|
||||
void tst_Gestures::graphicsViewParentPropagation()
|
||||
|
Loading…
Reference in New Issue
Block a user