summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorJędrzej Nowacki <jedrzej.nowacki@nokia.com>2012-05-07 13:14:04 +0200
committerQt by Nokia <qt-info@nokia.com>2012-05-10 02:39:30 +0200
commitff3a2ab24259d623aeb15d596a1c3be5f683579d (patch)
tree56c64a222231b50a47d470eea643ce6773f3c927 /tests/auto
parent602203cf062a0305f0d6333f0d05a87f8a093f07 (diff)
Fix test case dependency in tst_exceptionsafety.
Change-Id: Icb3887e8bca55a7e76b264b0a5ce8aa2dd118275 Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/other/exceptionsafety/tst_exceptionsafety.cpp94
1 files changed, 77 insertions, 17 deletions
diff --git a/tests/auto/other/exceptionsafety/tst_exceptionsafety.cpp b/tests/auto/other/exceptionsafety/tst_exceptionsafety.cpp
index b7fcfe8953..bb0054cd0b 100644
--- a/tests/auto/other/exceptionsafety/tst_exceptionsafety.cpp
+++ b/tests/auto/other/exceptionsafety/tst_exceptionsafety.cpp
@@ -200,9 +200,11 @@ void tst_ExceptionSafety::exceptionInSlot()
}
}
-void tst_ExceptionSafety::exceptionList() {
-
+void tst_ExceptionSafety::exceptionList()
+{
+ const int intancesCount = objCounter;
{
+ int instances;
QList<FlexibleThrowerSmall> list;
QList<FlexibleThrowerSmall> list2;
QList<FlexibleThrowerSmall> list3;
@@ -210,43 +212,53 @@ void tst_ExceptionSafety::exceptionList() {
for( int i = 0; i<10; i++ )
list.append( FlexibleThrowerSmall(i) );
+ instances = objCounter;
try {
throwType = ThrowAtCopy;
list.append( FlexibleThrowerSmall(10));
} catch (...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( list.size(), 10 );
+ instances = objCounter;
try {
throwType = ThrowAtCopy;
list.prepend( FlexibleThrowerSmall(10));
} catch (...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( list.at(0).value(), 0 );
QCOMPARE( list.size(), 10 );
+ instances = objCounter;
try {
throwType = ThrowAtCopy;
list.insert( 8, FlexibleThrowerSmall(10));
} catch (...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( list.at(7).value(), 7 );
QCOMPARE( list.at(8).value(), 8 );
QCOMPARE( list.size(), 10 );
+ instances = objCounter;
try {
throwType = ThrowAtCopy;
FlexibleThrowerSmall t = list.takeAt( 6 );
} catch (...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( list.at(6).value(), 6 );
QCOMPARE( list.at(7).value(), 7 );
QCOMPARE( list.size(), 10 );
+ instances = objCounter;
try {
throwType = ThrowAtCopy;
list3 = list;
} catch (...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( list.at(0).value(), 0 );
QCOMPARE( list.at(7).value(), 7 );
@@ -255,10 +267,12 @@ void tst_ExceptionSafety::exceptionList() {
QCOMPARE( list3.at(7).value(), 7 );
QCOMPARE( list3.size(), 10 );
+ instances = objCounter;
try {
throwType = ThrowAtCopy;
list3.append( FlexibleThrowerSmall(11) );
} catch (...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( list.at(0).value(), 0 );
QCOMPARE( list.at(7).value(), 7 );
@@ -271,8 +285,10 @@ void tst_ExceptionSafety::exceptionList() {
list2.clear();
list2.append( FlexibleThrowerSmall(11));
throwType = ThrowAtCopy;
+ instances = objCounter;
list3 = list+list2;
} catch (...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( list.at(0).value(), 0 );
QCOMPARE( list.at(7).value(), 7 );
@@ -282,10 +298,12 @@ void tst_ExceptionSafety::exceptionList() {
list2.clear();
list2.append( FlexibleThrowerSmall(11));
list3 = list+list2;
+ instances = objCounter;
try {
throwType = ThrowAtCreate;
list3[7]=FlexibleThrowerSmall(12);
} catch (...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( list.at(7).value(), 7 );
QCOMPARE( list.size(), 10 );
@@ -293,12 +311,14 @@ void tst_ExceptionSafety::exceptionList() {
QCOMPARE( list3.size(), 11 );
}
- QCOMPARE(objCounter, 0 ); // check that every object has been freed
+ QCOMPARE(objCounter, intancesCount); // check that every object has been freed
}
-void tst_ExceptionSafety::exceptionLinkedList() {
-
+void tst_ExceptionSafety::exceptionLinkedList()
+{
+ const int intancesCount = objCounter;
{
+ int instances;
QLinkedList<FlexibleThrowerSmall> list;
QLinkedList<FlexibleThrowerSmall> list2;
QLinkedList<FlexibleThrowerSmall> list3;
@@ -306,37 +326,45 @@ void tst_ExceptionSafety::exceptionLinkedList() {
for( int i = 0; i<10; i++ )
list.append( FlexibleThrowerSmall(i) );
+ instances = objCounter;
try {
throwType = ThrowAtCopy;
list.append( FlexibleThrowerSmall(10));
} catch (...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( list.size(), 10 );
+ instances = objCounter;
try {
throwType = ThrowAtCopy;
list.prepend( FlexibleThrowerSmall(10));
} catch (...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( list.first().value(), 0 );
QCOMPARE( list.size(), 10 );
+ instances = objCounter;
try {
throwType = ThrowAtCopy;
list3 = list;
list3.append( FlexibleThrowerSmall(11) );
} catch (...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( list.first().value(), 0 );
QCOMPARE( list.size(), 10 );
QCOMPARE( list3.size(), 10 );
}
- QCOMPARE(objCounter, 0 ); // check that every object has been freed
+ QCOMPARE(objCounter, intancesCount); // check that every object has been freed
}
-void tst_ExceptionSafety::exceptionVector() {
-
+void tst_ExceptionSafety::exceptionVector()
+{
+ const int intancesCount = objCounter;
{
+ int instances;
QVector<FlexibleThrowerSmall> vector;
QVector<FlexibleThrowerSmall> vector2;
QVector<FlexibleThrowerSmall> vector3;
@@ -344,34 +372,42 @@ void tst_ExceptionSafety::exceptionVector() {
for (int i = 0; i<10; i++)
vector.append( FlexibleThrowerSmall(i) );
+ instances = objCounter;
try {
throwType = ThrowAtCopy;
vector.append( FlexibleThrowerSmall(10));
} catch (...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( vector.size(), 10 );
+ instances = objCounter;
try {
throwType = ThrowAtCopy;
vector.prepend( FlexibleThrowerSmall(10));
} catch (...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( vector.at(0).value(), 0 );
QCOMPARE( vector.size(), 10 );
+ instances = objCounter;
try {
throwType = ThrowAtCopy;
vector.insert( 8, FlexibleThrowerSmall(10));
} catch (...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( vector.at(7).value(), 7 );
QCOMPARE( vector.at(8).value(), 8 );
QCOMPARE( vector.size(), 10 );
+ instances = objCounter;
try {
throwType = ThrowAtCopy;
vector3 = vector;
} catch (...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( vector.at(0).value(), 0 );
QCOMPARE( vector.at(7).value(), 7 );
@@ -380,10 +416,12 @@ void tst_ExceptionSafety::exceptionVector() {
QCOMPARE( vector3.at(7).value(), 7 );
QCOMPARE( vector3.size(), 10 );
+ instances = objCounter;
try {
throwType = ThrowAtCopy;
vector3.append( FlexibleThrowerSmall(11) );
} catch (...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( vector.at(0).value(), 0 );
QCOMPARE( vector.at(7).value(), 7 );
@@ -394,9 +432,11 @@ void tst_ExceptionSafety::exceptionVector() {
try {
vector2.clear();
vector2.append( FlexibleThrowerSmall(11));
+ instances = objCounter;
throwType = ThrowAtCopy;
vector3 = vector+vector2;
} catch (...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( vector.at(0).value(), 0 );
QCOMPARE( vector.at(7).value(), 7 );
@@ -406,49 +446,57 @@ void tst_ExceptionSafety::exceptionVector() {
vector2.clear();
vector2.append( FlexibleThrowerSmall(11));
vector3 = vector+vector2;
+ instances = objCounter;
try {
throwType = ThrowAtCreate;
vector3[7]=FlexibleThrowerSmall(12);
} catch (...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( vector.at(7).value(), 7 );
QCOMPARE( vector.size(), 10 );
QCOMPARE( vector3.at(7).value(), 7 );
QCOMPARE( vector3.size(), 11 );
+ instances = objCounter;
try {
throwType = ThrowAtCreate;
vector.resize(15);
} catch (...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( vector.at(7).value(), 7 );
QCOMPARE( vector.size(), 10 );
+ instances = objCounter;
try {
throwType = ThrowAtCreate;
vector.resize(15);
} catch (...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( vector.at(7).value(), 7 );
QCOMPARE( vector.size(), 10 );
+ instances = objCounter;
try {
throwType = ThrowLater;
vector.fill(FlexibleThrowerSmall(1), 15);
} catch (...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( vector.at(0).value(), 0 );
QCOMPARE( vector.size(), 10 );
-
-
}
- QCOMPARE(objCounter, 0 ); // check that every object has been freed
+ QCOMPARE(objCounter, intancesCount); // check that every object has been freed
}
-void tst_ExceptionSafety::exceptionMap() {
-
+void tst_ExceptionSafety::exceptionMap()
+{
+ const int intancesCount = objCounter;
{
+ int instances;
MyMap map;
MyMap map2;
MyMap map3;
@@ -460,20 +508,24 @@ void tst_ExceptionSafety::exceptionMap() {
return; // further test are deactivated until Map is fixed.
for( int i = ThrowAtCopy; i<=ThrowAtComparison; i++ ) {
+ instances = objCounter;
try {
throwType = (ThrowType)i;
map[ FlexibleThrowerSmall(10) ] = FlexibleThrowerSmall(10);
} catch(...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( map.size(), 10 );
QCOMPARE( map[ FlexibleThrowerSmall(1) ], FlexibleThrowerSmall(1) );
}
map2 = map;
+ instances = objCounter;
try {
throwType = ThrowLater;
map2[ FlexibleThrowerSmall(10) ] = FlexibleThrowerSmall(10);
} catch(...) {
+ QCOMPARE(instances, objCounter);
}
/* qDebug("%d %d", map.size(), map2.size() );
for( int i=0; i<map.size(); i++ )
@@ -488,12 +540,14 @@ void tst_ExceptionSafety::exceptionMap() {
QCOMPARE( map2.size(), 10 );
}
- QCOMPARE(objCounter, 0 ); // check that every object has been freed
+ QCOMPARE(objCounter, intancesCount); // check that every object has been freed
}
-void tst_ExceptionSafety::exceptionHash() {
-
+void tst_ExceptionSafety::exceptionHash()
+{
+ const int intancesCount = objCounter;
{
+ int instances;
MyHash hash;
MyHash hash2;
MyHash hash3;
@@ -502,19 +556,23 @@ void tst_ExceptionSafety::exceptionHash() {
hash[ FlexibleThrowerSmall(i) ] = FlexibleThrowerSmall(i);
for( int i = ThrowAtCopy; i<=ThrowAtComparison; i++ ) {
+ instances = objCounter;
try {
throwType = (ThrowType)i;
hash[ FlexibleThrowerSmall(10) ] = FlexibleThrowerSmall(10);
} catch(...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( hash.size(), 10 );
}
hash2 = hash;
+ instances = objCounter;
try {
throwType = ThrowLater;
hash2[ FlexibleThrowerSmall(10) ] = FlexibleThrowerSmall(10);
} catch(...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( hash[ FlexibleThrowerSmall(1) ], FlexibleThrowerSmall(1) );
QCOMPARE( hash.size(), 10 );
@@ -522,10 +580,12 @@ void tst_ExceptionSafety::exceptionHash() {
QCOMPARE( hash2.size(), 10 );
hash2.clear();
+ instances = objCounter;
try {
throwType = ThrowLater;
hash2.reserve(30);
} catch(...) {
+ QCOMPARE(instances, objCounter);
}
QCOMPARE( hash2.size(), 0 );
@@ -600,7 +660,7 @@ void tst_ExceptionSafety::exceptionHash() {
}
- QCOMPARE(objCounter, 0 ); // check that every object has been freed
+ QCOMPARE(objCounter, intancesCount); // check that every object has been freed
}
// Disable these tests until the level of exception safety in event loops is clear