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