diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/gui/image/qimage/tst_qimage.cpp | 37 |
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" |