Test partial_ordering::unordered != 0 comparison

... and figure out that it does not match the std implementation.
Fix will be provided in a follow-up commit.

Task-number: QTBUG-127759
Pick-to: 6.7 6.5 6.2 5.15
Change-Id: I51c4f086af531a81a6aae03f3462972437d41f97
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
(cherry picked from commit fed1099ad2909cb8e75477e60e0a8b41db3f58d0)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Ivan Solovev 2024-08-06 14:36:30 +02:00 committed by Qt Cherry-pick Bot
parent 79be5fa986
commit 247ec89cc5

View File

@ -22,6 +22,7 @@ private slots:
void conversions();
void is_eq_overloads();
void compareThreeWay();
void unorderedNeqLiteralZero();
};
void tst_QCompare::legacyPartialOrdering()
@ -846,5 +847,46 @@ QT_WARNING_POP
QCOMPARE_EQ(qCompareThreeWay(arr.data(), a0), Qt::strong_ordering::equivalent);
}
void tst_QCompare::unorderedNeqLiteralZero()
{
// This test is checking QTBUG-127759
constexpr auto qtUnordered = Qt::partial_ordering::unordered;
constexpr auto qtLegacyUnordered = QPartialOrdering::Unordered;
#ifdef __cpp_lib_three_way_comparison
constexpr auto stdUnordered = std::partial_ordering::unordered;
QVERIFY(stdUnordered != 0);
QVERIFY(0 != stdUnordered);
QVERIFY(is_neq(stdUnordered));
QEXPECT_FAIL("", "QTBUG-127759", Continue);
QCOMPARE_EQ(qtUnordered != 0, stdUnordered != 0);
QEXPECT_FAIL("", "QTBUG-127759", Continue);
QCOMPARE_EQ(0 != qtUnordered, 0 != stdUnordered);
QEXPECT_FAIL("", "QTBUG-127759", Continue);
QCOMPARE_EQ(is_neq(qtUnordered), is_neq(stdUnordered));
QEXPECT_FAIL("", "QTBUG-127759", Continue);
QCOMPARE_EQ(qtLegacyUnordered != 0, stdUnordered != 0);
QEXPECT_FAIL("", "QTBUG-127759", Continue);
QCOMPARE_EQ(0 != qtLegacyUnordered, 0 != stdUnordered);
QEXPECT_FAIL("", "QTBUG-127759", Continue);
QCOMPARE_EQ(is_neq(qtLegacyUnordered), is_neq(stdUnordered));
#endif
QEXPECT_FAIL("", "QTBUG-127759", Continue);
QVERIFY(qtUnordered != 0);
QEXPECT_FAIL("", "QTBUG-127759", Continue);
QVERIFY(0 != qtUnordered);
QEXPECT_FAIL("", "QTBUG-127759", Continue);
QVERIFY(is_neq(qtUnordered));
QEXPECT_FAIL("", "QTBUG-127759", Continue);
QVERIFY(qtLegacyUnordered != 0);
QEXPECT_FAIL("", "QTBUG-127759", Continue);
QVERIFY(0 != qtLegacyUnordered);
QEXPECT_FAIL("", "QTBUG-127759", Continue);
QVERIFY(is_neq(qtLegacyUnordered));
}
QTEST_MAIN(tst_QCompare)
#include "tst_qcompare.moc"