summaryrefslogtreecommitdiffstats
path: root/tests/auto/core
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2019-08-30 11:41:18 +0200
committerMike Krus <mike.krus@kdab.com>2019-09-16 10:39:23 +0200
commit6a9609f8956ccc528da8b7acee2d7a3d195b2b2d (patch)
treed12aef2a869a8572fb48163bc7db0def2c52abc5 /tests/auto/core
parentc89997143cd6e51916924b71c8b0bf8705480a67 (diff)
Use direct access to remove backend nodes
- Stop using messages - Remove QSceneObserverInterface - Ensure backend node creation/destruction is done at the right time Change-Id: I470825af344ab65bf05e93fc149b61d1b9eefc96 Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'tests/auto/core')
-rw-r--r--tests/auto/core/nodes/tst_nodes.cpp161
-rw-r--r--tests/auto/core/qchangearbiter/tst_qchangearbiter.cpp78
2 files changed, 32 insertions, 207 deletions
diff --git a/tests/auto/core/nodes/tst_nodes.cpp b/tests/auto/core/nodes/tst_nodes.cpp
index ec07c158d..150df3ef0 100644
--- a/tests/auto/core/nodes/tst_nodes.cpp
+++ b/tests/auto/core/nodes/tst_nodes.cpp
@@ -831,8 +831,8 @@ void tst_Nodes::checkParentChangeFromExistingBackendParentToNewlyCreatedParent()
QCoreApplication::processEvents();
// THEN
- QCOMPARE(spy.events.size(), 3);
- // 1 node removed change, 1 node destroyed change
+ QCOMPARE(spy.events.size(), 2);
+ // 1 node removed change
// 1 node added to children change
QVERIFY(Qt3DCore::QNodePrivate::get(newParent.data())->m_hasBackendNode == true);
QVERIFY(Qt3DCore::QNodePrivate::get(child)->m_hasBackendNode == true);
@@ -846,30 +846,11 @@ void tst_Nodes::checkParentChangeFromExistingBackendParentToNewlyCreatedParent()
QCOMPARE(event->removedNodeId(), child->id());
QCOMPARE(event->metaObject(), child->metaObject());
- // CHECK event 2 is a Node Destroyed
- QVERIFY(spy.events.first().wasLocked());
- const Qt3DCore::QNodeDestroyedChangePtr event2 = spy.events.takeFirst().change().staticCast<Qt3DCore::QNodeDestroyedChange>();
- QCOMPARE(event2->type(), Qt3DCore::NodeDeleted);
- QCOMPARE(event2->subtreeIdsAndTypes().size(), 1);
- QCOMPARE(event2->subtreeIdsAndTypes().first().id, child->id());
-
-// // CHECK event 3 and 4 are Node Created events
-// const Qt3DCore::QNodeCreatedChangeBasePtr event3 = spy.events.takeFirst().change().staticCast<Qt3DCore::QNodeCreatedChangeBase>();
-// const Qt3DCore::QNodeCreatedChangeBasePtr event4 = spy.events.takeFirst().change().staticCast<Qt3DCore::QNodeCreatedChangeBase>();
-
-// QCOMPARE(event3->type(), Qt3DCore::NodeCreated);
-// QCOMPARE(event3->parentId(), root->id());
-// QCOMPARE(event3->subjectId(), newParent->id());
-
-// QCOMPARE(event4->type(), Qt3DCore::NodeCreated);
-// QCOMPARE(event4->parentId(), newParent->id());
-// QCOMPARE(event4->subjectId(), child->id());
-
- const Qt3DCore::QPropertyNodeAddedChangePtr event5 = spy.events.takeFirst().change().staticCast<Qt3DCore::QPropertyNodeAddedChange>();
- QCOMPARE(event5->type(), Qt3DCore::PropertyValueAdded);
- QCOMPARE(event5->addedNodeId(), newParent->id());
- QCOMPARE(event5->metaObject(), newParent->metaObject());
- QCOMPARE(event5->subjectId(), root->id());
+ const Qt3DCore::QPropertyNodeAddedChangePtr event2 = spy.events.takeFirst().change().staticCast<Qt3DCore::QPropertyNodeAddedChange>();
+ QCOMPARE(event2->type(), Qt3DCore::PropertyValueAdded);
+ QCOMPARE(event2->addedNodeId(), newParent->id());
+ QCOMPARE(event2->metaObject(), newParent->metaObject());
+ QCOMPARE(event2->subjectId(), root->id());
}
// WHEN -> Changing parent to node with existing backend
@@ -913,8 +894,8 @@ void tst_Nodes::checkParentChangeFromExistingBackendParentToNewlyCreatedParent()
QCoreApplication::processEvents();
// THEN
- QCOMPARE(spy.events.size(), 3);
- // 1 node removed change, 1 node destroyed change,
+ QCOMPARE(spy.events.size(), 2);
+ // 1 node removed change
// 1 node added to children change
{
// CHECK event 1 is a Node Removed event
@@ -925,30 +906,11 @@ void tst_Nodes::checkParentChangeFromExistingBackendParentToNewlyCreatedParent()
QCOMPARE(event->removedNodeId(), child->id());
QCOMPARE(event->metaObject(), child->metaObject());
- // CHECK event 2 is a Node Destroyed
- QVERIFY(spy.events.first().wasLocked());
- const Qt3DCore::QNodeDestroyedChangePtr event2 = spy.events.takeFirst().change().staticCast<Qt3DCore::QNodeDestroyedChange>();
- QCOMPARE(event2->type(), Qt3DCore::NodeDeleted);
- QCOMPARE(event2->subtreeIdsAndTypes().size(), 1);
- QCOMPARE(event2->subtreeIdsAndTypes().first().id, child->id());
-
-// // CHECK event 3 and 4 are Node Created events
-// const Qt3DCore::QNodeCreatedChangeBasePtr event3 = spy.events.takeFirst().change().staticCast<Qt3DCore::QNodeCreatedChangeBase>();
-// const Qt3DCore::QNodeCreatedChangeBasePtr event4 = spy.events.takeFirst().change().staticCast<Qt3DCore::QNodeCreatedChangeBase>();
-
-// QCOMPARE(event3->type(), Qt3DCore::NodeCreated);
-// QCOMPARE(event3->parentId(), root->id());
-// QCOMPARE(event3->subjectId(), newParent2->id());
-
-// QCOMPARE(event4->type(), Qt3DCore::NodeCreated);
-// QCOMPARE(event4->parentId(), newParent2->id());
-// QCOMPARE(event4->subjectId(), child->id());
-
- const Qt3DCore::QPropertyNodeAddedChangePtr event5 = spy.events.takeFirst().change().staticCast<Qt3DCore::QPropertyNodeAddedChange>();
- QCOMPARE(event5->type(), Qt3DCore::PropertyValueAdded);
- QCOMPARE(event5->addedNodeId(), newParent2->id());
- QCOMPARE(event5->metaObject(), newParent2->metaObject());
- QCOMPARE(event5->subjectId(), root->id());
+ const Qt3DCore::QPropertyNodeAddedChangePtr event2 = spy.events.takeFirst().change().staticCast<Qt3DCore::QPropertyNodeAddedChange>();
+ QCOMPARE(event2->type(), Qt3DCore::PropertyValueAdded);
+ QCOMPARE(event2->addedNodeId(), newParent2->id());
+ QCOMPARE(event2->metaObject(), newParent2->metaObject());
+ QCOMPARE(event2->subjectId(), root->id());
}
}
@@ -997,38 +959,17 @@ void tst_Nodes::checkBackendNodesCreatedFromTopDown()
QVERIFY(Qt3DCore::QNodePrivate::get(child1)->m_hasBackendNode);
QVERIFY(Qt3DCore::QNodePrivate::get(child2)->m_hasBackendNode);
- // 1st event: dummyParent creation
-// const auto event1 = spy.events.takeFirst().change().dynamicCast<Qt3DCore::QNodeCreatedChangeBase>();
-// QVERIFY(!event1.isNull());
-// QCOMPARE(event1->type(), Qt3DCore::NodeCreated);
-// QCOMPARE(event1->parentId(), parentWithBackend->id());
-// QCOMPARE(event1->subjectId(), dummyParent->id());
-
-// // 2nd event: child2 creation (even though we constructed child1 first)
-// const auto event2 = spy.events.takeFirst().change().dynamicCast<Qt3DCore::QNodeCreatedChangeBase>();
-// QVERIFY(!event2.isNull());
-// QCOMPARE(event2->type(), Qt3DCore::NodeCreated);
-// QCOMPARE(event2->parentId(), dummyParent->id());
-// QCOMPARE(event2->subjectId(), child2->id());
-
- // 3rd event: dummyParent added to parent
- const auto event3 = spy.events.takeFirst().change().dynamicCast<Qt3DCore::QPropertyNodeAddedChange>();
- QCOMPARE(event3->type(), Qt3DCore::PropertyValueAdded);
- QCOMPARE(event3->addedNodeId(), dummyParent->id());
- QCOMPARE(event3->subjectId(), parentWithBackend->id());
-
- // 4th event: child1 creation
-// const auto event4 = spy.events.takeFirst().change().dynamicCast<Qt3DCore::QNodeCreatedChangeBase>();
-// QVERIFY(!event4.isNull());
-// QCOMPARE(event4->type(), Qt3DCore::NodeCreated);
-// QCOMPARE(event4->parentId(), parentWithBackend->id());
-// QCOMPARE(event4->subjectId(), child1->id());
-
- // 5th event: child 1 added to parent
- const auto event5 = spy.events.takeFirst().change().dynamicCast<Qt3DCore::QPropertyNodeAddedChange>();
- QCOMPARE(event5->type(), Qt3DCore::PropertyValueAdded);
- QCOMPARE(event5->addedNodeId(), child1->id());
- QCOMPARE(event5->subjectId(), parentWithBackend->id());
+ // 1st event: dummyParent added to parent
+ const auto event = spy.events.takeFirst().change().dynamicCast<Qt3DCore::QPropertyNodeAddedChange>();
+ QCOMPARE(event->type(), Qt3DCore::PropertyValueAdded);
+ QCOMPARE(event->addedNodeId(), dummyParent->id());
+ QCOMPARE(event->subjectId(), parentWithBackend->id());
+
+ // 2nd event: child 1 added to parent
+ const auto event2 = spy.events.takeFirst().change().dynamicCast<Qt3DCore::QPropertyNodeAddedChange>();
+ QCOMPARE(event2->type(), Qt3DCore::PropertyValueAdded);
+ QCOMPARE(event2->addedNodeId(), child1->id());
+ QCOMPARE(event2->subjectId(), parentWithBackend->id());
}
}
@@ -1060,21 +1001,13 @@ void tst_Nodes::removingSingleChildNodeFromNode()
QVERIFY(child->parent() == nullptr);
QVERIFY(root->children().count() == 0);
- QCOMPARE(spy.events.size(), 2);
+ QCOMPARE(spy.events.size(), 1);
QVERIFY(spy.events.first().wasLocked());
const Qt3DCore::QPropertyNodeRemovedChangePtr removalEvent = spy.events.takeFirst().change().dynamicCast<Qt3DCore::QPropertyNodeRemovedChange>();
QCOMPARE(removalEvent->subjectId(), root->id());
QCOMPARE(removalEvent->removedNodeId(), child->id());
QCOMPARE(removalEvent->metaObject(), child->metaObject());
-
- QVERIFY(spy.events.first().wasLocked());
- const Qt3DCore::QNodeDestroyedChangePtr destructionEvent = spy.events.takeFirst().change().dynamicCast<Qt3DCore::QNodeDestroyedChange>();
- QCOMPARE(destructionEvent->type(), Qt3DCore::NodeDeleted);
- QCOMPARE(destructionEvent->subjectId(), child->id());
- QCOMPARE(destructionEvent->subtreeIdsAndTypes().size(), 1);
- QCOMPARE(destructionEvent->subtreeIdsAndTypes().first().id, child->id());
- QCOMPARE(destructionEvent->subtreeIdsAndTypes().first().type, child->metaObject());
}
void tst_Nodes::removingMultipleChildNodesFromNode()
@@ -1109,24 +1042,15 @@ void tst_Nodes::removingMultipleChildNodesFromNode()
// THEN
QVERIFY(root->children().count() == 0);
- QCOMPARE(spy.events.size(), 20);
+ QCOMPARE(spy.events.size(), 10);
int i = 0;
for (const ObserverSpy::ChangeRecord &r : qAsConst(spy.events)) {
QVERIFY(r.wasLocked());
- const Qt3DCore::QNodeId childId = childIds.at(i / 2);
- if (i % 2 == 0) {
- Qt3DCore::QPropertyNodeRemovedChangePtr additionEvent = r.change().dynamicCast<Qt3DCore::QPropertyNodeRemovedChange>();
- QCOMPARE(additionEvent->subjectId(), root->id());
- QCOMPARE(additionEvent->removedNodeId(), childId);
- QCOMPARE(additionEvent->metaObject(), &MyQNode::staticMetaObject);
- } else {
- const Qt3DCore::QNodeDestroyedChangePtr event = r.change().dynamicCast<Qt3DCore::QNodeDestroyedChange>();
- QCOMPARE(event->subjectId(), childId);
- QCOMPARE(event->subtreeIdsAndTypes().count(), 1);
- QCOMPARE(event->subtreeIdsAndTypes().first().id, childId);
- QCOMPARE(event->subtreeIdsAndTypes().first().type, &MyQNode::staticMetaObject);
- QCOMPARE(event->type(), Qt3DCore::NodeDeleted);
- }
+ const Qt3DCore::QNodeId childId = childIds.at(i);
+ Qt3DCore::QPropertyNodeRemovedChangePtr additionEvent = r.change().dynamicCast<Qt3DCore::QPropertyNodeRemovedChange>();
+ QCOMPARE(additionEvent->subjectId(), root->id());
+ QCOMPARE(additionEvent->removedNodeId(), childId);
+ QCOMPARE(additionEvent->metaObject(), &MyQNode::staticMetaObject);
++i;
}
}
@@ -1238,28 +1162,7 @@ void tst_Nodes::checkParentingQEntityToQNode()
QVERIFY(Qt3DCore::QNodePrivate::get(childEntity)->m_hasBackendNode);
QVERIFY(Qt3DCore::QNodePrivate::get(childNode)->m_hasBackendNode);
-
- // Ensure first event is subTreeRoot creation
-// const Qt3DCore::QNodeCreatedChangeBasePtr firstEvent = spy.events.takeFirst().change().dynamicCast<Qt3DCore::QNodeCreatedChangeBase>();
-// QVERIFY(!firstEvent.isNull());
-// QCOMPARE(firstEvent->subjectId(), subTreeRoot->id());
-// QCOMPARE(firstEvent->parentId(), root->id());
-
-// // Ensure 2nd event is childEntity creation
-// const Qt3DCore::QNodeCreatedChangeBasePtr secondEvent = spy.events.takeFirst().change().dynamicCast<Qt3DCore::QNodeCreatedChangeBase>();
-// QVERIFY(!secondEvent.isNull());
-// QCOMPARE(secondEvent->subjectId(), childEntity->id());
-// QCOMPARE(secondEvent->parentId(), subTreeRoot->id());
-
-// // Ensure 3rd event is childNode creation
-// const Qt3DCore::QNodeCreatedChangeBasePtr thirdEvent = spy.events.takeFirst().change().dynamicCast<Qt3DCore::QNodeCreatedChangeBase>();
-// QVERIFY(!thirdEvent.isNull());
-// QCOMPARE(thirdEvent->subjectId(), childNode->id());
-// QCOMPARE(thirdEvent->parentId(), subTreeRoot->id());
-
-
// WHEN we reparent the childEntity to the childNode (QNode)
-
spy.events.clear();
childEntity->setParent(childNode);
QCoreApplication::processEvents();
diff --git a/tests/auto/core/qchangearbiter/tst_qchangearbiter.cpp b/tests/auto/core/qchangearbiter/tst_qchangearbiter.cpp
index 79790d467..e54193398 100644
--- a/tests/auto/core/qchangearbiter/tst_qchangearbiter.cpp
+++ b/tests/auto/core/qchangearbiter/tst_qchangearbiter.cpp
@@ -43,7 +43,6 @@
#include <Qt3DCore/qentity.h>
#include <Qt3DCore/qcomponent.h>
#include <Qt3DCore/qbackendnode.h>
-#include <Qt3DCore/private/qsceneobserverinterface_p.h>
#include <Qt3DCore/private/qnode_p.h>
#include <Qt3DCore/private/qbackendnode_p.h>
#include <QThread>
@@ -350,38 +349,6 @@ private:
bool m_allowFrontendNotifications;
};
-class tst_SceneObserver : public Qt3DCore::QSceneObserverInterface
-{
- // QSceneObserverInterface interface
-public:
-// void sceneNodeAdded(Qt3DCore::QSceneChangePtr &e)
-// {
-// QVERIFY(!e.isNull());
-// QVERIFY(e->type() == Qt3DCore::NodeCreated);
-// m_lastChange = e;
-// }
-
- void sceneNodeRemoved(Qt3DCore::QSceneChangePtr &e)
- {
- QVERIFY(!e.isNull());
- QVERIFY((e->type() == Qt3DCore::NodeDeleted));
- m_lastChange = e;
- }
-
- void sceneNodeUpdated(Qt3DCore::QSceneChangePtr &e)
- {
- m_lastChange = e;
- }
-
- Qt3DCore::QSceneChangePtr lastChange() const
- {
- return m_lastChange;
- }
-
-private:
- Qt3DCore::QSceneChangePtr m_lastChange;
-};
-
void tst_QChangeArbiter::registerObservers()
{
// GIVEN
@@ -452,20 +419,11 @@ void tst_QChangeArbiter::registerSceneObserver()
observers << s;
}
- QList<tst_SceneObserver *> sceneObservers;
- for (int i = 0; i < 5; i++) {
- tst_SceneObserver *s = new tst_SceneObserver();
- arbiter->registerSceneObserver(s);
- sceneObservers << s;
- }
-
arbiter->syncChanges();
// THEN
for (tst_SimpleObserver *o : qAsConst(observers))
QVERIFY(o->lastChange().isNull());
- for (tst_SceneObserver *s : qAsConst(sceneObservers))
- QVERIFY(s->lastChange().isNull());
// WHEN
child->setParent(root);
@@ -476,10 +434,6 @@ void tst_QChangeArbiter::registerSceneObserver()
QVERIFY(!o->lastChange().isNull());
QVERIFY(o->lastChange()->type() == Qt3DCore::PropertyValueAdded);
}
-// for (tst_SceneObserver *s : qAsConst(sceneObservers)) {
-// QVERIFY(!s->lastChange().isNull());
-// QVERIFY(s->lastChange()->type() == Qt3DCore::NodeCreated);
-// }
// WHEN
root->sendComponentAddedNotification(&dummyComponent);
@@ -490,10 +444,6 @@ void tst_QChangeArbiter::registerSceneObserver()
QVERIFY(!o->lastChange().isNull());
QVERIFY(o->lastChange()->type() == Qt3DCore::ComponentAdded);
}
-// for (tst_SceneObserver *s : qAsConst(sceneObservers)) {
-// QVERIFY(!s->lastChange().isNull());
-// QVERIFY(s->lastChange()->type() == Qt3DCore::NodeCreated);
-// }
Qt3DCore::QChangeArbiter::destroyThreadLocalChangeQueue(arbiter.data());
}
@@ -585,20 +535,11 @@ void tst_QChangeArbiter::unregisterSceneObservers()
observers << s;
}
- QList<tst_SceneObserver *> sceneObservers;
- for (int i = 0; i < 5; i++) {
- tst_SceneObserver *s = new tst_SceneObserver();
- arbiter->registerSceneObserver(s);
- sceneObservers << s;
- }
-
arbiter->syncChanges();
// THEN
for (tst_SimpleObserver *o : qAsConst(observers))
QVERIFY(o->lastChange().isNull());
- for (tst_SceneObserver *s : qAsConst(sceneObservers))
- QVERIFY(s->lastChange().isNull());
// WHEN
child->setParent(root);
@@ -609,10 +550,6 @@ void tst_QChangeArbiter::unregisterSceneObservers()
QVERIFY(!o->lastChange().isNull());
QVERIFY(o->lastChange()->type() == Qt3DCore::PropertyValueAdded);
}
-// for (tst_SceneObserver *s : qAsConst(sceneObservers)) {
-// QVERIFY(!s->lastChange().isNull());
-// QVERIFY(s->lastChange()->type() == Qt3DCore::NodeCreated);
-// }
// WHEN
root->sendComponentAddedNotification(&dummyComponent);
@@ -623,10 +560,6 @@ void tst_QChangeArbiter::unregisterSceneObservers()
QVERIFY(!o->lastChange().isNull());
QVERIFY(o->lastChange()->type() == Qt3DCore::ComponentAdded);
}
-// for (tst_SceneObserver *s : qAsConst(sceneObservers)) {
-// QVERIFY(!s->lastChange().isNull());
-// QVERIFY(s->lastChange()->type() == Qt3DCore::NodeCreated);
-// }
// WHEN
child->setParent(Q_NODE_NULLPTR);
@@ -637,13 +570,6 @@ void tst_QChangeArbiter::unregisterSceneObservers()
QVERIFY(!o->lastChange().isNull());
QVERIFY(o->lastChange()->type() == Qt3DCore::PropertyValueRemoved);
}
- for (tst_SceneObserver *s : qAsConst(sceneObservers)) {
- QVERIFY(!s->lastChange().isNull());
- QVERIFY(s->lastChange()->type() == Qt3DCore::NodeDeleted);
- }
-
- for (tst_SceneObserver *s : qAsConst(sceneObservers))
- arbiter->unregisterSceneObserver(s);
// WHEN
child->setParent(root);
@@ -654,10 +580,6 @@ void tst_QChangeArbiter::unregisterSceneObservers()
QVERIFY(!o->lastChange().isNull());
QVERIFY(o->lastChange()->type() == Qt3DCore::PropertyValueAdded);
}
- for (tst_SceneObserver *s : qAsConst(sceneObservers)) {
- QVERIFY(!s->lastChange().isNull());
- QVERIFY(s->lastChange()->type() == Qt3DCore::NodeDeleted);
- }
Qt3DCore::QChangeArbiter::destroyThreadLocalChangeQueue(arbiter.data());
}