summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/image/qimage/tst_qimage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/gui/image/qimage/tst_qimage.cpp')
-rw-r--r--tests/auto/gui/image/qimage/tst_qimage.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/auto/gui/image/qimage/tst_qimage.cpp b/tests/auto/gui/image/qimage/tst_qimage.cpp
index 173c299b69..cda887d8e1 100644
--- a/tests/auto/gui/image/qimage/tst_qimage.cpp
+++ b/tests/auto/gui/image/qimage/tst_qimage.cpp
@@ -144,6 +144,8 @@ private slots:
void deepCopyWhenPaintingActive();
void scaled_QTBUG19157();
+
+ void cleanupFunctions();
};
tst_QImage::tst_QImage()
@@ -1997,5 +1999,40 @@ void tst_QImage::scaled_QTBUG19157()
QVERIFY(!foo.isNull());
}
+static void cleanupFunction(void* info)
+{
+ bool *called = static_cast<bool*>(info);
+ *called = true;
+}
+
+void tst_QImage::cleanupFunctions()
+{
+ QImage bufferImage(64, 64, QImage::Format_ARGB32);
+ bufferImage.fill(0);
+
+ bool called;
+
+ {
+ called = false;
+ {
+ QImage image(bufferImage.bits(), bufferImage.width(), bufferImage.height(), bufferImage.format(), cleanupFunction, &called);
+ }
+ QVERIFY(called);
+ }
+
+ {
+ called = false;
+ QImage *copy = 0;
+ {
+ QImage image(bufferImage.bits(), bufferImage.width(), bufferImage.height(), bufferImage.format(), cleanupFunction, &called);
+ copy = new QImage(image);
+ }
+ QVERIFY(!called);
+ delete copy;
+ QVERIFY(called);
+ }
+
+}
+
QTEST_MAIN(tst_QImage)
#include "tst_qimage.moc"