summaryrefslogtreecommitdiffstats
path: root/tests/benchmarks
diff options
context:
space:
mode:
authorJędrzej Nowacki <jedrzej.nowacki@nokia.com>2012-03-06 12:04:37 +0100
committerQt by Nokia <qt-info@nokia.com>2012-03-07 00:10:15 +0100
commit393356f5f622eb6a491e4c82b517e8d6c5d93a49 (patch)
treebe8c0ab37deed418bdaf5e9b551d0359ff0812eb /tests/benchmarks
parent484e2923b45ceccb0ea547a4a860ecc5315ada67 (diff)
Add benchmark for QMetaType::create().
A case of a custom type creation was not covered before. Change-Id: Icd2a7d63633f8e40d9d4a8a26e0eb0896fc85ec8 Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Diffstat (limited to 'tests/benchmarks')
-rw-r--r--tests/benchmarks/corelib/kernel/qmetatype/tst_qmetatype.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/benchmarks/corelib/kernel/qmetatype/tst_qmetatype.cpp b/tests/benchmarks/corelib/kernel/qmetatype/tst_qmetatype.cpp
index a3cdd38e56..c80a946366 100644
--- a/tests/benchmarks/corelib/kernel/qmetatype/tst_qmetatype.cpp
+++ b/tests/benchmarks/corelib/kernel/qmetatype/tst_qmetatype.cpp
@@ -77,6 +77,9 @@ private slots:
void constructCoreTypeCopy_data();
void constructCoreTypeCopy();
+ void constructCustomType_data();
+ void constructCustomType();
+
void constructInPlace_data();
void constructInPlace();
void constructInPlaceCopy_data();
@@ -309,6 +312,24 @@ void tst_QMetaType::constructCoreTypeCopy()
}
}
+void tst_QMetaType::constructCustomType_data()
+{
+ QTest::addColumn<int>("typeId");
+
+ QTest::newRow("BigClass") << qMetaTypeId<BigClass>();
+}
+
+void tst_QMetaType::constructCustomType()
+{
+ QFETCH(int, typeId);
+ QBENCHMARK {
+ for (int i = 0; i < 100000; ++i) {
+ void *data = QMetaType::create(typeId, (void *)0);
+ QMetaType::destroy(typeId, data);
+ }
+ }
+}
+
void tst_QMetaType::constructInPlace_data()
{
constructCoreType_data();