summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/tools
diff options
context:
space:
mode:
authorIvan Solovev <ivan.solovev@qt.io>2024-03-01 18:38:11 +0100
committerIvan Solovev <ivan.solovev@qt.io>2024-03-13 20:34:22 +0100
commit81dcb7c8be963faece04dc8a674fdd89c34b7d92 (patch)
tree76cce81ec740365e9ed3359277849d4d7a4e0424 /tests/auto/corelib/tools
parentb57a9a3cd9c95ab6549ea672715245210720c8da (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.cpp47
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"