From 1a558a30bec496444742ed75c0a6973d9789daf7 Mon Sep 17 00:00:00 2001 From: Tim King Date: Mon, 2 Apr 2012 20:56:55 +0000 Subject: - Merged in the branch cdlist-cleanup. - This adds a CleanUp template argument to CDList. - CDChunkList replaces the CDList specialization for ContextMemoryAllocator. - CDVector has been simplified and improved. - The expected performance impact is negligible. --- test/unit/context/cdlist_black.h | 36 +++++++++++-------------- test/unit/context/cdlist_context_memory_black.h | 32 +++++++++++++--------- test/unit/context/cdmap_black.h | 12 ++++----- test/unit/context/cdvector_black.h | 8 +++--- 4 files changed, 45 insertions(+), 43 deletions(-) (limited to 'test') diff --git a/test/unit/context/cdlist_black.h b/test/unit/context/cdlist_black.h index fcc6a7e55..ccdbb210b 100644 --- a/test/unit/context/cdlist_black.h +++ b/test/unit/context/cdlist_black.h @@ -28,7 +28,6 @@ #include "util/exception.h" #include "context/context.h" #include "context/cdlist.h" -#include "context/cdlist_context_memory.h" using namespace std; using namespace CVC4::context; @@ -58,12 +57,12 @@ public: // test at different sizes. this triggers grow() behavior differently. // grow() was completely broken in revision 256 - void testCDList10() { listTest(10); } - void testCDList15() { listTest(15); } - void testCDList20() { listTest(20); } - void testCDList35() { listTest(35); } - void testCDList50() { listTest(50); } - void testCDList99() { listTest(99); } + void testCDList_BE10() { listTest(10); } + void testCDList_BE15() { listTest(15); } + void testCDList_BE20() { listTest(20); } + void testCDList_BE35() { listTest(35); } + void testCDList_BE50() { listTest(50); } + void testCDList_BE99() { listTest(99); } void listTest(int N) { listTest(N, true); @@ -71,7 +70,7 @@ public: } void listTest(int N, bool callDestructor) { - CDList list(d_context, callDestructor); + CDList_BE list(d_context, callDestructor); TS_ASSERT(list.empty()); for(int i = 0; i < N; ++i) { @@ -80,7 +79,7 @@ public: TS_ASSERT(!list.empty()); TS_ASSERT_EQUALS(list.back(), i); int i2 = 0; - for(CDList::const_iterator j = list.begin(); + for(CDList_BE::const_iterator j = list.begin(); j != list.end(); ++j) { TS_ASSERT_EQUALS(*j, i2++); @@ -100,8 +99,8 @@ public: bool shouldAlsoRemainFalse = false; bool aThirdFalse = false; - CDList listT(d_context, true); - CDList listF(d_context, false); + CDList_BE listT(d_context, true); + CDList_BE listF(d_context, false); DtorSensitiveObject shouldRemainFalseDSO(shouldRemainFalse); DtorSensitiveObject shouldFlipToTrueDSO(shouldFlipToTrue); @@ -136,15 +135,10 @@ public: TS_ASSERT_EQUALS(aThirdFalse, false); } - void testEmptyIterators() { - CDList* list1 = new(true) CDList(d_context); - CDList< int, ContextMemoryAllocator >* list2 = - new(d_context->getCMM()) - CDList< int, ContextMemoryAllocator >(true, d_context, false, - ContextMemoryAllocator(d_context->getCMM())); - TS_ASSERT_EQUALS(list1->begin(), list1->end()); - TS_ASSERT_EQUALS(list2->begin(), list2->end()); - list1->deleteSelf(); + void testEmptyIterator() { + CDList_BE* list = new(true) CDList_BE(d_context); + TS_ASSERT_EQUALS(list->begin(), list->end()); + list->deleteSelf(); } /* setrlimit() totally broken on Mac OS X */ @@ -155,7 +149,7 @@ public: #else /* __APPLE__ */ - CDList list(d_context); + CDList_BE list(d_context); WithLimitedMemory wlm(1); TS_ASSERT_THROWS({ diff --git a/test/unit/context/cdlist_context_memory_black.h b/test/unit/context/cdlist_context_memory_black.h index a57fd131d..83fb20fd8 100644 --- a/test/unit/context/cdlist_context_memory_black.h +++ b/test/unit/context/cdlist_context_memory_black.h @@ -26,7 +26,7 @@ #include "memory.h" #include "context/context.h" -#include "context/cdlist_context_memory.h" +#include "context/cdchunk_list.h" using namespace std; using namespace CVC4::context; @@ -55,12 +55,12 @@ public: // test at different sizes. this triggers grow() behavior differently. // grow() was completely broken in revision 256 - void testCDList10() { listTest(10); } - void testCDList15() { listTest(15); } - void testCDList20() { listTest(20); } - void testCDList35() { listTest(35); } - void testCDList50() { listTest(50); } - void testCDList99() { listTest(99); } + void testCDChunkList10() { listTest(10); } + void testCDChunkList15() { listTest(15); } + void testCDChunkList20() { listTest(20); } + void testCDChunkList35() { listTest(35); } + void testCDChunkList50() { listTest(50); } + void testCDChunkList99() { listTest(99); } void listTest(int N) { listTest(N, true); @@ -68,7 +68,7 @@ public: } void listTest(int N, bool callDestructor) { - CDList > + CDChunkList list(d_context, callDestructor, ContextMemoryAllocator(d_context->getCMM())); TS_ASSERT(list.empty()); @@ -78,7 +78,7 @@ public: TS_ASSERT(!list.empty()); TS_ASSERT_EQUALS(list.back(), i); int i2 = 0; - for(CDList >::const_iterator j = list.begin(); + for(CDChunkList::const_iterator j = list.begin(); j != list.end(); ++j) { TS_ASSERT_EQUALS(*j, i2++); @@ -91,6 +91,14 @@ public: } } + void testEmptyIterator() { + CDChunkList< int>* list = + new(d_context->getCMM()) + CDChunkList< int >(true, d_context, false, + ContextMemoryAllocator(d_context->getCMM())); + TS_ASSERT_EQUALS(list->begin(), list->end()); + } + void testDtorCalled() { bool shouldRemainFalse = false; bool shouldFlipToTrue = false; @@ -98,8 +106,8 @@ public: bool shouldAlsoRemainFalse = false; bool aThirdFalse = false; - CDList > listT(d_context, true, ContextMemoryAllocator(d_context->getCMM())); - CDList > listF(d_context, false, ContextMemoryAllocator(d_context->getCMM())); + CDChunkList listT(d_context, true, ContextMemoryAllocator(d_context->getCMM())); + CDChunkList listF(d_context, false, ContextMemoryAllocator(d_context->getCMM())); DtorSensitiveObject shouldRemainFalseDSO(shouldRemainFalse); DtorSensitiveObject shouldFlipToTrueDSO(shouldFlipToTrue); @@ -142,7 +150,7 @@ public: #else /* __APPLE__ */ - CDList > list(d_context); + CDChunkList list(d_context); WithLimitedMemory wlm(1); TS_ASSERT_THROWS({ diff --git a/test/unit/context/cdmap_black.h b/test/unit/context/cdmap_black.h index 0358d1edd..281d814aa 100644 --- a/test/unit/context/cdmap_black.h +++ b/test/unit/context/cdmap_black.h @@ -933,9 +933,9 @@ public: //Debug.on("gc"); //Debug.on("context"); - CDHashMap*, int_hasher> map(d_context); + CDHashMap*, int_hasher> map(d_context); - CDList *list1, *list2, *list3, *list4; + CDList_BE *list1, *list2, *list3, *list4; TS_ASSERT(map.find(1) == map.end()); TS_ASSERT(map.find(2) == map.end()); @@ -947,10 +947,10 @@ public: int* x = (int*) d_context->getCMM()->newData(sizeof(int)); - list1 = new(d_context->getCMM()) CDList(true, d_context); - list2 = new(d_context->getCMM()) CDList(true, d_context); - list3 = new(d_context->getCMM()) CDList(true, d_context); - list4 = new(d_context->getCMM()) CDList(true, d_context); + list1 = new(d_context->getCMM()) CDList_BE(true, d_context); + list2 = new(d_context->getCMM()) CDList_BE(true, d_context); + list3 = new(d_context->getCMM()) CDList_BE(true, d_context); + list4 = new(d_context->getCMM()) CDList_BE(true, d_context); list1->push_back(1); list2->push_back(2); diff --git a/test/unit/context/cdvector_black.h b/test/unit/context/cdvector_black.h index b49186dd0..0f13d957e 100644 --- a/test/unit/context/cdvector_black.h +++ b/test/unit/context/cdvector_black.h @@ -68,8 +68,8 @@ public: void vectorTest(unsigned P, unsigned m){ for(unsigned g=2; g< P; g++){ - vectorTest(P, g, m, 1, false); - vectorTest(P, g, m, 3, false); + vectorTest(P, g, m, 1); + vectorTest(P, g, m, 3); } } vector copy(CDVector& v){ @@ -87,8 +87,8 @@ public: } } - void vectorTest(unsigned P, unsigned g, unsigned m, unsigned r, bool callDestructor) { - CDVector vec(d_context, callDestructor); + void vectorTest(unsigned P, unsigned g, unsigned m, unsigned r) { + CDVector vec(d_context); vector< vector > copies; copies.push_back( copy(vec) ); -- cgit v1.2.3