uhd/host/tests/CMakeLists.txt
Martin Anderseck dd1dbad6e7 test: Add unit test for LTC5594
This test checks if the correct values are returned for a frequency
within the range of the lookup table and for frequencies above and below
the range.
2026-10-13 12:41:50 +02:00

727 lines
27 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
actions_test.cpp
addr_test.cpp
buffer_test.cpp
byteswap_test.cpp
cast_test.cpp
cal_database_test.cpp
cal_data_iq_test.cpp
cal_data_iq_dc_test.cpp
cal_data_gain_pwr_test.cpp
chdr_parse_test.cpp
cal_data_dsa_test.cpp
compat_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
interpolation_test.cpp
isatty_test.cpp
log_test.cpp
math_test.cpp
narrow_cast_test.cpp
property_test.cpp
ranges_test.cpp
rfnoc_node_test.cpp
rfnoc_propprop_test.cpp
scope_exit_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
link_test.cpp
rx_streamer_test.cpp
tx_streamer_test.cpp
block_id_test.cpp
rfnoc_property_test.cpp
multichan_register_iface_test.cpp
)
# Note: Python-based tests cannot have the same name as a C++-based test (i.e.,
# only differ in the cpp/py file extension). If in doubt, prepend 'py'
set(pytest_sources
pyranges_test.py
verify_fbs_test.py
pychdr_parse_test.py
uhd_image_downloader_test.py
device_addr_test.py
)
#turn each test cpp file into an executable with an int main() function
add_definitions(-DBOOST_TEST_DYN_LINK -DBOOST_TEST_MAIN)
if(Boost_VERBOSE OR Boost_DEBUG)
if(DEFINED Boost_USE_STATIC_LIBS)
# Optional variable used to override default Boost linking
message(STATUS "UHDUnitTest: Variable Boost_USE_STATIC_LIBS DEFINED with value '${Boost_USE_STATIC_LIBS}'")
if(Boost_USE_STATIC_LIBS)
message(STATUS "UHDUnitTest: Variable Boost_USE_STATIC_LIBS evaluates to TRUE")
endif(Boost_USE_STATIC_LIBS)
endif(DEFINED Boost_USE_STATIC_LIBS)
endif(Boost_VERBOSE OR Boost_DEBUG)
# Deferred detecting Boost::unit_test_framework via
# UHD_BOOST_REQUIRED_COMPONENTS (in UHDBoost.cmake) so doing it now.
if(NOT DEFINED Boost_USE_STATIC_LIBS OR Boost_USE_STATIC_LIBS)
# Using static linking for Boost dependencies, but
# needing to link dynamically to Boost::unit_test_framework
# - Win: Default - Boost_USE_STATIC_LIBS=ON
# - Lin: Default - Boost_USE_STATIC_LIBS=OFF
if (TARGET Boost::unit_test_framework)
message(WARNING "Target: Boost::unit_test_framework already defined.")
endif(TARGET Boost::unit_test_framework)
message(STATUS "Switching to dynamic linking for Boost::unit_test_framework")
set(Boost_USE_STATIC_LIBS OFF)
endif()
# Duplicate find_package(Boost) arguments used in UHDBoost.cmake
if(POLICY CMP0167)
cmake_policy(PUSH)
cmake_policy(SET CMP0167 NEW)
endif()
find_package(Boost ${UHD_BOOST_MIN_VERSION} QUIET
COMPONENTS unit_test_framework ${UHD_BOOST_REQUIRED})
if(POLICY CMP0167)
cmake_policy(POP)
endif()
if(Boost_VERBOSE OR Boost_DEBUG)
# After: find_package(Boost REQUIRED COMPONENTS unit_test_framework)
# The actual library file(s) per-config
get_target_property(_utf_loc_rel Boost::unit_test_framework IMPORTED_LOCATION_RELEASE)
get_target_property(_utf_loc_dbg Boost::unit_test_framework IMPORTED_LOCATION_DEBUG)
message(STATUS "Boost::unit_test_framework IMPORTED_LOCATION_RELEASE = ${_utf_loc_rel}")
message(STATUS "Boost::unit_test_framework IMPORTED_LOCATION_DEBUG = ${_utf_loc_dbg}")
# This variable should only be set when linking dynamically (on Windows?)
get_target_property(_utf_loc Boost::unit_test_framework IMPORTED_IMPLIB_RELEASE)
message(STATUS "Boost::unit_test_framework IMPORTED_IMPLIB_RELEASE = ${_utf_loc}")
# The generic default (whatever BoostConfig resolved to)
if (TARGET Boost::unit_test_framework)
message(STATUS "Found target: Boost::unit_test_framework")
endif(TARGET Boost::unit_test_framework)
endif(Boost_VERBOSE OR Boost_DEBUG)
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("${UHD_SOURCE_DIR}/lib/include")
include_directories("${UHD_BINARY_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_include_directories(${test_name}
PRIVATE ${UHD_BINARY_DIR}/lib/usrp/common)
target_link_libraries(${test_name}
PUBLIC uhd_test uhd Boost::unit_test_framework)
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_include_directories(${benchmark_name}
PRIVATE ${UHD_BINARY_DIR}/lib/usrp/common)
target_link_libraries(${benchmark_name}
PUBLIC uhd uhd_test Boost::unit_test_framework)
UHD_INSTALL(TARGETS ${benchmark_name} RUNTIME DESTINATION ${PKG_LIB_DIR}/tests COMPONENT tests)
endforeach(benchmark_source)
if(ENABLE_PYTHON_API)
foreach(test_source ${pytest_sources})
get_filename_component(test_name ${test_source} NAME_WE)
UHD_ADD_PYTEST(${test_name})
endforeach(test_source)
UHD_INSTALL(FILES ${pytest_sources}
DESTINATION ${PKG_LIB_DIR}/tests
COMPONENT tests
)
endif(ENABLE_PYTHON_API)
###############################################################################
# Add a unit test that requires linkage to internal parts of UHD which are not
# API
###############################################################################
macro(UHD_ADD_NONAPI_TEST)
cmake_parse_arguments(test "NOAUTORUN" "TARGET" "INCLUDE_DIRS;EXTRA_SOURCES;EXTRA_LIBS;DEFINITIONS" ${ARGN})
get_filename_component(test_name ${test_TARGET} NAME_WE)
include_directories(${test_INCLUDE_DIRS})
add_executable(${test_name} ${test_TARGET} ${test_EXTRA_SOURCES})
target_include_directories(${test_name}
PRIVATE ${UHD_BINARY_DIR}/lib/usrp/common)
target_link_libraries(${test_name}
PUBLIC uhd uhd_test Boost::unit_test_framework Boost::program_options)
if(MINGW)
target_link_libraries(${test_name} PUBLIC mswsock)
endif(MINGW)
target_compile_definitions(${test_name} PUBLIC ${test_DEFINITIONS})
if(NOT ${test_NOAUTORUN})
UHD_ADD_TEST(${test_name} ${test_name})
endif(NOT ${test_NOAUTORUN})
UHD_INSTALL(TARGETS ${test_name}
RUNTIME
DESTINATION ${PKG_LIB_DIR}/tests
COMPONENT tests)
endmacro(UHD_ADD_NONAPI_TEST)
###############################################################################
# Add a unit test for an RFNoC block controller
###############################################################################
macro(UHD_ADD_RFNOC_BLOCK_TEST)
cmake_parse_arguments(test "NOAUTORUN" "TARGET" "INCLUDE_DIRS;EXTRA_SOURCES;EXTRA_LIBS" ${ARGN})
UHD_ADD_NONAPI_TEST(
TARGET rfnoc_block_tests/${test_TARGET}
INCLUDE_DIRS
${test_INCLUDE_DIRS}
)
endmacro(UHD_ADD_RFNOC_BLOCK_TEST)
###############################################################################
# Add a unit test for an RFNoC block controller that requires non-api sources
###############################################################################
macro(UHD_ADD_RFNOC_BLOCK_NONAPI_TEST)
cmake_parse_arguments(test "NOAUTORUN" "TARGET" "INCLUDE_DIRS;EXTRA_SOURCES;EXTRA_LIBS" ${ARGN})
UHD_ADD_NONAPI_TEST(
TARGET rfnoc_block_tests/${test_TARGET}
EXTRA_SOURCES
${test_EXTRA_SOURCES}
INCLUDE_DIRS
${test_INCLUDE_DIRS}
)
endmacro(UHD_ADD_RFNOC_BLOCK_NONAPI_TEST)
###############################################################################
# Add unit tests for RFNoC blocks that don't require special linkage
###############################################################################
set(rfnoc_block_sources
addsub_block_test.cpp
ddc_block_test.cpp
duc_block_test.cpp
fft_block_test.cpp
fft_block_test_v2.cpp
fir_filter_block_test.cpp
fosphor_block_test.cpp
keep_one_in_n_test.cpp
logpwr_block_test.cpp
moving_average_block_test.cpp
null_block_test.cpp
replay_block_test.cpp
siggen_block_test.cpp
split_stream_block_test.cpp
switchboard_block_test.cpp
vector_iir_block_test.cpp
window_block_test.cpp
lc_block_test.cpp
)
foreach(test_source ${rfnoc_block_sources})
get_filename_component(test_name ${test_source} NAME_WE)
add_executable(${test_name} rfnoc_block_tests/${test_source})
target_include_directories(${test_name}
PRIVATE ${UHD_BINARY_DIR}/lib/usrp/common)
target_link_libraries(${test_name}
PUBLIC uhd uhd_test Boost::unit_test_framework)
UHD_ADD_TEST(${test_name} ${test_name})
UHD_INSTALL(TARGETS ${test_name} RUNTIME DESTINATION ${PKG_LIB_DIR}/tests/rfnoc_block_tests COMPONENT tests)
endforeach(test_source)
###############################################################################
# Now add all unit tests that require special linkage
###############################################################################
if(ENABLE_DPDK)
find_package(DPDK)
UHD_ADD_NONAPI_TEST(
TARGET "dpdk_test.cpp"
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/utils/config_parser.cpp
${UHD_SOURCE_DIR}/lib/utils/paths.cpp
${UHD_SOURCE_DIR}/lib/utils/pathslib.cpp
${UHD_SOURCE_DIR}/lib/utils/prefs.cpp
${UHD_SOURCE_DIR}/lib/transport/adapter.cpp
${UHD_SOURCE_DIR}/lib/transport/uhd-dpdk/dpdk_common.cpp
${UHD_SOURCE_DIR}/lib/transport/uhd-dpdk/dpdk_io_service.cpp
${UHD_SOURCE_DIR}/lib/transport/udp_dpdk_link.cpp
INCLUDE_DIRS
${DPDK_INCLUDE_DIRS}
EXTRA_LIBS ${DPDK_LIBRARIES}
NOAUTORUN # Don't register for auto-run, it requires special config
)
UHD_ADD_NONAPI_TEST(
TARGET "dpdk_port_test.cpp"
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/utils/config_parser.cpp
${UHD_SOURCE_DIR}/lib/utils/paths.cpp
${UHD_SOURCE_DIR}/lib/utils/pathslib.cpp
${UHD_SOURCE_DIR}/lib/utils/prefs.cpp
${UHD_SOURCE_DIR}/lib/transport/adapter.cpp
${UHD_SOURCE_DIR}/lib/transport/uhd-dpdk/dpdk_common.cpp
${UHD_SOURCE_DIR}/lib/transport/uhd-dpdk/dpdk_io_service.cpp
${UHD_SOURCE_DIR}/lib/transport/udp_dpdk_link.cpp
INCLUDE_DIRS
${DPDK_INCLUDE_DIRS}
EXTRA_LIBS ${DPDK_LIBRARIES}
NOAUTORUN # Don't register for auto-run, it requires special config
)
target_compile_options(dpdk_test PRIVATE ${DPDK_CFLAGS})
target_compile_options(dpdk_port_test PRIVATE ${DPDK_CFLAGS})
ENDIF(ENABLE_DPDK)
UHD_ADD_NONAPI_TEST(
TARGET "system_time_test.cpp"
EXTRA_SOURCES
"${UHD_SOURCE_DIR}/lib/utils/system_time.cpp"
)
UHD_ADD_NONAPI_TEST(
TARGET "streamer_benchmark.cpp"
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/rfnoc/chdr_packet_writer.cpp
${UHD_SOURCE_DIR}/lib/rfnoc/chdr_ctrl_xport.cpp
${UHD_SOURCE_DIR}/lib/rfnoc/chdr_rx_data_xport.cpp
${UHD_SOURCE_DIR}/lib/rfnoc/chdr_tx_data_xport.cpp
${UHD_SOURCE_DIR}/lib/transport/inline_io_service.cpp
NOAUTORUN # Don't register for auto-run
)
UHD_ADD_NONAPI_TEST(
TARGET "device_filter_test.cpp"
EXTRA_SOURCES ${UHD_SOURCE_DIR}/lib/utils/serial_number.cpp
)
UHD_ADD_NONAPI_TEST(
TARGET "config_parser_test.cpp"
EXTRA_SOURCES ${UHD_SOURCE_DIR}/lib/utils/config_parser.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.
# TODO Figure out if this is even needed
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(
${UHD_SOURCE_DIR}/lib/utils/paths.cpp
PROPERTIES COMPILE_DEFINITIONS
"UHD_PKG_PATH=\"${UHD_PKG_PATH}\";UHD_LIB_DIR=\"${UHD_LIB_DIR}\""
)
UHD_ADD_NONAPI_TEST(
TARGET "paths_test.cpp"
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/utils/pathslib.cpp
)
UHD_ADD_NONAPI_TEST(
TARGET rfnoc_detailgraph_test.cpp
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/rfnoc/graph.cpp
DEFINITIONS "-DUHD_RFNOC_DETAILGRAPH_TEST"
)
UHD_ADD_NONAPI_TEST(
TARGET rfnoc_topograph_test.cpp
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/rfnoc/topo_graph.cpp
)
UHD_ADD_NONAPI_TEST(
TARGET rfnoc_chdr_test.cpp
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/rfnoc/chdr_packet_writer.cpp
INCLUDE_DIRS
${UHD_BINARY_DIR}/lib/rfnoc/
${UHD_SOURCE_DIR}/lib/rfnoc/
)
UHD_ADD_NONAPI_TEST(
TARGET client_zero_test.cpp
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/rfnoc/client_zero.cpp
${UHD_SOURCE_DIR}/lib/rfnoc/chdr_packet_writer.cpp
${UHD_SOURCE_DIR}/lib/rfnoc/chdr_ctrl_xport.cpp
)
UHD_ADD_NONAPI_TEST(
TARGET zbx_cpld_test.cpp
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/usrp/dboard/zbx/zbx_cpld_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/zbx/zbx_lo_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/common/lmx2572.cpp
INCLUDE_DIRS
${UHD_BINARY_DIR}/lib/ic_reg_maps
)
UHD_ADD_NONAPI_TEST(
TARGET lmx2572_test.cpp
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/usrp/common/lmx2572.cpp
INCLUDE_DIRS
${UHD_BINARY_DIR}/lib/ic_reg_maps
)
UHD_ADD_NONAPI_TEST(
TARGET admv1320_test.cpp
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/usrp/common/admv1320.cpp
INCLUDE_DIRS
${UHD_BINARY_DIR}/lib/ic_reg_maps
)
UHD_ADD_NONAPI_TEST(
TARGET admv1420_test.cpp
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/usrp/common/admv1420.cpp
INCLUDE_DIRS
${UHD_BINARY_DIR}/lib/ic_reg_maps
)
UHD_ADD_NONAPI_TEST(
TARGET hbx_lo_pd_test.cpp
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_lo_pd.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_cpld_ctrl.cpp
INCLUDE_DIRS
${UHD_BINARY_DIR}/lib/ic_reg_maps
)
UHD_ADD_NONAPI_TEST(
TARGET ltc5594_test.cpp
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/usrp/common/ltc5594.cpp
INCLUDE_DIRS
${UHD_BINARY_DIR}/lib/ic_reg_maps
)
UHD_ADD_NONAPI_TEST(
TARGET adf535x_test.cpp
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/usrp/common/adf535x.cpp
INCLUDE_DIRS
${UHD_BINARY_DIR}/lib/ic_reg_maps
)
UHD_ADD_NONAPI_TEST(
TARGET "max287x_test.cpp"
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/include/uhdlib/usrp/common/max287x.hpp
INCLUDE_DIRS
${UHD_BINARY_DIR}/lib/ic_reg_maps
)
UHD_ADD_NONAPI_TEST(
TARGET "tmp468_test.cpp"
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/usrp/common/tmp468.cpp
)
UHD_ADD_NONAPI_TEST(
TARGET "b310_blackout_avoidance_test.cpp"
INCLUDE_DIRS
${UHD_SOURCE_DIR}/lib/usrp/b300
${UHD_SOURCE_DIR}/lib/usrp/common/adrv903x_driver/common
${UHD_SOURCE_DIR}/lib/usrp/common/adrv903x_driver/common/adi_error
${UHD_SOURCE_DIR}/lib/usrp/common/adrv903x_driver/common/adi_logging
${UHD_SOURCE_DIR}/lib/usrp/common/adrv903x_driver/common/adi_hal
${UHD_SOURCE_DIR}/lib/usrp/common/adrv903x_driver/devices/adrv903x/public/include
${UHD_SOURCE_DIR}/lib/usrp/common/adrv903x_driver/platforms
)
UHD_ADD_NONAPI_TEST(
TARGET "ublox_msg_helper_test.cpp"
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/usrp/common/ublox_msg_helper.cpp
)
set_source_files_properties(
${UHD_SOURCE_DIR}/lib/utils/system_time.cpp
PROPERTIES COMPILE_DEFINITIONS
"HAVE_MICROSEC_CLOCK"
)
IF(ENABLE_X400)
if (NOT APPLE)
# This test isn't supported on macOS because there are
# stricter casting and symbol export rules on this platform.
# As a result this test fails when enabled.
UHD_ADD_RFNOC_BLOCK_NONAPI_TEST(
TARGET x4xx_radio_block_test.cpp
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/usrp/common/lmx2572.cpp
${UHD_SOURCE_DIR}/lib/usrp/common/ltc5594.cpp
${UHD_SOURCE_DIR}/lib/usrp/common/admv1320.cpp
${UHD_SOURCE_DIR}/lib/usrp/common/admv1420.cpp
${UHD_SOURCE_DIR}/lib/usrp/common/pwr_cal_mgr.cpp
${UHD_SOURCE_DIR}/lib/usrp/x400/x400_gpio_control.cpp
${UHD_SOURCE_DIR}/lib/usrp/x400/x400_radio_control.cpp
${UHD_SOURCE_DIR}/lib/usrp/x400/x400_rfdc_control.cpp
${UHD_SOURCE_DIR}/lib/usrp/x400/adc_self_calibration.cpp
${UHD_SOURCE_DIR}/lib/rfnoc/complex_gain_iface.cpp
${UHD_SOURCE_DIR}/lib/rfnoc/radio_control_impl.cpp
${UHD_SOURCE_DIR}/lib/rfnoc/rf_control/gain_profile.cpp
${UHD_SOURCE_DIR}/lib/usrp/mpmd/mpmd_mb_controller.cpp
${UHD_SOURCE_DIR}/lib/usrp/cores/complex_gain_3000.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/zbx/zbx_dboard.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/zbx/zbx_dboard_init.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/zbx/zbx_lo_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/zbx/zbx_cpld_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/zbx/zbx_expert.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/fbx/fbx_dboard.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/fbx/fbx_dboard_init.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/fbx/fbx_expert.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/fbx/fbx_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_dboard.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_dboard_init.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_lo_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_demod_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_admv1320_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_admv1420_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_lo_pd.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_expert.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_cpld_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/common/apply_corrections.cpp
${UHD_SOURCE_DIR}/lib/features/discoverable_feature_registry.cpp
${UHD_SOURCE_DIR}/lib/usrp/cores/gpio_atr_3000.cpp
${UHD_SOURCE_DIR}/lib/usrp/cores/spi_core_4000.cpp
${UHD_SOURCE_DIR}/lib/usrp/x400/x400_internal_sync.cpp
${UHD_SOURCE_DIR}/lib/utils/prefs.cpp
${UHD_SOURCE_DIR}/lib/utils/pathslib.cpp
${UHD_SOURCE_DIR}/lib/utils/paths.cpp
${UHD_SOURCE_DIR}/lib/utils/config_parser.cpp
INCLUDE_DIRS ${UHD_SOURCE_DIR}/lib/deps/rpclib/include
INCLUDE_DIRS ${UHD_SOURCE_DIR}/lib/deps/flatbuffers/include
)
# TODO: Fix dependency list/duplicates
UHD_ADD_RFNOC_BLOCK_NONAPI_TEST(
TARGET ferrum_radio_block_test.cpp
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/usrp/common/lmx2572.cpp
${UHD_SOURCE_DIR}/lib/usrp/common/ltc5594.cpp
${UHD_SOURCE_DIR}/lib/usrp/common/admv1320.cpp
${UHD_SOURCE_DIR}/lib/usrp/common/admv1420.cpp
${UHD_SOURCE_DIR}/lib/usrp/common/pwr_cal_mgr.cpp
${UHD_SOURCE_DIR}/lib/usrp/x400/x400_gpio_control.cpp
${UHD_SOURCE_DIR}/lib/usrp/x400/x400_radio_control.cpp
${UHD_SOURCE_DIR}/lib/usrp/x400/x400_rfdc_control.cpp
${UHD_SOURCE_DIR}/lib/usrp/x400/adc_self_calibration.cpp
${UHD_SOURCE_DIR}/lib/rfnoc/complex_gain_iface.cpp
${UHD_SOURCE_DIR}/lib/rfnoc/radio_control_impl.cpp
${UHD_SOURCE_DIR}/lib/rfnoc/rf_control/gain_profile.cpp
${UHD_SOURCE_DIR}/lib/usrp/mpmd/mpmd_mb_controller.cpp
${UHD_SOURCE_DIR}/lib/usrp/cores/complex_gain_3000.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/fbx/fbx_dboard.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/fbx/fbx_dboard_init.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/fbx/fbx_expert.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/fbx/fbx_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_dboard.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_dboard_init.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_lo_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_demod_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_admv1320_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_admv1420_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_lo_pd.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_expert.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_cpld_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/common/apply_corrections.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/zbx/zbx_dboard.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/zbx/zbx_dboard_init.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/zbx/zbx_lo_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/zbx/zbx_cpld_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/zbx/zbx_expert.cpp
${UHD_SOURCE_DIR}/lib/features/discoverable_feature_registry.cpp
${UHD_SOURCE_DIR}/lib/usrp/cores/gpio_atr_3000.cpp
${UHD_SOURCE_DIR}/lib/usrp/cores/spi_core_4000.cpp
${UHD_SOURCE_DIR}/lib/usrp/x400/x400_internal_sync.cpp
${UHD_SOURCE_DIR}/lib/utils/prefs.cpp
${UHD_SOURCE_DIR}/lib/utils/pathslib.cpp
${UHD_SOURCE_DIR}/lib/utils/paths.cpp
${UHD_SOURCE_DIR}/lib/utils/config_parser.cpp
INCLUDE_DIRS ${UHD_SOURCE_DIR}/lib/deps/rpclib/include
INCLUDE_DIRS ${UHD_SOURCE_DIR}/lib/deps/flatbuffers/include
)
UHD_ADD_RFNOC_BLOCK_NONAPI_TEST(
TARGET hbx_radio_block_test.cpp
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/usrp/common/lmx2572.cpp
${UHD_SOURCE_DIR}/lib/usrp/common/ltc5594.cpp
${UHD_SOURCE_DIR}/lib/usrp/common/admv1320.cpp
${UHD_SOURCE_DIR}/lib/usrp/common/admv1420.cpp
${UHD_SOURCE_DIR}/lib/usrp/common/pwr_cal_mgr.cpp
${UHD_SOURCE_DIR}/lib/usrp/x400/x400_gpio_control.cpp
${UHD_SOURCE_DIR}/lib/usrp/x400/x400_radio_control.cpp
${UHD_SOURCE_DIR}/lib/usrp/x400/x400_rfdc_control.cpp
${UHD_SOURCE_DIR}/lib/usrp/x400/adc_self_calibration.cpp
${UHD_SOURCE_DIR}/lib/rfnoc/complex_gain_iface.cpp
${UHD_SOURCE_DIR}/lib/rfnoc/radio_control_impl.cpp
${UHD_SOURCE_DIR}/lib/rfnoc/rf_control/gain_profile.cpp
${UHD_SOURCE_DIR}/lib/usrp/mpmd/mpmd_mb_controller.cpp
${UHD_SOURCE_DIR}/lib/usrp/cores/complex_gain_3000.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/fbx/fbx_dboard.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/fbx/fbx_dboard_init.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/fbx/fbx_expert.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/fbx/fbx_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_dboard.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_dboard_init.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_lo_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_demod_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_admv1320_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_admv1420_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_lo_pd.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_expert.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/hbx/hbx_cpld_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/common/apply_corrections.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/zbx/zbx_dboard.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/zbx/zbx_dboard_init.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/zbx/zbx_lo_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/zbx/zbx_cpld_ctrl.cpp
${UHD_SOURCE_DIR}/lib/usrp/dboard/zbx/zbx_expert.cpp
${UHD_SOURCE_DIR}/lib/features/discoverable_feature_registry.cpp
${UHD_SOURCE_DIR}/lib/usrp/cores/gpio_atr_3000.cpp
${UHD_SOURCE_DIR}/lib/usrp/cores/spi_core_4000.cpp
${UHD_SOURCE_DIR}/lib/usrp/x400/x400_internal_sync.cpp
${UHD_SOURCE_DIR}/lib/utils/prefs.cpp
${UHD_SOURCE_DIR}/lib/utils/pathslib.cpp
${UHD_SOURCE_DIR}/lib/utils/paths.cpp
${UHD_SOURCE_DIR}/lib/utils/config_parser.cpp
INCLUDE_DIRS ${UHD_SOURCE_DIR}/lib/deps/rpclib/include
INCLUDE_DIRS ${UHD_SOURCE_DIR}/lib/deps/flatbuffers/include
)
endif(NOT APPLE)
UHD_ADD_NONAPI_TEST(
TARGET "x400_rfdc_control_test.cpp"
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/usrp/x400/x400_rfdc_control.cpp
)
ENDIF(ENABLE_X400)
UHD_ADD_NONAPI_TEST(
TARGET "mb_controller_test.cpp"
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/features/discoverable_feature_registry.cpp
)
UHD_ADD_NONAPI_TEST(
TARGET "transport_test.cpp"
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/transport/inline_io_service.cpp
)
UHD_ADD_NONAPI_TEST(
TARGET "offload_io_srv_test.cpp"
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/transport/offload_io_service.cpp
)
UHD_ADD_NONAPI_TEST(
TARGET "serial_number_test.cpp"
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/utils/serial_number.cpp
)
UHD_ADD_NONAPI_TEST(
TARGET "pwr_cal_mgr_test.cpp"
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/usrp/common/pwr_cal_mgr.cpp
)
UHD_ADD_NONAPI_TEST(
TARGET "discoverable_feature_test.cpp"
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/features/discoverable_feature_registry.cpp
)
UHD_ADD_NONAPI_TEST(
TARGET "rf_control_gain_profile_test.cpp"
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/rfnoc/rf_control/gain_profile.cpp
)
UHD_ADD_NONAPI_TEST(
TARGET "xport_adapter_ctrl_test.cpp"
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/usrp/cores/xport_adapter_ctrl.cpp
)
UHD_ADD_NONAPI_TEST(
TARGET "custom_reg_test.cpp"
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/rfnoc/ctrlport_endpoint.cpp
)
UHD_ADD_NONAPI_TEST(
TARGET "ctrlport_endpoint_test.cpp"
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/rfnoc/ctrlport_endpoint.cpp
)
UHD_ADD_NONAPI_TEST(
TARGET "complex_gain_3000_test.cpp"
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/usrp/cores/complex_gain_3000.cpp
)
UHD_ADD_NONAPI_TEST(
TARGET "spi_core_4000_test.cpp"
EXTRA_SOURCES
${UHD_SOURCE_DIR}/lib/usrp/cores/spi_core_4000.cpp
)
########################################################################
# 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)
add_subdirectory(streaming_performance)