summaryrefslogtreecommitdiffstats
path: root/tests/auto/render/buffer
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2016-08-12 10:03:33 +0200
committerSean Harmer <sean.harmer@kdab.com>2016-08-13 15:37:59 +0000
commit1dc8378aeddc337bfc770f9644b6e2f6343ce7fa (patch)
tree8b46eadbefb5a18b7197636978b60faf7d239d5a /tests/auto/render/buffer
parentc818f3b70cdcac27b8aaff0b53a5790beebba9e7 (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.cpp42
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());
}
};