QString/QByteArray: add tests for replace() with negative lengths
Change-Id: I6bb67a65fdb0d61e1e1e36dd271c98df7849a305 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
ef0b8bc730
commit
1b66b6533e
@ -1480,6 +1480,12 @@ void tst_QByteArray::replace_pos_len_data()
|
||||
// index out of range
|
||||
QTest::newRow("5") << QByteArray() << 3 << 0 << QByteArray("hi")
|
||||
<< QByteArray();
|
||||
|
||||
QTest::newRow("negative-before-len-1") << QByteArray("yyyy") << 3 << -1
|
||||
<< QByteArray("ZZZZ") << QByteArray("yyyZZZZy");
|
||||
QTest::newRow("negative-before-len-2") << QByteArray("yyyy") << 3 << -2
|
||||
<< QByteArray("ZZZZ") << QByteArray("yyyZZZZy");
|
||||
|
||||
// Optimized path
|
||||
QTest::newRow("6") << QByteArray("abcdef") << 3 << 12
|
||||
<< QByteArray("abcdefghijkl") << QByteArray("abcabcdefghijkl");
|
||||
|
@ -1013,6 +1013,14 @@ void tst_QString::replace_pos_len_data()
|
||||
<< qsizetype(0) << qsizetype(10) << u"XX"_s
|
||||
<< u"XX"_s;
|
||||
|
||||
// TODO: Fix, broken unexpected behavior
|
||||
QTest::newRow("negative-before-len-1") << u"yyyy"_s
|
||||
<< qsizetype(3) << qsizetype(-1) << u"ZZZZ"_s
|
||||
<< u"yyyZZZZyy"_s;
|
||||
QTest::newRow("negative-before-len-2") << u"yyyy"_s
|
||||
<< qsizetype(3) << qsizetype(-2) << u"ZZZZ"_s
|
||||
<< u"yyyZZZZyyy"_s;
|
||||
|
||||
// This is a regression test for an old bug where QString would add index and len parameters,
|
||||
// potentially causing integer overflow.
|
||||
constexpr qsizetype maxSize = std::numeric_limits<qsizetype>::max();
|
||||
|
Loading…
x
Reference in New Issue
Block a user