mirror of
https://github.com/eclipse/wakaama.git
synced 2025-05-08 23:31:37 +08:00
testing: Add test executables for different configurations
The same tests are compiled with different defines to make sure that combinations of different configurations work properly.
This commit is contained in:
parent
dd586168cf
commit
2df38062d0
@ -15,3 +15,13 @@ with section("format"):
|
||||
with section("markup"):
|
||||
# What character to use for bulleted lists
|
||||
bullet_char = '-'
|
||||
|
||||
additional_commands = {
|
||||
"add_test_variant": {
|
||||
"kwargs": {
|
||||
"TARGET_NAME": '*',
|
||||
"SOURCE_FILES": '*',
|
||||
"COMPILE_DEFINITIONS": '*',
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,9 +3,9 @@ cmake_minimum_required(VERSION 3.13)
|
||||
project(lwm2munittests C)
|
||||
|
||||
include(../wakaama.cmake)
|
||||
include(tests.cmake)
|
||||
|
||||
add_executable(
|
||||
lwm2munittests
|
||||
set(TEST_SOURCES
|
||||
block1tests.c
|
||||
block2tests.c
|
||||
cbor_tests.c
|
||||
@ -22,30 +22,76 @@ add_executable(
|
||||
uritests.c
|
||||
)
|
||||
|
||||
include(FindPkgConfig)
|
||||
pkg_search_module(CUNIT REQUIRED IMPORTED_TARGET cunit)
|
||||
target_link_libraries(lwm2munittests PkgConfig::CUNIT)
|
||||
|
||||
target_compile_definitions(
|
||||
lwm2munittests PRIVATE LWM2M_CLIENT_MODE LWM2M_SERVER_MODE LWM2M_SUPPORT_TLV LWM2M_SUPPORT_JSON
|
||||
LWM2M_SUPPORT_SENML_CBOR
|
||||
add_test_variant(
|
||||
TARGET_NAME lwm2munittests
|
||||
SOURCE_FILES ${TEST_SOURCES}
|
||||
COMPILE_DEFINITIONS LWM2M_CLIENT_MODE
|
||||
)
|
||||
|
||||
# Our tests are designed for POSIX systems
|
||||
target_compile_definitions(lwm2munittests PRIVATE _POSIX_C_SOURCE=200809)
|
||||
add_test_variant(
|
||||
TARGET_NAME lwm2munittests_client_lwm2m_1_0
|
||||
SOURCE_FILES ${TEST_SOURCES}
|
||||
COMPILE_DEFINITIONS LWM2M_CLIENT_MODE LWM2M_VERSION_1_0
|
||||
)
|
||||
|
||||
target_sources_wakaama(lwm2munittests)
|
||||
target_sources_shared(lwm2munittests)
|
||||
add_test_variant(
|
||||
TARGET_NAME lwm2munittests_client_bootstrap
|
||||
SOURCE_FILES ${TEST_SOURCES}
|
||||
COMPILE_DEFINITIONS LWM2M_CLIENT_MODE LWM2M_BOOTSTRAP
|
||||
)
|
||||
|
||||
if(SANITIZER)
|
||||
target_compile_options(lwm2munittests PRIVATE -fsanitize=${SANITIZER} -fno-sanitize-recover=all)
|
||||
target_link_options(lwm2munittests PRIVATE -fsanitize=${SANITIZER} -fno-sanitize-recover=all)
|
||||
endif()
|
||||
add_test_variant(
|
||||
TARGET_NAME lwm2munittests_server
|
||||
SOURCE_FILES ${TEST_SOURCES}
|
||||
COMPILE_DEFINITIONS LWM2M_SERVER_MODE LWM2M_WITH_LOGS
|
||||
)
|
||||
|
||||
if(COVERAGE)
|
||||
target_compile_options(lwm2munittests PRIVATE --coverage)
|
||||
target_link_options(lwm2munittests PRIVATE --coverage)
|
||||
endif()
|
||||
add_test_variant(
|
||||
TARGET_NAME lwm2munittests_server_formats
|
||||
SOURCE_FILES ${TEST_SOURCES}
|
||||
COMPILE_DEFINITIONS LWM2M_SERVER_MODE LWM2M_OLD_CONTENT_FORMAT_SUPPORT LWM2M_SUPPORT_SENML_JSON
|
||||
)
|
||||
|
||||
# Add our unit tests to the "test" target
|
||||
add_test(NAME lwm2munittests_test COMMAND lwm2munittests)
|
||||
add_test_variant(
|
||||
TARGET_NAME lwm2munittests_bootstrap_server
|
||||
SOURCE_FILES ${TEST_SOURCES}
|
||||
COMPILE_DEFINITIONS LWM2M_BOOTSTRAP_SERVER_MODE
|
||||
)
|
||||
|
||||
add_test_variant(
|
||||
TARGET_NAME lwm2munittests_server_and_bootstrap_server
|
||||
SOURCE_FILES ${TEST_SOURCES}
|
||||
COMPILE_DEFINITIONS LWM2M_SERVER_MODE LWM2M_BOOTSTRAP_SERVER_MODE
|
||||
)
|
||||
|
||||
add_test_variant(
|
||||
TARGET_NAME lwm2munittests_server_blocksize_16
|
||||
SOURCE_FILES ${TEST_SOURCES}
|
||||
COMPILE_DEFINITIONS LWM2M_CLIENT_MODE COAP_DEFAULT_BLOCK_SIZE=16
|
||||
)
|
||||
|
||||
add_test_variant(
|
||||
TARGET_NAME lwm2munittests_server_blocksize_64
|
||||
SOURCE_FILES ${TEST_SOURCES}
|
||||
COMPILE_DEFINITIONS LWM2M_SERVER_MODE COAP_DEFAULT_BLOCK_SIZE=64
|
||||
)
|
||||
|
||||
add_test_variant(
|
||||
TARGET_NAME lwm2munittests_server_blocksize_1024
|
||||
SOURCE_FILES ${TEST_SOURCES}
|
||||
COMPILE_DEFINITIONS LWM2M_SERVER_MODE COAP_DEFAULT_BLOCK_SIZE=1024
|
||||
)
|
||||
|
||||
add_test_variant(
|
||||
TARGET_NAME lwm2munittests_client_server_bootstrap_all_formats
|
||||
SOURCE_FILES ${TEST_SOURCES}
|
||||
COMPILE_DEFINITIONS
|
||||
LWM2M_CLIENT_MODE
|
||||
LWM2M_SERVER_MODE
|
||||
LWM2M_BOOTSTRAP_SERVER_MODE
|
||||
LWM2M_SERVER_MODE
|
||||
LWM2M_WITH_LOGS
|
||||
LWM2M_OLD_CONTENT_FORMAT_SUPPORT
|
||||
LWM2M_SUPPORT_SENML_JSON
|
||||
COAP_DEFAULT_BLOCK_SIZE=32
|
||||
)
|
||||
|
45
tests/tests.cmake
Normal file
45
tests/tests.cmake
Normal file
@ -0,0 +1,45 @@
|
||||
# Run the unit tests with different configurations (defines)
|
||||
# ~~~
|
||||
# TARGET_NAME: The name of the test executable target
|
||||
# SOURCE_FILES: Source files used for the test
|
||||
# COMPILE_DEFINITIONS: Defines set for this test variant
|
||||
function(add_test_variant)
|
||||
set(oneValueArgs TARGET_NAME)
|
||||
set(multiValueArgs SOURCE_FILES COMPILE_DEFINITIONS)
|
||||
cmake_parse_arguments(ADD_TEST_VARIANT_ARG "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
|
||||
add_executable(${ADD_TEST_VARIANT_ARG_TARGET_NAME})
|
||||
target_sources(${ADD_TEST_VARIANT_ARG_TARGET_NAME} PRIVATE ${ADD_TEST_VARIANT_ARG_SOURCE_FILES})
|
||||
|
||||
# link CUnit
|
||||
include(FindPkgConfig)
|
||||
pkg_search_module(CUNIT REQUIRED IMPORTED_TARGET cunit)
|
||||
target_link_libraries(${ADD_TEST_VARIANT_ARG_TARGET_NAME} PkgConfig::CUNIT)
|
||||
|
||||
# Currently we require that TLV and JSON is available in all tests
|
||||
target_compile_definitions(${ADD_TEST_VARIANT_ARG_TARGET_NAME} PRIVATE LWM2M_SUPPORT_TLV LWM2M_SUPPORT_JSON)
|
||||
target_compile_definitions(${ADD_TEST_VARIANT_ARG_TARGET_NAME} PRIVATE ${ADD_TEST_VARIANT_ARG_COMPILE_DEFINITIONS})
|
||||
|
||||
# Our tests are designed for POSIX systems
|
||||
target_compile_definitions(${ADD_TEST_VARIANT_ARG_TARGET_NAME} PRIVATE _POSIX_C_SOURCE=200809)
|
||||
|
||||
target_sources_wakaama(${ADD_TEST_VARIANT_ARG_TARGET_NAME})
|
||||
target_sources_shared(${ADD_TEST_VARIANT_ARG_TARGET_NAME})
|
||||
|
||||
if(SANITIZER)
|
||||
target_compile_options(
|
||||
${ADD_TEST_VARIANT_ARG_TARGET_NAME} PRIVATE -fsanitize=${SANITIZER} -fno-sanitize-recover=all
|
||||
)
|
||||
target_link_options(
|
||||
${ADD_TEST_VARIANT_ARG_TARGET_NAME} PRIVATE -fsanitize=${SANITIZER} -fno-sanitize-recover=all
|
||||
)
|
||||
endif()
|
||||
|
||||
if(COVERAGE)
|
||||
target_compile_options(${ADD_TEST_VARIANT_ARG_TARGET_NAME} PRIVATE --coverage)
|
||||
target_link_options(${ADD_TEST_VARIANT_ARG_TARGET_NAME} PRIVATE --coverage)
|
||||
endif()
|
||||
|
||||
# Add our unit tests to the "test" target
|
||||
add_test(NAME ${ADD_TEST_VARIANT_ARG_TARGET_NAME}_test COMMAND ${ADD_TEST_VARIANT_ARG_TARGET_NAME})
|
||||
endfunction()
|
@ -153,7 +153,7 @@ function run_build() {
|
||||
}
|
||||
|
||||
function run_tests() {
|
||||
build-wakaama/tests/lwm2munittests
|
||||
${OPT_WRAPPER_CMD} cmake --build build-wakaama --target test
|
||||
|
||||
mkdir -p "${REPO_ROOT_DIR}/build-wakaama/coverage"
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user