diff options
author | Paul Lemire <paul.lemire@kdab.com> | 2016-08-12 10:03:33 +0200 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2016-08-13 15:37:59 +0000 |
commit | 1dc8378aeddc337bfc770f9644b6e2f6343ce7fa (patch) | |
tree | 8b46eadbefb5a18b7197636978b60faf7d239d5a /tests/auto/render/buffer | |
parent | c818f3b70cdcac27b8aaff0b53a5790beebba9e7 (diff) |
Update unit tests for Buffers
Change-Id: I9337ba162a149a13fd0fe54ae878ebd726d94763
Task-number: QTBUG-50720
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'tests/auto/render/buffer')
-rw-r--r-- | tests/auto/render/buffer/tst_buffer.cpp | 42 |
1 files changed, 40 insertions, 2 deletions
diff --git a/tests/auto/render/buffer/tst_buffer.cpp b/tests/auto/render/buffer/tst_buffer.cpp index 0fbd7b0cf..b06425bd7 100644 --- a/tests/auto/render/buffer/tst_buffer.cpp +++ b/tests/auto/render/buffer/tst_buffer.cpp @@ -29,6 +29,7 @@ #include <QtTest/QTest> #include <qbackendnodetester.h> #include <Qt3DRender/private/buffer_p.h> +#include <Qt3DRender/private/qbuffer_p.h> #include <Qt3DRender/private/buffermanager_p.h> #include <Qt3DCore/qpropertyupdatedchange.h> #include <Qt3DCore/private/qbackendnode_p.h> @@ -95,6 +96,7 @@ private Q_SLOTS: // GIVEN Qt3DRender::Render::Buffer renderBuffer; Qt3DRender::Render::BufferManager bufferManager; + TestRenderer renderer; // THEN QCOMPARE(renderBuffer.isDirty(), false); @@ -103,6 +105,7 @@ private Q_SLOTS: QVERIFY(renderBuffer.data().isEmpty()); QVERIFY(renderBuffer.peerId().isNull()); QVERIFY(renderBuffer.dataGenerator().isNull()); + QVERIFY(renderBuffer.pendingBufferUpdates().empty()); // GIVEN Qt3DRender::QBuffer buffer(Qt3DRender::QBuffer::IndexBuffer); @@ -112,7 +115,26 @@ private Q_SLOTS: // WHEN renderBuffer.setManager(&bufferManager); + renderBuffer.setRenderer(&renderer); simulateInitialization(&buffer, &renderBuffer); + + Qt3DCore::QPropertyUpdatedChangePtr updateChange(new Qt3DCore::QPropertyUpdatedChange(Qt3DCore::QNodeId())); + Qt3DRender::QBufferUpdate updateData; + updateData.offset = 2; + updateData.data = QByteArrayLiteral("LS5"); + updateChange->setValue(QVariant::fromValue(updateData)); + updateChange->setPropertyName("updateData"); + renderBuffer.sceneChangeEvent(updateChange); + + // THEN + QCOMPARE(renderBuffer.type(), Qt3DRender::QBuffer::IndexBuffer); + QCOMPARE(renderBuffer.usage(), Qt3DRender::QBuffer::DynamicCopy); + QCOMPARE(renderBuffer.isDirty(), true); + QCOMPARE(renderBuffer.data(), QByteArrayLiteral("C7")); + QVERIFY(!renderBuffer.dataGenerator().isNull()); + QVERIFY(!renderBuffer.pendingBufferUpdates().empty()); + + // WHEN renderBuffer.cleanup(); // THEN @@ -121,6 +143,7 @@ private Q_SLOTS: QCOMPARE(renderBuffer.usage(), Qt3DRender::QBuffer::StaticDraw); QVERIFY(renderBuffer.data().isEmpty()); QVERIFY(renderBuffer.dataGenerator().isNull()); + QVERIFY(renderBuffer.pendingBufferUpdates().empty()); } void checkPropertyChanges() @@ -174,10 +197,8 @@ private Q_SLOTS: QVERIFY(renderBuffer.isDirty()); renderBuffer.unsetDirty(); - QVERIFY(!renderBuffer.isDirty()); - // WHEN Qt3DRender::QBufferDataGeneratorPtr functor(new TestFunctor(355)); updateChange.reset(new Qt3DCore::QPropertyUpdatedChange(Qt3DCore::QNodeId())); @@ -213,6 +234,23 @@ private Q_SLOTS: QCOMPARE(change->propertyName(), "data"); QCOMPARE(change->value().toByteArray(), QByteArrayLiteral("454")); + arbiter.events.clear(); + + // WHEN + updateChange.reset(new Qt3DCore::QPropertyUpdatedChange(Qt3DCore::QNodeId())); + Qt3DRender::QBufferUpdate updateData; + updateData.offset = 2; + updateData.data = QByteArrayLiteral("LS5"); + updateChange->setValue(QVariant::fromValue(updateData)); + updateChange->setPropertyName("updateData"); + renderBuffer.sceneChangeEvent(updateChange); + + // THEN + QVERIFY(!renderBuffer.pendingBufferUpdates().empty()); + QVERIFY(renderBuffer.isDirty()); + + renderBuffer.unsetDirty(); + QVERIFY(!renderBuffer.isDirty()); } }; |