aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside2
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-10-01 13:29:25 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-10-02 05:35:41 +0000
commit908c89e9c08297ca854e7c2064b93368d215d0b2 (patch)
treec6b2c7e2e4316303d0d5c6af511343e66a8c14a7 /sources/pyside2
parent2ec2127b9f4bcd62975b175e77cd0502580d9de7 (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.py74
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):