qt5base-lts/tests/auto
Edward Welbourne e21bf5e6b3 QString::replace(): protect sought text and replacement
When replacing each copy of one text with a copy of another, we do so
in batches of 1024; if we get more than one batch, we need to keep a
copy of the sought text and replacement if they're part of the string
we're modifying, for use in later batches.

Also do the replacements in full batches of 1024, not 1023 (which left
the last entry in an array unused); marked some related tests as
(un)likely; and move some repeated code out into a pair of little
local functions to save duplcation.

Those new functions can also serve replace_helper(); and it can shed a
const_cast and some conditioning of free() by using them the same way
replace() now does.  (There was also one place it still used the raw
after, rather than the replacement copy; which could have produced
errors if memcpy were to exercise its right to assume no overlap in
arrays.  This error is what prompted me to notice all of the above.)

Added tests.  The last error proved untestable as my memcpy is in fact
as fussy as memmove.  The first two tests added were attempts to get a
failure out of it.  The third did get a failure, but also tripped over
the problem in replace() itself.  Added to an existing test function
and renamed it to generally cover extra tests for replace.

Change-Id: I9ba6928c84ece266dbbe52b91e333ea54ab6d95e
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2016-07-12 10:22:25 +00:00
..
android Fix typo in test results report for android 2015-07-28 21:16:19 +00:00
bic/data bic: Add 5.{1,2,3,4}.0 bic data for linux-gcc-amd64 2015-02-14 06:54:20 +00:00
cmake Enable cmake auto tests for -no-gui 2016-03-30 07:16:50 +00:00
compilerwarnings/data Fixed license headers 2015-02-17 18:46:09 +00:00
concurrent Tests: Replace Q[TRY]_VERIFY(v == true|false) by QVERIFY(v)|QVERIFY(!v). 2015-07-27 12:09:19 +00:00
corelib QString::replace(): protect sought text and replacement 2016-07-12 10:22:25 +00:00
dbus Fix race condition in tst_QDBusConnection::pendingCallWhenDisconnected 2016-06-06 11:39:53 +00:00
gui Finally fix crash in inplace-modified data-constructed images 2016-06-15 12:55:16 +00:00
guiapplauncher Fix path to examples part of tst_GuiAppLauncher 2015-02-13 07:28:15 +00:00
installed_cmake Add a unit test for testing Qt in its install location. 2013-07-02 23:08:54 +02:00
network Fix tst_QNetworkReply::qtbug45581WrongReplyStatusCode() on Windows 2016-06-30 07:07:11 +00:00
opengl Merge remote-tracking branch 'origin/5.6.1' into 5.6 2016-06-02 06:01:25 +02:00
other Force the use of the C++11 alignof keyword instead of an extension 2016-05-29 18:45:13 +00:00
printsupport QMacPrintEngine: Really set the printer resolution 2016-02-25 18:42:47 +00:00
shared Update copyright headers 2015-02-11 06:49:51 +00:00
sql Fix UNSIGNED values in QMYSQL 2016-06-14 11:13:11 +00:00
testlib Testlib: generate_expected_output.py: Run in C locale 2016-07-05 15:00:58 +00:00
tools Moc: fix crash when a file ends with \\\r 2016-05-18 10:34:13 +00:00
widgets QComboBox: fix crash on setEditable(false) called from editTextChanged() 2016-07-06 10:34:43 +00:00
xml Fix QDomNamedNodeMap::item crash with negative index 2015-10-29 08:05:45 +00:00
auto.pro Enable cmake auto tests for -no-gui 2016-03-30 07:16:50 +00:00
network-settings.h tst_QTcpSocket, tst_QUdpSocket: Improve diagnostics. 2016-05-02 19:20:33 +00:00
qtest-config.h Update copyright headers 2015-02-11 06:49:51 +00:00
test.pl Update copyright headers 2015-02-11 06:49:51 +00:00