diff CMakeLists.txt @ 76:8136057988bc

Fixes to automatic report generating system. A lot of new unittests.
author Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
date Sat, 16 Feb 2013 15:32:20 +0100
parents c9447697609f
children a827f3687c4a
line wrap: on
line diff
--- a/CMakeLists.txt	Sat Feb 16 15:30:12 2013 +0100
+++ b/CMakeLists.txt	Sat Feb 16 15:32:20 2013 +0100
@@ -9,11 +9,31 @@
   SET(COVERAGE_FLAGS "--coverage")
 ENDIF()
 
+SET(ALL_TESTS)
+
 MACRO(NEW_TEST file)
   STRING(REPLACE "/" "_" TARGET ${file})
   ADD_EXECUTABLE(${TARGET} ${file}.cpp ${TEST_SOURCES})
   ADD_TEST(${TARGET} ${TARGET})
-  TARGET_LINK_LIBRARIES(${TARGET} ${QT_LIBRARIES} ${Boost_LIBRARIES} ${COVERAGE_FLAGS})
+  TARGET_LINK_LIBRARIES(${TARGET} ${QT_LIBRARIES} ${Boost_LIBRARIES}
+  ${COVERAGE_FLAGS})
+
+  ADD_CUSTOM_COMMAND(OUTPUT "BUILD_${TARGET}"
+					     COMMAND "${CMAKE_COMMAND}"
+                                       --build ${CMAKE_BINARY_DIR}
+					     --target ${TARGET}
+					     COMMENT "Building test ${TARGET}"
+  )
+  SET(BUILD_ALL_TESTS ${BUILD_ALL_TESTS} BUILD_${TARGET})
+
+  SET(ALL_TESTS ${ALL_TESTS} RUN_${TARGET})
+  ADD_CUSTOM_TARGET(RUN_${TARGET} ${CMAKE_BINARY_DIR}/${TARGET} --log_level=nothing --report_level=no
+ 				  DEPENDS zero_counters_test_with_base
+  BUILD_${TARGET}
+					     COMMENT "Running test ${TARGET}"
+
+)
+
 ENDMACRO()
 
 SET(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/CMake_Modules/")
@@ -64,7 +84,6 @@
 	HuffmanString.cpp
 	MemoryDBLink.cpp
 	SqliteDBLink.cpp
-	UniqueString.cpp
 )
 
 SET(CLASS_HEADERS
@@ -98,6 +117,7 @@
 SET(TEST_SOURCES
 	${CLASS_SOURCES}
 	${MOC_SOURCES}
+	TestDatabase.cpp
 	TestFramework.cpp
 )
 
@@ -150,6 +170,8 @@
 NEW_TEST(Exception/TestValueExistsException)
 NEW_TEST(Exception/TestPermissionException)
 NEW_TEST(TestBitArray)
+NEW_TEST(TestSQLGenerator)
+NEW_TEST(TestFileDBLink)
 NEW_TEST(TestBitDecoder)
 NEW_TEST(TestDBCache)
 NEW_TEST(TestEditDistance)
@@ -159,35 +181,68 @@
 NEW_TEST(TestMemoryDBLink)
 NEW_TEST(TestSqliteDBLink)
 
+
 #ADD_PRECOMPILED_HEADER(TestEditDistance TestFramework.hpp)
 
+ADD_CUSTOM_COMMAND(OUTPUT build_tests COMMAND "${CMAKE_COMMAND}"
+--build ${CMAKE_BINARY_DIR} --target all)
 
-ADD_CUSTOM_COMMAND(OUTPUT coverage.info
-					  COMMAND lcov --no-external --capture
+ADD_CUSTOM_TARGET(zero_counters_test_with_base
+	lcov -q -z -d ${CMAKE_CURRENT_BINARY_DIR}
+	DEPENDS ${BUILD_ALL_TESTS}
+)
+
+ADD_CUSTOM_COMMAND(OUTPUT test_with_base COMMAND
+true
+DEPENDS zero_counters_test_with_base ${ALL_TESTS}
+					  COMMENT "All test have run"
+)
+
+ADD_CUSTOM_COMMAND(OUTPUT coverage_base_raw.info
+					  COMMAND lcov --no-external
+					  --capture --initial
 					  --directory ${CMAKE_CURRENT_BINARY_DIR}
 					  --base-directory ${CMAKE_CURRENT_SOURCE_DIR}
-					  --output-file coverage.info
+					  --output-file coverage_base_raw.info
+)
+
+ADD_CUSTOM_COMMAND(OUTPUT coverage_test.info
+					  COMMAND lcov -q --no-external --capture
+					  --directory ${CMAKE_CURRENT_BINARY_DIR}
+					  --base-directory ${CMAKE_CURRENT_SOURCE_DIR}
+					  --output-file
+					  coverage_test.info
+					  DEPENDS test_with_base
 )
 
 ADD_CUSTOM_COMMAND(OUTPUT coverage.preprocessed2
-					  COMMAND lcov -r
-					  coverage.info 'moc_*'
+					  COMMAND lcov -q -r
+					  coverage_test.info 'moc_*'
 					  --output-file coverage.preprocessed2
-					  DEPENDS coverage.info
+					  DEPENDS coverage_test.info
+					  COMMENT "Removing \"moc_\"-files" 
 )
 
 
 ADD_CUSTOM_COMMAND(OUTPUT coverage.preprocessed
-					  COMMAND lcov -r
+					  COMMAND lcov -q -r
 					  coverage.preprocessed2 'Test*'
 					  --output-file coverage.preprocessed
-					  DEPENDS coverage.preprocessed2
+					  DEPENDS
+					  coverage.preprocessed2
+					  COMMENT "Removing \"Test\"-files"
 )
 
 
-ADD_CUSTOM_TARGET(coverage_presentation genhtml
+ADD_CUSTOM_TARGET(coverage_presentation genhtml -q
 				    ${CMAKE_CURRENT_BINARY_DIR}/coverage.preprocessed
 				    --output-directory
 				    ${CMAKE_CURRENT_BINARY_DIR}/coverage_presentation 
-				    DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/coverage.preprocessed
+				    DEPENDS
+				    ${CMAKE_CURRENT_BINARY_DIR}/coverage.preprocessed
 )
+
+ADD_CUSTOM_TARGET(coverage_base
+				    DEPENDS
+				     ${CMAKE_CURRENT_BINARY_DIR}/coverage_base.info
+)