summaryrefslogtreecommitdiffstats
path: root/tests/auto/render
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2016-06-02 07:58:42 +0200
committerSean Harmer <sean.harmer@kdab.com>2016-06-29 09:21:14 +0000
commitbd8d30e1717422db8079bd614f6a8b02263b0abd (patch)
tree2ca6eb04876c1eaed52cb74015d644e4b1f99b6c /tests/auto/render
parentbda94a2e20eeedab1a237499825d7945692db467 (diff)
tst_QRenderTargetSelector: add target bookkeeping test
Change-Id: Ie1d4d453e55a16ca04bf00de48cdf48f9eda0357 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'tests/auto/render')
-rw-r--r--tests/auto/render/qrendertargetselector/tst_qrendertargetselector.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/auto/render/qrendertargetselector/tst_qrendertargetselector.cpp b/tests/auto/render/qrendertargetselector/tst_qrendertargetselector.cpp
index 1ed546c13..6b53ab733 100644
--- a/tests/auto/render/qrendertargetselector/tst_qrendertargetselector.cpp
+++ b/tests/auto/render/qrendertargetselector/tst_qrendertargetselector.cpp
@@ -185,6 +185,40 @@ private Q_SLOTS:
arbiter.events.clear();
}
+
+ void checkRenderTargetBookkeeping()
+ {
+ // GIVEN
+ QScopedPointer<Qt3DRender::QRenderTargetSelector> targetSelector(new Qt3DRender::QRenderTargetSelector);
+ {
+ // WHEN
+ Qt3DRender::QRenderTarget target;
+ targetSelector->setTarget(&target);
+
+ // THEN
+ QCOMPARE(target.parent(), targetSelector.data());
+ QCOMPARE(targetSelector->target(), &target);
+ }
+ // THEN (Should not crash and effect be unset)
+ QVERIFY(targetSelector->target() == nullptr);
+
+ {
+ // WHEN
+ Qt3DRender::QRenderTargetSelector someOtherTargetSelector;
+ QScopedPointer<Qt3DRender::QRenderTarget> target(new Qt3DRender::QRenderTarget(&someOtherTargetSelector));
+ targetSelector->setTarget(target.data());
+
+ // THEN
+ QCOMPARE(target->parent(), &someOtherTargetSelector);
+ QCOMPARE(targetSelector->target(), target.data());
+
+ // WHEN
+ targetSelector.reset();
+ target.reset();
+
+ // THEN Should not crash when the target is destroyed (tests for failed removal of destruction helper)
+ }
+ }
};
QTEST_MAIN(tst_QRenderTargetSelector)