summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qopengl/tst_qopengl.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/auto/qopengl/tst_qopengl.cpp b/tests/auto/qopengl/tst_qopengl.cpp
index 1df7985df9..173d1e4568 100644
--- a/tests/auto/qopengl/tst_qopengl.cpp
+++ b/tests/auto/qopengl/tst_qopengl.cpp
@@ -146,7 +146,24 @@ void tst_QOpenGL::sharedResourceCleanup()
QCOMPARE(tracker.freeResourceCalls, 1);
QCOMPARE(tracker.destructorCalls, 1);
+ tracker.reset();
+
+ resource = new SharedResource(&tracker);
+
+ // this should cause invalidateResource() to be called
delete ctx2;
+
+ QCOMPARE(tracker.invalidateResourceCalls, 1);
+ QCOMPARE(tracker.freeResourceCalls, 0);
+ QCOMPARE(tracker.destructorCalls, 0);
+
+ // should have no effect other than destroying the resource,
+ // as it has already been invalidated
+ resource->free();
+
+ QCOMPARE(tracker.invalidateResourceCalls, 1);
+ QCOMPARE(tracker.freeResourceCalls, 0);
+ QCOMPARE(tracker.destructorCalls, 1);
}
static bool fuzzyComparePixels(const QRgb testPixel, const QRgb refPixel, const char* file, int line, int x = -1, int y = -1)