summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWarwick Allison <warwick.allison@nokia.com>2010-03-17 07:14:38 (GMT)
committerWarwick Allison <warwick.allison@nokia.com>2010-03-17 07:14:38 (GMT)
commit0dcdcac2898c5978ea3250ed2627a9e47dd86d96 (patch)
tree1dbdc139aafdf41d61236c41f48c493636bff3d7
parent1c4bb7a951ae50983a38acaf633eab272d3603b9 (diff)
parentcaea4098b275eaecdf0c5c4019b897e47d8d9c13 (diff)
downloadQt-0dcdcac2898c5978ea3250ed2627a9e47dd86d96.zip
Qt-0dcdcac2898c5978ea3250ed2627a9e47dd86d96.tar.gz
Qt-0dcdcac2898c5978ea3250ed2627a9e47dd86d96.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7
-rw-r--r--tests/benchmarks/declarative/creation/tst_creation.cpp102
1 files changed, 102 insertions, 0 deletions
diff --git a/tests/benchmarks/declarative/creation/tst_creation.cpp b/tests/benchmarks/declarative/creation/tst_creation.cpp
index 743caa4..7aec32a 100644
--- a/tests/benchmarks/declarative/creation/tst_creation.cpp
+++ b/tests/benchmarks/declarative/creation/tst_creation.cpp
@@ -74,6 +74,13 @@ private slots:
void qobject_10tree_qml();
void qobject_10tree_cpp();
+ void itemtree_notree_cpp();
+ void itemtree_objtree_cpp();
+ void itemtree_cpp();
+ void itemtree_data_cpp();
+ void itemtree_qml();
+ void itemtree_scene_cpp();
+
void elements_data();
void elements();
@@ -233,6 +240,101 @@ void tst_creation::qobject_alloc()
}
}
+struct QDeclarativeGraphics_DerivedObject : public QObject
+{
+ void setParent_noEvent(QObject *parent) {
+ bool sce = d_ptr->sendChildEvents;
+ d_ptr->sendChildEvents = false;
+ setParent(parent);
+ d_ptr->sendChildEvents = sce;
+ }
+};
+
+inline void QDeclarativeGraphics_setParent_noEvent(QObject *object, QObject *parent)
+{
+ static_cast<QDeclarativeGraphics_DerivedObject *>(object)->setParent_noEvent(parent);
+}
+
+void tst_creation::itemtree_notree_cpp()
+{
+ QBENCHMARK {
+ QDeclarativeItem *item = new QDeclarativeItem;
+ for (int i = 0; i < 30; ++i) {
+ QDeclarativeItem *child = new QDeclarativeItem;
+ }
+ delete item;
+ }
+}
+
+void tst_creation::itemtree_objtree_cpp()
+{
+ QBENCHMARK {
+ QDeclarativeItem *item = new QDeclarativeItem;
+ for (int i = 0; i < 30; ++i) {
+ QDeclarativeItem *child = new QDeclarativeItem;
+ QDeclarativeGraphics_setParent_noEvent(child,item);
+ }
+ delete item;
+ }
+}
+
+void tst_creation::itemtree_cpp()
+{
+ QBENCHMARK {
+ QDeclarativeItem *item = new QDeclarativeItem;
+ for (int i = 0; i < 30; ++i) {
+ QDeclarativeItem *child = new QDeclarativeItem;
+ QDeclarativeGraphics_setParent_noEvent(child,item);
+ child->setParentItem(item);
+ }
+ delete item;
+ }
+}
+
+void tst_creation::itemtree_data_cpp()
+{
+ QBENCHMARK {
+ QDeclarativeItem *item = new QDeclarativeItem;
+ for (int i = 0; i < 30; ++i) {
+ QDeclarativeItem *child = new QDeclarativeItem;
+ QDeclarativeGraphics_setParent_noEvent(child,item);
+ QDeclarativeListReference ref(item, "data");
+ ref.append(child);
+ }
+ delete item;
+ }
+}
+
+void tst_creation::itemtree_qml()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("item.qml"));
+ QObject *obj = component.create();
+ delete obj;
+
+ QBENCHMARK {
+ QObject *obj = component.create();
+ delete obj;
+ }
+}
+
+void tst_creation::itemtree_scene_cpp()
+{
+ QGraphicsScene scene;
+ QDeclarativeItem *root = new QDeclarativeItem;
+ scene.addItem(root);
+ QBENCHMARK {
+ QDeclarativeItem *item = new QDeclarativeItem;
+ for (int i = 0; i < 30; ++i) {
+ QDeclarativeItem *child = new QDeclarativeItem;
+ QDeclarativeGraphics_setParent_noEvent(child,item);
+ child->setParentItem(item);
+ }
+ item->setParentItem(root);
+ delete item;
+ }
+ delete root;
+}
+
void tst_creation::elements_data()
{
QTest::addColumn<QByteArray>("type");