summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/tools
diff options
context:
space:
mode:
authorAndrei Golubev <andrei.golubev@qt.io>2020-07-08 12:52:59 +0300
committerAndrei Golubev <andrei.golubev@qt.io>2020-08-18 12:55:38 +0200
commit5247af96e3bdf2f28f6e18007fb7e3a7458e0103 (patch)
treeddf06c7ae7bbacd7df6c9358dcb802bf2954a91d /tests/auto/corelib/tools
parent48911869cb06c96ba76874303b9a49743eb1c4f8 (diff)
Refine precoditions and logic of array operations
Updated insert() methods: * Refined Q_ASSERT() checks * Fixed implementation issues (some of which resulted in actual crashes) * Allowed to insert at the end. This is safe as far as I can tell and actually would allow to simplify considerable chunks of code (mainly, copyAppend versions to just return insert at the end) Updated tests accordingly Change-Id: I0ba33ae5034ce8d5ff95b753894e95d71ba00257 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests/auto/corelib/tools')
-rw-r--r--tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp b/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
index b503e5e72a..3f96d7e782 100644
--- a/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
+++ b/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
@@ -1373,10 +1373,10 @@ void tst_QArrayData::arrayOpsExtra()
// empty ranges
RUN_TEST_FUNC(testInsertRange, intData, 0, intArray.data(), intArray.data());
RUN_TEST_FUNC(testInsertRange, strData, 0, stringArray.data(), stringArray.data());
- // RUN_TEST_FUNC(testInsertRange, objData, 0, objArray.data(), objArray.data()); // ### crashes
+ RUN_TEST_FUNC(testInsertRange, objData, 0, objArray.data(), objArray.data());
RUN_TEST_FUNC(testInsertValue, intData, 1, 0, int());
RUN_TEST_FUNC(testInsertValue, strData, 1, 0, QString());
- // RUN_TEST_FUNC(testInsertValue, objData, 1, 0, CountedObject()); // ### crashes
+ RUN_TEST_FUNC(testInsertValue, objData, 1, 0, CountedObject());
// insert at the beginning
RUN_TEST_FUNC(testInsertRange, intData, 0, intArray.data(), intArray.data() + 1);
@@ -1405,9 +1405,14 @@ void tst_QArrayData::arrayOpsExtra()
RUN_TEST_FUNC(testInsertValue, strData, strData.size - 3, 3, QLatin1String("foo"));
RUN_TEST_FUNC(testInsertValue, objData, objData.size - 3, 3, CountedObject());
- // insert at the end (generic and movable operations allow it in value case)
+ // insert at the end
+ RUN_TEST_FUNC(testInsertRange, intData, intData.size, intArray.data(), intArray.data() + 3);
+ RUN_TEST_FUNC(testInsertRange, strData, strData.size, stringArray.data(),
+ stringArray.data() + 3);
+ RUN_TEST_FUNC(testInsertRange, objData, objData.size, objArray.data(), objArray.data() + 3);
+ RUN_TEST_FUNC(testInsertValue, intData, intData.size, 1, int(-42));
RUN_TEST_FUNC(testInsertValue, strData, strData.size, 1, QLatin1String("hello, world"));
- // RUN_TEST_FUNC(testInsertValue, objData, objData.size, 1, CountedObject()); // ### crashes
+ RUN_TEST_FUNC(testInsertValue, objData, objData.size, 1, CountedObject());
}
// emplace