summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/benchmarks/corelib/kernel/qvariant/tst_qvariant.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/benchmarks/corelib/kernel/qvariant/tst_qvariant.cpp b/tests/benchmarks/corelib/kernel/qvariant/tst_qvariant.cpp
index 9abb9466df..287afff089 100644
--- a/tests/benchmarks/corelib/kernel/qvariant/tst_qvariant.cpp
+++ b/tests/benchmarks/corelib/kernel/qvariant/tst_qvariant.cpp
@@ -37,6 +37,15 @@
class tst_qvariant : public QObject
{
Q_OBJECT
+
+public:
+ enum ABenchmarkEnum {
+ FirstEnumValue,
+ SecondEnumValue,
+ ThirdEnumValue
+ };
+ Q_ENUM(ABenchmarkEnum)
+
private slots:
void testBound();
@@ -50,6 +59,7 @@ private slots:
void stringListVariantCreation();
void bigClassVariantCreation();
void smallClassVariantCreation();
+ void enumVariantCreation();
void doubleVariantSetValue();
void floatVariantSetValue();
@@ -58,6 +68,7 @@ private slots:
void stringListVariantSetValue();
void bigClassVariantSetValue();
void smallClassVariantSetValue();
+ void enumVariantSetValue();
void doubleVariantAssignment();
void floatVariantAssignment();
@@ -136,6 +147,16 @@ void variantCreation<SmallClass>(SmallClass val)
}
}
+template <>
+void variantCreation<tst_qvariant::ABenchmarkEnum>(tst_qvariant::ABenchmarkEnum val)
+{
+ QBENCHMARK {
+ for (int i = 0; i < ITERATION_COUNT; ++i) {
+ QVariant::fromValue(val);
+ }
+ }
+}
+
void tst_qvariant::doubleVariantCreation()
{
@@ -179,6 +200,12 @@ void tst_qvariant::smallClassVariantCreation()
variantCreation<SmallClass>(SmallClass());
}
+void tst_qvariant::enumVariantCreation()
+{
+ variantCreation<ABenchmarkEnum>(FirstEnumValue);
+}
+
+
template <typename T>
static void variantSetValue(T d)
{
@@ -225,6 +252,11 @@ void tst_qvariant::smallClassVariantSetValue()
variantSetValue<SmallClass>(SmallClass());
}
+void tst_qvariant::enumVariantSetValue()
+{
+ variantSetValue<ABenchmarkEnum>(FirstEnumValue);
+}
+
template <typename T>
static void variantAssignment(T d)
{