summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorTatiana Borisova <tatiana.borisova@qt.io>2024-04-16 15:22:14 +0200
committerTatiana Borisova <tatiana.borisova@qt.io>2024-04-26 20:11:14 +0200
commit2606c0966669fe76300d4c818f8c05e778aacd23 (patch)
tree8e35c66076aefe79399073148f1cffeed0c17386 /tests/auto
parent913442a75a269048bea7968aa2708888e10611c4 (diff)
QBitArray: use new comparison helper macros
Replace public friend operators operator==(), operator!=() of QBitArray to friend method comparesEqual() and Q_DECLARE_EQUALITY_COMPARABLE macro. Task-number: QTBUG-120304 Change-Id: I6b47111c144016b3aa05f01c8035c32d164291ad Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/corelib/tools/qbitarray/CMakeLists.txt2
-rw-r--r--tests/auto/corelib/tools/qbitarray/tst_qbitarray.cpp179
2 files changed, 98 insertions, 83 deletions
diff --git a/tests/auto/corelib/tools/qbitarray/CMakeLists.txt b/tests/auto/corelib/tools/qbitarray/CMakeLists.txt
index 802d647abb..ac3bd24bd5 100644
--- a/tests/auto/corelib/tools/qbitarray/CMakeLists.txt
+++ b/tests/auto/corelib/tools/qbitarray/CMakeLists.txt
@@ -14,4 +14,6 @@ endif()
qt_internal_add_test(tst_qbitarray
SOURCES
tst_qbitarray.cpp
+ LIBRARIES
+ Qt::TestPrivate
)
diff --git a/tests/auto/corelib/tools/qbitarray/tst_qbitarray.cpp b/tests/auto/corelib/tools/qbitarray/tst_qbitarray.cpp
index 5fcf444485..f52a368aa9 100644
--- a/tests/auto/corelib/tools/qbitarray/tst_qbitarray.cpp
+++ b/tests/auto/corelib/tools/qbitarray/tst_qbitarray.cpp
@@ -2,6 +2,7 @@
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
#include <QTest>
+#include <QtTest/private/qcomparisontesthelper_p.h>
#include <QtCore/QBuffer>
#include <QtCore/QDataStream>
@@ -39,6 +40,7 @@ class tst_QBitArray : public QObject
{
Q_OBJECT
private slots:
+ void compareCompiles();
void canHandleIntMaxBits();
void size_data();
void size();
@@ -85,6 +87,11 @@ private slots:
void toUInt32();
};
+void tst_QBitArray::compareCompiles()
+{
+ QTestPrivate::testEqualityOperatorsCompile<QBitArray>();
+}
+
void tst_QBitArray::canHandleIntMaxBits()
{
QElapsedTimer timer;
@@ -126,7 +133,7 @@ void tst_QBitArray::canHandleIntMaxBits()
QBitArray ba2;
ds >> ba2;
QCOMPARE(ds.status(), QDataStream::Status::Ok);
- QCOMPARE(ba, ba2);
+ QT_TEST_EQUALITY_OPS(ba, ba2, true);
}
} catch (const std::bad_alloc &) {
QSKIP("Failed to allocate sufficient memory");
@@ -266,14 +273,20 @@ void tst_QBitArray::isEmpty()
QVERIFY(!a1.isEmpty());
QVERIFY(!a1.isNull());
QVERIFY(a1.size() == 2);
+
+ QT_TEST_EQUALITY_OPS(a1, a2, false);
+ QT_TEST_EQUALITY_OPS(a2, a3, false);
+ QT_TEST_EQUALITY_OPS(QBitArray(), QBitArray(), true);
+ a3 = a2;
+ QT_TEST_EQUALITY_OPS(a2, a3, true);
}
void tst_QBitArray::swap()
{
QBitArray b1 = QStringToQBitArray("1"), b2 = QStringToQBitArray("10");
b1.swap(b2);
- QCOMPARE(b1,QStringToQBitArray("10"));
- QCOMPARE(b2,QStringToQBitArray("1"));
+ QT_TEST_EQUALITY_OPS(b1,QStringToQBitArray("10"), true);
+ QT_TEST_EQUALITY_OPS(b2,QStringToQBitArray("1"), true);
}
void tst_QBitArray::fill()
@@ -323,7 +336,7 @@ void tst_QBitArray::toggleBit()
input.toggleBit(index);
- QCOMPARE(input, res);
+ QT_TEST_EQUALITY_OPS(input, res, true);
}
void tst_QBitArray::operator_andeq_data()
@@ -370,32 +383,32 @@ void tst_QBitArray::operator_andeq()
QBitArray result = input1;
result &= input2;
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input1;
result &= std::move(input2);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input1;
result &= detached(input2);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
// operation is commutative
result = input2;
result &= input1;
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input2;
result &= std::move(input1);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input2;
result &= detached(input1);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
// operation is idempotent
result &= result;
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result &= std::move(result);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result &= detached(result);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
}
void tst_QBitArray::operator_and()
@@ -405,27 +418,27 @@ void tst_QBitArray::operator_and()
QFETCH(QBitArray, res);
QBitArray result = input1 & input2;
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input1 & QBitArray(input2);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input1 & detached(input2);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
// operation is commutative
result = input2 & input1;
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input2 & QBitArray(input1);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input2 & detached(input1);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
// operation is idempotent
result = result & result;
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = result & QBitArray(result);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = result & detached(result);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
}
void tst_QBitArray::operator_oreq_data()
@@ -476,32 +489,32 @@ void tst_QBitArray::operator_oreq()
QBitArray result = input1;
result |= input2;
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input1;
result |= QBitArray(input2);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input1;
result |= detached(input2);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
// operation is commutative
result = input2;
result |= input1;
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input2;
result |= QBitArray(input1);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input2;
result |= detached(input1);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
// operation is idempotent
result |= result;
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result |= QBitArray(result);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result |= detached(result);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
}
void tst_QBitArray::operator_or()
@@ -511,27 +524,27 @@ void tst_QBitArray::operator_or()
QFETCH(QBitArray, res);
QBitArray result = input1 | input2;
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input1 | QBitArray(input2);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input1 | detached(input2);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
// operation is commutative
result = input2 | input1;
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input2 | QBitArray(input1);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input2 | detached(input1);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
// operation is idempotent
result = result | result;
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = result | QBitArray(result);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = result | detached(result);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
}
void tst_QBitArray::operator_xoreq_data()
@@ -580,55 +593,55 @@ void tst_QBitArray::operator_xoreq()
QBitArray result = input1;
result ^= input2;
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input1;
result ^= QBitArray(input2);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input1;
result ^= detached(input2);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
// operation is commutative
result = input2;
result ^= input1;
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input2;
result ^= QBitArray(input1);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input2;
result ^= detached(input1);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
// XORing with oneself is nilpotent
result = input1;
result ^= input1;
- QCOMPARE(result, QBitArray(input1.size()));
+ QT_TEST_EQUALITY_OPS(result, QBitArray(input1.size()), true);
result = input1;
result ^= QBitArray(result);
- QCOMPARE(result, QBitArray(input1.size()));
+ QT_TEST_EQUALITY_OPS(result, QBitArray(input1.size()), true);
result = input1;
result ^= detached(result);
- QCOMPARE(result, QBitArray(input1.size()));
+ QT_TEST_EQUALITY_OPS(result, QBitArray(input1.size()), true);
result = input2;
result ^= input2;
- QCOMPARE(result, QBitArray(input2.size()));
+ QT_TEST_EQUALITY_OPS(result, QBitArray(input2.size()), true);
result = input2;
result ^= QBitArray(input2);
- QCOMPARE(result, QBitArray(input2.size()));
+ QT_TEST_EQUALITY_OPS(result, QBitArray(input2.size()), true);
result = input2;
result ^= detached(input2);
- QCOMPARE(result, QBitArray(input2.size()));
+ QT_TEST_EQUALITY_OPS(result, QBitArray(input2.size()), true);
result = res;
result ^= res;
- QCOMPARE(result, QBitArray(res.size()));
+ QT_TEST_EQUALITY_OPS(result, QBitArray(res.size()), true);
result = res;
result ^= QBitArray(res);
- QCOMPARE(result, QBitArray(res.size()));
+ QT_TEST_EQUALITY_OPS(result, QBitArray(res.size()), true);
result = res;
result ^= detached(res);
- QCOMPARE(result, QBitArray(res.size()));
+ QT_TEST_EQUALITY_OPS(result, QBitArray(res.size()), true);
}
void tst_QBitArray::operator_xor()
@@ -638,41 +651,41 @@ void tst_QBitArray::operator_xor()
QFETCH(QBitArray, res);
QBitArray result = input1 ^ input2;
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input1 ^ QBitArray(input2);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input1 ^ detached(input2);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
// operation is commutative
result = input2 ^ input1;
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input2 ^ QBitArray(input1);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
result = input2 ^ detached(input1);
- QCOMPARE(result, res);
+ QT_TEST_EQUALITY_OPS(result, res, true);
// XORing with oneself is nilpotent
result = input1 ^ input1;
- QCOMPARE(result, QBitArray(input1.size()));
+ QT_TEST_EQUALITY_OPS(result, QBitArray(input1.size()), true);
result = input1 ^ QBitArray(input1);
- QCOMPARE(result, QBitArray(input1.size()));
+ QT_TEST_EQUALITY_OPS(result, QBitArray(input1.size()), true);
result = input1 ^ detached(input1);
- QCOMPARE(result, QBitArray(input1.size()));
+ QT_TEST_EQUALITY_OPS(result, QBitArray(input1.size()), true);
result = input2 ^ input2;
- QCOMPARE(result, QBitArray(input2.size()));
+ QT_TEST_EQUALITY_OPS(result, QBitArray(input2.size()), true);
result = input2 ^ QBitArray(input2);
- QCOMPARE(result, QBitArray(input2.size()));
+ QT_TEST_EQUALITY_OPS(result, QBitArray(input2.size()), true);
result = input2 ^ detached(input2);
- QCOMPARE(result, QBitArray(input2.size()));
+ QT_TEST_EQUALITY_OPS(result, QBitArray(input2.size()), true);
result = res ^ res;
- QCOMPARE(result, QBitArray(res.size()));
+ QT_TEST_EQUALITY_OPS(result, QBitArray(res.size()), true);
result = res ^ QBitArray(res);
- QCOMPARE(result, QBitArray(res.size()));
+ QT_TEST_EQUALITY_OPS(result, QBitArray(res.size()), true);
result = res ^ detached(res);
- QCOMPARE(result, QBitArray(res.size()));
+ QT_TEST_EQUALITY_OPS(result, QBitArray(res.size()), true);
}
void tst_QBitArray::operator_neg_data()
@@ -721,8 +734,8 @@ void tst_QBitArray::operator_neg()
input = ~input;
- QCOMPARE(input, res);
- QCOMPARE(~~input, res); // performs two in-place negations
+ QT_TEST_EQUALITY_OPS(input, res, true);
+ QT_TEST_EQUALITY_OPS(~~input, res, true); // performs two in-place negations
}
void tst_QBitArray::datastream_data()
@@ -782,15 +795,15 @@ void tst_QBitArray::datastream()
QCOMPARE(array1.count(true), onBits);
QCOMPARE(array1.count(false), numBits - onBits);
- QCOMPARE(array1, bits);
- QCOMPARE(array2, bits);
- QCOMPARE(array3, bits);
+ QT_TEST_EQUALITY_OPS(array1, bits, true);
+ QT_TEST_EQUALITY_OPS(array2, bits, true);
+ QT_TEST_EQUALITY_OPS(array3, bits, true);
}
void tst_QBitArray::invertOnNull() const
{
QBitArray a;
- QCOMPARE(a = ~a, QBitArray());
+ QT_TEST_EQUALITY_OPS(a = ~a, QBitArray(), true);
}
void tst_QBitArray::operator_noteq_data()
@@ -831,7 +844,7 @@ void tst_QBitArray::operator_noteq()
QFETCH(bool, res);
bool b = input1 != input2;
- QCOMPARE(b, res);
+ QT_TEST_EQUALITY_OPS(b, res, true);
}
void tst_QBitArray::resize()
@@ -840,22 +853,22 @@ void tst_QBitArray::resize()
QBitArray a = QStringToQBitArray(QString("11"));
a.resize(10);
QVERIFY(a.size() == 10);
- QCOMPARE( a, QStringToQBitArray(QString("1100000000")) );
+ QT_TEST_EQUALITY_OPS( a, QStringToQBitArray(QString("1100000000")), true);
a.setBit(9);
a.resize(9);
// now the bit in a should have been gone:
- QCOMPARE( a, QStringToQBitArray(QString("110000000")) );
+ QT_TEST_EQUALITY_OPS( a, QStringToQBitArray(QString("110000000")), true);
// grow the array back and check the new bit
a.resize(10);
- QCOMPARE( a, QStringToQBitArray(QString("1100000000")) );
+ QT_TEST_EQUALITY_OPS( a, QStringToQBitArray(QString("1100000000")), true);
// other test with and
a.resize(9);
QBitArray b = QStringToQBitArray(QString("1111111111"));
b &= a;
- QCOMPARE( b, QStringToQBitArray(QString("1100000000")) );
+ QT_TEST_EQUALITY_OPS( b, QStringToQBitArray(QString("1100000000")), true);
}
@@ -909,9 +922,9 @@ void tst_QBitArray::fromBits()
QFETCH(QBitArray, expected);
QBitArray fromBits = QBitArray::fromBits(data, size);
- QCOMPARE(fromBits, expected);
+ QT_TEST_EQUALITY_OPS(fromBits, expected, true);
- QCOMPARE(QBitArray::fromBits(fromBits.bits(), fromBits.size()), expected);
+ QT_TEST_EQUALITY_OPS(QBitArray::fromBits(fromBits.bits(), fromBits.size()), expected, true);
}
void tst_QBitArray::toUInt32_data()