Add physim tests into ctest framework
Convert physim testcases listed in
cmake_targets/autotests/test_case_list.xml into ctest. Note: Tests for
dlsim_tm4 are excluded, due to compilation issues.
CTest evaluates success based on return code: '0' = pass, non-zero =
fail. For some simulators, the return code is non-zero even when the
test is successful (as indicated by success messages in the test logs).
For some simulators, the return code is always '0'. This inconsistency
has been address in the first two commits of this MR.
To build and execute these tests:
- using cmake
cd openairinterface5g
mkdir build && cd build # you can also do that in cmake_targets/ran_build/build
cmake .. -GNinja -DENABLE_PHYSIM_TESTS=ON && ninja tests
ctest
- using build_oai: physim-related ctests are activated when PHY
simulators are built (use build_oai with '-P' or '--phy_simulators'
option)
cd openairinterface5g/cmake_targets
./build_oai --ninja --phy_simulators
cd ran_build/build
ctest
Link to newly created 4g and 5g RAN-Physim-Cluster pipelines:
- RAN-Physim-Cluster-4G: https://jenkins-oai.eurecom.fr/job/RAN-Physim-Cluster-4G/
- RAN-Physim-Cluster-5G: https://jenkins-oai.eurecom.fr/job/RAN-Physim-Cluster-5G/
88 lines
3.5 KiB
CMake
88 lines
3.5 KiB
CMake
add_library(coding MODULE
|
|
3gpplte_sse.c
|
|
3gpplte.c
|
|
3gpplte_turbo_decoder_sse_8bit.c
|
|
3gpplte_turbo_decoder_sse_16bit.c
|
|
3gpplte_turbo_decoder_avx2_16bit.c
|
|
3gpplte_turbo_decoder.c
|
|
)
|
|
set_target_properties(coding PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
#ensure that the T header files are generated before targets depending on them
|
|
target_link_libraries(coding PRIVATE log_headers)
|
|
|
|
add_library(ldpc_orig MODULE
|
|
nrLDPC_decoder/nrLDPC_decoder.c
|
|
nrLDPC_encoder/ldpc_encoder.c
|
|
)
|
|
set_target_properties(ldpc_orig PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
target_link_libraries(ldpc_orig PRIVATE ldpc_segment ldpc_gen_HEADERS)
|
|
|
|
add_library(ldpc MODULE
|
|
nrLDPC_decoder/nrLDPC_decoder.c
|
|
nrLDPC_encoder/ldpc_encoder_optim8segmulti.c
|
|
)
|
|
set_target_properties(ldpc PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
target_link_libraries(ldpc PRIVATE ldpc_segment ldpc_gen_HEADERS)
|
|
|
|
add_dependencies(ldpctest ldpc ldpc_orig)
|
|
add_dependencies(nr-softmodem ldpc ldpc_orig)
|
|
add_dependencies(nr-uesoftmodem ldpc ldpc_orig)
|
|
add_dependencies(nr_ulsim ldpc ldpc_orig)
|
|
add_dependencies(nr_ulschsim ldpc ldpc_orig)
|
|
add_dependencies(nr_dlsim ldpc ldpc_orig)
|
|
add_dependencies(nr_dlschsim ldpc ldpc_orig)
|
|
|
|
add_custom_target(nrLDPC_decoder_kernels_CL
|
|
COMMAND gcc nrLDPC_decoder/nrLDPC_decoder_CL.c -dD -DNRLDPC_KERNEL_SOURCE -E -o ${CMAKE_CURRENT_BINARY_DIR}/nrLDPC_decoder_kernels_CL.clc
|
|
SOURCES nrLDPC_decoder/nrLDPC_decoder_CL.c
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
)
|
|
add_library(ldpc_cl MODULE
|
|
nrLDPC_decoder/nrLDPC_decoder_CL.c
|
|
nrLDPC_encoder/ldpc_encoder_optim8segmulti.c
|
|
)
|
|
set_target_properties(ldpc_cl PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
target_link_libraries(ldpc_cl PRIVATE ldpc_segment OpenCL)
|
|
add_dependencies(ldpc_cl nrLDPC_decoder_kernels_CL)
|
|
|
|
##############################################
|
|
# Base CUDA setting
|
|
##############################################
|
|
|
|
add_boolean_option(ENABLE_LDPC_CUDA OFF "Build support for CUDA" OFF)
|
|
if (ENABLE_LDPC_CUDA)
|
|
find_package(CUDA REQUIRED)
|
|
if (NOT CUDA_FOUND)
|
|
message(FATAL_ERROR "no CUDA found")
|
|
endif()
|
|
SET(CUDA_NVCC_FLAG "${CUDA_NVCC_FLAGS};-arch=sm_60;")
|
|
SET(CUDA_VERBOSE_BUILD ON)
|
|
cuda_add_library(ldpc_cuda MODULE
|
|
nrLDPC_decoder_LYC/nrLDPC_decoder_LYC.cu
|
|
nrLDPC_encoder/ldpc_encoder_optim8segmulti.c
|
|
# The slot coding layer cannot be linked with
|
|
# target_link_libraries like above
|
|
# because of cuda_add_library
|
|
# which already uses target_link_libraries
|
|
nrLDPC_coding/nrLDPC_coding_segment/nrLDPC_coding_segment_decoder.c
|
|
nrLDPC_coding/nrLDPC_coding_segment/nrLDPC_coding_segment_encoder.c
|
|
nrLDPC_coding/nrLDPC_coding_segment/nr_rate_matching.c
|
|
)
|
|
set_target_properties(ldpc_cuda PROPERTIES CUDA_SEPARABLE_COMPILATION ON)
|
|
set_target_properties(ldpc_cuda PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
|
|
add_dependencies(ldpctest ldpc_cuda)
|
|
add_dependencies(nr-softmodem ldpc_cuda)
|
|
add_dependencies(nr-uesoftmodem ldpc_cuda)
|
|
add_dependencies(nr_ulsim ldpc_cuda)
|
|
add_dependencies(nr_ulschsim ldpc_cuda)
|
|
add_dependencies(nr_dlsim ldpc_cuda)
|
|
add_dependencies(nr_dlschsim ldpc_cuda)
|
|
endif()
|
|
|
|
add_subdirectory(nrLDPC_coding)
|
|
|
|
if(ENABLE_PHYSIM_TESTS)
|
|
add_subdirectory(tests)
|
|
endif()
|