summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/tools/qarraydata
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2020-10-30 13:42:09 +0100
committerLars Knoll <lars.knoll@qt.io>2020-11-04 11:21:37 +0100
commit32a703e2779e697a9a7d75f6cbc6e555187d7fca (patch)
treeea9d56952efd13d36ae455771ace6fa144bbe568 /tests/auto/corelib/tools/qarraydata
parent50ec3252ac5d61a13fab01801ef42729d6f3a7c6 (diff)
Don't move data in QArrayDataOps::reallocate()
reallocate() should only ever call realloc(), and only be used to create more space at the end of the data. Change-Id: I2ac4dbc90d2afaa571bb620108d7984356712cb2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Diffstat (limited to 'tests/auto/corelib/tools/qarraydata')
-rw-r--r--tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp49
1 files changed, 0 insertions, 49 deletions
diff --git a/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp b/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
index 497f582c10..5910a29b43 100644
--- a/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
+++ b/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
@@ -82,8 +82,6 @@ private slots:
void freeSpace();
void dataPointerAllocate_data() { arrayOps_data(); }
void dataPointerAllocate();
- void dataPointerAllocateAlignedWithReallocate_data();
- void dataPointerAllocateAlignedWithReallocate();
#ifndef QT_NO_EXCEPTIONS
void exceptionSafetyPrimitives_constructor();
void exceptionSafetyPrimitives_destructor();
@@ -2158,53 +2156,6 @@ void tst_QArrayData::dataPointerAllocate()
}
}
-void tst_QArrayData::dataPointerAllocateAlignedWithReallocate_data()
-{
- QTest::addColumn<QArrayData::ArrayOptions>("initFlags");
- QTest::addColumn<QArrayData::ArrayOptions>("newFlags");
-
- QTest::newRow("default-flags") << QArrayData::ArrayOptions(QArrayData::DefaultAllocationFlags)
- << QArrayData::ArrayOptions(QArrayData::DefaultAllocationFlags);
- QTest::newRow("no-grows-backwards") << QArrayData::ArrayOptions(QArrayData::GrowsForward)
- << QArrayData::ArrayOptions(QArrayData::GrowsForward);
- QTest::newRow("grows-backwards") << QArrayData::ArrayOptions(QArrayData::GrowsBackwards)
- << QArrayData::ArrayOptions(QArrayData::GrowsBackwards);
- QTest::newRow("removed-grows-backwards") << QArrayData::ArrayOptions(QArrayData::GrowsBackwards)
- << QArrayData::ArrayOptions(QArrayData::GrowsForward);
- QTest::newRow("removed-growth") << QArrayData::ArrayOptions(QArrayData::GrowsBackwards)
- << QArrayData::ArrayOptions(QArrayData::DefaultAllocationFlags);
-}
-
-void tst_QArrayData::dataPointerAllocateAlignedWithReallocate()
-{
- QFETCH(QArrayData::ArrayOptions, initFlags);
- QFETCH(QArrayData::ArrayOptions, newFlags);
-
- // Note: using the same type to ensure alignment and padding are the same.
- // otherwise, we may get differences in the allocated size
- auto a = QArrayDataPointer<int>::allocateGrow(QArrayDataPointer<int>(), 50, 0, initFlags);
- auto b = QArrayDataPointer<int>::allocateGrow(QArrayDataPointer<int>(), 50, 0, initFlags);
-
- if (initFlags & QArrayData::GrowsBackwards) {
- QVERIFY(a.freeSpaceAtBegin() > 0);
- } else {
- QVERIFY(a.freeSpaceAtBegin() == 0);
- }
- QCOMPARE(a.freeSpaceAtBegin(), b.freeSpaceAtBegin());
- const auto oldSpaceAtBeginA = a.freeSpaceAtBegin();
-
- a->reallocate(100, newFlags);
- b = QArrayDataPointer<int>::allocateGrow(b, 100, b.size, newFlags);
-
- // NB: when growing backwards, the behavior is not aligned
- if (!(newFlags & QArrayData::GrowsBackwards)) {
- QCOMPARE(a.freeSpaceAtBegin(), b.freeSpaceAtBegin());
- } else {
- QCOMPARE(a.freeSpaceAtBegin(), oldSpaceAtBeginA);
- QCOMPARE(b.freeSpaceAtBegin(), b.constAllocatedCapacity() / 2);
- }
-}
-
#ifndef QT_NO_EXCEPTIONS
struct ThrowingTypeWatcher
{