From c61d18716fd91a44971187c5acb0250334c29dc1 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Fri, 9 Jul 2021 18:12:25 +0200 Subject: 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 --- tests/benchmarks/corelib/tools/qlist/main.cpp | 32 ++++++++++++++------------- 1 file changed, 17 insertions(+), 15 deletions(-) (limited to 'tests/benchmarks/corelib') 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(); } @@ -166,12 +167,12 @@ private Q_SLOTS: void prependOne_complex() const { prependOne_impl(); } void prependOne_QString() const { prependOne_impl(); } - // insert in middle 1 element: - void midInsertOne_int_data() const { commonBenchmark_data(); } - void midInsertOne_primitive_data() const { commonBenchmark_data(); } - void midInsertOne_movable_data() const { commonBenchmark_data(); } - void midInsertOne_complex_data() const { commonBenchmark_data(); } - void midInsertOne_QString_data() const { commonBenchmark_data(); } + // insert in middle 1 element (quadratic, slow): + void midInsertOne_int_data() const { commonBenchmark_data(million); } + void midInsertOne_primitive_data() const { commonBenchmark_data(million); } + void midInsertOne_movable_data() const { commonBenchmark_data(million); } + void midInsertOne_complex_data() const { commonBenchmark_data(million / 10); } + void midInsertOne_QString_data() const { commonBenchmark_data(million / 10); } void midInsertOne_int() const { midInsertOne_impl(); } void midInsertOne_primitive() const { midInsertOne_impl(); } @@ -208,12 +209,12 @@ private Q_SLOTS: void prependAppendHalvesOne_complex() const { prependAppendHalvesOne_impl(); } void prependAppendHalvesOne_QString() const { prependAppendHalvesOne_impl(); } - // emplace in middle 1 element: - void midEmplaceOne_int_data() const { commonBenchmark_data(); } - void midEmplaceOne_primitive_data() const { commonBenchmark_data(); } - void midEmplaceOne_movable_data() const { commonBenchmark_data(); } - void midEmplaceOne_complex_data() const { commonBenchmark_data(); } - void midEmplaceOne_QString_data() const { commonBenchmark_data(); } + // emplace in middle 1 element (quadratic, slow): + void midEmplaceOne_int_data() const { commonBenchmark_data(million); } + void midEmplaceOne_primitive_data() const { commonBenchmark_data(million); } + void midEmplaceOne_movable_data() const { commonBenchmark_data(million); } + void midEmplaceOne_complex_data() const { commonBenchmark_data(million / 10); } + void midEmplaceOne_QString_data() const { commonBenchmark_data(million / 10); } void midEmplaceOne_int() const { midEmplaceOne_impl(); } void midEmplaceOne_primitive() const { midEmplaceOne_impl(); } @@ -252,7 +253,7 @@ private: void removeAll_impl() const; template - void commonBenchmark_data() const; + void commonBenchmark_data(int max = 200000000) const; template typename, typename> void appendOne_impl() const; @@ -341,7 +342,7 @@ void tst_QList::removeAll_primitive_data() } template -void tst_QList::commonBenchmark_data() const +void tst_QList::commonBenchmark_data(int max) const { QTest::addColumn("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); } } -- cgit v1.2.3