summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMäättä Antti <antti.maatta@qt.io>2017-06-19 11:13:41 +0300
committerAntti Määttä <antti.maatta@qt.io>2017-06-21 11:03:29 +0000
commit927cdc4bde6a152fcd0a64729946831477f27913 (patch)
tree48502ba55616b853a2789e7ef247ead0716bc3d0 /tests
parent920e9ecef384058e8f44eea09dfafda03a9ec435 (diff)
Fix QRenderCaptureReply deallocation
Add deallocation guard and set parent of the reply. Task-number: QTBUG-61508 Change-Id: Ia299450d792b2254c2944472382c8241b271ebf6 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/render/qrendercapture/tst_qrendercapture.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/auto/render/qrendercapture/tst_qrendercapture.cpp b/tests/auto/render/qrendercapture/tst_qrendercapture.cpp
index e0037f3dd..d4e603ea4 100644
--- a/tests/auto/render/qrendercapture/tst_qrendercapture.cpp
+++ b/tests/auto/render/qrendercapture/tst_qrendercapture.cpp
@@ -105,6 +105,27 @@ private Q_SLOTS:
QCOMPARE(reply->image().height(), 20);
QCOMPARE(reply->image().format(), QImage::Format_ARGB32);
}
+
+ void checkRenderCaptureDestroy()
+ {
+ // GIVEN
+ QScopedPointer<MyRenderCapture> renderCapture(new MyRenderCapture());
+ QScopedPointer<Qt3DRender::QRenderCaptureReply> reply(renderCapture->requestCapture());
+ QImage img = QImage(20, 20, QImage::Format_ARGB32);
+ Qt3DRender::RenderCaptureDataPtr data = Qt3DRender::RenderCaptureDataPtr::create();
+ data.data()->captureId = 2;
+ data.data()->image = img;
+ auto e = Qt3DCore::QPropertyUpdatedChangePtr::create(renderCapture->id());
+ e->setDeliveryFlags(Qt3DCore::QSceneChange::DeliverToAll);
+ e->setPropertyName("renderCaptureData");
+ e->setValue(QVariant::fromValue(data));
+
+ // WHEN
+ reply.reset();
+
+ // THEN
+ renderCapture->sceneChangeEvent(e); // Should not reset
+ }
};
QTEST_MAIN(tst_QRenderCapture)