diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2022-10-26 08:33:23 -0700 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2022-10-28 14:42:40 -0700 |
commit | b56b77b68a50468106b75169c5ba5bf4409be78a (patch) | |
tree | 27c426689b1f1b15c0ee818ee7a65ad373604b12 /tests | |
parent | 429ad095b2c5981805ebcdd9aa00cec0977e898b (diff) |
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>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/corelib/global/qoperatingsystemversion/tst_qoperatingsystemversion.cpp | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/tests/auto/corelib/global/qoperatingsystemversion/tst_qoperatingsystemversion.cpp b/tests/auto/corelib/global/qoperatingsystemversion/tst_qoperatingsystemversion.cpp index f4f61452d5..5d4ec34e8f 100644 --- a/tests/auto/corelib/global/qoperatingsystemversion/tst_qoperatingsystemversion.cpp +++ b/tests/auto/corelib/global/qoperatingsystemversion/tst_qoperatingsystemversion.cpp @@ -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() { // == |