aboutsummaryrefslogtreecommitdiff
path: root/example
diff options
context:
space:
mode:
authorAndreas Schneider <asn@cryptomilk.org>2018-09-27 13:46:27 +0200
committerAndreas Schneider <asn@cryptomilk.org>2018-09-27 14:34:45 +0200
commit8967b08ada542d5fb29dbe89056cb2f23f0aed64 (patch)
tree35be8cebc573c5ed64794de0c3b1b6b7f2b9e2ed /example
parent857f120477dab7d4609c8527a2973cb07f82c3f2 (diff)
downloadcmocka-8967b08ada542d5fb29dbe89056cb2f23f0aed64.tar.gz
cmocka-8967b08ada542d5fb29dbe89056cb2f23f0aed64.tar.xz
cmocka-8967b08ada542d5fb29dbe89056cb2f23f0aed64.zip
exmaples: Use add_cmocka_test and set environment for tests
Diffstat (limited to 'example')
-rw-r--r--example/CMakeLists.txt126
-rw-r--r--example/mock/uptime/CMakeLists.txt15
2 files changed, 54 insertions, 87 deletions
diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt
index 0be4b0b..8e80ee2 100644
--- a/example/CMakeLists.txt
+++ b/example/CMakeLists.txt
@@ -1,5 +1,28 @@
project(cmocka-examples C)
+function(ADD_CMOCKA_TEST_ENVIRONMENT _TARGET_NAME)
+ if (WIN32 OR CYGWIN OR MINGW)
+ file(TO_NATIVE_PATH "${cmocka-library_BINARY_DIR}" CMOCKA_DLL_PATH)
+
+ if (TARGET_SYSTEM_EMULATOR)
+ set(DLL_PATH_ENV "WINEPATH=${CMOCKA_DLL_PATH};$ENV{WINEPATH}")
+ else()
+ set(DLL_PATH_ENV "PATH=${CMOCKA_DLL_PATH};$ENV{PATH}")
+ endif()
+ #
+ # IMPORTANT NOTE: The set_tests_properties(), below, internally
+ # stores its name/value pairs with a semicolon delimiter.
+ # because of this we must protect the semicolons in the path
+ #
+ string(REPLACE ";" "\\;" DLL_PATH_ENV "${DLL_PATH_ENV}")
+
+ set_tests_properties(${_TARGET_NAME}
+ PROPERTIES
+ ENVIRONMENT
+ "${DLL_PATH_ENV}")
+ endif()
+endfunction()
+
set_source_files_properties(calculator.c
allocate_module.c
assert_module.c
@@ -8,91 +31,42 @@ set_source_files_properties(calculator.c
UNIT_TESTING=1)
-if (WIN32 OR CYGWIN OR MINGW)
- file(TO_NATIVE_PATH "${cmocka-library_BINARY_DIR}" CMOCKA_DLL_PATH)
- set(DLL_PATH_ENV "${CMOCKA_DLL_PATH};$ENV{PATH}")
-
- #
- # IMPORTANT NOTE: The set_tests_properties(), below, internally
- # stores its name/value pairs with a semicolon delimiter.
- # because of this we must protect the semicolons in the path
- #
- string(REPLACE ";" "\\;" DLL_PATH_ENV "${DLL_PATH_ENV}")
-endif (WIN32 OR CYGWIN OR MINGW)
-
-
### The most simple test
-add_executable(simple_test simple_test.c)
-target_link_libraries(simple_test ${CMOCKA_SHARED_LIBRARY})
-
-add_test(simple_test ${TARGET_SYSTEM_EMULATOR} ${CMAKE_CURRENT_BINARY_DIR}/simple_test)
-if (WIN32 OR CYGWIN OR MINGW)
- set_tests_properties(simple_test PROPERTIES ENVIRONMENT "PATH=${DLL_PATH_ENV}")
-endif (WIN32 OR CYGWIN OR MINGW)
-
-### Calulator test
-#TODO investigate dll jmp issue on MinGW
-if (NOT MINGW OR WITH_STATIC_LIB)
- add_executable(calculator_test calculator.c calculator_test.c)
- add_test(calculator_test ${TARGET_SYSTEM_EMULATOR} ${CMAKE_CURRENT_BINARY_DIR}/calculator_test)
- if (WIN32 OR CYGWIN)
- set_tests_properties(calculator_test PROPERTIES ENVIRONMENT "PATH=${DLL_PATH_ENV}")
- endif (WIN32 OR CYGWIN)
-
- if (MINGW)
- target_link_libraries(calculator_test ${CMOCKA_STATIC_LIBRARY})
- else (MINGW)
- target_link_libraries(calculator_test ${CMOCKA_SHARED_LIBRARY})
- endif (MINGW)
-
- if (WIN32 OR CYGWIN OR MINGW)
- set_tests_properties(calculator_test PROPERTIES ENVIRONMENT "PATH=${DLL_PATH_ENV}")
- endif (WIN32 OR CYGWIN OR MINGW)
-endif (NOT MINGW OR WITH_STATIC_LIB)
+add_cmocka_test(simple_test
+ SOURCES simple_test.c
+ COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS}
+ LINK_LIBRARIES ${CMOCKA_SHARED_LIBRARY})
+add_cmocka_test_environment(simple_test)
### Allocate module 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 ${TARGET_SYSTEM_EMULATOR} ${CMAKE_CURRENT_BINARY_DIR}/allocate_module_test)
-if (WIN32 OR CYGWIN OR MINGW)
- set_tests_properties(allocate_module_test PROPERTIES ENVIRONMENT "PATH=${DLL_PATH_ENV}")
-endif (WIN32 OR CYGWIN OR MINGW)
+add_cmocka_test(allocate_module_test
+ SOURCES allocate_module.c allocate_module_test.c
+ LINK_LIBRARIES ${CMOCKA_SHARED_LIBRARY})
+add_cmocka_test_environment(allocate_module_test)
-set_tests_properties(
- allocate_module_test
- PROPERTIES
- WILL_FAIL 1
-)
+set_tests_properties(allocate_module_test
+ PROPERTIES
+ WILL_FAIL 1)
### Assert macro test
-add_executable(assert_macro_test assert_macro.c assert_macro_test.c)
-target_link_libraries(assert_macro_test ${CMOCKA_SHARED_LIBRARY})
+add_cmocka_test(assert_macro_test
+ SOURCES assert_macro.c assert_macro_test.c
+ LINK_LIBRARIES ${CMOCKA_SHARED_LIBRARY})
+add_cmocka_test_environment(assert_macro_test)
-add_test(assert_macro_test ${TARGET_SYSTEM_EMULATOR} ${CMAKE_CURRENT_BINARY_DIR}/assert_macro_test)
-set_tests_properties(
- assert_macro_test
- PROPERTIES
- WILL_FAIL 1
-)
-if (WIN32 OR CYGWIN OR MINGW)
- set_tests_properties(assert_macro_test PROPERTIES ENVIRONMENT "PATH=${DLL_PATH_ENV}")
-endif (WIN32 OR CYGWIN OR MINGW)
+set_tests_properties(assert_macro_test
+ PROPERTIES
+ WILL_FAIL 1)
### Assert module 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 ${TARGET_SYSTEM_EMULATOR} ${CMAKE_CURRENT_BINARY_DIR}/assert_module_test)
-set_tests_properties(
- assert_module_test
- PROPERTIES
- WILL_FAIL 1
-)
-if (WIN32 OR CYGWIN OR MINGW)
- set_tests_properties(assert_module_test PROPERTIES ENVIRONMENT "PATH=${DLL_PATH_ENV}")
-endif (WIN32 OR CYGWIN OR MINGW)
+add_cmocka_test(assert_module_test
+ SOURCES assert_module.c assert_module_test.c
+ LINK_LIBRARIES ${CMOCKA_SHARED_LIBRARY})
+add_cmocka_test_environment(assert_module_test)
+
+set_tests_properties(assert_module_test
+ PROPERTIES
+ WILL_FAIL 1)
if (NOT WIN32)
add_subdirectory(mock)
diff --git a/example/mock/uptime/CMakeLists.txt b/example/mock/uptime/CMakeLists.txt
index c4d6480..2464559 100644
--- a/example/mock/uptime/CMakeLists.txt
+++ b/example/mock/uptime/CMakeLists.txt
@@ -1,9 +1,3 @@
-include_directories(
- ${CMAKE_BINARY_DIR}
- ${CMAKE_CURRENT_SOURCE_DIR}
- ${CMOCKA_PUBLIC_INCLUDE_DIRS}
-)
-
add_library(proc_uptime proc_uptime.c)
add_executable(uptime uptime.c)
@@ -15,13 +9,12 @@ set_property(TARGET
LINK_FLAGS
"${DEFAULT_LINK_FLAGS}")
-add_executable(test_uptime test_uptime.c)
-target_compile_options(test_uptime PRIVATE ${DEFAULT_C_COMPILE_FLAGS})
-target_link_libraries(test_uptime ${CMOCKA_SHARED_LIBRARY})
+add_cmocka_test(test_uptime
+ SOURCES test_uptime.c
+ COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS}
+ LINK_LIBRARIES ${CMOCKA_SHARED_LIBRARY})
set_property(TARGET
test_uptime
PROPERTY
LINK_FLAGS
"${DEFAULT_LINK_FLAGS} -Wl,--wrap=uptime")
-
-add_test(test_uptime ${TARGET_SYSTEM_EMULATOR} ${CMAKE_CURRENT_BINARY_DIR}/test_uptime)