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 <ulf.hermann@qt.io> (cherry picked from commit a572b4b0780dcc5fcac55737fc4153fca93e6c62) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
23cf29ffdd
commit
43003ccbce
@ -22,8 +22,17 @@ private slots:
|
||||
};
|
||||
|
||||
template<typename Integer>
|
||||
void compileTestRevisionMajorMinor()
|
||||
void compileTestRevision()
|
||||
{
|
||||
if constexpr (std::numeric_limits<Integer>::max() >= 0xffff) {
|
||||
const Integer value = 0x0510;
|
||||
const QTypeRevision r = QTypeRevision::fromEncodedVersion(value);
|
||||
|
||||
QCOMPARE(r.majorVersion(), 5);
|
||||
QCOMPARE(r.minorVersion(), 16);
|
||||
QCOMPARE(r.toEncodedVersion<Integer>(), value);
|
||||
}
|
||||
|
||||
const Integer major = 8;
|
||||
const Integer minor = 4;
|
||||
|
||||
@ -40,43 +49,6 @@ void compileTestRevisionMajorMinor()
|
||||
QCOMPARE(r4.minorVersion(), 4);
|
||||
}
|
||||
|
||||
|
||||
template<typename Integer>
|
||||
void compileTestRevision()
|
||||
{
|
||||
if (std::is_signed<Integer>::value)
|
||||
compileTestRevision<typename QIntegerForSize<sizeof(Integer) / 2>::Signed>();
|
||||
else
|
||||
compileTestRevision<typename QIntegerForSize<sizeof(Integer) / 2>::Unsigned>();
|
||||
|
||||
const Integer value = 0x0510;
|
||||
const QTypeRevision r = QTypeRevision::fromEncodedVersion(value);
|
||||
|
||||
QCOMPARE(r.majorVersion(), 5);
|
||||
QCOMPARE(r.minorVersion(), 16);
|
||||
QCOMPARE(r.toEncodedVersion<Integer>(), value);
|
||||
|
||||
compileTestRevisionMajorMinor<Integer>();
|
||||
}
|
||||
|
||||
template<>
|
||||
void compileTestRevision<qint16>()
|
||||
{
|
||||
compileTestRevisionMajorMinor<quint8>();
|
||||
}
|
||||
|
||||
template<>
|
||||
void compileTestRevision<quint8>()
|
||||
{
|
||||
compileTestRevisionMajorMinor<quint8>();
|
||||
}
|
||||
|
||||
template<>
|
||||
void compileTestRevision<qint8>()
|
||||
{
|
||||
compileTestRevisionMajorMinor<qint8>();
|
||||
}
|
||||
|
||||
void tst_QTypeRevision::qTypeRevision_data()
|
||||
{
|
||||
QTest::addColumn<QTypeRevision>("revision");
|
||||
@ -122,8 +94,17 @@ void tst_QTypeRevision::qTypeRevision()
|
||||
|
||||
void tst_QTypeRevision::qTypeRevisionTypes()
|
||||
{
|
||||
compileTestRevision<quint8>();
|
||||
// compileTestRevision<qint8>();
|
||||
compileTestRevision<quint16>();
|
||||
compileTestRevision<qint16>();
|
||||
compileTestRevision<quint32>();
|
||||
compileTestRevision<qint32>();
|
||||
compileTestRevision<quint64>();
|
||||
compileTestRevision<qint64>();
|
||||
compileTestRevision<long>();
|
||||
compileTestRevision<ulong>();
|
||||
// compileTestRevision<char>();
|
||||
|
||||
QVERIFY(!QTypeRevision::isValidSegment(0xff));
|
||||
QVERIFY(!QTypeRevision::isValidSegment(-1));
|
||||
|
Loading…
x
Reference in New Issue
Block a user