From 621dce0cb0f31db288f618c45ca998d64a6feab7 Mon Sep 17 00:00:00 2001
From: Paolo Capriotti
Date: Fri, 27 Jul 2007 12:53:31 +0200
Subject: [PATCH] Ported weakset test to CppUnit and added it to the build
system.
---
tests/CMakeLists.txt | 4 +-
tests/{settings/main.cpp => cppunit_main.cpp} | 0
tests/settings/CMakeLists.txt | 2 +-
tests/weak_set/CMakeLists.txt | 20 +++++++--
tests/weak_set/test_weakset.cpp | 1 -
tests/weak_set/weakset.h | 1 -
tests/weak_set/weakset_test.cpp | 62 +++++++++++++++++++++++++++
tests/weak_set/weakset_test.h | 27 ++++++++++++
8 files changed, 107 insertions(+), 10 deletions(-)
rename tests/{settings/main.cpp => cppunit_main.cpp} (100%)
delete mode 120000 tests/weak_set/weakset.h
create mode 100644 tests/weak_set/weakset_test.cpp
create mode 100644 tests/weak_set/weakset_test.h
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 61d1ea3..f1e8b35 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -6,6 +6,4 @@ else(CPPUNIT_FOUND)
message("CppUnit not found. Tests requiring it will not be compiled.")
endif(CPPUNIT_FOUND)
-# ADD_SUBDIRECTORY(luaimage)
-# ADD_SUBDIRECTORY(options)
-# ADD_SUBDIRECTORY(movelist)
+ADD_SUBDIRECTORY(weak_set)
diff --git a/tests/settings/main.cpp b/tests/cppunit_main.cpp
similarity index 100%
rename from tests/settings/main.cpp
rename to tests/cppunit_main.cpp
diff --git a/tests/settings/CMakeLists.txt b/tests/settings/CMakeLists.txt
index 585e5bb..e4e0a3f 100644
--- a/tests/settings/CMakeLists.txt
+++ b/tests/settings/CMakeLists.txt
@@ -4,7 +4,7 @@ SET(settings_SRC
${main_dir}/mastersettings.cpp
${main_dir}/settings.cpp
settingstest.cpp
- main.cpp
+ ../cppunit_main.cpp
)
include_directories(
diff --git a/tests/weak_set/CMakeLists.txt b/tests/weak_set/CMakeLists.txt
index b026cbc..eca7fef 100644
--- a/tests/weak_set/CMakeLists.txt
+++ b/tests/weak_set/CMakeLists.txt
@@ -1,5 +1,17 @@
-ADD_EXECUTABLE(test_weakset
- test_weakset.cpp)
+set(main_dir "../../src")
-TARGET_LINK_LIBRARIES(test_weakset
- -lboost_unit_test_framework)
+SET(weakset_SRC
+ weakset_test.cpp
+ ../cppunit_main.cpp
+)
+
+include_directories(
+ ${Boost_INCLUDE_DIRS}
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/${main_dir}
+)
+
+add_executable(weakset_test ${weakset_SRC})
+target_link_libraries(weakset_test ${CPPUNIT_LIBRARIES})
+
+add_test(weakset weakset_test)
diff --git a/tests/weak_set/test_weakset.cpp b/tests/weak_set/test_weakset.cpp
index 016bef4..dd1b704 100644
--- a/tests/weak_set/test_weakset.cpp
+++ b/tests/weak_set/test_weakset.cpp
@@ -1,4 +1,3 @@
-//#define WEAK_SET_DEBUG
#include "weakset.h"
#include
using boost::unit_test::test_suite;
diff --git a/tests/weak_set/weakset.h b/tests/weak_set/weakset.h
deleted file mode 120000
index d766e9a..0000000
--- a/tests/weak_set/weakset.h
+++ /dev/null
@@ -1 +0,0 @@
-../../src/weakset.h
\ No newline at end of file
diff --git a/tests/weak_set/weakset_test.cpp b/tests/weak_set/weakset_test.cpp
new file mode 100644
index 0000000..d4ba6b2
--- /dev/null
+++ b/tests/weak_set/weakset_test.cpp
@@ -0,0 +1,62 @@
+#include "weakset_test.h"
+#include "weakset.h"
+
+CPPUNIT_TEST_SUITE_REGISTRATION(WeaksetTest);
+
+template
+uint weak_set_size(weak_set& w) {
+ uint c = 0;
+ for (typename weak_set::iterator i = w.begin();
+ i != w.end(); ++i) {
+ ++c;
+ }
+ return c;
+}
+
+void WeaksetTest::test_insertion() {
+ boost::shared_ptr n(new int(8));
+ boost::shared_ptr m(new int(1));
+ weak_set s;
+ s.insert(n);
+ s.insert(m);
+
+ CPPUNIT_ASSERT_EQUAL(2U, weak_set_size(s));
+}
+
+void WeaksetTest::test_garbage_collection() {
+ weak_set s;
+
+ boost::shared_ptr u(new int(37));
+ s.insert(u);
+
+ {
+ boost::shared_ptr m(new int(1));
+ s.insert(m);
+ }
+
+ boost::shared_ptr n(new int(8));
+ s.insert(n);
+
+ CPPUNIT_ASSERT_EQUAL(2U, weak_set_size(s));
+}
+
+void WeaksetTest::test_get() {
+ weak_set s;
+ boost::shared_ptr n(new int(42));
+
+ s.insert(n);
+
+ CPPUNIT_ASSERT_EQUAL(42, *s.begin());
+}
+
+void WeaksetTest::test_empty() {
+ weak_set s;
+
+ {
+ boost::shared_ptr m(new int(37));
+ s.insert(m);
+ }
+
+ CPPUNIT_ASSERT_EQUAL(0U, weak_set_size(s));
+}
+
diff --git a/tests/weak_set/weakset_test.h b/tests/weak_set/weakset_test.h
new file mode 100644
index 0000000..1188ee4
--- /dev/null
+++ b/tests/weak_set/weakset_test.h
@@ -0,0 +1,27 @@
+#ifndef WEAKSETTEST_H
+#define WEAKSETTEST_H
+
+#include
+#include
+#include
+#include
+#include
+
+class WeaksetTest : public CppUnit::TestFixture {
+ CPPUNIT_TEST_SUITE(WeaksetTest);
+ CPPUNIT_TEST(test_insertion);
+ CPPUNIT_TEST(test_garbage_collection);
+ CPPUNIT_TEST(test_get);
+ CPPUNIT_TEST(test_empty);
+ CPPUNIT_TEST_SUITE_END();
+public:
+ void setUp() { }
+ void tearDown() { }
+
+ void test_insertion();
+ void test_garbage_collection();
+ void test_get();
+ void test_empty();
+};
+
+#endif // WEAKSETTEST_H
--
2.11.4.GIT