From e7f900bdc67a2a3fda316037c264d419d1592494 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Tue, 10 May 2011 14:46:10 +1000 Subject: Benchmark component creation with different types of bindings. --- .../declarative/binding/data/creation.txt | 9 +++++++ .../declarative/binding/data/objectproperty.txt | 1 + .../benchmarks/declarative/binding/tst_binding.cpp | 28 ++++++++++++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 tests/benchmarks/declarative/binding/data/creation.txt (limited to 'tests/benchmarks') diff --git a/tests/benchmarks/declarative/binding/data/creation.txt b/tests/benchmarks/declarative/binding/data/creation.txt new file mode 100644 index 0000000000..05704fa341 --- /dev/null +++ b/tests/benchmarks/declarative/binding/data/creation.txt @@ -0,0 +1,9 @@ +import Test 1.0 + +MyQmlObject { + id: myObject + property int myValue: 1 + object: myObject + + result: ### +} diff --git a/tests/benchmarks/declarative/binding/data/objectproperty.txt b/tests/benchmarks/declarative/binding/data/objectproperty.txt index 6133dd648b..06409f2dd1 100644 --- a/tests/benchmarks/declarative/binding/data/objectproperty.txt +++ b/tests/benchmarks/declarative/binding/data/objectproperty.txt @@ -2,6 +2,7 @@ import Test 1.0 MyQmlObject { id: myObject + object: myObject result: ### } diff --git a/tests/benchmarks/declarative/binding/tst_binding.cpp b/tests/benchmarks/declarative/binding/tst_binding.cpp index b1306527aa..d9ab06a537 100644 --- a/tests/benchmarks/declarative/binding/tst_binding.cpp +++ b/tests/benchmarks/declarative/binding/tst_binding.cpp @@ -41,6 +41,7 @@ #include #include +#include #include #include #include @@ -70,9 +71,12 @@ private slots: void objectproperty(); void basicproperty_data(); void basicproperty(); + void creation_data(); + void creation(); private: QDeclarativeEngine engine; + MyQmlObject tstObject; }; tst_binding::tst_binding() @@ -86,6 +90,7 @@ tst_binding::~tst_binding() void tst_binding::initTestCase() { registerTypes(); + engine.rootContext()->setContextProperty("tstObject", &tstObject); } void tst_binding::cleanupTestCase() @@ -162,5 +167,28 @@ void tst_binding::basicproperty() } } +void tst_binding::creation_data() +{ + QTest::addColumn("file"); + QTest::addColumn("binding"); + + QTest::newRow("constant") << SRCDIR "/data/creation.txt" << "10"; + QTest::newRow("ownProperty") << SRCDIR "/data/creation.txt" << "myObject.value"; + QTest::newRow("declaredProperty") << SRCDIR "/data/creation.txt" << "myObject.myValue"; + QTest::newRow("contextProperty") << SRCDIR "/data/creation.txt" << "tstObject.value"; +} + +void tst_binding::creation() +{ + QFETCH(QString, file); + QFETCH(QString, binding); + + COMPONENT(file, binding); + + QBENCHMARK { + c.create(); + } +} + QTEST_MAIN(tst_binding) #include "tst_binding.moc" -- cgit v1.2.3