diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-10-01 13:29:25 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-10-02 05:35:41 +0000 |
commit | 908c89e9c08297ca854e7c2064b93368d215d0b2 (patch) | |
tree | c6b2c7e2e4316303d0d5c6af511343e66a8c14a7 /sources/pyside2 | |
parent | 2ec2127b9f4bcd62975b175e77cd0502580d9de7 (diff) |
Fix QBitArray-related tests of QDataStream
The tests were relying on the serialized format of QBitArray in Qt
5, which has changed in Qt 6. Introduce a helper function to create
the serialized format and use that. Remove the corrupted data test
since it could not be recreated.
Task-number: PYSIDE-1339
Task-number: PYSIDE-904
Change-Id: I6331c96e5b4d6657a515b82db77f2c5c5da62d71
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources/pyside2')
-rw-r--r-- | sources/pyside2/tests/QtCore/qdatastream_test.py | 74 |
1 files changed, 19 insertions, 55 deletions
diff --git a/sources/pyside2/tests/QtCore/qdatastream_test.py b/sources/pyside2/tests/QtCore/qdatastream_test.py index 495af6233..2ea3460af 100644 --- a/sources/pyside2/tests/QtCore/qdatastream_test.py +++ b/sources/pyside2/tests/QtCore/qdatastream_test.py @@ -46,6 +46,14 @@ def create_bitarray(string): array.setBit(i, char != '0') return array + +def serialize_bitarray(bit_array): + buffer = QByteArray() + stream = QDataStream(buffer, QIODevice.WriteOnly) + stream << bit_array + return buffer + + class QDataStreamWrite(unittest.TestCase): '''Test case for QDatastream write* functions''' @@ -280,67 +288,23 @@ class QDataStreamShiftBitArray(unittest.TestCase): def testOk(self): '''QDataStream with valid QBitArray''' - data = [] - - data.append((QByteArray(bytes('\x00\x00\x00\x00', "UTF-8")), QDataStream.Ok, - QBitArray())) - data.append((QByteArray(bytes('\x00\x00\x00\x01\x00', "UTF-8")), QDataStream.Ok, - create_bitarray('0'))) - data.append((QByteArray(bytes('\x00\x00\x00\x01\x01', "UTF-8")), QDataStream.Ok, - create_bitarray('1'))) - data.append((QByteArray(bytes('\x00\x00\x00\x02\x03', "UTF-8")), QDataStream.Ok, - create_bitarray('11'))) - data.append((QByteArray(bytes('\x00\x00\x00\x03\x07', "UTF-8")), QDataStream.Ok, - create_bitarray('111'))) - data.append((QByteArray(bytes('\x00\x00\x00\x04\x0f', "UTF-8")), QDataStream.Ok, - create_bitarray('1111'))) - data.append((QByteArray(bytes('\x00\x00\x00\x05\x1f', "UTF-8")), QDataStream.Ok, - create_bitarray('11111'))) - data.append((QByteArray(bytes('\x00\x00\x00\x06\x3f', "UTF-8")), QDataStream.Ok, - create_bitarray('111111'))) - data.append((QByteArray(bytes('\x00\x00\x00\x07\x7f', "UTF-8")), QDataStream.Ok, - create_bitarray('1111111'))) - data.append((QByteArray(bytes('\x00\x00\x00\x07\x7e', "UTF-8")), QDataStream.Ok, - create_bitarray('0111111'))) - data.append((QByteArray(bytes('\x00\x00\x00\x07\x00', "UTF-8")), QDataStream.Ok, - create_bitarray('0000000'))) - data.append((QByteArray(bytes('\x00\x00\x00\x07\x39', "UTF-8")), QDataStream.Ok, - create_bitarray('1001110'))) + test_set = [QBitArray()] + for i in range(1, 7): + test_set.append(create_bitarray(i * '1')) + for s in ['0111111', '0000000', '1001110']: + test_set.append(create_bitarray(s)) + data = [] + for expected in test_set: + data.append((serialize_bitarray(expected), QDataStream.Ok, expected)) self._check_bitarray(data) def testPastEnd(self): '''QDataStream >> QBitArray reading past the end of the data''' - data = [] + serialized = serialize_bitarray(create_bitarray('1001110')) + serialized.resize(serialized.size() - 2) + self._check_bitarray([(serialized, QDataStream.ReadPastEnd, QBitArray())]) - data.append((QByteArray(), QDataStream.ReadPastEnd, - QBitArray())) - data.append((QByteArray(bytes('\x00', "UTF-8")), QDataStream.ReadPastEnd, - QBitArray())) - data.append((QByteArray(bytes('\x00\x00', "UTF-8")), QDataStream.ReadPastEnd, - QBitArray())) - data.append((QByteArray(bytes('\x00\x00\x00', "UTF-8")), QDataStream.ReadPastEnd, - QBitArray())) - data.append((QByteArray(bytes('\x00\x00\x00\x01', "UTF-8")), QDataStream.ReadPastEnd, - QBitArray())) - data.append((QByteArray(bytes('\x00\x00\x00\x02', "UTF-8")), QDataStream.ReadPastEnd, - QBitArray())) - data.append((QByteArray(bytes('\x00\x00\x00\x03', "UTF-8")), QDataStream.ReadPastEnd, - QBitArray())) - data.append((QByteArray(bytes('\x00\x00\x00\x04', "UTF-8")), QDataStream.ReadPastEnd, - QBitArray())) - - self._check_bitarray(data) - - def testCorruptData(self): - '''QDataStream reading corrupt data''' - data = [] - - data.append((QByteArray(bytes('\x00\x00\x00\x01\x02', "UTF-8")), - QDataStream.ReadCorruptData, - QBitArray())) - - self._check_bitarray(data) class QDataStreamRawData(unittest.TestCase): def testRawData(self): |