1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
project(cmocka-examples C)
include_directories(
${CMAKE_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${CMOCKA_PUBLIC_INCLUDE_DIRS}
)
set_source_files_properties(
calculator.c
allocate_module.c
assert_module.c
PROPERTIES
COMPILE_DEFINITIONS UNIT_TESTING=1)
### The most simple test
add_executable(simple_test simple_test.c)
target_link_libraries(simple_test ${CMOCKA_SHARED_LIBRARY})
add_test(simple_test ${CMAKE_CURRENT_BINARY_DIR}/simple_test)
add_executable(calculator_test calculator.c calculator_test.c)
target_link_libraries(calculator_test ${CMOCKA_SHARED_LIBRARY})
add_test(calculator_test ${CMAKE_CURRENT_BINARY_DIR}/calculator_test)
add_executable(allocate_module_test allocate_module.c allocate_module_test.c)
target_link_libraries(allocate_module_test ${CMOCKA_SHARED_LIBRARY})
# This is a test that should detect leaks and overflows and will fail for that
add_test(allocate_module_test ${CMAKE_CURRENT_BINARY_DIR}/allocate_module_test)
set_tests_properties(
allocate_module_test
PROPERTIES
PASS_REGULAR_EXPRESSION
"\\[ FAILED \\] 3 test"
)
add_executable(assert_macro_test assert_macro.c assert_macro_test.c)
target_link_libraries(assert_macro_test ${CMOCKA_SHARED_LIBRARY})
add_test(assert_macro_test ${CMAKE_CURRENT_BINARY_DIR}/assert_macro_test)
set_tests_properties(
assert_macro_test
PROPERTIES
PASS_REGULAR_EXPRESSION
"\\[ FAILED \\] 2 test"
)
add_executable(assert_module_test assert_module.c assert_module_test.c)
target_link_libraries(assert_module_test ${CMOCKA_SHARED_LIBRARY})
add_test(assert_module_test ${CMAKE_CURRENT_BINARY_DIR}/assert_module_test)
set_tests_properties(
assert_module_test
PROPERTIES
PASS_REGULAR_EXPRESSION
"\\[ FAILED \\] 2 test"
)
add_executable(customer_database_test customer_database.c customer_database_test.c)
target_link_libraries(customer_database_test ${CMOCKA_SHARED_LIBRARY})
add_test(customer_database_test ${CMAKE_CURRENT_BINARY_DIR}/customer_database_test)
add_executable(key_value_test key_value.c key_value_test.c)
target_link_libraries(key_value_test ${CMOCKA_SHARED_LIBRARY})
add_test(key_value_test ${CMAKE_CURRENT_BINARY_DIR}/key_value_test)
add_executable(product_database_test product_database.c product_database_test.c)
target_link_libraries(product_database_test ${CMOCKA_SHARED_LIBRARY})
add_test(product_database_test ${CMAKE_CURRENT_BINARY_DIR}/product_database_test)
set_tests_properties(
product_database_test
PROPERTIES
PASS_REGULAR_EXPRESSION
"\\[ FAILED \\] 2 test"
)
# TODO Execute "$CMAKE_LINKER --help" and check for --wrap
if (${CMAKE_C_COMPILER_ID} MATCHES "(GNU|Clang)" AND NOT APPLE)
add_subdirectory(chef_wrap)
endif()
|