Removed the "tst_QVector::outOfMemory" test.
authorChristian Strømme <christian.stromme@digia.com>
Fri, 5 Oct 2012 14:32:19 +0000 (16:32 +0200)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Mon, 8 Oct 2012 15:38:20 +0000 (17:38 +0200)
The test is useless as we assert if the requested size exceeds
a certain limit. We could, as an alternative,
throw an exception, but in the end it's the caller's responsibility
to ensure that the requested size is a sane value.

Task-number: QTBUG-27285
Change-Id: I738950a6a2b51671a54e4d25c7e4c3ac0d7f63b8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
src/corelib/tools/qbytearray.cpp
tests/auto/corelib/tools/qvector/tst_qvector.cpp

index 12d2fe7..feda8f4 100644 (file)
@@ -70,7 +70,7 @@ int qFindByteArray(
 int qAllocMore(int alloc, int extra)
 {
     Q_ASSERT(alloc >= 0 && extra >= 0);
-    Q_ASSERT(alloc < (1 << 30) - extra);
+    Q_ASSERT_X(alloc < (1 << 30) - extra, "qAllocMore", "Requested size is too large!");
 
     unsigned nalloc = alloc + extra;
 
index f5d77d4..6304477 100644 (file)
@@ -250,7 +250,6 @@ private slots:
 
     void testOperators() const;
 
-    void outOfMemory();
     void reserve();
     void reallocAfterCopy_data();
     void reallocAfterCopy();
@@ -1739,153 +1738,6 @@ struct Foo
     ~Foo() { delete p; ++fooDtor; }
 };
 
-void tst_QVector::outOfMemory()
-{
-    fooCtor = 0;
-    fooDtor = 0;
-
-    const int N = 0x7fffffff / sizeof(Foo);
-
-    {
-        QVector<Foo> a;
-
-        QSKIP("QTBUG-27285 - This test crashes on many of our machines.");
-        a.resize(N);
-        if (a.size() == N) {
-            QVERIFY(a.capacity() >= N);
-            QCOMPARE(fooCtor, N);
-            QCOMPARE(fooDtor, 0);
-
-            for (int i = 0; i < N; i += 35000)
-                a[i] = Foo();
-        } else {
-            // this is the case we're actually testing
-            QCOMPARE(a.size(), 0);
-            QCOMPARE(a.capacity(), 0);
-            QCOMPARE(fooCtor, 0);
-            QCOMPARE(fooDtor, 0);
-
-            a.resize(5);
-            QCOMPARE(a.size(), 5);
-            QVERIFY(a.capacity() >= 5);
-            QCOMPARE(fooCtor, 5);
-            QCOMPARE(fooDtor, 0);
-
-            const int Prealloc = a.capacity();
-            a.resize(Prealloc + 1);
-            QCOMPARE(a.size(), Prealloc + 1);
-            QVERIFY(a.capacity() >= Prealloc + 1);
-            QCOMPARE(fooCtor, Prealloc + 6);
-            QCOMPARE(fooDtor, 5);
-
-            a.resize(0x10000000);
-            QCOMPARE(a.size(), 0);
-            QCOMPARE(a.capacity(), 0);
-            QCOMPARE(fooCtor, Prealloc + 6);
-            QCOMPARE(fooDtor, Prealloc + 6);
-        }
-    }
-
-    fooCtor = 0;
-    fooDtor = 0;
-
-    {
-        QVector<Foo> a(N);
-        if (a.size() == N) {
-            QVERIFY(a.capacity() >= N);
-            QCOMPARE(fooCtor, N);
-            QCOMPARE(fooDtor, 0);
-
-            for (int i = 0; i < N; i += 35000)
-                a[i] = Foo();
-        } else {
-            // this is the case we're actually testing
-            QCOMPARE(a.size(), 0);
-            QCOMPARE(a.capacity(), 0);
-            QCOMPARE(fooCtor, 0);
-            QCOMPARE(fooDtor, 0);
-        }
-    }
-
-    Foo foo;
-
-    fooCtor = 0;
-    fooDtor = 0;
-
-    {
-        QVector<Foo> a(N, foo);
-        if (a.size() == N) {
-            QVERIFY(a.capacity() >= N);
-            QCOMPARE(fooCtor, N);
-            QCOMPARE(fooDtor, 0);
-
-            for (int i = 0; i < N; i += 35000)
-                a[i] = Foo();
-        } else {
-            // this is the case we're actually testing
-            QCOMPARE(a.size(), 0);
-            QCOMPARE(a.capacity(), 0);
-            QCOMPARE(fooCtor, 0);
-            QCOMPARE(fooDtor, 0);
-        }
-    }
-
-    fooCtor = 0;
-    fooDtor = 0;
-
-    {
-        QVector<Foo> a;
-        a.resize(10);
-        QCOMPARE(fooCtor, 10);
-        QCOMPARE(fooDtor, 0);
-
-        QVector<Foo> b(a);
-        QCOMPARE(fooCtor, 10);
-        QCOMPARE(fooDtor, 0);
-
-        a.resize(N);
-        if (a.size() == N) {
-            QCOMPARE(fooCtor, N + 10);
-        } else {
-            QCOMPARE(a.size(), 0);
-            QCOMPARE(a.capacity(), 0);
-            QCOMPARE(fooCtor, 10);
-            QCOMPARE(fooDtor, 0);
-
-            QCOMPARE(b.size(), 10);
-            QVERIFY(b.capacity() >= 10);
-        }
-    }
-
-    {
-        QVector<int> a;
-        a.resize(10);
-
-        QVector<int> b(a);
-
-        a.resize(N);
-        if (a.size() == N) {
-            for (int i = 0; i < N; i += 60000)
-                a[i] = i;
-        } else {
-            QCOMPARE(a.size(), 0);
-            QCOMPARE(a.capacity(), 0);
-
-            QCOMPARE(b.size(), 10);
-            QVERIFY(b.capacity() >= 10);
-        }
-
-        b.resize(N - 1);
-        if (b.size() == N - 1) {
-            for (int i = 0; i < N - 1; i += 60000)
-                b[i] = i;
-        } else {
-            QCOMPARE(b.size(), 0);
-            QCOMPARE(b.capacity(), 0);
-        }
-    }
-}
-
 void tst_QVector::reserve()
 {
     fooCtor = 0;