-
Bug
-
Resolution: Fixed
-
P3: Somewhat important
-
6.0.0, 6.2
-
None
-
-
5
-
420dd6fcc2dad3b7cc21b75610aff613a7351b7e (qt/qtbase/6.2) 0fbeac01156c57dc6e48087b7a8dea4644294f6a (qt/qtbase/dev)
-
Team 1 Foundation_Sprint 47, Team 1 Foundation_Sprint 48
The benchmark lies to the metatype system about some types being primitive, movable and complex (for bonus points, add tests of non-primitive, copyable but not movable) and expects this to affect how QList goes about copying, so it can count calls to copy-constructors and copy-assignment to tell whether it's being done right. This stopped working at Qt 6, presumably because of significant changes to how metatypes work and how QList decides how to do its copying.
[4/4] Linking CXX executable qtbase/tests/benchmarks/corelib/tools/qlist/tst_bench_qlist
********* Start testing of tst_QList *********
Config: Using QtTest library 6.2.0, Qt 6.2.0 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 10.2.1 20210110), debian 11
PASS : tst_QList::initTestCase()
FAIL! : tst_QList::removeAll_primitive(0%) Compared values are not the same
Actual (MyBase::liveCount) : 10000
Expected (isComplex ? list.size() : 0): 0
Loc: [.../qtbase/tests/benchmarks/corelib/tools/qlist/main.cpp(303)]
FAIL! : tst_QList::removeAll_primitive(10%) Compared values are not the same
Actual (MyBase::liveCount) : 10000
Expected (isComplex ? list.size() : 0): 0
Loc: [.../qtbase/tests/benchmarks/corelib/tools/qlist/main.cpp(303)]
FAIL! : tst_QList::removeAll_primitive(90%) Compared values are not the same
Actual (MyBase::liveCount) : 10000
Expected (isComplex ? list.size() : 0): 0
Loc: [.../qtbase/tests/benchmarks/corelib/tools/qlist/main.cpp(303)]
FAIL! : tst_QList::removeAll_primitive(100%) Compared values are not the same
Actual (MyBase::liveCount) : 10000
Expected (isComplex ? list.size() : 0): 0
Loc: [.../qtbase/tests/benchmarks/corelib/tools/qlist/main.cpp(303)]
PASS : tst_QList::removeAll_movable(0%)
RESULT : tst_QList::removeAll_movable():"0%":
0.0018 msecs per iteration (total: 61, iterations: 32768)
FAIL! : tst_QList::removeAll_movable(10%) Compared values are not the same
Actual (MyBase::errorCount): 8996
Expected (0) : 0
Loc: [.../qtbase/tests/benchmarks/corelib/tools/qlist/main.cpp(327)]
FAIL! : tst_QList::removeAll_movable(90%) Compared values are not the same
Actual (MyBase::errorCount): 1000
Expected (0) : 0
Loc: [.../qtbase/tests/benchmarks/corelib/tools/qlist/main.cpp(327)]
PASS : tst_QList::removeAll_movable(100%)
RESULT : tst_QList::removeAll_movable():"100%":
0.036 msecs per iteration (total: 75, iterations: 2048)
PASS : tst_QList::removeAll_complex(0%)
RESULT : tst_QList::removeAll_complex():"0%":
0.0018 msecs per iteration (total: 61, iterations: 32768)
FAIL! : tst_QList::removeAll_complex(10%) Compared values are not the same
Actual (MyBase::errorCount): 8996
Expected (0) : 0
Loc: [.../qtbase/tests/benchmarks/corelib/tools/qlist/main.cpp(327)]
FAIL! : tst_QList::removeAll_complex(90%) Compared values are not the same
Actual (MyBase::errorCount): 1000
Expected (0) : 0
Loc: [.../qtbase/tests/benchmarks/corelib/tools/qlist/main.cpp(327)]
To reproduce: configure with -DQT_BUILD_BENCHMARKS=ON (to CMake, so after the -- option if running configure) and build; then
ninja tst_bench_qlist && qtbase/tests/benchmarks/corelib/tools/qlist/tst_bench_qlist
Observed on Debian/testing, but presumably cross-platform.
- resulted from
-
QTBUG-91713 QtBase benchmarks fail for qtimezone, qdiriterator, and qfile
-
- Closed
-
| For Gerrit Dashboard: QTBUG-95096 | ||||||
|---|---|---|---|---|---|---|
| # | Subject | Branch | Project | Status | CR | V |
| 365875,5 | Add note to QList benchmark about known bug | dev | qt/qtbase | Status: MERGED | +2 | 0 |
| 385060,6 | Fix the benchmark for QList::removeAll() | dev | qt/qtbase | Status: MERGED | +2 | 0 |
| 385339,3 | Fix the benchmark for QList::removeAll() | 6.2 | qt/qtbase | Status: MERGED | +2 | 0 |