summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-11-09 09:58:56 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2021-01-22 12:11:39 +0100
commitdb942d61252ee909c480629d4900ef155e158712 (patch)
tree0a6b4e34b67a72f32557e3ff56b44376a0fc6847 /src
parentcbdf2ba46aed53d002b90d4d9683c28306f8e0a9 (diff)
QTestlib: Speed up comparison of qsizetype
Add a qCompare() overload for qsizetype, preventing it falling back to the slow code path pre-formatting expected/actual. toString() should use the correct format from the already present int-types (see macro TO_STRING_IMPL). Complements 94aa350621e8a5c4ad3b438c10fc1c0a9ed3bc8a. Task-number: QTBUG-38890 Change-Id: Ieb8cea7de086141a2c80f93b4c1be01572be96df Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/testlib/qtestcase.cpp15
-rw-r--r--src/testlib/qtestcase.h5
-rw-r--r--src/testlib/qtestresult.cpp10
-rw-r--r--src/testlib/qtestresult_p.h6
4 files changed, 36 insertions, 0 deletions
diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp
index 3227a66c05..7c2de877da 100644
--- a/src/testlib/qtestcase.cpp
+++ b/src/testlib/qtestcase.cpp
@@ -2577,6 +2577,21 @@ bool QTest::qCompare(int t1, int t2, const char *actual, const char *expected,
t1, t2, actual, expected, file, line);
}
+#if QT_POINTER_SIZE == 8
+/*! \fn bool QTest::qCompare(qsizetype t1, qsizetype t2, const char *actual, const char *expected, const char *file, int line)
+ \internal
+ \since 6.0
+ */
+
+bool QTest::qCompare(qsizetype t1, qsizetype t2, const char *actual, const char *expected,
+ const char *file, int line)
+{
+ return QTestResult::compare(t1 == t2,
+ "Compared values are not the same",
+ t1, t2, actual, expected, file, line);
+}
+#endif // QT_POINTER_SIZE == 8
+
/*! \fn bool QTest::qCompare(unsigned t1, unsigned t2, const char *actual, const char *expected, const char *file, int line)
\internal
\since 5.14
diff --git a/src/testlib/qtestcase.h b/src/testlib/qtestcase.h
index ced876fcd9..def2ff9da5 100644
--- a/src/testlib/qtestcase.h
+++ b/src/testlib/qtestcase.h
@@ -377,6 +377,11 @@ namespace QTest
Q_TESTLIB_EXPORT bool qCompare(int t1, int t2, const char *actual, const char *expected,
const char *file, int line);
+#if QT_POINTER_SIZE == 8
+ Q_TESTLIB_EXPORT bool qCompare(qsizetype t1, qsizetype t2, const char *actual, const char *expected,
+ const char *file, int line);
+#endif
+
Q_TESTLIB_EXPORT bool qCompare(unsigned t1, unsigned t2, const char *actual, const char *expected,
const char *file, int line);
diff --git a/src/testlib/qtestresult.cpp b/src/testlib/qtestresult.cpp
index eeaea83357..ee038d3704 100644
--- a/src/testlib/qtestresult.cpp
+++ b/src/testlib/qtestresult.cpp
@@ -415,6 +415,16 @@ bool QTestResult::compare(bool success, const char *failureMsg,
return compareHelper(success, failureMsg, val1, val2, actual, expected, file, line);
}
+#if QT_POINTER_SIZE == 8
+bool QTestResult::compare(bool success, const char *failureMsg,
+ qsizetype val1, qsizetype val2,
+ const char *actual, const char *expected,
+ const char *file, int line)
+{
+ return compareHelper(success, failureMsg, val1, val2, actual, expected, file, line);
+}
+#endif // QT_POINTER_SIZE == 8
+
bool QTestResult::compare(bool success, const char *failureMsg,
unsigned val1, unsigned val2,
const char *actual, const char *expected,
diff --git a/src/testlib/qtestresult_p.h b/src/testlib/qtestresult_p.h
index 38a3024a0f..4da66885df 100644
--- a/src/testlib/qtestresult_p.h
+++ b/src/testlib/qtestresult_p.h
@@ -94,6 +94,12 @@ public:
int val1, int val2,
const char *actual, const char *expected,
const char *file, int line);
+#if QT_POINTER_SIZE == 8
+ static bool compare(bool success, const char *failureMsg,
+ qsizetype val1, qsizetype val2,
+ const char *actual, const char *expected,
+ const char *file, int line);
+#endif
static bool compare(bool success, const char *failureMsg,
unsigned val1, unsigned val2,
const char *actual, const char *expected,