summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2022-10-26 08:33:23 -0700
committerThiago Macieira <thiago.macieira@intel.com>2022-10-28 14:42:40 -0700
commitb56b77b68a50468106b75169c5ba5bf4409be78a (patch)
tree27c426689b1f1b15c0ee818ee7a65ad373604b12 /tests
parent429ad095b2c5981805ebcdd9aa00cec0977e898b (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.cpp60
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()
{
// ==