# Correct RPATH usage on OS X set(CMAKE_MACOSX_RPATH TRUE) configure_file("${PROJECT_SOURCE_DIR}/tests/tests_config.h.in" "${PROJECT_BINARY_DIR}/tests/tests_config.h" ESCAPE_QUOTES @ONLY) include_directories(SYSTEM ${CMOCKA_INCLUDE_DIR}) include_directories(${PROJECT_BINARY_DIR}/tests/) function(ly_add_utest) cmake_parse_arguments(ADDTEST "" "NAME;WRAP" "SOURCES" ${ARGN}) set(TEST_NAME utest_${ADDTEST_NAME}) foreach(TEST_SOURCE ${ADDTEST_SOURCES}) list(APPEND TEST_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/${TEST_SOURCE}) endforeach() add_executable(${TEST_NAME} ${TEST_SOURCES} $) target_compile_definitions(${TEST_NAME} PRIVATE LIBYANG_BUILD) # Set common attributes of all tests set_target_properties(${TEST_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/tests") target_link_libraries(${TEST_NAME} ${CMOCKA_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${PCRE2_LIBRARIES} ${CMAKE_DL_LIBS}) if (NOT WIN32) target_link_libraries(${TEST_NAME} m) else() target_link_libraries(${TEST_NAME} ${COMPAT_WIN_LIBRARIES}) endif() if (NOT APPLE) if (ADDTEST_WRAP) set_target_properties(${TEST_NAME} PROPERTIES LINK_FLAGS "${ADDTEST_WRAP}") endif() endif() add_test(NAME ${TEST_NAME} COMMAND ${TEST_NAME}) set_property(TEST ${TEST_NAME} APPEND PROPERTY ENVIRONMENT "MALLOC_CHECK_=3") if(ENABLE_VALGRIND_TESTS) add_test(${TEST_NAME}_valgrind valgrind --leak-check=full --show-leak-kinds=all --suppressions=${PROJECT_SOURCE_DIR}/tests/ld.supp --error-exitcode=1 ${CMAKE_BINARY_DIR}/tests/${TEST_NAME}) endif() endfunction() if(ENABLE_TESTS) add_subdirectory(plugins) add_subdirectory(utests) if(NOT WIN32) add_subdirectory(style) add_subdirectory(fuzz) endif() add_subdirectory(yanglint) add_subdirectory(yangre) endif() if(ENABLE_PERF_TESTS) add_subdirectory(perf) endif() set(format_sources ${format_sources} PARENT_SCOPE)