diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2016-06-02 07:58:42 +0200 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-06-29 09:21:14 +0000 |
commit | bd8d30e1717422db8079bd614f6a8b02263b0abd (patch) | |
tree | 2ca6eb04876c1eaed52cb74015d644e4b1f99b6c /tests/auto/render | |
parent | bda94a2e20eeedab1a237499825d7945692db467 (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.cpp | 34 |
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) |