QVersionNumber: use new comparison helper macros
Replace public friend operators operator==(), operator!=(), operator<(), etc of QVersionNumber to friend methods comparesEqual() / compareThreeWay(). Task-number: QTBUG-120304 Change-Id: Ib94a1a28ca9843ca5d5a8d07f41c63de9fe584bb Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
This commit is contained in:
parent
77c6b0c66f
commit
ecb0878cbc
@ -30,6 +30,7 @@ QT_IMPL_METATYPE_EXTERN(QVersionNumber)
|
|||||||
\brief The QVersionNumber class contains a version number with an arbitrary
|
\brief The QVersionNumber class contains a version number with an arbitrary
|
||||||
number of segments.
|
number of segments.
|
||||||
|
|
||||||
|
\compares strong
|
||||||
\snippet qversionnumber/main.cpp 0
|
\snippet qversionnumber/main.cpp 0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
#ifndef QVERSIONNUMBER_H
|
#ifndef QVERSIONNUMBER_H
|
||||||
#define QVERSIONNUMBER_H
|
#define QVERSIONNUMBER_H
|
||||||
|
|
||||||
|
#include <QtCore/qcompare.h>
|
||||||
#include <QtCore/qcontainertools_impl.h>
|
#include <QtCore/qcontainertools_impl.h>
|
||||||
#include <QtCore/qlist.h>
|
#include <QtCore/qlist.h>
|
||||||
#include <QtCore/qmetatype.h>
|
#include <QtCore/qmetatype.h>
|
||||||
@ -355,25 +356,20 @@ public:
|
|||||||
[[nodiscard]] Q_CORE_EXPORT static QVersionNumber fromString(QStringView string, int *suffixIndex);
|
[[nodiscard]] Q_CORE_EXPORT static QVersionNumber fromString(QStringView string, int *suffixIndex);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
[[nodiscard]] friend bool operator> (const QVersionNumber &lhs, const QVersionNumber &rhs) noexcept
|
|
||||||
{ return compare(lhs, rhs) > 0; }
|
|
||||||
|
|
||||||
[[nodiscard]] friend bool operator>=(const QVersionNumber &lhs, const QVersionNumber &rhs) noexcept
|
|
||||||
{ return compare(lhs, rhs) >= 0; }
|
|
||||||
|
|
||||||
[[nodiscard]] friend bool operator< (const QVersionNumber &lhs, const QVersionNumber &rhs) noexcept
|
|
||||||
{ return compare(lhs, rhs) < 0; }
|
|
||||||
|
|
||||||
[[nodiscard]] friend bool operator<=(const QVersionNumber &lhs, const QVersionNumber &rhs) noexcept
|
|
||||||
{ return compare(lhs, rhs) <= 0; }
|
|
||||||
|
|
||||||
[[nodiscard]] friend bool operator==(const QVersionNumber &lhs, const QVersionNumber &rhs) noexcept
|
|
||||||
{ return compare(lhs, rhs) == 0; }
|
|
||||||
|
|
||||||
[[nodiscard]] friend bool operator!=(const QVersionNumber &lhs, const QVersionNumber &rhs) noexcept
|
|
||||||
{ return compare(lhs, rhs) != 0; }
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
[[nodiscard]] friend bool comparesEqual(const QVersionNumber &lhs,
|
||||||
|
const QVersionNumber &rhs) noexcept
|
||||||
|
{
|
||||||
|
return compare(lhs, rhs) == 0;
|
||||||
|
}
|
||||||
|
[[nodiscard]] friend Qt::strong_ordering compareThreeWay(const QVersionNumber &lhs,
|
||||||
|
const QVersionNumber &rhs) noexcept
|
||||||
|
{
|
||||||
|
int c = compare(lhs, rhs);
|
||||||
|
return Qt::compareThreeWay(c, 0);
|
||||||
|
}
|
||||||
|
Q_DECLARE_STRONGLY_ORDERED(QVersionNumber)
|
||||||
|
|
||||||
#ifndef QT_NO_DATASTREAM
|
#ifndef QT_NO_DATASTREAM
|
||||||
friend Q_CORE_EXPORT QDataStream& operator>>(QDataStream &in, QVersionNumber &version);
|
friend Q_CORE_EXPORT QDataStream& operator>>(QDataStream &in, QVersionNumber &version);
|
||||||
#endif
|
#endif
|
||||||
|
@ -14,6 +14,8 @@ endif()
|
|||||||
qt_internal_add_test(tst_qversionnumber
|
qt_internal_add_test(tst_qversionnumber
|
||||||
SOURCES
|
SOURCES
|
||||||
tst_qversionnumber.cpp
|
tst_qversionnumber.cpp
|
||||||
|
LIBRARIES
|
||||||
|
Qt::TestPrivate
|
||||||
)
|
)
|
||||||
|
|
||||||
## Scopes:
|
## Scopes:
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
|
||||||
|
|
||||||
#include <QTest>
|
#include <QTest>
|
||||||
|
#include <QtTest/private/qcomparisontesthelper_p.h>
|
||||||
#include <QtCore/qversionnumber.h>
|
#include <QtCore/qversionnumber.h>
|
||||||
#include <QtCore/qlibraryinfo.h>
|
#include <QtCore/qlibraryinfo.h>
|
||||||
|
|
||||||
@ -16,24 +17,15 @@ private:
|
|||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void initTestCase();
|
void initTestCase();
|
||||||
|
void compareCompiles();
|
||||||
void constructorDefault();
|
void constructorDefault();
|
||||||
void constructorVersioned_data();
|
void constructorVersioned_data();
|
||||||
void constructorVersioned();
|
void constructorVersioned();
|
||||||
void constructorExplicit();
|
void constructorExplicit();
|
||||||
void constructorCopy_data();
|
void constructorCopy_data();
|
||||||
void constructorCopy();
|
void constructorCopy();
|
||||||
void compareGreater_data();
|
void comparisonOperators_data();
|
||||||
void compareGreater();
|
void comparisonOperators();
|
||||||
void compareGreaterEqual_data();
|
|
||||||
void compareGreaterEqual();
|
|
||||||
void compareLess_data();
|
|
||||||
void compareLess();
|
|
||||||
void compareLessEqual_data();
|
|
||||||
void compareLessEqual();
|
|
||||||
void compareEqual_data();
|
|
||||||
void compareEqual();
|
|
||||||
void compareNotEqual_data();
|
|
||||||
void compareNotEqual();
|
|
||||||
void compare_data();
|
void compare_data();
|
||||||
void compare();
|
void compare();
|
||||||
void isPrefixOf_data();
|
void isPrefixOf_data();
|
||||||
@ -121,74 +113,69 @@ void tst_QVersionNumber::comparisonData()
|
|||||||
{
|
{
|
||||||
QTest::addColumn<QVersionNumber>("lhs");
|
QTest::addColumn<QVersionNumber>("lhs");
|
||||||
QTest::addColumn<QVersionNumber>("rhs");
|
QTest::addColumn<QVersionNumber>("rhs");
|
||||||
QTest::addColumn<bool>("equal");
|
QTest::addColumn<Qt::strong_ordering>("ordering");
|
||||||
QTest::addColumn<bool>("notEqual");
|
|
||||||
QTest::addColumn<bool>("lessThan");
|
|
||||||
QTest::addColumn<bool>("lessThanOrEqual");
|
|
||||||
QTest::addColumn<bool>("greaterThan");
|
|
||||||
QTest::addColumn<bool>("greaterThanOrEqual");
|
|
||||||
QTest::addColumn<int>("compareResult");
|
QTest::addColumn<int>("compareResult");
|
||||||
QTest::addColumn<bool>("isPrefix");
|
QTest::addColumn<bool>("isPrefix");
|
||||||
QTest::addColumn<QVersionNumber>("common");
|
QTest::addColumn<QVersionNumber>("common");
|
||||||
|
|
||||||
// LHS RHS == != < <= > >= compareResult isPrefixOf commonPrefix
|
// LHS RHS ordering compareResult isPrefixOf commonPrefix
|
||||||
QTest::newRow("null, null") << QVersionNumber() << QVersionNumber() << true << false << false << true << false << true << 0 << true << QVersionNumber();
|
QTest::newRow("null, null") << QVersionNumber() << QVersionNumber() << Qt::strong_ordering::equal << 0 << true << QVersionNumber();
|
||||||
QTest::newRow("null, 0") << QVersionNumber() << QVersionNumber(0) << false << true << true << true << false << false << -1 << true << QVersionNumber();
|
QTest::newRow("null, 0") << QVersionNumber() << QVersionNumber(0) << Qt::strong_ordering::less << -1 << true << QVersionNumber();
|
||||||
QTest::newRow("0, null") << QVersionNumber(0) << QVersionNumber() << false << true << false << false << true << true << 1 << false << QVersionNumber();
|
QTest::newRow("0, null") << QVersionNumber(0) << QVersionNumber() << Qt::strong_ordering::greater << 1 << false << QVersionNumber();
|
||||||
QTest::newRow("0, 0") << QVersionNumber(0) << QVersionNumber(0) << true << false << false << true << false << true << 0 << true << QVersionNumber(0);
|
QTest::newRow("0, 0") << QVersionNumber(0) << QVersionNumber(0) << Qt::strong_ordering::equal << 0 << true << QVersionNumber(0);
|
||||||
QTest::newRow("1.0, 1.0") << QVersionNumber(1, 0) << QVersionNumber(1, 0) << true << false << false << true << false << true << 0 << true << QVersionNumber(1, 0);
|
QTest::newRow("1.0, 1.0") << QVersionNumber(1, 0) << QVersionNumber(1, 0) << Qt::strong_ordering::equal << 0 << true << QVersionNumber(1, 0);
|
||||||
QTest::newRow("1, 1.0") << QVersionNumber(1) << QVersionNumber(1, 0) << false << true << true << true << false << false << -1 << true << QVersionNumber(1);
|
QTest::newRow("1, 1.0") << QVersionNumber(1) << QVersionNumber(1, 0) << Qt::strong_ordering::less << -1 << true << QVersionNumber(1);
|
||||||
QTest::newRow("1.0, 1") << QVersionNumber(1, 0) << QVersionNumber(1) << false << true << false << false << true << true << 1 << false << QVersionNumber(1);
|
QTest::newRow("1.0, 1") << QVersionNumber(1, 0) << QVersionNumber(1) << Qt::strong_ordering::greater << 1 << false << QVersionNumber(1);
|
||||||
|
|
||||||
QTest::newRow("0.1.2, 0.1") << QVersionNumber(0, 1, 2) << QVersionNumber(0, 1) << false << true << false << false << true << true << 2 << false << QVersionNumber(0, 1);
|
QTest::newRow("0.1.2, 0.1") << QVersionNumber(0, 1, 2) << QVersionNumber(0, 1) << Qt::strong_ordering::greater << 2 << false << QVersionNumber(0, 1);
|
||||||
QTest::newRow("0.1, 0.1.2") << QVersionNumber(0, 1) << QVersionNumber(0, 1, 2) << false << true << true << true << false << false << -2 << true << QVersionNumber(0, 1);
|
QTest::newRow("0.1, 0.1.2") << QVersionNumber(0, 1) << QVersionNumber(0, 1, 2) << Qt::strong_ordering::less << -2 << true << QVersionNumber(0, 1);
|
||||||
QTest::newRow("0.1.2, 0.1.2") << QVersionNumber(0, 1, 2) << QVersionNumber(0, 1, 2) << true << false << false << true << false << true << 0 << true << QVersionNumber(0, 1, 2);
|
QTest::newRow("0.1.2, 0.1.2") << QVersionNumber(0, 1, 2) << QVersionNumber(0, 1, 2) << Qt::strong_ordering::equal << 0 << true << QVersionNumber(0, 1, 2);
|
||||||
QTest::newRow("0.1.2, 1.1.2") << QVersionNumber(0, 1, 2) << QVersionNumber(1, 1, 2) << false << true << true << true << false << false << -1 << false << QVersionNumber();
|
QTest::newRow("0.1.2, 1.1.2") << QVersionNumber(0, 1, 2) << QVersionNumber(1, 1, 2) << Qt::strong_ordering::less << -1 << false << QVersionNumber();
|
||||||
QTest::newRow("1.1.2, 0.1.2") << QVersionNumber(1, 1, 2) << QVersionNumber(0, 1, 2) << false << true << false << false << true << true << 1 << false << QVersionNumber();
|
QTest::newRow("1.1.2, 0.1.2") << QVersionNumber(1, 1, 2) << QVersionNumber(0, 1, 2) << Qt::strong_ordering::greater << 1 << false << QVersionNumber();
|
||||||
QTest::newRow("1, -1") << QVersionNumber(1) << QVersionNumber(-1) << false << true << false << false << true << true << 2 << false << QVersionNumber();
|
QTest::newRow("1, -1") << QVersionNumber(1) << QVersionNumber(-1) << Qt::strong_ordering::greater << 2 << false << QVersionNumber();
|
||||||
QTest::newRow("-1, 1") << QVersionNumber(-1) << QVersionNumber(1) << false << true << true << true << false << false << -2 << false << QVersionNumber();
|
QTest::newRow("-1, 1") << QVersionNumber(-1) << QVersionNumber(1) << Qt::strong_ordering::less << -2 << false << QVersionNumber();
|
||||||
QTest::newRow("0.1, 0.-1") << QVersionNumber(0, 1) << QVersionNumber(0, -1) << false << true << false << false << true << true << 2 << false << QVersionNumber(0);
|
QTest::newRow("0.1, 0.-1") << QVersionNumber(0, 1) << QVersionNumber(0, -1) << Qt::strong_ordering::greater << 2 << false << QVersionNumber(0);
|
||||||
QTest::newRow("0.-1, 0.1") << QVersionNumber(0, -1) << QVersionNumber(0, 1) << false << true << true << true << false << false << -2 << false << QVersionNumber(0);
|
QTest::newRow("0.-1, 0.1") << QVersionNumber(0, -1) << QVersionNumber(0, 1) << Qt::strong_ordering::less << -2 << false << QVersionNumber(0);
|
||||||
QTest::newRow("0.-1, 0") << QVersionNumber(0, -1) << QVersionNumber(0) << false << true << true << true << false << false << -1 << false << QVersionNumber(0);
|
QTest::newRow("0.-1, 0") << QVersionNumber(0, -1) << QVersionNumber(0) << Qt::strong_ordering::less << -1 << false << QVersionNumber(0);
|
||||||
QTest::newRow("0, 0.-1") << QVersionNumber(0) << QVersionNumber(0, -1) << false << true << false << false << true << true << 1 << true << QVersionNumber(0);
|
QTest::newRow("0, 0.-1") << QVersionNumber(0) << QVersionNumber(0, -1) << Qt::strong_ordering::greater << 1 << true << QVersionNumber(0);
|
||||||
|
|
||||||
QTest::newRow("0.127.2, 0.127") << QVersionNumber(0, 127, 2) << QVersionNumber(0, 127) << false << true << false << false << true << true << 2 << false << QVersionNumber(0, 127);
|
QTest::newRow("0.127.2, 0.127") << QVersionNumber(0, 127, 2) << QVersionNumber(0, 127) << Qt::strong_ordering::greater << 2 << false << QVersionNumber(0, 127);
|
||||||
QTest::newRow("0.127, 0.127.2") << QVersionNumber(0, 127) << QVersionNumber(0, 127, 2) << false << true << true << true << false << false << -2 << true << QVersionNumber(0, 127);
|
QTest::newRow("0.127, 0.127.2") << QVersionNumber(0, 127) << QVersionNumber(0, 127, 2) << Qt::strong_ordering::less << -2 << true << QVersionNumber(0, 127);
|
||||||
QTest::newRow("0.127.2, 0.127.2") << QVersionNumber(0, 127, 2) << QVersionNumber(0, 127, 2) << true << false << false << true << false << true << 0 << true << QVersionNumber(0, 127, 2);
|
QTest::newRow("0.127.2, 0.127.2") << QVersionNumber(0, 127, 2) << QVersionNumber(0, 127, 2) << Qt::strong_ordering::equal << 0 << true << QVersionNumber(0, 127, 2);
|
||||||
QTest::newRow("0.127.2, 127.127.2") << QVersionNumber(0, 127, 2) << QVersionNumber(127, 127, 2) << false << true << true << true << false << false << -127 << false << QVersionNumber();
|
QTest::newRow("0.127.2, 127.127.2") << QVersionNumber(0, 127, 2) << QVersionNumber(127, 127, 2) << Qt::strong_ordering::less << -127 << false << QVersionNumber();
|
||||||
QTest::newRow("127.127.2, 0.127.2") << QVersionNumber(127, 127, 2) << QVersionNumber(0, 127, 2) << false << true << false << false << true << true << 127 << false << QVersionNumber();
|
QTest::newRow("127.127.2, 0.127.2") << QVersionNumber(127, 127, 2) << QVersionNumber(0, 127, 2) << Qt::strong_ordering::greater << 127 << false << QVersionNumber();
|
||||||
QTest::newRow("127, -128") << QVersionNumber(127) << QVersionNumber(-128) << false << true << false << false << true << true << 255 << false << QVersionNumber();
|
QTest::newRow("127, -128") << QVersionNumber(127) << QVersionNumber(-128) << Qt::strong_ordering::greater << 255 << false << QVersionNumber();
|
||||||
QTest::newRow("-128, 127") << QVersionNumber(-128) << QVersionNumber(127) << false << true << true << true << false << false << -255 << false << QVersionNumber();
|
QTest::newRow("-128, 127") << QVersionNumber(-128) << QVersionNumber(127) << Qt::strong_ordering::less << -255 << false << QVersionNumber();
|
||||||
QTest::newRow("0.127, 0.-128") << QVersionNumber(0, 127) << QVersionNumber(0, -128) << false << true << false << false << true << true << 255 << false << QVersionNumber(0);
|
QTest::newRow("0.127, 0.-128") << QVersionNumber(0, 127) << QVersionNumber(0, -128) << Qt::strong_ordering::greater << 255 << false << QVersionNumber(0);
|
||||||
QTest::newRow("0.-128, 0.127") << QVersionNumber(0, -128) << QVersionNumber(0, 127) << false << true << true << true << false << false << -255 << false << QVersionNumber(0);
|
QTest::newRow("0.-128, 0.127") << QVersionNumber(0, -128) << QVersionNumber(0, 127) << Qt::strong_ordering::less << -255 << false << QVersionNumber(0);
|
||||||
QTest::newRow("0.-128, 0") << QVersionNumber(0, -128) << QVersionNumber(0) << false << true << true << true << false << false << -128 << false << QVersionNumber(0);
|
QTest::newRow("0.-128, 0") << QVersionNumber(0, -128) << QVersionNumber(0) << Qt::strong_ordering::less << -128 << false << QVersionNumber(0);
|
||||||
QTest::newRow("0, 0.-128") << QVersionNumber(0) << QVersionNumber(0, -128) << false << true << false << false << true << true << 128 << true << QVersionNumber(0);
|
QTest::newRow("0, 0.-128") << QVersionNumber(0) << QVersionNumber(0, -128) << Qt::strong_ordering::greater << 128 << true << QVersionNumber(0);
|
||||||
|
|
||||||
QTest::newRow("0.128.2, 0.128") << QVersionNumber(0, 128, 2) << QVersionNumber(0, 128) << false << true << false << false << true << true << 2 << false << QVersionNumber(0, 128);
|
QTest::newRow("0.128.2, 0.128") << QVersionNumber(0, 128, 2) << QVersionNumber(0, 128) << Qt::strong_ordering::greater << 2 << false << QVersionNumber(0, 128);
|
||||||
QTest::newRow("0.128, 0.128.2") << QVersionNumber(0, 128) << QVersionNumber(0, 128, 2) << false << true << true << true << false << false << -2 << true << QVersionNumber(0, 128);
|
QTest::newRow("0.128, 0.128.2") << QVersionNumber(0, 128) << QVersionNumber(0, 128, 2) << Qt::strong_ordering::less << -2 << true << QVersionNumber(0, 128);
|
||||||
QTest::newRow("0.128.2, 0.128.2") << QVersionNumber(0, 128, 2) << QVersionNumber(0, 128, 2) << true << false << false << true << false << true << 0 << true << QVersionNumber(0, 128, 2);
|
QTest::newRow("0.128.2, 0.128.2") << QVersionNumber(0, 128, 2) << QVersionNumber(0, 128, 2) << Qt::strong_ordering::equal << 0 << true << QVersionNumber(0, 128, 2);
|
||||||
QTest::newRow("0.128.2, 128.128.2") << QVersionNumber(0, 128, 2) << QVersionNumber(128, 128, 2) << false << true << true << true << false << false << -128 << false << QVersionNumber();
|
QTest::newRow("0.128.2, 128.128.2") << QVersionNumber(0, 128, 2) << QVersionNumber(128, 128, 2) << Qt::strong_ordering::less << -128 << false << QVersionNumber();
|
||||||
QTest::newRow("128.128.2, 0.128.2") << QVersionNumber(128, 128, 2) << QVersionNumber(0, 128, 2) << false << true << false << false << true << true << 128 << false << QVersionNumber();
|
QTest::newRow("128.128.2, 0.128.2") << QVersionNumber(128, 128, 2) << QVersionNumber(0, 128, 2) << Qt::strong_ordering::greater << 128 << false << QVersionNumber();
|
||||||
QTest::newRow("128, -129") << QVersionNumber(128) << QVersionNumber(-129) << false << true << false << false << true << true << 257 << false << QVersionNumber();
|
QTest::newRow("128, -129") << QVersionNumber(128) << QVersionNumber(-129) << Qt::strong_ordering::greater << 257 << false << QVersionNumber();
|
||||||
QTest::newRow("-129, 128") << QVersionNumber(-129) << QVersionNumber(128) << false << true << true << true << false << false << -257 << false << QVersionNumber();
|
QTest::newRow("-129, 128") << QVersionNumber(-129) << QVersionNumber(128) << Qt::strong_ordering::less << -257 << false << QVersionNumber();
|
||||||
QTest::newRow("0.128, 0.-129") << QVersionNumber(0, 128) << QVersionNumber(0, -129) << false << true << false << false << true << true << 257 << false << QVersionNumber(0);
|
QTest::newRow("0.128, 0.-129") << QVersionNumber(0, 128) << QVersionNumber(0, -129) << Qt::strong_ordering::greater << 257 << false << QVersionNumber(0);
|
||||||
QTest::newRow("0.-129, 0.128") << QVersionNumber(0, -129) << QVersionNumber(0, 128) << false << true << true << true << false << false << -257 << false << QVersionNumber(0);
|
QTest::newRow("0.-129, 0.128") << QVersionNumber(0, -129) << QVersionNumber(0, 128) << Qt::strong_ordering::less << -257 << false << QVersionNumber(0);
|
||||||
QTest::newRow("0.-129, 0") << QVersionNumber(0, -129) << QVersionNumber(0) << false << true << true << true << false << false << -129 << false << QVersionNumber(0);
|
QTest::newRow("0.-129, 0") << QVersionNumber(0, -129) << QVersionNumber(0) << Qt::strong_ordering::less << -129 << false << QVersionNumber(0);
|
||||||
QTest::newRow("0, 0.-129") << QVersionNumber(0) << QVersionNumber(0, -129) << false << true << false << false << true << true << 129 << true << QVersionNumber(0);
|
QTest::newRow("0, 0.-129") << QVersionNumber(0) << QVersionNumber(0, -129) << Qt::strong_ordering::greater << 129 << true << QVersionNumber(0);
|
||||||
|
|
||||||
const QList<int> common = QList<int>({ 0, 1, 2, 3, 4, 5, 6 });
|
const QList<int> common = QList<int>({ 0, 1, 2, 3, 4, 5, 6 });
|
||||||
using namespace UglyOperator;
|
using namespace UglyOperator;
|
||||||
QTest::newRow("0.1.2.3.4.5.6.0.1.2, 0.1.2.3.4.5.6.0.1") << QVersionNumber(common + 0 + 1 + 2) << QVersionNumber(common + 0 + 1) << false << true << false << false << true << true << 2 << false << QVersionNumber(common + 0 + 1);
|
QTest::newRow("0.1.2.3.4.5.6.0.1.2, 0.1.2.3.4.5.6.0.1") << QVersionNumber(common + 0 + 1 + 2) << QVersionNumber(common + 0 + 1) << Qt::strong_ordering::greater << 2 << false << QVersionNumber(common + 0 + 1);
|
||||||
QTest::newRow("0.1.2.3.4.5.6.0.1, 0.1.2.3.4.5.6.0.1.2") << QVersionNumber(common + 0 + 1) << QVersionNumber(common + 0 + 1 + 2) << false << true << true << true << false << false << -2 << true << QVersionNumber(common + 0 + 1);
|
QTest::newRow("0.1.2.3.4.5.6.0.1, 0.1.2.3.4.5.6.0.1.2") << QVersionNumber(common + 0 + 1) << QVersionNumber(common + 0 + 1 + 2) << Qt::strong_ordering::less << -2 << true << QVersionNumber(common + 0 + 1);
|
||||||
QTest::newRow("0.1.2.3.4.5.6.0.1.2, 0.1.2.3.4.5.6.0.1.2") << QVersionNumber(common + 0 + 1 + 2) << QVersionNumber(common + 0 + 1 + 2) << true << false << false << true << false << true << 0 << true << QVersionNumber(common + 0 + 1 + 2);
|
QTest::newRow("0.1.2.3.4.5.6.0.1.2, 0.1.2.3.4.5.6.0.1.2") << QVersionNumber(common + 0 + 1 + 2) << QVersionNumber(common + 0 + 1 + 2) << Qt::strong_ordering::equal << 0 << true << QVersionNumber(common + 0 + 1 + 2);
|
||||||
QTest::newRow("0.1.2.3.4.5.6.0.1.2, 0.1.2.3.4.5.6.1.1.2") << QVersionNumber(common + 0 + 1 + 2) << QVersionNumber(common + 1 + 1 + 2) << false << true << true << true << false << false << -1 << false << QVersionNumber(common);
|
QTest::newRow("0.1.2.3.4.5.6.0.1.2, 0.1.2.3.4.5.6.1.1.2") << QVersionNumber(common + 0 + 1 + 2) << QVersionNumber(common + 1 + 1 + 2) << Qt::strong_ordering::less << -1 << false << QVersionNumber(common);
|
||||||
QTest::newRow("0.1.2.3.4.5.6.1.1.2, 0.1.2.3.4.5.6.0.1.2") << QVersionNumber(common + 1 + 1 + 2) << QVersionNumber(common + 0 + 1 + 2) << false << true << false << false << true << true << 1 << false << QVersionNumber(common);
|
QTest::newRow("0.1.2.3.4.5.6.1.1.2, 0.1.2.3.4.5.6.0.1.2") << QVersionNumber(common + 1 + 1 + 2) << QVersionNumber(common + 0 + 1 + 2) << Qt::strong_ordering::greater << 1 << false << QVersionNumber(common);
|
||||||
QTest::newRow("0.1.2.3.4.5.6.1, 0.1.2.3.4.5.6.-1") << QVersionNumber(common + 1) << QVersionNumber(common + -1) << false << true << false << false << true << true << 2 << false << QVersionNumber(common);
|
QTest::newRow("0.1.2.3.4.5.6.1, 0.1.2.3.4.5.6.-1") << QVersionNumber(common + 1) << QVersionNumber(common + -1) << Qt::strong_ordering::greater << 2 << false << QVersionNumber(common);
|
||||||
QTest::newRow("0.1.2.3.4.5.6.-1, 0.1.2.3.4.5.6.1") << QVersionNumber(common + -1) << QVersionNumber(common + 1) << false << true << true << true << false << false << -2 << false << QVersionNumber(common);
|
QTest::newRow("0.1.2.3.4.5.6.-1, 0.1.2.3.4.5.6.1") << QVersionNumber(common + -1) << QVersionNumber(common + 1) << Qt::strong_ordering::less << -2 << false << QVersionNumber(common);
|
||||||
QTest::newRow("0.1.2.3.4.5.6.0.1, 0.1.2.3.4.5.6.0.-1") << QVersionNumber(common + 0 + 1) << QVersionNumber(common + 0 + -1) << false << true << false << false << true << true << 2 << false << QVersionNumber(common + 0);
|
QTest::newRow("0.1.2.3.4.5.6.0.1, 0.1.2.3.4.5.6.0.-1") << QVersionNumber(common + 0 + 1) << QVersionNumber(common + 0 + -1) << Qt::strong_ordering::greater << 2 << false << QVersionNumber(common + 0);
|
||||||
QTest::newRow("0.1.2.3.4.5.6.0.-1, 0.1.2.3.4.5.6.0.1") << QVersionNumber(common + 0 + -1) << QVersionNumber(common + 0 + 1) << false << true << true << true << false << false << -2 << false << QVersionNumber(common + 0);
|
QTest::newRow("0.1.2.3.4.5.6.0.-1, 0.1.2.3.4.5.6.0.1") << QVersionNumber(common + 0 + -1) << QVersionNumber(common + 0 + 1) << Qt::strong_ordering::less << -2 << false << QVersionNumber(common + 0);
|
||||||
QTest::newRow("0.1.2.3.4.5.6.0.-1, 0.1.2.3.4.5.6.0") << QVersionNumber(common + 0 + -1) << QVersionNumber(common + 0) << false << true << true << true << false << false << -1 << false << QVersionNumber(common + 0);
|
QTest::newRow("0.1.2.3.4.5.6.0.-1, 0.1.2.3.4.5.6.0") << QVersionNumber(common + 0 + -1) << QVersionNumber(common + 0) << Qt::strong_ordering::less << -1 << false << QVersionNumber(common + 0);
|
||||||
QTest::newRow("0.1.2.3.4.5.6.0, 0.1.2.3.4.5.6.0.-1") << QVersionNumber(common + 0) << QVersionNumber(common + 0 + -1) << false << true << false << false << true << true << 1 << true << QVersionNumber(common + 0);
|
QTest::newRow("0.1.2.3.4.5.6.0, 0.1.2.3.4.5.6.0.-1") << QVersionNumber(common + 0) << QVersionNumber(common + 0 + -1) << Qt::strong_ordering::greater << 1 << true << QVersionNumber(common + 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_QVersionNumber::initTestCase()
|
void tst_QVersionNumber::initTestCase()
|
||||||
@ -196,6 +183,11 @@ void tst_QVersionNumber::initTestCase()
|
|||||||
qRegisterMetaType<QList<int>>();
|
qRegisterMetaType<QList<int>>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tst_QVersionNumber::compareCompiles()
|
||||||
|
{
|
||||||
|
QTestPrivate::testAllComparisonOperatorsCompile<QVersionNumber>();
|
||||||
|
}
|
||||||
|
|
||||||
void tst_QVersionNumber::constructorDefault()
|
void tst_QVersionNumber::constructorDefault()
|
||||||
{
|
{
|
||||||
QVersionNumber version;
|
QVersionNumber version;
|
||||||
@ -270,88 +262,18 @@ void tst_QVersionNumber::constructorCopy()
|
|||||||
QCOMPARE(version.segments(), expectedVersion.segments());
|
QCOMPARE(version.segments(), expectedVersion.segments());
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_QVersionNumber::compareGreater_data()
|
void tst_QVersionNumber::comparisonOperators_data()
|
||||||
{
|
{
|
||||||
comparisonData();
|
comparisonData();
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_QVersionNumber::compareGreater()
|
void tst_QVersionNumber::comparisonOperators()
|
||||||
{
|
{
|
||||||
QFETCH(QVersionNumber, lhs);
|
QFETCH(QVersionNumber, lhs);
|
||||||
QFETCH(QVersionNumber, rhs);
|
QFETCH(QVersionNumber, rhs);
|
||||||
QFETCH(bool, greaterThan);
|
QFETCH(Qt::strong_ordering, ordering);
|
||||||
|
|
||||||
QCOMPARE(lhs > rhs, greaterThan);
|
QT_TEST_ALL_COMPARISON_OPS(lhs, rhs, ordering);
|
||||||
}
|
|
||||||
|
|
||||||
void tst_QVersionNumber::compareGreaterEqual_data()
|
|
||||||
{
|
|
||||||
comparisonData();
|
|
||||||
}
|
|
||||||
|
|
||||||
void tst_QVersionNumber::compareGreaterEqual()
|
|
||||||
{
|
|
||||||
QFETCH(QVersionNumber, lhs);
|
|
||||||
QFETCH(QVersionNumber, rhs);
|
|
||||||
QFETCH(bool, greaterThanOrEqual);
|
|
||||||
|
|
||||||
QCOMPARE(lhs >= rhs, greaterThanOrEqual);
|
|
||||||
}
|
|
||||||
|
|
||||||
void tst_QVersionNumber::compareLess_data()
|
|
||||||
{
|
|
||||||
comparisonData();
|
|
||||||
}
|
|
||||||
|
|
||||||
void tst_QVersionNumber::compareLess()
|
|
||||||
{
|
|
||||||
QFETCH(QVersionNumber, lhs);
|
|
||||||
QFETCH(QVersionNumber, rhs);
|
|
||||||
QFETCH(bool, lessThan);
|
|
||||||
|
|
||||||
QCOMPARE(lhs < rhs, lessThan);
|
|
||||||
}
|
|
||||||
|
|
||||||
void tst_QVersionNumber::compareLessEqual_data()
|
|
||||||
{
|
|
||||||
comparisonData();
|
|
||||||
}
|
|
||||||
|
|
||||||
void tst_QVersionNumber::compareLessEqual()
|
|
||||||
{
|
|
||||||
QFETCH(QVersionNumber, lhs);
|
|
||||||
QFETCH(QVersionNumber, rhs);
|
|
||||||
QFETCH(bool, lessThanOrEqual);
|
|
||||||
|
|
||||||
QCOMPARE(lhs <= rhs, lessThanOrEqual);
|
|
||||||
}
|
|
||||||
|
|
||||||
void tst_QVersionNumber::compareEqual_data()
|
|
||||||
{
|
|
||||||
comparisonData();
|
|
||||||
}
|
|
||||||
|
|
||||||
void tst_QVersionNumber::compareEqual()
|
|
||||||
{
|
|
||||||
QFETCH(QVersionNumber, lhs);
|
|
||||||
QFETCH(QVersionNumber, rhs);
|
|
||||||
QFETCH(bool, equal);
|
|
||||||
|
|
||||||
QCOMPARE(lhs == rhs, equal);
|
|
||||||
}
|
|
||||||
|
|
||||||
void tst_QVersionNumber::compareNotEqual_data()
|
|
||||||
{
|
|
||||||
comparisonData();
|
|
||||||
}
|
|
||||||
|
|
||||||
void tst_QVersionNumber::compareNotEqual()
|
|
||||||
{
|
|
||||||
QFETCH(QVersionNumber, lhs);
|
|
||||||
QFETCH(QVersionNumber, rhs);
|
|
||||||
QFETCH(bool, notEqual);
|
|
||||||
|
|
||||||
QCOMPARE(lhs != rhs, notEqual);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_QVersionNumber::compare_data()
|
void tst_QVersionNumber::compare_data()
|
||||||
@ -394,7 +316,7 @@ void tst_QVersionNumber::commonPrefix()
|
|||||||
QFETCH(QVersionNumber, common);
|
QFETCH(QVersionNumber, common);
|
||||||
|
|
||||||
QVersionNumber calculatedPrefix = QVersionNumber::commonPrefix(lhs, rhs);
|
QVersionNumber calculatedPrefix = QVersionNumber::commonPrefix(lhs, rhs);
|
||||||
QCOMPARE(calculatedPrefix, common);
|
QT_TEST_EQUALITY_OPS(calculatedPrefix, common, true);
|
||||||
QCOMPARE(calculatedPrefix.segments(), common.segments());
|
QCOMPARE(calculatedPrefix.segments(), common.segments());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -530,18 +452,18 @@ void tst_QVersionNumber::fromString_extra()
|
|||||||
// when passing explicit nullptr:
|
// when passing explicit nullptr:
|
||||||
{
|
{
|
||||||
auto v = QVersionNumber::fromString("1.2.3-rc1", nullptr);
|
auto v = QVersionNumber::fromString("1.2.3-rc1", nullptr);
|
||||||
QCOMPARE(v, QVersionNumber({1, 2, 3}));
|
QT_TEST_EQUALITY_OPS(v, QVersionNumber({1, 2, 3}), true);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
auto v = QVersionNumber::fromString("1.2.3-rc1", 0);
|
auto v = QVersionNumber::fromString("1.2.3-rc1", 0);
|
||||||
QCOMPARE(v, QVersionNumber({1, 2, 3}));
|
QT_TEST_EQUALITY_OPS(v, QVersionNumber({1, 2, 3}), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// check the UTF16->L1 conversion isn't doing something weird
|
// check the UTF16->L1 conversion isn't doing something weird
|
||||||
{
|
{
|
||||||
qsizetype i = -1;
|
qsizetype i = -1;
|
||||||
auto v = QVersionNumber::fromString(u"1.0ı", &i); // LATIN SMALL LETTER DOTLESS I
|
auto v = QVersionNumber::fromString(u"1.0ı", &i); // LATIN SMALL LETTER DOTLESS I
|
||||||
QCOMPARE(v, QVersionNumber(1, 0));
|
QT_TEST_EQUALITY_OPS(v, QVersionNumber(1, 0), true);
|
||||||
QCOMPARE(i, 3);
|
QCOMPARE(i, 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -652,14 +574,14 @@ void tst_QVersionNumber::moveSemantics()
|
|||||||
{
|
{
|
||||||
QVersionNumber v1(1, 2, 3);
|
QVersionNumber v1(1, 2, 3);
|
||||||
QVersionNumber v2 = std::move(v1);
|
QVersionNumber v2 = std::move(v1);
|
||||||
QCOMPARE(v2, QVersionNumber(1, 2, 3));
|
QT_TEST_EQUALITY_OPS(v2, QVersionNumber(1, 2, 3), true);
|
||||||
}
|
}
|
||||||
// QVersionNumber &operator=(QVersionNumber &&)
|
// QVersionNumber &operator=(QVersionNumber &&)
|
||||||
{
|
{
|
||||||
QVersionNumber v1(1, 2, 3);
|
QVersionNumber v1(1, 2, 3);
|
||||||
QVersionNumber v2;
|
QVersionNumber v2;
|
||||||
v2 = std::move(v1);
|
v2 = std::move(v1);
|
||||||
QCOMPARE(v2, QVersionNumber(1, 2, 3));
|
QT_TEST_EQUALITY_OPS(v2, QVersionNumber(1, 2, 3), true);
|
||||||
}
|
}
|
||||||
// QVersionNumber(QList<int> &&)
|
// QVersionNumber(QList<int> &&)
|
||||||
{
|
{
|
||||||
@ -668,7 +590,7 @@ void tst_QVersionNumber::moveSemantics()
|
|||||||
QVersionNumber v2(std::move(segments));
|
QVersionNumber v2(std::move(segments));
|
||||||
QVERIFY(!v1.isNull());
|
QVERIFY(!v1.isNull());
|
||||||
QVERIFY(!v2.isNull());
|
QVERIFY(!v2.isNull());
|
||||||
QCOMPARE(v1, v2);
|
QT_TEST_EQUALITY_OPS(v1, v2, true);
|
||||||
}
|
}
|
||||||
#ifdef Q_COMPILER_REF_QUALIFIERS
|
#ifdef Q_COMPILER_REF_QUALIFIERS
|
||||||
// normalized()
|
// normalized()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user