diff --git a/cmake-modules/AddTestCMocka.cmake b/cmake-modules/AddTestCMocka.cmake deleted file mode 100644 index c941065578..0000000000 --- a/cmake-modules/AddTestCMocka.cmake +++ /dev/null @@ -1,148 +0,0 @@ -# -# Copyright (c) 2007 Daniel Gollub -# Copyright (c) 2007-2018 Andreas Schneider -# Copyright (c) 2018 Anderson Toshiyuki Sasaki -# -# Redistribution and use is allowed according to the terms of the BSD license. -# -# Modifed version from https://github.com/xbmc/libssh/blob/667fb5f9a9c96f210583dbfb11755c43250c5e55/cmake/Modules/AddCMockaTest.cmake -#.rst: -# AddTestCMocka -# ------------- -# -# This file provides a function to add a test -# -# Functions provided -# ------------------ -# -# :: -# -# add_cmocka_test(target_name -# SOURCES src1 src2 ... srcN -# [COMPILE_OPTIONS opt1 opt2 ... optN] -# [LINK_OPTIONS lopt1 lop2 .. loptN] -# [PRIVATE_ACCESS ON/OFF] -# [LINK_TARGETS target1 target2 .. targetN] -# ) -# -# ``target_name``: -# Required, expects the name of the test which will be used to define a target -# -# ``SOURCES``: -# Required, expects one or more source files names -# -# ``COMPILE_OPTIONS``: -# Optional, expects one or more options to be passed to the compiler -# -# ``LINK_OPTIONS``: -# Optional, expects one or more options to be passed to the linker -# -# ``PRIVATE_ACCESS``: -# Optional, when ON, tests are granted access to az_core private layer -# -# ``LINK_TARGETS``: -# Optional, expects one or more targets from the same project to be passed to cmake target linker -# -# -# Example: -# -# .. code-block:: cmake -# -# add_cmocka_test(my_test -# SOURCES my_test.c other_source.c -# COMPILE_OPTIONS -g -Wall -# LINK_OPTIONS -Wl,--enable-syscall-fixup -# PRIVATE_ACCESS ON -# LINK_TARGETS target1, target2 -# ) -# -# Where ``my_test`` is the name of the test, ``my_test.c`` and -# ``other_source.c`` are sources for the binary, ``-g -Wall`` are compiler -# options to be used, ``-Wl,--enable-syscall-fixup`` is an option passed to the linker, -# ``PRIVATE_ACCESS`` is ON to let tests access private layer from az_core and ``LINK_TAGETS``` -# list all the cmake tagets to link to -# - -find_package(cmocka CONFIG REQUIRED) - -enable_testing() -include(CTest) - -set(MATH_LIB_UNIX "") -if (UNIX) - set(MATH_LIB_UNIX "m") -endif() - -function(ADD_CMOCKA_TEST _TARGET_NAME) - - set(one_value_arguments - ) - - set(multi_value_arguments - SOURCES - COMPILE_OPTIONS - LINK_OPTIONS - PRIVATE_ACCESS - LINK_TARGETS - ) - - cmake_parse_arguments(_add_cmocka_test - "" - "${one_value_arguments}" - "${multi_value_arguments}" - ${ARGN} - ) - - if (NOT DEFINED _add_cmocka_test_SOURCES) - message(FATAL_ERROR "No sources provided for target ${_TARGET_NAME}") - endif() - - add_executable(${_TARGET_NAME} ${_add_cmocka_test_SOURCES}) - - # Suppress clobber warning for longjmp - if(CMAKE_C_COMPILER_ID MATCHES "GNU") - target_compile_options(${_TARGET_NAME} PRIVATE -Wno-clobbered) - endif() - - if (DEFINED _add_cmocka_test_COMPILE_OPTIONS) - target_compile_options(${_TARGET_NAME} - PRIVATE ${_add_cmocka_test_COMPILE_OPTIONS} - ) - endif() - - if(DEFINED ENV{VCPKG_ROOT} OR DEFINED ENV{VCPKG_INSTALLATION_ROOT}) - set(CMOCKA_LIB ${CMOCKA_LIBRARIES}) - else() - set(CMOCKA_LIB cmocka) - endif() - - if (DEFINED _add_cmocka_test_LINK_TARGETS) - # link to user defined - target_link_libraries(${_TARGET_NAME} - PRIVATE ${CMOCKA_LIB} ${_add_cmocka_test_LINK_TARGETS} ${MATH_LIB_UNIX} - ) - else() - # link against az_core by default - target_link_libraries(${_TARGET_NAME} - PRIVATE ${CMOCKA_LIB} az_core ${MATH_LIB_UNIX} - ) - endif() - - if (DEFINED _add_cmocka_test_LINK_OPTIONS) - set_target_properties(${_TARGET_NAME} - PROPERTIES LINK_FLAGS - ${_add_cmocka_test_LINK_OPTIONS} - ) - endif() - - target_include_directories(${_TARGET_NAME} PRIVATE ${CMOCKA_INCLUDE_DIR}) - - if (DEFINED _add_cmocka_test_PRIVATE_ACCESS) - target_include_directories(${_TARGET_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/sdk/src/azure/core/) - endif() - - add_test(${_TARGET_NAME} - ${TARGET_SYSTEM_EMULATOR} ${_TARGET_NAME} - ) - -endfunction (ADD_CMOCKA_TEST) diff --git a/sdk/tests/core/CMakeLists.txt b/sdk/tests/core/CMakeLists.txt index 637caf3feb..6fd28aeaa7 100644 --- a/sdk/tests/core/CMakeLists.txt +++ b/sdk/tests/core/CMakeLists.txt @@ -7,7 +7,7 @@ project (az_core_test LANGUAGES C) set(CMAKE_C_STANDARD 99) -include(AddTestCMocka) +include(AddCmockaFunctions) # -ld link option is only available for gcc if(UNIT_TESTING_MOCKS) @@ -18,7 +18,7 @@ endif() create_map_file(az_core_test.map) -add_cmocka_test(az_core_test SOURCES +create_cmocka_test(az_core_test SRC main.c test_az_context.c test_az_http.c @@ -28,8 +28,7 @@ add_cmocka_test(az_core_test SOURCES test_az_policy.c test_az_span.c test_az_url_encode.c - COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS} - LINK_OPTIONS ${WRAP_FUNCTIONS} + LINKER_ARGS ${WRAP_FUNCTIONS} # grant access to Private functions to test az_json_private PRIVATE_ACCESS ON LINK_TARGETS az_core ${PAL} az_nohttp) diff --git a/sdk/tests/iot/common/CMakeLists.txt b/sdk/tests/iot/common/CMakeLists.txt index 99fd305c9b..ad153e6af4 100644 --- a/sdk/tests/iot/common/CMakeLists.txt +++ b/sdk/tests/iot/common/CMakeLists.txt @@ -7,14 +7,13 @@ project (az_iot_common_test LANGUAGES C) set(CMAKE_C_STANDARD 99) -include(AddTestCMocka) +include(AddCmockaFunctions) create_map_file(az_iot_common_test.map) -add_cmocka_test(az_iot_common_test SOURCES +create_cmocka_test(az_iot_common_test SRC main.c test_az_iot_common.c - COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS} LINK_TARGETS az_iot_common az_core diff --git a/sdk/tests/iot/hub/CMakeLists.txt b/sdk/tests/iot/hub/CMakeLists.txt index 5b7f44f135..ad8d7f7245 100644 --- a/sdk/tests/iot/hub/CMakeLists.txt +++ b/sdk/tests/iot/hub/CMakeLists.txt @@ -7,11 +7,11 @@ project (az_iot_hub_test LANGUAGES C) set(CMAKE_C_STANDARD 99) -include(AddTestCMocka) +include(AddCmockaFunctions) create_map_file(az_iot_hub_test.map) -add_cmocka_test(az_iot_hub_test SOURCES +create_cmocka_test(az_iot_hub_test SRC main.c test_az_iot_hub_client_sas.c test_az_iot_hub_client_telemetry.c @@ -19,7 +19,6 @@ add_cmocka_test(az_iot_hub_test SOURCES test_az_iot_hub_client.c test_az_iot_hub_client_twin.c test_az_iot_hub_client_methods.c - COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS} LINK_TARGETS az_iot_common az_iot_hub diff --git a/sdk/tests/iot/provisioning/CMakeLists.txt b/sdk/tests/iot/provisioning/CMakeLists.txt index 1b78ce9f90..aac85a46d3 100644 --- a/sdk/tests/iot/provisioning/CMakeLists.txt +++ b/sdk/tests/iot/provisioning/CMakeLists.txt @@ -7,16 +7,15 @@ project (az_iot_provisioning_test LANGUAGES C) set(CMAKE_C_STANDARD 99) -include(AddTestCMocka) +include(AddCmockaFunctions) create_map_file(az_iot_provisioning_test.map) -add_cmocka_test(az_iot_provisioning_test SOURCES +create_cmocka_test(az_iot_provisioning_test SRC main.c test_az_iot_provisioning_client.c test_az_iot_provisioning_client_sas.c test_az_iot_provisioning_client_parser.c - COMPILE_OPTIONS ${DEFAULT_C_COMPILE_FLAGS} LINK_TARGETS az_iot_common az_iot_provisioning