From 43003ccbce776a042461617fb0d781fe78a16aa9 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Wed, 11 Sep 2024 15:52:36 -0700 Subject: [PATCH] tst_QTypeRevision: rewrite using if constexpr and direct calls This removes the specializations, which were hiding the fact that signed 8-bit integers produce assertion failures. Pick-to: 6.7 6.5 Task-number: QTBUG-128848 Change-Id: Ibb4952b0eb50a8c51e05fffd9e88a137ca95bcd8 Reviewed-by: Ulf Hermann (cherry picked from commit a572b4b0780dcc5fcac55737fc4153fca93e6c62) Reviewed-by: Qt Cherry-pick Bot --- .../tools/qtyperevision/tst_qtyperevision.cpp | 57 +++++++------------ 1 file changed, 19 insertions(+), 38 deletions(-) diff --git a/tests/auto/corelib/tools/qtyperevision/tst_qtyperevision.cpp b/tests/auto/corelib/tools/qtyperevision/tst_qtyperevision.cpp index 66c746382af..222cb5bd122 100644 --- a/tests/auto/corelib/tools/qtyperevision/tst_qtyperevision.cpp +++ b/tests/auto/corelib/tools/qtyperevision/tst_qtyperevision.cpp @@ -22,8 +22,17 @@ private slots: }; template -void compileTestRevisionMajorMinor() +void compileTestRevision() { + if constexpr (std::numeric_limits::max() >= 0xffff) { + const Integer value = 0x0510; + const QTypeRevision r = QTypeRevision::fromEncodedVersion(value); + + QCOMPARE(r.majorVersion(), 5); + QCOMPARE(r.minorVersion(), 16); + QCOMPARE(r.toEncodedVersion(), value); + } + const Integer major = 8; const Integer minor = 4; @@ -40,43 +49,6 @@ void compileTestRevisionMajorMinor() QCOMPARE(r4.minorVersion(), 4); } - -template -void compileTestRevision() -{ - if (std::is_signed::value) - compileTestRevision::Signed>(); - else - compileTestRevision::Unsigned>(); - - const Integer value = 0x0510; - const QTypeRevision r = QTypeRevision::fromEncodedVersion(value); - - QCOMPARE(r.majorVersion(), 5); - QCOMPARE(r.minorVersion(), 16); - QCOMPARE(r.toEncodedVersion(), value); - - compileTestRevisionMajorMinor(); -} - -template<> -void compileTestRevision() -{ - compileTestRevisionMajorMinor(); -} - -template<> -void compileTestRevision() -{ - compileTestRevisionMajorMinor(); -} - -template<> -void compileTestRevision() -{ - compileTestRevisionMajorMinor(); -} - void tst_QTypeRevision::qTypeRevision_data() { QTest::addColumn("revision"); @@ -122,8 +94,17 @@ void tst_QTypeRevision::qTypeRevision() void tst_QTypeRevision::qTypeRevisionTypes() { + compileTestRevision(); + // compileTestRevision(); + compileTestRevision(); + compileTestRevision(); + compileTestRevision(); + compileTestRevision(); compileTestRevision(); compileTestRevision(); + compileTestRevision(); + compileTestRevision(); + // compileTestRevision(); QVERIFY(!QTypeRevision::isValidSegment(0xff)); QVERIFY(!QTypeRevision::isValidSegment(-1));