diff options
Diffstat (limited to 'tests/auto/corelib/text/qbytearray/tst_qbytearray.cpp')
-rw-r--r-- | tests/auto/corelib/text/qbytearray/tst_qbytearray.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/auto/corelib/text/qbytearray/tst_qbytearray.cpp b/tests/auto/corelib/text/qbytearray/tst_qbytearray.cpp index 7f9bff844f..1f7e997653 100644 --- a/tests/auto/corelib/text/qbytearray/tst_qbytearray.cpp +++ b/tests/auto/corelib/text/qbytearray/tst_qbytearray.cpp @@ -894,6 +894,27 @@ void tst_QByteArray::append() QByteArray twoChars("ab"); tenChars.append(twoChars); QCOMPARE(tenChars.capacity(), 10); + + { + QByteArray prepended("abcd"); + prepended.prepend('a'); + const qsizetype freeAtEnd = prepended.data_ptr()->freeSpaceAtEnd(); + QVERIFY(prepended.size() + freeAtEnd < prepended.capacity()); + prepended += QByteArray(freeAtEnd, 'b'); + prepended.append('c'); + QCOMPARE(prepended, QByteArray("aabcd") + QByteArray(freeAtEnd, 'b') + QByteArray("c")); + } + + { + QByteArray prepended2("aaaaaaaaaa"); + while (prepended2.size()) + prepended2.remove(0, 1); + QVERIFY(prepended2.data_ptr()->freeSpaceAtBegin() > 0); + QByteArray array(prepended2.data_ptr()->freeSpaceAtEnd(), 'a'); + prepended2 += array; + prepended2.append('b'); + QCOMPARE(prepended2, array + QByteArray("b")); + } } void tst_QByteArray::appendExtended_data() @@ -958,6 +979,38 @@ void tst_QByteArray::insert() ba = "one"; QCOMPARE(ba.insert(1, QByteArrayView(ba)), QByteArray("oonene")); QCOMPARE(ba.size(), 6); + + { + ba = "one"; + ba.prepend('a'); + QByteArray b(ba.data_ptr()->freeSpaceAtEnd(), 'b'); + QCOMPARE(ba.insert(ba.size() + 1, QByteArrayView(b)), QByteArray("aone ") + b); + } + + { + ba = "onetwothree"; + while (ba.size() - 1) + ba.remove(0, 1); + QByteArray b(ba.data_ptr()->freeSpaceAtEnd() + 1, 'b'); + QCOMPARE(ba.insert(ba.size() + 1, QByteArrayView(b)), QByteArray("e ") + b); + } + + { + ba = "one"; + ba.prepend('a'); + const qsizetype freeAtEnd = ba.data_ptr()->freeSpaceAtEnd(); + QCOMPARE(ba.insert(ba.size() + 1, freeAtEnd + 1, 'b'), + QByteArray("aone ") + QByteArray(freeAtEnd + 1, 'b')); + } + + { + ba = "onetwothree"; + while (ba.size() - 1) + ba.remove(0, 1); + const qsizetype freeAtEnd = ba.data_ptr()->freeSpaceAtEnd(); + QCOMPARE(ba.insert(ba.size() + 1, freeAtEnd + 1, 'b'), + QByteArray("e ") + QByteArray(freeAtEnd + 1, 'b')); + } } void tst_QByteArray::insertExtended_data() |