summaryrefslogtreecommitdiffstats
path: root/src/testlib/qjunittestlogger_p.h
diff options
context:
space:
mode:
authorTor Arne Vestbø <tor.arne.vestbo@qt.io>2021-09-08 16:34:19 +0200
committerTor Arne Vestbø <tor.arne.vestbo@qt.io>2021-09-10 22:19:45 +0200
commitb8191f41c65a908d0529d235b0200e6de99c34fb (patch)
tree59d750687ba5896cd4638780bb32193a5f563961 /src/testlib/qjunittestlogger_p.h
parent4e0082a9cacfdfd0c43e6105274bc0d41dd18801 (diff)
testlib: Replace custom QTestCoreList with std::vector
The custom linked list implementation was implemented using recursion, and as a result didn't handle long lists of test cases, exhausting the stack on e.g. Windows where the default stack is only 1MB. This was the case with e.g. the tst_QChar test that produces 20K test cases. Replacing with a std::vector should do nicely for our use-case. No attempt has been made at further reducing the complexity of QTestElement/QTestCoreElement/QTestElementAttribute. Pick-to: 6.2 Change-Id: Ie295f7cf937ec6abdc4606b6120818551ad285c7 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/testlib/qjunittestlogger_p.h')
-rw-r--r--src/testlib/qjunittestlogger_p.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/testlib/qjunittestlogger_p.h b/src/testlib/qjunittestlogger_p.h
index 91d2774144..abed9b1b44 100644
--- a/src/testlib/qjunittestlogger_p.h
+++ b/src/testlib/qjunittestlogger_p.h
@@ -51,9 +51,13 @@
// We mean it.
//
+#include <QtTest/qttestglobal.h>
+
#include <QtTest/private/qabstracttestlogger_p.h>
#include <QtTest/private/qtestelementattribute_p.h>
+#include <vector>
+
QT_BEGIN_NAMESPACE
class QTestJUnitStreamer;
@@ -88,7 +92,7 @@ class QJUnitTestLogger : public QAbstractTestLogger
const char *failureType, const QString &failureDescription);
QTestElement *currentTestSuite = nullptr;
- QTestElement *listOfTestcases = nullptr;
+ std::vector<QTestElement*> listOfTestcases;
QTestElement *currentTestCase = nullptr;
QTestElement *systemOutputElement = nullptr;
QTestElement *systemErrorElement = nullptr;