summaryrefslogtreecommitdiffstats
path: root/tests/benchmarks/corelib/tools
diff options
context:
space:
mode:
authorEdward Welbourne <edward.welbourne@qt.io>2021-07-09 18:12:25 +0200
committerEdward Welbourne <edward.welbourne@qt.io>2021-07-15 17:06:54 +0200
commitc61d18716fd91a44971187c5acb0250334c29dc1 (patch)
tree74dbc8e0ab03bd3b230994c60edd707c8885f618 /tests/benchmarks/corelib/tools
parentaea433d8f050bb65929a80a5d097e1265b86eaa6 (diff)
Limit some QList benchmark data-set sizes to avoid time-outs
The watch-dog timer was killing some tests, that take time quadratic in the size of the data to test on, on their test-cases with larger data-set sizes. Enable tuning of the data-table creation to leave off the larger data-sets for thse tests. Task-number: QTBUG-91713 Change-Id: I9f462f4f2ba03c6518486a26361aa2b847322f8c Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Diffstat (limited to 'tests/benchmarks/corelib/tools')
-rw-r--r--tests/benchmarks/corelib/tools/qlist/main.cpp32
1 files changed, 17 insertions, 15 deletions
diff --git a/tests/benchmarks/corelib/tools/qlist/main.cpp b/tests/benchmarks/corelib/tools/qlist/main.cpp
index cede305c4f..1f2f8553fe 100644
--- a/tests/benchmarks/corelib/tools/qlist/main.cpp
+++ b/tests/benchmarks/corelib/tools/qlist/main.cpp
@@ -132,6 +132,7 @@ class tst_QList: public QObject
{
Q_OBJECT
+ const int million = 1000000;
private Q_SLOTS:
void removeAll_primitive_data();
void removeAll_primitive() { removeAll_impl<MyPrimitive>(); }
@@ -166,12 +167,12 @@ private Q_SLOTS:
void prependOne_complex() const { prependOne_impl<QList, MyComplex>(); }
void prependOne_QString() const { prependOne_impl<QList, QString>(); }
- // insert in middle 1 element:
- void midInsertOne_int_data() const { commonBenchmark_data<int>(); }
- void midInsertOne_primitive_data() const { commonBenchmark_data<MyPrimitive>(); }
- void midInsertOne_movable_data() const { commonBenchmark_data<MyMovable>(); }
- void midInsertOne_complex_data() const { commonBenchmark_data<MyComplex>(); }
- void midInsertOne_QString_data() const { commonBenchmark_data<QString>(); }
+ // insert in middle 1 element (quadratic, slow):
+ void midInsertOne_int_data() const { commonBenchmark_data<int>(million); }
+ void midInsertOne_primitive_data() const { commonBenchmark_data<MyPrimitive>(million); }
+ void midInsertOne_movable_data() const { commonBenchmark_data<MyMovable>(million); }
+ void midInsertOne_complex_data() const { commonBenchmark_data<MyComplex>(million / 10); }
+ void midInsertOne_QString_data() const { commonBenchmark_data<QString>(million / 10); }
void midInsertOne_int() const { midInsertOne_impl<QList, int>(); }
void midInsertOne_primitive() const { midInsertOne_impl<QList, MyPrimitive>(); }
@@ -208,12 +209,12 @@ private Q_SLOTS:
void prependAppendHalvesOne_complex() const { prependAppendHalvesOne_impl<QList, MyComplex>(); }
void prependAppendHalvesOne_QString() const { prependAppendHalvesOne_impl<QList, QString>(); }
- // emplace in middle 1 element:
- void midEmplaceOne_int_data() const { commonBenchmark_data<int>(); }
- void midEmplaceOne_primitive_data() const { commonBenchmark_data<MyPrimitive>(); }
- void midEmplaceOne_movable_data() const { commonBenchmark_data<MyMovable>(); }
- void midEmplaceOne_complex_data() const { commonBenchmark_data<MyComplex>(); }
- void midEmplaceOne_QString_data() const { commonBenchmark_data<QString>(); }
+ // emplace in middle 1 element (quadratic, slow):
+ void midEmplaceOne_int_data() const { commonBenchmark_data<int>(million); }
+ void midEmplaceOne_primitive_data() const { commonBenchmark_data<MyPrimitive>(million); }
+ void midEmplaceOne_movable_data() const { commonBenchmark_data<MyMovable>(million); }
+ void midEmplaceOne_complex_data() const { commonBenchmark_data<MyComplex>(million / 10); }
+ void midEmplaceOne_QString_data() const { commonBenchmark_data<QString>(million / 10); }
void midEmplaceOne_int() const { midEmplaceOne_impl<QList, int>(); }
void midEmplaceOne_primitive() const { midEmplaceOne_impl<QList, MyPrimitive>(); }
@@ -252,7 +253,7 @@ private:
void removeAll_impl() const;
template<typename>
- void commonBenchmark_data() const;
+ void commonBenchmark_data(int max = 200000000) const;
template<template<typename> typename, typename>
void appendOne_impl() const;
@@ -341,7 +342,7 @@ void tst_QList::removeAll_primitive_data()
}
template<typename T>
-void tst_QList::commonBenchmark_data() const
+void tst_QList::commonBenchmark_data(int max) const
{
QTest::addColumn<int>("elemCount");
@@ -352,7 +353,8 @@ void tst_QList::commonBenchmark_data() const
// cap at 20m elements to allow 5.15/6.0 coverage to be the same
for (auto pair : { p(100, "100"), p(1000, "1k"), p(10000, "10k"), p(100000, "100k"),
p(1000000, "1m"), p(10000000, "10m"), p(20000000, "20m") }) {
- addRow(pair.first, pair.second);
+ if (pair.first <= max)
+ addRow(pair.first, pair.second);
}
}