author | Tero Marttila <terom@fixme.fi> |
Thu, 28 May 2009 01:17:36 +0300 | |
branch | new-lib-errors |
changeset 219 | cefec18b8268 |
parent 191 | 031582f7b61b |
permissions | -rw-r--r-- |
191
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
1 |
find_package (Valgrind) |
186
33ef336dbb4b
rework CMake scripts, particularly re make: Nothing to be done for `test'., integrate lcov now
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
2 |
find_package (LCOV) |
33ef336dbb4b
rework CMake scripts, particularly re make: Nothing to be done for `test'., integrate lcov now
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
3 |
|
191
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
4 |
# static flags for test harness |
187
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
5 |
set (TEST_FLAGS --debug) |
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
6 |
|
191
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
7 |
# valgrind stuff |
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
8 |
if (Valgrind_FOUND) |
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
9 |
# suppressions file |
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
10 |
set (VALGRIND_SUPPRESSIONS ${CMAKE_CURRENT_SOURCE_DIR}/valgrind-suppressions) |
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
11 |
|
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
12 |
# static flags |
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
13 |
set (VALGRIND_FLAGS --leak-check=yes --num-callers=30 --suppressions=${VALGRIND_SUPPRESSIONS}) |
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
14 |
|
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
15 |
# command |
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
16 |
set (TEST_COMMAND ${Valgrind_EXECUTABLE}) |
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
17 |
set (TEST_ARGS ${VALGRIND_FLAGS} ${TEST_EXECUTABLE} ${TEST_FLAGS}) |
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
18 |
|
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
19 |
else (Valgrind_FOUND) |
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
20 |
# plain command |
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
21 |
set (TEST_COMMAND ${TEST_EXECUTABLE}) |
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
22 |
set (TEST_ARGS ${TEST_FLAGS}) |
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
23 |
|
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
24 |
endif (Valgrind_FOUND) |
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
25 |
|
187
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
26 |
# add LCOV coverage stuff |
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
27 |
if (LCOV_FOUND) |
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
28 |
# static flags |
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
29 |
set (LCOV_FLAGS ) |
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
30 |
set (LCOV_GENHTML_FLAGS ) |
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
31 |
|
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
32 |
# path to the file generated by `lcov --capture` |
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
33 |
set (LCOV_CAPTURE_PATH ${CMAKE_CURRENT_BINARY_DIR}/lcov-capture-info) |
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
34 |
|
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
35 |
message (STATUS "test object files are located in ${TEST_OBJECT_DIR}") |
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
36 |
|
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
37 |
# unless coverage is disabled |
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
38 |
if (ENABLE_TEST_COVERAGE) |
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
39 |
# create the test target with lcov instrumentation |
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
40 |
add_custom_target (test |
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
41 |
COMMAND ${CMAKE_COMMAND} -DTEST_OBJECT_DIR="${TEST_OBJECT_DIR}" -P "${CMAKE_CURRENT_SOURCE_DIR}/CleanProfileData.cmake" |
191
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
42 |
COMMAND ${TEST_COMMAND} ${TEST_ARGS} |
187
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
43 |
COMMAND ${LCOV_EXECUTABLE} ${LCOV_FLAGS} --directory ${TEST_OBJECT_DIR} --capture --output-file ${LCOV_CAPTURE_PATH} |
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
44 |
COMMAND ${LCOV_GENHTML_EXECUTABLE} ${LCOV_GENHTML_FLAGS} --output-directory ${CMAKE_CURRENT_BINARY_DIR} ${LCOV_CAPTURE_PATH} |
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
45 |
) |
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
46 |
|
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
47 |
set (TEST_TARGET_DEFINED TRUE) |
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
48 |
endif (ENABLE_TEST_COVERAGE) |
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
49 |
endif (LCOV_FOUND) |
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
50 |
|
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
51 |
if (NOT TEST_TARGET_DEFINED) |
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
52 |
# add default `test` target |
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
53 |
add_custom_target (test |
191
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
54 |
COMMAND ${TEST_COMMAND} ${TEST_ARGS} |
187
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
55 |
) |
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
56 |
|
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
57 |
set (TEST_TARGET_DEFINED TRUE) |
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
58 |
|
5d100c79521a
fix CMake TEST_OBJECT_PATH, ENABLE_TEST_COVERAGE test-target and cleanup of .gcda's
Tero Marttila <terom@fixme.fi>
parents:
186
diff
changeset
|
59 |
endif (NOT TEST_TARGET_DEFINED) |
186
33ef336dbb4b
rework CMake scripts, particularly re make: Nothing to be done for `test'., integrate lcov now
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
60 |
|
33ef336dbb4b
rework CMake scripts, particularly re make: Nothing to be done for `test'., integrate lcov now
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
61 |
# add utility targets to run the test_harness executable |
33ef336dbb4b
rework CMake scripts, particularly re make: Nothing to be done for `test'., integrate lcov now
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
62 |
add_custom_target (test_list |
191
031582f7b61b
add support for valgrind to test, and update old suppressions file
Tero Marttila <terom@fixme.fi>
parents:
187
diff
changeset
|
63 |
COMMAND ${TEST_EXECUTABLE} --list |
186
33ef336dbb4b
rework CMake scripts, particularly re make: Nothing to be done for `test'., integrate lcov now
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
64 |
) |
33ef336dbb4b
rework CMake scripts, particularly re make: Nothing to be done for `test'., integrate lcov now
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
65 |
|
33ef336dbb4b
rework CMake scripts, particularly re make: Nothing to be done for `test'., integrate lcov now
Tero Marttila <terom@fixme.fi>
parents:
diff
changeset
|
66 |