summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/tools/qscopedpointer
diff options
context:
space:
mode:
authorStephen Kelly <stephen.kelly@kdab.com>2013-09-03 09:44:30 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-05 08:20:19 +0200
commit3f6ed5566fcfbbba4cadfade460460f8ebf06ad3 (patch)
tree213de5a21d8e942daded1c988560d11b76e92709 /tests/auto/corelib/tools/qscopedpointer
parent5a02d30a78991240c3355d863f52b0d376ebf911 (diff)
Revert "Implement move-ctor and move-assignment-op for QScopedPointer"
This reverts commit 5b9006bbdba7dcab01b8e640554a7d7a4b64f76b. Also revert "Doc: Enable documentation for QScopedPointer's rvalue ref functions" This reverts commit 5f8416ec659b134db90df7e7f857db77fd27b6ab. Adding a move contructor to QScopedPointer makes no sense, because moving means 'escaping the scope', which breaks the fundamental point of QScopedPointer. Change-Id: I4ac1b108bf199af6e436fa1629aa2d3b93c27724 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'tests/auto/corelib/tools/qscopedpointer')
-rw-r--r--tests/auto/corelib/tools/qscopedpointer/qscopedpointer.pro1
-rw-r--r--tests/auto/corelib/tools/qscopedpointer/tst_qscopedpointer.cpp155
2 files changed, 0 insertions, 156 deletions
diff --git a/tests/auto/corelib/tools/qscopedpointer/qscopedpointer.pro b/tests/auto/corelib/tools/qscopedpointer/qscopedpointer.pro
index 48a3b9ee9c..5fa529e175 100644
--- a/tests/auto/corelib/tools/qscopedpointer/qscopedpointer.pro
+++ b/tests/auto/corelib/tools/qscopedpointer/qscopedpointer.pro
@@ -1,5 +1,4 @@
CONFIG += testcase parallel_test
-contains(QT_CONFIG, c++11):CONFIG += c++11
TARGET = tst_qscopedpointer
QT = core testlib
SOURCES = tst_qscopedpointer.cpp
diff --git a/tests/auto/corelib/tools/qscopedpointer/tst_qscopedpointer.cpp b/tests/auto/corelib/tools/qscopedpointer/tst_qscopedpointer.cpp
index cb0382eb66..66ea3e940c 100644
--- a/tests/auto/corelib/tools/qscopedpointer/tst_qscopedpointer.cpp
+++ b/tests/auto/corelib/tools/qscopedpointer/tst_qscopedpointer.cpp
@@ -42,8 +42,6 @@
#include <QtTest/QtTest>
#include <QtCore/QScopedPointer>
-#include <utility>
-
/*!
\class tst_QScopedPointer
\internal
@@ -75,7 +73,6 @@ private Q_SLOTS:
void objectSize();
void comparison();
void array();
- void move();
// TODO instanciate on const object
};
@@ -461,158 +458,6 @@ void tst_QScopedPointer::array()
QCOMPARE(instCount, RefCounted::instanceCount.load());
}
-#ifdef Q_COMPILER_RVALUE_REFS
-struct CountedInteger
-{
- CountedInteger(int i) : i(i)
- {
- ++instanceCount;
- }
- ~CountedInteger()
- {
- --instanceCount;
- }
- CountedInteger(const CountedInteger &c)
- : i(c.i)
- {
- ++instanceCount;
- }
-
- static int instanceCount;
- int i;
-};
-
-int CountedInteger::instanceCount = 0;
-
-QScopedPointer<CountedInteger> returnScopedPointer(int i)
-{
- return QScopedPointer<CountedInteger>(new CountedInteger(i));
-}
-#endif
-
-void tst_QScopedPointer::move()
-{
-#ifndef Q_COMPILER_RVALUE_REFS
- QSKIP("This test requires rvalues refs");
-#else
- QCOMPARE(CountedInteger::instanceCount, 0);
-
- {
- QScopedPointer<CountedInteger> p = returnScopedPointer(42);
- QVERIFY(!p.isNull());
- QCOMPARE(p->i, 42);
- QCOMPARE(CountedInteger::instanceCount, 1);
-
- QScopedPointer<CountedInteger> q = returnScopedPointer(51);
- QVERIFY(!q.isNull());
- QCOMPARE(q->i, 51);
- QCOMPARE(CountedInteger::instanceCount, 2);
-
- q = returnScopedPointer(123);
- QVERIFY(!q.isNull());
- QCOMPARE(q->i, 123);
- QCOMPARE(CountedInteger::instanceCount, 2);
-
- p = std::move(q);
- QVERIFY(!p.isNull());
- QCOMPARE(p->i, 123);
- QVERIFY(q.isNull());
- QCOMPARE(CountedInteger::instanceCount, 1);
-
- p = std::move(q);
- QVERIFY(p.isNull());
- QVERIFY(q.isNull());
- QCOMPARE(CountedInteger::instanceCount, 0);
- }
-
- QCOMPARE(CountedInteger::instanceCount, 0);
-
- {
- QScopedPointer<CountedInteger> p = returnScopedPointer(1024);
- QVERIFY(!p.isNull());
- QCOMPARE(p->i, 1024);
- QCOMPARE(CountedInteger::instanceCount, 1);
-
- p.reset();
- QVERIFY(p.isNull());
- QCOMPARE(CountedInteger::instanceCount, 0);
-
- p = returnScopedPointer(1024);
- const CountedInteger * const rawPtr = p.data();
- p = std::move(p);
- // now p is in a "valid, but unspecified state". so the test must not crash.
- // we do actually know that this move should've been a noop.
- QVERIFY(!p.isNull());
- QCOMPARE(p.data(), rawPtr);
- QCOMPARE(p->i, 1024);
- QCOMPARE(CountedInteger::instanceCount, 1);
-
- p.reset();
- QVERIFY(p.isNull());
- QCOMPARE(CountedInteger::instanceCount, 0);
- }
-
- QCOMPARE(CountedInteger::instanceCount, 0);
-
- {
- QScopedPointer<CountedInteger> p = returnScopedPointer(-1);
- QVERIFY(!p.isNull());
- QCOMPARE(p->i, -1);
- QCOMPARE(CountedInteger::instanceCount, 1);
- }
-
- QCOMPARE(CountedInteger::instanceCount, 0);
-
- {
- QScopedPointer<CountedInteger> p = returnScopedPointer(0);
- QVERIFY(!p.isNull());
- QCOMPARE(p->i, 0);
- QCOMPARE(CountedInteger::instanceCount, 1);
-
- QScopedPointer<CountedInteger> q;
- QVERIFY(q.isNull());
-
- p = std::move(q);
- QVERIFY(p.isNull());
- QVERIFY(q.isNull());
- QCOMPARE(CountedInteger::instanceCount, 0);
- }
-
- QCOMPARE(CountedInteger::instanceCount, 0);
-
- {
- QScopedPointer<CountedInteger> p;
- QVERIFY(p.isNull());
- QCOMPARE(CountedInteger::instanceCount, 0);
-
- QScopedPointer<CountedInteger> q = returnScopedPointer(123);
- QVERIFY(!q.isNull());
- QCOMPARE(q->i, 123);
- QCOMPARE(CountedInteger::instanceCount, 1);
-
- p = std::move(q);
- QVERIFY(!p.isNull());
- QCOMPARE(p->i, 123);
- QVERIFY(q.isNull());
- QCOMPARE(CountedInteger::instanceCount, 1);
- }
-
- QCOMPARE(CountedInteger::instanceCount, 0);
-
- {
- QScopedPointer<CountedInteger> p;
- QVERIFY(p.isNull());
- QCOMPARE(CountedInteger::instanceCount, 0);
-
- p = returnScopedPointer(2001);
- QVERIFY(!p.isNull());
- QCOMPARE(p->i, 2001);
- QCOMPARE(CountedInteger::instanceCount, 1);
- }
-
- QCOMPARE(CountedInteger::instanceCount, 0);
-#endif
-}
QTEST_MAIN(tst_QScopedPointer)
#include "tst_qscopedpointer.moc"