diff options
author | Andreas Schneider <asn@cryptomilk.org> | 2018-09-27 13:46:27 +0200 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2018-09-27 14:34:45 +0200 |
commit | 8967b08ada542d5fb29dbe89056cb2f23f0aed64 (patch) | |
tree | 35be8cebc573c5ed64794de0c3b1b6b7f2b9e2ed /example | |
parent | 857f120477dab7d4609c8527a2973cb07f82c3f2 (diff) | |
download | cmocka-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.txt | 126 | ||||
-rw-r--r-- | example/mock/uptime/CMakeLists.txt | 15 |
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) |