qt5base-lts/tests/auto/corelib/tools
Marc Mutz 9e5e30fa13 QStringMatcher: fix setCaseSensitivity() on a non-QString-backed matcher
When a non-QString-backed mode (via the (QChar*, int) ctor) was added
for Qt 4.5, the author forgot to adjust the setCaseSensitivity()
function.  It still uses q_pattern instead of (p.uc, p.len) as the
pattern for which to create the skip-table. Since there is no
setPattern() overload for this mode, the correctness of the matcher is
not harmed by this, but its performance degrades to that of a linear
scan: the skip-table, being filled from an empty pattern, will be
all-zeros, sending bm_find() into the 'possible match' case at every
character.

Since matching is still correct, but slow, it's not possible to write
a test for this. I did, however, leave my attempts in the auto-test,
for when we add QStringView overloads of setPattern() which will then
be able to expose the bug.

Change-Id: I7b803e8624b0352a0a974900affbbfc0c260d93b
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2017-02-07 16:31:00 +00:00
..
collections Updated license headers 2016-01-21 18:55:18 +00:00
qalgorithms Updated license headers 2016-01-21 18:55:18 +00:00
qarraydata Fix warnings in tests (MinGW/MSCV) 2016-11-29 17:08:46 +00:00
qarraydata_strictiterators Make sure all containers compile in strict-iterator mode 2014-02-22 04:38:01 +01:00
qbitarray Updated license headers 2016-01-21 18:55:18 +00:00
qbytearray Merge remote-tracking branch 'origin/5.7' into 5.8 2016-09-05 18:47:27 +02:00
qbytearraylist Updated license headers 2016-01-21 18:55:18 +00:00
qbytearraymatcher Updated license headers 2016-01-21 18:55:18 +00:00
qbytedatabuffer Updated license headers 2016-01-21 18:55:18 +00:00
qcache Updated license headers 2016-01-21 18:55:18 +00:00
qchar tst_qchar: Silence deprecation warning 2016-11-29 16:20:01 +00:00
qcollator Modularize configure.json/.pri 2016-09-15 08:23:53 +00:00
qcommandlineparser Merge remote-tracking branch 'origin/5.7' into dev 2016-04-05 14:22:45 +02:00
qcontiguouscache Updated license headers 2016-01-21 18:55:18 +00:00
qcryptographichash Remove the traces of the discontinued android-no-sdk platform 2016-03-30 10:12:34 +00:00
qdate Add Qt::ISODateWithMs date format, with support in QTime/Date/DateTime 2016-10-20 15:15:40 +00:00
qdatetime Add Qt::ISODateWithMs date format, with support in QTime/Date/DateTime 2016-10-20 15:15:40 +00:00
qeasingcurve Updated license headers 2016-01-21 18:55:18 +00:00
qexplicitlyshareddatapointer Updated license headers 2016-01-21 18:55:18 +00:00
qfreelist Use qtConfig throughout in qtbase 2016-08-19 04:28:05 +00:00
qhash Add qHash(QHash) and qHash(QMultiHash) 2016-07-14 06:53:48 +00:00
qhash_strictiterators Make sure all containers compile in strict-iterator mode 2014-02-22 04:38:01 +01:00
qhashfunctions Replace custom type traits with std one's 2016-11-08 15:31:17 +00:00
qlatin1string Merge remote-tracking branch 'origin/5.7' into 5.8 2016-09-21 11:57:52 +02:00
qline Add QLineF::center() returning the point in the center of the line 2016-05-27 08:49:44 +00:00
qlinkedlist Merge remote-tracking branch 'origin/5.6' into 5.7 2016-05-19 12:55:27 +02:00
qlist Merge remote-tracking branch 'origin/5.6' into 5.7 2016-05-19 12:55:27 +02:00
qlist_strictiterators Make sure all containers compile in strict-iterator mode 2014-02-22 04:38:01 +01:00
qlocale Fixed Chinese language selection on iOS 2017-01-10 17:35:35 +00:00
qmap Merge remote-tracking branch 'origin/5.6' into 5.7 2016-05-19 12:55:27 +02:00
qmap_strictiterators Make sure all containers compile in strict-iterator mode 2014-02-22 04:38:01 +01:00
qmargins Updated license headers 2016-01-21 18:55:18 +00:00
qmessageauthenticationcode Updated license headers 2016-01-21 18:55:18 +00:00
qpair Merge remote-tracking branch 'origin/5.6' into 5.7 2016-07-15 20:47:57 +02:00
qpoint Updated license headers 2016-01-21 18:55:18 +00:00
qpointf Updated license headers 2016-01-21 18:55:18 +00:00
qqueue Updated license headers 2016-01-21 18:55:18 +00:00
qrect Merge remote-tracking branch 'origin/5.6' into 5.7 2016-03-21 09:02:57 +01:00
qregexp QtCore: Remove Windows CE. 2016-03-30 11:22:47 +00:00
qregularexpression Merge dev into 5.8 2016-08-22 11:30:01 +02:00
qringbuffer QRingBuffer: add packet mode 2016-07-23 09:05:13 +00:00
qscopedpointer QSharedPointer/QWeakPointer/QScopedPointer: add comparison against nullptr 2016-06-08 09:09:47 +00:00
qscopedvaluerollback Updated license headers 2016-01-21 18:55:18 +00:00
qset Updated license headers 2016-01-21 18:55:18 +00:00
qsharedpointer QSharedPointer: clean up #ifdefs 2016-08-15 16:55:45 +00:00
qsize Updated license headers 2016-01-21 18:55:18 +00:00
qsizef Updated license headers 2016-01-21 18:55:18 +00:00
qstl Updated license headers 2016-01-21 18:55:18 +00:00
qstring Fix tst_QString::sprintf() 2016-11-29 14:10:08 +00:00
qstring_no_cast_from_bytearray Updated license headers 2016-01-21 18:55:18 +00:00
qstringapisymmetry Use qtConfig throughout in qtbase 2016-08-19 04:28:05 +00:00
qstringbuilder QString: add some missing overloaded operator+ 2016-06-29 14:58:25 +00:00
qstringiterator Updated license headers 2016-01-21 18:55:18 +00:00
qstringlist Add QStringList::join(QLatin1String) overload 2016-09-18 07:28:56 +00:00
qstringmatcher QStringMatcher: fix setCaseSensitivity() on a non-QString-backed matcher 2017-02-07 16:31:00 +00:00
qstringref QStringRef: add chop() 2016-07-07 15:12:27 +00:00
qtextboundaryfinder Remove the traces of the discontinued android-no-sdk platform 2016-03-30 10:12:34 +00:00
qtime Add Qt::ISODateWithMs date format, with support in QTime/Date/DateTime 2016-10-20 15:15:40 +00:00
qtimeline Improve QTest::qWait() precision and switch to QDeadlineTimer 2017-01-25 16:40:57 +00:00
qtimezone Use qtConfig throughout in qtbase 2016-08-19 04:28:05 +00:00
qvarlengtharray Updated license headers 2016-01-21 18:55:18 +00:00
qvector Use qtConfig throughout in qtbase 2016-08-19 04:28:05 +00:00
qvector_strictiterators Make sure all containers compile in strict-iterator mode 2014-02-22 04:38:01 +01:00
qversionnumber Use qtConfig throughout in qtbase 2016-08-19 04:28:05 +00:00
tools.pro Move QElapsedTimer to src/corelib/kernel 2016-07-02 07:51:45 +00:00