summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/text/qbytearray
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib/text/qbytearray')
-rw-r--r--tests/auto/corelib/text/qbytearray/tst_qbytearray.cpp53
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 70180bbf3b..8b2a903627 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()