QOperatingSystemVersion: add tests for the globals

Task-number: QTBUG-107907
Pick-to: 6.4
Change-Id: I07ec23f3cb174fb197c3fffd1721a85112010ec9
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
bb10
Thiago Macieira 2022-10-26 08:33:23 -07:00
parent 429ad095b2
commit b56b77b68a
1 changed files with 60 additions and 0 deletions

View File

@ -17,6 +17,8 @@ private slots:
void comparison_data();
void comparison();
void comparison2_data();
void comparison2();
void mixedComparison();
};
@ -184,6 +186,64 @@ void tst_QOperatingSystemVersion::comparison()
QCOMPARE(lhsSystemInfo >= rhsSystemInfo, moreEqualResult);
}
void tst_QOperatingSystemVersion::comparison2_data()
{
QTest::addColumn<QOperatingSystemVersion>("lhs");
QTest::addColumn<QOperatingSystemVersion>("rhs");
QTest::addColumn<int>("result");
#define ADDROW(os1, os2) \
QTest::newRow(#os1 "-vs-" #os2) << QOperatingSystemVersion(QOperatingSystemVersion::os1) \
<< QOperatingSystemVersion(QOperatingSystemVersion::os2)
// Cross-OS testing: not comparables.
ADDROW(Windows10, MacOSMonterey) << -128;
ADDROW(Windows11, MacOSMonterey) << -128;
ADDROW(MacOSMonterey, Windows10) << -128;
ADDROW(MacOSMonterey, Windows11) << -128;
ADDROW(Windows10, MacOSVentura) << -128;
ADDROW(Windows11, MacOSVentura) << -128;
ADDROW(MacOSVentura, Windows10) << -128;
ADDROW(MacOSVentura, Windows11) << -128;
ADDROW(Windows10, Android10) << -128;
ADDROW(Windows11, Android11) << -128;
// Same-OS tests. This list does not have to be exhaustive.
ADDROW(Windows7, Windows7) << 0;
ADDROW(Windows7, Windows8) << -1;
ADDROW(Windows8, Windows7) << 1;
ADDROW(Windows8, Windows10) << -1;
ADDROW(Windows10, Windows8) << 1;
ADDROW(Windows10, Windows10_21H1) << -1;
ADDROW(Windows10_21H1, Windows10) << 1;
ADDROW(Windows10, Windows11) << -1;
ADDROW(MacOSCatalina, MacOSCatalina) << 0;
ADDROW(MacOSCatalina, MacOSBigSur) << -1;
ADDROW(MacOSBigSur, MacOSCatalina) << 1;
ADDROW(MacOSMonterey, MacOSVentura) << -1;
ADDROW(MacOSVentura, MacOSVentura) << 0;
ADDROW(MacOSVentura, MacOSMonterey) << 1;
#undef ADDROW
}
void tst_QOperatingSystemVersion::comparison2()
{
QFETCH(QOperatingSystemVersion, lhs);
QFETCH(QOperatingSystemVersion, rhs);
QFETCH(int, result);
QEXPECT_FAIL("Windows10-vs-Windows10_21H1", "QTBUG-107907: Unexpected behavior", Abort);
QEXPECT_FAIL("Windows10-vs-Windows11", "QTBUG-107907: Unexpected behavior", Abort);
// value -128 indicates "not comparable"
bool comparable = (result != -128);
QCOMPARE(lhs < rhs, result < 0 && comparable);
QEXPECT_FAIL("Windows10_21H1-vs-Windows10", "QTBUG-107907: Unexpected behavior", Abort);
QCOMPARE(lhs <= rhs, result <= 0 && comparable);
QCOMPARE(lhs > rhs, result > 0 && comparable);
QCOMPARE(lhs >= rhs, result >= 0 && comparable);
}
void tst_QOperatingSystemVersion::mixedComparison()
{
// ==