cmake_minimum_required(VERSION 3.16)
if(UT_TEST_ALL OR OP_KERNEL_AICPU_UT)
set(AICPU_OP_KERNEL_UT_EXE ${PKG_NAME}_aicpu_op_kernel_ut)
add_aicpu_opkernel_ut_modules(${AICPU_OP_KERNEL_MODULE_NAME})
message(STATUS ">>>> Defined targets 111: ${AICPU_OP_KERNEL_MODULE_NAME}_cases")
add_executable(${AICPU_OP_KERNEL_UT_EXE}
test_op_kernel_aicpu_main.cpp
)
get_target_property(tmp ${AICPU_OP_KERNEL_MODULE_NAME}_cases NAME)
message(STATUS ">>> Linking target: ${tmp}")
message(STATUS ">>>> Defined targets 222: ${AICPU_OP_KERNEL_MODULE_NAME}_cases")
target_link_libraries(${AICPU_OP_KERNEL_UT_EXE} PRIVATE
$<BUILD_INTERFACE:intf_llt_pub_asan>
$<BUILD_INTERFACE:dlog_headers>
-Wl,--whole-archive
${ASCEND_DIR}/lib64/libaicpu_context_host.a
${ASCEND_DIR}/lib64/libaicpu_nodedef_host.a
${ASCEND_DIR}/lib64/libhost_ascend_protobuf.a
-Wl,--no-whole-archive
-ldl
-Wl,-Bsymbolic
-Wl,--exclude-libs=libhost_ascend_protobuf.a
-Wl,--no-as-needed
${AICPU_OP_KERNEL_MODULE_NAME}_cases
-Wl,--as-needed
GTest::gtest
c_sec
Eigen3::Eigen
)
if(ENABLE_UT_EXEC)
if(ENABLE_ASAN)
execute_process(
COMMAND ${CMAKE_C_COMPILER} -print-file-name=libasan.so
OUTPUT_VARIABLE LIBASAN_PATH
OUTPUT_STRIP_TRAILING_WHITESPACE
RESULT_VARIABLE result
)
if(NOT result EQUAL 0)
message(FATAL_ERROR "compiler not support asan, please disable asan")
endif()
set(PRELOAD "LD_PRELOAD=${LIBASAN_PATH}:/usr/lib/x86_64-linux-gnu/libstdc++.so.6")
add_custom_command(
TARGET ${AICPU_OP_KERNEL_UT_EXE} POST_BUILD
COMMAND
COMMAND export LD_LIBRARY_PATH=$ENV{LD_LIBRARY_PATH} &&
${PRELOAD} ASAN_OPTIONS=detect_leaks=0 ./${AICPU_OP_KERNEL_UT_EXE}
COMMENT "Run ops opkernel_aicpu utest with asan"
)
else()
add_custom_command(
TARGET ${AICPU_OP_KERNEL_UT_EXE} POST_BUILD
COMMAND export LD_LIBRARY_PATH=$ENV{LD_LIBRARY_PATH} && ./${AICPU_OP_KERNEL_UT_EXE}
COMMENT "Run ops opkernel_aicpu utest"
)
endif()
endif()
if(ENABLE_VALGRIND)
add_custom_command(
TARGET ${AICPU_OP_KERNEL_UT_EXE} POST_BUILD
COMMAND export LD_LIBRARY_PATH=$ENV{LD_LIBRARY_PATH} && valgrind --undef-value-errors=no --leak-check=full ./${AICPU_OP_KERNEL_UT_EXE}
COMMENT "Run ops opkernel_aicpu utest with valgrind"
)
endif()
endif()