if(BUILD_TEST)
set(TEST_HEADERS "")
foreach(OP ${BUILD_OPERATORS})
set(test_header "${OP}/tests/${OP}_test.h")
if(EXISTS "${CMAKE_SOURCE_DIR}/src/${test_header}")
list(APPEND TEST_HEADERS ${test_header})
endif()
endforeach()
if(EXISTS "${CMAKE_SOURCE_DIR}/lib/tests/generator_test.h")
list(APPEND TEST_HEADERS "tests/generator_test.h")
endif()
message(STATUS "找到测试头文件: ${TEST_HEADERS}")
set(TEST_INCLUDES "")
foreach(test_header ${TEST_HEADERS})
set(TEST_INCLUDES "${TEST_INCLUDES}#include \"${test_header}\"\n")
endforeach()
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/all_tests.cpp.in
${CMAKE_CURRENT_BINARY_DIR}/all_tests.cpp
@ONLY
)
set(TEST_SOURCES "")
foreach(OP ${BUILD_OPERATORS})
set(test_cpp "${CMAKE_SOURCE_DIR}/src/${OP}/tests/${OP}_test.cpp")
if(EXISTS ${test_cpp})
list(APPEND TEST_SOURCES ${test_cpp})
endif()
endforeach()
if(EXISTS "${CMAKE_SOURCE_DIR}/lib/tests/generator_test.cpp")
list(APPEND TEST_SOURCES "${CMAKE_SOURCE_DIR}/lib/tests/generator_test.cpp")
endif()
add_executable(all_ops_test
${CMAKE_CURRENT_BINARY_DIR}/all_tests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/test_common.cpp
${TEST_SOURCES}
)
target_include_directories(all_ops_test PRIVATE
${CMAKE_SOURCE_DIR}/include
${CMAKE_SOURCE_DIR}/src
${CMAKE_SOURCE_DIR}/lib
${CMAKE_CURRENT_SOURCE_DIR}
${ASCEND_HOME_PATH}/include
)
target_link_libraries(all_ops_test PRIVATE
${OPS_RAND}
${ASCEND_HOME_PATH}/lib64/libascendcl.so
${ASCEND_HOME_PATH}/lib64/libacl_rt.so
)
message(STATUS "已配置测试目标: all_ops_test")
endif()