summaryrefslogtreecommitdiffstats
path: root/tests/auto/qscopedpointer/tst_qscopedpointer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qscopedpointer/tst_qscopedpointer.cpp')
-rw-r--r--tests/auto/qscopedpointer/tst_qscopedpointer.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/auto/qscopedpointer/tst_qscopedpointer.cpp b/tests/auto/qscopedpointer/tst_qscopedpointer.cpp
index 1a6f944965..06c0ecbafd 100644
--- a/tests/auto/qscopedpointer/tst_qscopedpointer.cpp
+++ b/tests/auto/qscopedpointer/tst_qscopedpointer.cpp
@@ -72,6 +72,7 @@ private Q_SLOTS:
void isNullSignature();
void objectSize();
void comparison();
+ void array();
// TODO instanciate on const object
};
@@ -437,5 +438,26 @@ void tst_QScopedPointer::comparison()
QCOMPARE( int(RefCounted::instanceCount), 0 );
}
+void tst_QScopedPointer::array()
+{
+ int instCount = RefCounted::instanceCount;
+ {
+ QScopedArrayPointer<RefCounted> array;
+ array.reset(new RefCounted[42]);
+ QCOMPARE(instCount + 42, int(RefCounted::instanceCount));
+ }
+ QCOMPARE(instCount, int(RefCounted::instanceCount));
+ {
+ QScopedArrayPointer<RefCounted> array(new RefCounted[42]);
+ QCOMPARE(instCount + 42, int(RefCounted::instanceCount));
+ array.reset(new RefCounted[28]);
+ QCOMPARE(instCount + 28, int(RefCounted::instanceCount));
+ array.reset(0);
+ QCOMPARE(instCount, int(RefCounted::instanceCount));
+ }
+ QCOMPARE(instCount, int(RefCounted::instanceCount));
+}
+
+
QTEST_MAIN(tst_QScopedPointer)
#include "tst_qscopedpointer.moc"