uhd/host/tests/CMakeLists.txt
Brent Stapleton 431deb855b uhd: mpm: update all license header w/ "-or-later"
Updating all SPDX license identifiers to include "-or-later"
2019-03-08 00:43:07 +01:00

200 lines
6.7 KiB
CMake

# Copyright 2010-2015 Ettus Research LLC
# Copyright 2018 Ettus Research, a National Instruments Company
#
# SPDX-License-Identifier: GPL-3.0-or-later
#
########################################################################
# unit test support
########################################################################
include(UHDUnitTest)
########################################################################
# build test common
########################################################################
set(test_common_SOURCEDIR ${CMAKE_CURRENT_SOURCE_DIR}/common)
add_subdirectory(common)
link_directories(${test_common_SOURCEDIR})
########################################################################
# unit test suite
########################################################################
set(test_sources
addr_test.cpp
buffer_test.cpp
byteswap_test.cpp
cast_test.cpp
cal_container_test.cpp
chdr_test.cpp
constrained_device_args_test.cpp
convert_test.cpp
dict_test.cpp
eeprom_utils_test.cpp
error_test.cpp
fp_compare_delta_test.cpp
fp_compare_epsilon_test.cpp
gain_group_test.cpp
log_test.cpp
math_test.cpp
narrow_cast_test.cpp
property_test.cpp
ranges_test.cpp
sid_t_test.cpp
sensors_test.cpp
soft_reg_test.cpp
sph_recv_test.cpp
sph_send_test.cpp
subdev_spec_test.cpp
time_spec_test.cpp
tasks_test.cpp
vrt_test.cpp
expert_test.cpp
fe_conn_test.cpp
)
set(benchmark_sources
packet_handler_benchmark.cpp
)
#turn each test cpp file into an executable with an int main() function
add_definitions(-DBOOST_TEST_DYN_LINK -DBOOST_TEST_MAIN)
if(ENABLE_RFNOC)
list(APPEND test_sources
block_id_test.cpp
blockdef_test.cpp
device3_test.cpp
graph_search_test.cpp
node_connect_test.cpp
rate_node_test.cpp
stream_sig_test.cpp
tick_node_test.cpp
)
endif(ENABLE_RFNOC)
if(ENABLE_C_API)
list(APPEND test_sources
eeprom_c_test.c
error_c_test.cpp
ranges_c_test.c
sensors_c_test.c
string_vector_c_test.c
subdev_spec_c_test.c
)
endif(ENABLE_C_API)
include_directories("${CMAKE_SOURCE_DIR}/lib/include")
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/common")
#for each source: build an executable, register it as a test
foreach(test_source ${test_sources})
get_filename_component(test_name ${test_source} NAME_WE)
add_executable(${test_name} ${test_source})
target_link_libraries(${test_name} uhd uhd_test ${Boost_LIBRARIES})
UHD_ADD_TEST(${test_name} ${test_name})
UHD_INSTALL(TARGETS ${test_name} RUNTIME DESTINATION ${PKG_LIB_DIR}/tests COMPONENT tests)
endforeach(test_source)
#for benchmarks, build executable but do not register
foreach(benchmark_source ${benchmark_sources})
get_filename_component(benchmark_name ${benchmark_source} NAME_WE)
add_executable(${benchmark_name} ${benchmark_source})
target_link_libraries(${benchmark_name} uhd uhd_test ${Boost_LIBRARIES})
UHD_INSTALL(TARGETS ${benchmark_name} RUNTIME DESTINATION ${PKG_LIB_DIR}/tests COMPONENT tests)
endforeach(benchmark_source)
# Other tests that don't directly link with libuhd: (TODO find a nicer way to do this)
if(ENABLE_DPDK)
include_directories(${CMAKE_BINARY_DIR}/lib/transport/)
include_directories(${CMAKE_SOURCE_DIR}/lib/transport/)
find_package(DPDK)
include_directories(${DPDK_INCLUDE_DIR})
add_executable(dpdk_test
dpdk_test.cpp
${CMAKE_SOURCE_DIR}/lib/utils/config_parser.cpp
${CMAKE_SOURCE_DIR}/lib/utils/paths.cpp
${CMAKE_SOURCE_DIR}/lib/utils/pathslib.cpp
${CMAKE_SOURCE_DIR}/lib/utils/prefs.cpp
${CMAKE_SOURCE_DIR}/lib/transport/dpdk_zero_copy.cpp
)
target_link_libraries(dpdk_test uhd ${Boost_LIBRARIES} ${DPDK_LIBRARIES})
# For the DPDK test, don't automatically run (requires specific config)
UHD_INSTALL(TARGETS dpdk_test RUNTIME DESTINATION ${PKG_LIB_DIR}/tests COMPONENT tests)
ENDIF(ENABLE_DPDK)
include_directories(${CMAKE_BINARY_DIR}/lib/rfnoc/nocscript/)
include_directories(${CMAKE_SOURCE_DIR}/lib/rfnoc/nocscript/)
add_executable(nocscript_expr_test
nocscript_expr_test.cpp
${CMAKE_SOURCE_DIR}/lib/rfnoc/nocscript/expression.cpp
)
target_link_libraries(nocscript_expr_test uhd ${Boost_LIBRARIES})
UHD_ADD_TEST(nocscript_expr_test nocscript_expr_test)
UHD_INSTALL(TARGETS nocscript_expr_test RUNTIME DESTINATION ${PKG_LIB_DIR}/tests COMPONENT tests)
add_executable(nocscript_ftable_test
nocscript_ftable_test.cpp
${CMAKE_SOURCE_DIR}/lib/rfnoc/nocscript/function_table.cpp
${CMAKE_SOURCE_DIR}/lib/rfnoc/nocscript/expression.cpp
)
target_link_libraries(nocscript_ftable_test uhd ${Boost_LIBRARIES})
UHD_ADD_TEST(nocscript_ftable_test nocscript_ftable_test)
UHD_INSTALL(TARGETS nocscript_ftable_test RUNTIME DESTINATION ${PKG_LIB_DIR}/tests COMPONENT tests)
add_executable(nocscript_parser_test
nocscript_parser_test.cpp
${CMAKE_SOURCE_DIR}/lib/rfnoc/nocscript/parser.cpp
${CMAKE_SOURCE_DIR}/lib/rfnoc/nocscript/function_table.cpp
${CMAKE_SOURCE_DIR}/lib/rfnoc/nocscript/expression.cpp
)
target_link_libraries(nocscript_parser_test uhd ${Boost_LIBRARIES})
UHD_ADD_TEST(nocscript_parser_test nocscript_parser_test)
UHD_INSTALL(TARGETS nocscript_parser_test RUNTIME DESTINATION ${PKG_LIB_DIR}/tests COMPONENT tests)
add_executable(config_parser_test
config_parser_test.cpp
${CMAKE_SOURCE_DIR}/lib/utils/config_parser.cpp
)
target_link_libraries(config_parser_test uhd ${Boost_LIBRARIES})
UHD_ADD_TEST(config_parser_test config_parser_test)
UHD_INSTALL(TARGETS
config_parser_test
RUNTIME
DESTINATION ${PKG_LIB_DIR}/tests
COMPONENT tests
)
add_executable(paths_test
paths_test.cpp
${CMAKE_SOURCE_DIR}/lib/utils/pathslib.cpp
)
# Careful: This is to satisfy the out-of-library build of paths.cpp. This is
# duplicate code from lib/utils/CMakeLists.txt, and it's been simplified.
set(UHD_LIB_DIR "lib")
file(TO_NATIVE_PATH "${CMAKE_INSTALL_PREFIX}" UHD_PKG_PATH)
string(REPLACE "\\" "\\\\" UHD_PKG_PATH "${UHD_PKG_PATH}")
set_source_files_properties(
${CMAKE_SOURCE_DIR}/lib/utils/paths.cpp
PROPERTIES COMPILE_DEFINITIONS
"UHD_PKG_PATH=\"${UHD_PKG_PATH}\";UHD_LIB_DIR=\"${UHD_LIB_DIR}\""
)
target_link_libraries(paths_test uhd ${Boost_LIBRARIES})
UHD_ADD_TEST(paths_test paths_test)
UHD_INSTALL(TARGETS
paths_test
RUNTIME
DESTINATION ${PKG_LIB_DIR}/tests
COMPONENT tests
)
########################################################################
# demo of a loadable module
########################################################################
if(MSVC OR APPLE OR LINUX)
add_library(module_test MODULE module_test.cpp)
target_link_libraries(module_test uhd)
endif()
add_subdirectory(devtest)