aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Richard <[email protected]>2013-03-11 10:29:16 +0000
committerVincent Richard <[email protected]>2013-03-11 10:29:16 +0000
commitc2e16ab09f8a1fd5052bd609acd5ebf8f69d7df8 (patch)
tree8c2c631de5bad96e0cddaaa0275724b394f4d901
parentFixed mailbox and mailbox group parsing. Added unit tests. (diff)
downloadvmime-c2e16ab09f8a1fd5052bd609acd5ebf8f69d7df8.tar.gz
vmime-c2e16ab09f8a1fd5052bd609acd5ebf8f69d7df8.zip
Testing with CTest.
-rw-r--r--.gitignore4
-rw-r--r--CMakeLists.txt48
2 files changed, 46 insertions, 6 deletions
diff --git a/.gitignore b/.gitignore
index c3be379d..94f66b35 100644
--- a/.gitignore
+++ b/.gitignore
@@ -28,6 +28,10 @@ doc/html/*
/COPYING.txt
/build/
+# CTest-generated files
+/CTestTestfile.cmake
+/Testing/
+
# Mac
._DS_Store
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 918479a8..67c4a9d9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -197,21 +197,57 @@ OPTION(
IF(VMIME_BUILD_TESTS)
+ ENABLE_TESTING()
+
+ INCLUDE(cmake/FindCppUnit.cmake)
+ INCLUDE_DIRECTORIES(${CPPUNIT_INCLUDE_DIR})
+
FILE(
GLOB_RECURSE
VMIME_TESTS_SRC_FILES
- tests/*Test.cpp tests/testRunner.cpp tests/testUtils.cpp
+ ${CMAKE_SOURCE_DIR}/tests/*Test.cpp
)
+ # Build one file for each test
+ FOREACH(VMIME_TEST_SRC_FILE ${VMIME_TESTS_SRC_FILES})
+
+ # "/path/to/vmime/tests/module/testFile.cpp" --> "module_testFile"
+ GET_FILENAME_COMPONENT(VMIME_TEST_SRC_PATH "${VMIME_TEST_SRC_FILE}" PATH)
+ STRING(REPLACE "${CMAKE_SOURCE_DIR}" "" VMIME_TEST_SRC_PATH "${VMIME_TEST_SRC_PATH}")
+ GET_FILENAME_COMPONENT(VMIME_TEST_NAME "${VMIME_TEST_SRC_FILE}" NAME_WE)
+ SET(VMIME_TEST_NAME "${VMIME_TEST_SRC_PATH}/${VMIME_TEST_NAME}")
+ STRING(REPLACE "/" "_" VMIME_TEST_NAME "${VMIME_TEST_NAME}")
+ STRING(REPLACE "_tests_" "" VMIME_TEST_NAME "${VMIME_TEST_NAME}")
+
+ ADD_EXECUTABLE(
+ ${VMIME_TEST_NAME}
+ ${VMIME_TEST_SRC_FILE} ${CMAKE_SOURCE_DIR}/tests/testRunner.cpp ${CMAKE_SOURCE_DIR}/tests/testUtils.cpp
+ )
+
+ TARGET_LINK_LIBRARIES(
+ ${VMIME_TEST_NAME}
+ ${VMIME_LIBRARY_NAME}
+ ${CPPUNIT_LIBRARY}
+ )
+
+ ADD_DEPENDENCIES(
+ ${VMIME_TEST_NAME}
+ ${VMIME_LIBRARY_NAME}
+ )
+
+ ADD_TEST(
+ ${VMIME_TEST_NAME}
+ ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${VMIME_TEST_NAME}
+ )
+
+ ENDFOREACH()
+
+ # Build one file for all tests
ADD_EXECUTABLE(
"run-tests"
- ${VMIME_TESTS_SRC_FILES}
+ ${VMIME_TESTS_SRC_FILES} ${CMAKE_SOURCE_DIR}/tests/testRunner.cpp ${CMAKE_SOURCE_DIR}/tests/testUtils.cpp
)
- INCLUDE(cmake/FindCppUnit.cmake)
-
- INCLUDE_DIRECTORIES(${CPPUNIT_INCLUDE_DIR})
-
TARGET_LINK_LIBRARIES(
"run-tests"
${VMIME_LIBRARY_NAME}