summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/unit/Makefile.am4
-rw-r--r--test/unit/context/context_black.h32
2 files changed, 34 insertions, 2 deletions
diff --git a/test/unit/Makefile.am b/test/unit/Makefile.am
index 5290381c3..f3f23a400 100644
--- a/test/unit/Makefile.am
+++ b/test/unit/Makefile.am
@@ -38,8 +38,8 @@ AM_CPPFLAGS = \
AM_CXXFLAGS = $(TEST_CXXFLAGS)
AM_LDFLAGS = $(TEST_LDFLAGS)
-AM_CXXFLAGS_WHITE = -fno-access-control
-AM_CXXFLAGS_BLACK =
+AM_CXXFLAGS_WHITE = -fno-access-control -D__BUILDING_CVC4LIB_UNIT_TEST -D__BUILDING_CVC4PARSERLIB_UNIT_TEST
+AM_CXXFLAGS_BLACK = -D__BUILDING_CVC4LIB_UNIT_TEST -D__BUILDING_CVC4PARSERLIB_UNIT_TEST
AM_CXXFLAGS_PUBLIC =
AM_LDFLAGS_WHITE = \
@abs_top_builddir@/src/parser/libcvc4parser_noinst.la \
diff --git a/test/unit/context/context_black.h b/test/unit/context/context_black.h
index 4084c91fc..64ad2d7f7 100644
--- a/test/unit/context/context_black.h
+++ b/test/unit/context/context_black.h
@@ -57,6 +57,38 @@ public:
// d_context->pop();
}
+ // test at different sizes. this triggers grow() behavior differently.
+ // grow() is completely broken in revision 256; fix forthcoming by Tim
+ 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 listTest(int N) {
+ CDList<int> list(d_context);
+
+ TS_ASSERT(list.empty());
+ for(int i = 0; i < N; ++i) {
+ TS_ASSERT(list.size() == i);
+ list.push_back(i);
+ TS_ASSERT(!list.empty());
+ TS_ASSERT(list.back() == i);
+ int i2 = 0;
+ for(CDList<int>::const_iterator j = list.begin();
+ j != list.end();
+ ++j) {
+ TS_ASSERT(*j == i2++);
+ }
+ }
+ TS_ASSERT(list.size() == N);
+
+ for(int i = 0; i < N; ++i) {
+ TS_ASSERT(list[i] == i);
+ }
+ }
+
void tearDown() {
delete d_context;
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback