diff options
author | Ivan Solovev <ivan.solovev@qt.io> | 2024-03-01 18:38:11 +0100 |
---|---|---|
committer | Ivan Solovev <ivan.solovev@qt.io> | 2024-03-13 20:34:22 +0100 |
commit | 81dcb7c8be963faece04dc8a674fdd89c34b7d92 (patch) | |
tree | 76cce81ec740365e9ed3359277849d4d7a4e0424 /tests/auto/corelib/tools | |
parent | b57a9a3cd9c95ab6549ea672715245210720c8da (diff) |
QTypeRevision: convert comparison test to data-driven
This patch simplifies the checks when migrating the class to comparison
helper macros.
Task-number: QTBUG-120359
Change-Id: I47a6ba20d3b89c31edc2f432621eae9385fbd0a3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'tests/auto/corelib/tools')
-rw-r--r-- | tests/auto/corelib/tools/qtyperevision/tst_qtyperevision.cpp | 47 |
1 files changed, 39 insertions, 8 deletions
diff --git a/tests/auto/corelib/tools/qtyperevision/tst_qtyperevision.cpp b/tests/auto/corelib/tools/qtyperevision/tst_qtyperevision.cpp index 0ba9fabcdf..7fc4754a64 100644 --- a/tests/auto/corelib/tools/qtyperevision/tst_qtyperevision.cpp +++ b/tests/auto/corelib/tools/qtyperevision/tst_qtyperevision.cpp @@ -5,6 +5,8 @@ #include <QTest> #include <QtCore/qtyperevision.h> +using namespace Qt::StringLiterals; + class tst_QTypeRevision : public QObject { Q_OBJECT @@ -13,6 +15,7 @@ private slots: void qTypeRevision_data(); void qTypeRevision(); void qTypeRevisionTypes(); + void qTypeRevisionComparison_data(); void qTypeRevisionComparison(); }; @@ -128,8 +131,21 @@ void tst_QTypeRevision::qTypeRevisionTypes() QVERIFY(maxRevision.hasMinorVersion()); } -void tst_QTypeRevision::qTypeRevisionComparison() +void tst_QTypeRevision::qTypeRevisionComparison_data() { + QTest::addColumn<QTypeRevision>("lhs"); + QTest::addColumn<QTypeRevision>("rhs"); + QTest::addColumn<int>("expectedResult"); + + static auto versionStr = [](QTypeRevision r) { + QByteArray res = r.hasMajorVersion() ? QByteArray::number(r.majorVersion()) + : "x"_ba; + res.append('.'); + res.append(r.hasMinorVersion() ? QByteArray::number(r.minorVersion()) + : "x"_ba); + return res; + }; + const QTypeRevision revisions[] = { QTypeRevision::zero(), QTypeRevision::fromMajorVersion(0), @@ -150,19 +166,34 @@ void tst_QTypeRevision::qTypeRevisionComparison() }; const int length = sizeof(revisions) / sizeof(QTypeRevision); - for (int i = 0; i < length; ++i) { for (int j = 0; j < length; ++j) { - QCOMPARE(revisions[i] == revisions[j], i == j); - QCOMPARE(revisions[i] != revisions[j], i != j); - QCOMPARE(revisions[i] < revisions[j], i < j); - QCOMPARE(revisions[i] > revisions[j], i > j); - QCOMPARE(revisions[i] <= revisions[j], i <= j); - QCOMPARE(revisions[i] >= revisions[j], i >= j); + const int expectedRes = (i == j) + ? 0 + : (i < j) ? -1 : 1; + + const auto lhs = revisions[i]; + const auto rhs = revisions[j]; + QTest::addRow("%s_vs_%s", versionStr(lhs).constData(), versionStr(rhs).constData()) + << lhs << rhs << expectedRes; } } } +void tst_QTypeRevision::qTypeRevisionComparison() +{ + QFETCH(const QTypeRevision, lhs); + QFETCH(const QTypeRevision, rhs); + QFETCH(const int, expectedResult); + + QCOMPARE(lhs == rhs, expectedResult == 0); + QCOMPARE(lhs != rhs, expectedResult != 0); + QCOMPARE(lhs < rhs, expectedResult < 0); + QCOMPARE(lhs > rhs, expectedResult > 0); + QCOMPARE(lhs <= rhs, expectedResult <= 0); + QCOMPARE(lhs >= rhs, expectedResult >= 0); +} + QTEST_APPLESS_MAIN(tst_QTypeRevision) #include "tst_qtyperevision.moc" |