summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2013-02-07 13:56:57 -0800
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-22 04:38:01 +0100
commit1c63909ad8caee11ba0ec4af998d981bd50d3ee1 (patch)
tree6c1ede83f1588b95ce0528f89b7ead0ec8dd2ac8 /tests/auto/corelib
parentde5ae6917c819ff23f7d9c5742b50b15e0824877 (diff)
Make sure all containers compile in strict-iterator mode
Unit-test this by making the QList, QVector, QHash and QMap unit tests be duplicated under strict-iterator mode. There's no test for QLinkedList. The tst_Collections test does not compile under strict-iterator mode. It generated over 15000 errors when I tried. The strict iterators required a small change: the difference_type typedef needs to match the operators that get distances (operator-(iterator)) and move the iterator around (+, -, +=, -=, etc.). Task-number: QTBUG-29608 Change-Id: I834873934c51d0f139a994cd395818da4ec997e2 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com> Reviewed-by: Jason McDonald <macadder1@gmail.com>
Diffstat (limited to 'tests/auto/corelib')
-rw-r--r--tests/auto/corelib/tools/qarraydata/qarraydata.pro4
-rw-r--r--tests/auto/corelib/tools/qarraydata/simplevector.h10
-rw-r--r--tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp2
-rw-r--r--tests/auto/corelib/tools/qarraydata_strictiterators/qarraydata_strictiterators.pro3
-rw-r--r--tests/auto/corelib/tools/qhash/qhash.pro2
-rw-r--r--tests/auto/corelib/tools/qhash_strictiterators/qhash_strictiterators.pro3
-rw-r--r--tests/auto/corelib/tools/qlist/qlist.pro2
-rw-r--r--tests/auto/corelib/tools/qlist_strictiterators/qlist_strictiterators.pro3
-rw-r--r--tests/auto/corelib/tools/qmap/qmap.pro2
-rw-r--r--tests/auto/corelib/tools/qmap/tst_qmap.cpp2
-rw-r--r--tests/auto/corelib/tools/qmap_strictiterators/qmap_strictiterators.pro3
-rw-r--r--tests/auto/corelib/tools/qvector/qvector.pro2
-rw-r--r--tests/auto/corelib/tools/qvector_strictiterators/qvector_strictiterators.pro3
-rw-r--r--tests/auto/corelib/tools/tools.pro7
14 files changed, 33 insertions, 15 deletions
diff --git a/tests/auto/corelib/tools/qarraydata/qarraydata.pro b/tests/auto/corelib/tools/qarraydata/qarraydata.pro
index d13cc86cf5..d5fe08c009 100644
--- a/tests/auto/corelib/tools/qarraydata/qarraydata.pro
+++ b/tests/auto/corelib/tools/qarraydata/qarraydata.pro
@@ -1,6 +1,6 @@
TARGET = tst_qarraydata
-SOURCES += tst_qarraydata.cpp
-HEADERS += simplevector.h
+SOURCES += $$PWD/tst_qarraydata.cpp
+HEADERS += $$PWD/simplevector.h
QT = core testlib
CONFIG += testcase parallel_test
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/corelib/tools/qarraydata/simplevector.h b/tests/auto/corelib/tools/qarraydata/simplevector.h
index ea3892ec5c..40917c0172 100644
--- a/tests/auto/corelib/tools/qarraydata/simplevector.h
+++ b/tests/auto/corelib/tools/qarraydata/simplevector.h
@@ -269,9 +269,9 @@ public:
if (first == last)
return;
- T *const begin = d->begin();
- T *const where = begin + position;
- const T *const end = begin + d->size;
+ const iterator begin = d->begin();
+ const iterator where = begin + position;
+ const iterator end = begin + d->size;
if (d.needsDetach()
|| capacity() - size() < size_t(last - first)) {
SimpleVector detached(Data::allocate(
@@ -290,8 +290,8 @@ public:
if ((first >= where && first < end)
|| (last > where && last <= end)) {
// Copy overlapping data first and only then shuffle it into place
- T *start = d->begin() + position;
- T *middle = d->end();
+ iterator start = d->begin() + position;
+ iterator middle = d->end();
d->copyAppend(first, last);
std::rotate(start, middle, d->end());
diff --git a/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp b/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
index f9ce7425f6..60b807a7bc 100644
--- a/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
+++ b/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
@@ -1559,7 +1559,7 @@ void tst_QArrayData::literals()
#endif
QVERIFY(v.isSharable());
- QCOMPARE((void*)(v.constBegin() + v.size()), (void*)v.constEnd());
+ QCOMPARE((void*)(const char*)(v.constBegin() + v.size()), (void*)(const char*)v.constEnd());
for (int i = 0; i < 10; ++i)
QCOMPARE(const_(v)[i], char('A' + i));
diff --git a/tests/auto/corelib/tools/qarraydata_strictiterators/qarraydata_strictiterators.pro b/tests/auto/corelib/tools/qarraydata_strictiterators/qarraydata_strictiterators.pro
new file mode 100644
index 0000000000..b01fbd84d1
--- /dev/null
+++ b/tests/auto/corelib/tools/qarraydata_strictiterators/qarraydata_strictiterators.pro
@@ -0,0 +1,3 @@
+include(../qarraydata/qarraydata.pro)
+TARGET = tst_qarraydata_strictiterators
+DEFINES += QT_STRICT_ITERATORS=1 tst_QArrayData=tst_QArrayData_StrictIterators
diff --git a/tests/auto/corelib/tools/qhash/qhash.pro b/tests/auto/corelib/tools/qhash/qhash.pro
index 630eabdb7c..1ed062ca91 100644
--- a/tests/auto/corelib/tools/qhash/qhash.pro
+++ b/tests/auto/corelib/tools/qhash/qhash.pro
@@ -1,5 +1,5 @@
CONFIG += testcase parallel_test
TARGET = tst_qhash
QT = core testlib
-SOURCES = tst_qhash.cpp
+SOURCES = $$PWD/tst_qhash.cpp
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/corelib/tools/qhash_strictiterators/qhash_strictiterators.pro b/tests/auto/corelib/tools/qhash_strictiterators/qhash_strictiterators.pro
new file mode 100644
index 0000000000..715e9bf0c9
--- /dev/null
+++ b/tests/auto/corelib/tools/qhash_strictiterators/qhash_strictiterators.pro
@@ -0,0 +1,3 @@
+include(../qhash/qhash.pro)
+TARGET = tst_qhash_strictiterators
+DEFINES += QT_STRICT_ITERATORS tst_QHash=tst_QHash_StrictIterators
diff --git a/tests/auto/corelib/tools/qlist/qlist.pro b/tests/auto/corelib/tools/qlist/qlist.pro
index d3f8d83177..43c06e0ee1 100644
--- a/tests/auto/corelib/tools/qlist/qlist.pro
+++ b/tests/auto/corelib/tools/qlist/qlist.pro
@@ -2,5 +2,5 @@ CONFIG += testcase
CONFIG += parallel_test
TARGET = tst_qlist
QT = core testlib
-SOURCES = tst_qlist.cpp
+SOURCES = $$PWD/tst_qlist.cpp
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/corelib/tools/qlist_strictiterators/qlist_strictiterators.pro b/tests/auto/corelib/tools/qlist_strictiterators/qlist_strictiterators.pro
new file mode 100644
index 0000000000..e39ad38919
--- /dev/null
+++ b/tests/auto/corelib/tools/qlist_strictiterators/qlist_strictiterators.pro
@@ -0,0 +1,3 @@
+include(../qlist/qlist.pro)
+TARGET = tst_qlist_strictiterators
+DEFINES += QT_STRICT_ITERATORS tst_QList=tst_QList_StrictIterators
diff --git a/tests/auto/corelib/tools/qmap/qmap.pro b/tests/auto/corelib/tools/qmap/qmap.pro
index 5601bc528c..460b6654fb 100644
--- a/tests/auto/corelib/tools/qmap/qmap.pro
+++ b/tests/auto/corelib/tools/qmap/qmap.pro
@@ -1,5 +1,5 @@
CONFIG += testcase parallel_test
TARGET = tst_qmap
QT = core testlib
-SOURCES = tst_qmap.cpp
+SOURCES = $$PWD/tst_qmap.cpp
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/corelib/tools/qmap/tst_qmap.cpp b/tests/auto/corelib/tools/qmap/tst_qmap.cpp
index dea657f842..e812e5a337 100644
--- a/tests/auto/corelib/tools/qmap/tst_qmap.cpp
+++ b/tests/auto/corelib/tools/qmap/tst_qmap.cpp
@@ -39,8 +39,6 @@
**
****************************************************************************/
-#define QT_STRICT_ITERATORS
-
#include <qmap.h>
#include <QtTest/QtTest>
#include <QDebug>
diff --git a/tests/auto/corelib/tools/qmap_strictiterators/qmap_strictiterators.pro b/tests/auto/corelib/tools/qmap_strictiterators/qmap_strictiterators.pro
new file mode 100644
index 0000000000..6c1f4727c1
--- /dev/null
+++ b/tests/auto/corelib/tools/qmap_strictiterators/qmap_strictiterators.pro
@@ -0,0 +1,3 @@
+include(../qmap/qmap.pro)
+TARGET = tst_qmap_strictiterators
+DEFINES += QT_STRICT_ITERATORS tst_QMap=tst_QMap_StrictIterators
diff --git a/tests/auto/corelib/tools/qvector/qvector.pro b/tests/auto/corelib/tools/qvector/qvector.pro
index 98fd2f2120..22edde3412 100644
--- a/tests/auto/corelib/tools/qvector/qvector.pro
+++ b/tests/auto/corelib/tools/qvector/qvector.pro
@@ -1,5 +1,5 @@
CONFIG += testcase parallel_test
TARGET = tst_qvector
QT = core testlib
-SOURCES = tst_qvector.cpp
+SOURCES = $$PWD/tst_qvector.cpp
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0
diff --git a/tests/auto/corelib/tools/qvector_strictiterators/qvector_strictiterators.pro b/tests/auto/corelib/tools/qvector_strictiterators/qvector_strictiterators.pro
new file mode 100644
index 0000000000..d6cad86aac
--- /dev/null
+++ b/tests/auto/corelib/tools/qvector_strictiterators/qvector_strictiterators.pro
@@ -0,0 +1,3 @@
+include(../qvector/qvector.pro)
+TARGET = tst_qvector_strictiterators
+DEFINES += QT_STRICT_ITERATORS=1 tst_QVector=tst_QVector_StrictIterators
diff --git a/tests/auto/corelib/tools/tools.pro b/tests/auto/corelib/tools/tools.pro
index 996879ea69..d5c9e50190 100644
--- a/tests/auto/corelib/tools/tools.pro
+++ b/tests/auto/corelib/tools/tools.pro
@@ -2,6 +2,7 @@ TEMPLATE=subdirs
SUBDIRS=\
qalgorithms \
qarraydata \
+ qarraydata_strictiterators \
qbitarray \
qbytearray \
qbytearraylist \
@@ -20,11 +21,14 @@ SUBDIRS=\
qexplicitlyshareddatapointer \
qfreelist \
qhash \
+ qhash_strictiterators \
qline \
qlinkedlist \
qlist \
+ qlist_strictiterators \
qlocale \
qmap \
+ qmap_strictiterators \
qmargins \
qmessageauthenticationcode \
qpair \
@@ -54,4 +58,5 @@ SUBDIRS=\
qtimezone \
qtimeline \
qvarlengtharray \
- qvector
+ qvector \
+ qvector_strictiterators