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>
This commit is contained in:
parent
b57a9a3cd9
commit
81dcb7c8be
@ -5,6 +5,8 @@
|
|||||||
#include <QTest>
|
#include <QTest>
|
||||||
#include <QtCore/qtyperevision.h>
|
#include <QtCore/qtyperevision.h>
|
||||||
|
|
||||||
|
using namespace Qt::StringLiterals;
|
||||||
|
|
||||||
class tst_QTypeRevision : public QObject
|
class tst_QTypeRevision : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -13,6 +15,7 @@ private slots:
|
|||||||
void qTypeRevision_data();
|
void qTypeRevision_data();
|
||||||
void qTypeRevision();
|
void qTypeRevision();
|
||||||
void qTypeRevisionTypes();
|
void qTypeRevisionTypes();
|
||||||
|
void qTypeRevisionComparison_data();
|
||||||
void qTypeRevisionComparison();
|
void qTypeRevisionComparison();
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -128,8 +131,21 @@ void tst_QTypeRevision::qTypeRevisionTypes()
|
|||||||
QVERIFY(maxRevision.hasMinorVersion());
|
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[] = {
|
const QTypeRevision revisions[] = {
|
||||||
QTypeRevision::zero(),
|
QTypeRevision::zero(),
|
||||||
QTypeRevision::fromMajorVersion(0),
|
QTypeRevision::fromMajorVersion(0),
|
||||||
@ -150,19 +166,34 @@ void tst_QTypeRevision::qTypeRevisionComparison()
|
|||||||
};
|
};
|
||||||
|
|
||||||
const int length = sizeof(revisions) / sizeof(QTypeRevision);
|
const int length = sizeof(revisions) / sizeof(QTypeRevision);
|
||||||
|
|
||||||
for (int i = 0; i < length; ++i) {
|
for (int i = 0; i < length; ++i) {
|
||||||
for (int j = 0; j < length; ++j) {
|
for (int j = 0; j < length; ++j) {
|
||||||
QCOMPARE(revisions[i] == revisions[j], i == j);
|
const int expectedRes = (i == j)
|
||||||
QCOMPARE(revisions[i] != revisions[j], i != j);
|
? 0
|
||||||
QCOMPARE(revisions[i] < revisions[j], i < j);
|
: (i < j) ? -1 : 1;
|
||||||
QCOMPARE(revisions[i] > revisions[j], i > j);
|
|
||||||
QCOMPARE(revisions[i] <= revisions[j], i <= j);
|
const auto lhs = revisions[i];
|
||||||
QCOMPARE(revisions[i] >= revisions[j], i >= j);
|
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)
|
QTEST_APPLESS_MAIN(tst_QTypeRevision)
|
||||||
|
|
||||||
#include "tst_qtyperevision.moc"
|
#include "tst_qtyperevision.moc"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user