diff --git a/build.sh b/build.sh index 87c1e65a996a76f50900ff6a16c0b84946ee9b72..b557f98a935366dff2cb4fe1291ac2730c4adb04 100755 --- a/build.sh +++ b/build.sh @@ -159,6 +159,7 @@ main() { lcov -r coverage/tmp.info '*/tests/*' '*/nlohmann_json-src/*' '*/tensorflow-src/*' \ '*/inc/*' '*/output/*' '*/usr/*' '*/Eigen/*' '*/absl/*' '*/google/*' '*/tensorflow/core/*' \ -o adapter1_coverage.info + export LD_LIBRARY_PATH=${BASE_PATH}/tf_adapter_2.x/tests/build/:$LD_LIBRARY_PATH bash ${BASE_PATH}/tf_adapter_2.x/tests/CI_Build adapter2_ut lcov -o coverage/coverage.info -a ${BASE_PATH}/tf_adapter_2.x/tests/build/ut/ut.coverage -a adapter1_coverage.info fi @@ -181,6 +182,7 @@ main() { lcov -r coverage/tmp.info '*/tests/*' '*/nlohmann_json-src/*' '*/tensorflow-src/*' \ '*/inc/*' '*/output/*' '*/usr/*' '*/Eigen/*' '*/absl/*' '*/google/*' '*/tensorflow/core/*' \ -o adapter1_coverage.info + export LD_LIBRARY_PATH=${BASE_PATH}/tf_adapter_2.x/tests/build/:$LD_LIBRARY_PATH bash ${BASE_PATH}/tf_adapter_2.x/tests/CI_Build adapter2_st lcov -o coverage/coverage.info -a ${BASE_PATH}/tf_adapter_2.x/tests/build/st/st.coverage -a adapter1_coverage.info fi diff --git a/tf_adapter/tests/CMakeLists.txt b/tf_adapter/tests/CMakeLists.txt index 8d335b54af3f7c72588eb0dc306e8d67463028fb..c63f1ac281da4f8dd3de7ca4348b927f58b58978 100644 --- a/tf_adapter/tests/CMakeLists.txt +++ b/tf_adapter/tests/CMakeLists.txt @@ -15,6 +15,12 @@ project(tests CXX C) +set(TFADAPTER_COMMON_COMPILE_OPTION -g -O0 -fsanitize=address -fsanitize=leak -fsanitize-recover=address) +set(TFADAPTER_COMMON_LINK_OPTION -fsanitize=address -fsanitize=leak -fsanitize-recover=address) + +string(REPLACE "-s " "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") +string(REPLACE "-s " "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") + include(${TFADAPTER_DIR}/cmake/tests/gtest.cmake) include(${TFADAPTER_DIR}/cmake/tests/securec.cmake) include(${TFADAPTER_DIR}/cmake/tests/intf_pub_linux.cmake) diff --git a/tf_adapter/tests/depends/alog/CMakeLists.txt b/tf_adapter/tests/depends/alog/CMakeLists.txt index 52946ba9493763824d5f00b0a1c711c9309d6427..a5a676ff79d32d45a7b1df6884e8c8ed0a1d74c7 100644 --- a/tf_adapter/tests/depends/alog/CMakeLists.txt +++ b/tf_adapter/tests/depends/alog/CMakeLists.txt @@ -22,6 +22,12 @@ file(GLOB_RECURSE SRC_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} include_directories(${TFADAPTER_DIR}/inc/) add_library(alog_stub SHARED ${SRC_FILES}) + +target_compile_options(alog_stub PRIVATE + ${TFADAPTER_COMMON_COMPILE_OPTION} +) + target_link_libraries(alog_stub PRIVATE $ -) \ No newline at end of file + ${TFADAPTER_COMMON_LINK_OPTION} +) diff --git a/tf_adapter/tests/depends/aoe/CMakeLists.txt b/tf_adapter/tests/depends/aoe/CMakeLists.txt index d2ed742e39d91475529231423006003b00e217f4..e25b6fe67747e8d5d8ef7ff8641c46ab0d8ab71e 100644 --- a/tf_adapter/tests/depends/aoe/CMakeLists.txt +++ b/tf_adapter/tests/depends/aoe/CMakeLists.txt @@ -20,7 +20,13 @@ file(GLOB_RECURSE SRC_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ) add_library(aoe_tuning SHARED ${SRC_FILES}) + +target_compile_options(aoe_tuning PRIVATE + ${TFADAPTER_COMMON_COMPILE_OPTION} +) + target_link_libraries(aoe_tuning PRIVATE $ + ${TFADAPTER_COMMON_LINK_OPTION} ge_runner_stub -) \ No newline at end of file +) diff --git a/tf_adapter/tests/depends/ascendcl/CMakeLists.txt b/tf_adapter/tests/depends/ascendcl/CMakeLists.txt index e1db05d2b1d4590a7f19c0e0d21943ad30ff4ada..090c4a5d48c7b04abf7eeaea1127ed6e15bad2c2 100644 --- a/tf_adapter/tests/depends/ascendcl/CMakeLists.txt +++ b/tf_adapter/tests/depends/ascendcl/CMakeLists.txt @@ -25,6 +25,12 @@ include_directories(${TFADAPTER_DIR}/inc/ ) add_library(ascendcl_stub SHARED ${SRC_FILES}) + +target_compile_options(ascendcl_stub PRIVATE + ${TFADAPTER_COMMON_COMPILE_OPTION} +) + target_link_libraries(ascendcl_stub PRIVATE $ -) \ No newline at end of file + ${TFADAPTER_COMMON_LINK_OPTION} +) diff --git a/tf_adapter/tests/depends/ascendcl/src/ascendcl_stub.cc b/tf_adapter/tests/depends/ascendcl/src/ascendcl_stub.cc index e79d1c04c8bb7852cc6bf1c6fc7aefca37a3d654..a6f186817da0d93deb6eacdb1f3a5c68d833fcfb 100644 --- a/tf_adapter/tests/depends/ascendcl/src/ascendcl_stub.cc +++ b/tf_adapter/tests/depends/ascendcl/src/ascendcl_stub.cc @@ -88,6 +88,7 @@ aclError acltdtDestroyChannel(acltdtChannelHandle *handle) { if (handle == nullptr) { return ACL_ERROR_INVALID_PARAM; } + delete handle; return ACL_SUCCESS; } @@ -225,6 +226,7 @@ aclError acltdtReceiveTensor(const acltdtChannelHandle *handle, } } } + dataset->freeSelf = true; return ACL_SUCCESS; } diff --git a/tf_adapter/tests/depends/datatransfer/CMakeLists.txt b/tf_adapter/tests/depends/datatransfer/CMakeLists.txt index e114dce5f225c84d2985c3ceca76810d3a7471a8..798a214c7108b08305991b060ea7620a1b5e60e7 100644 --- a/tf_adapter/tests/depends/datatransfer/CMakeLists.txt +++ b/tf_adapter/tests/depends/datatransfer/CMakeLists.txt @@ -22,6 +22,12 @@ file(GLOB_RECURSE SRC_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} include_directories(${TFADAPTER_DIR}/inc/) add_library(datatransfer_stub SHARED ${SRC_FILES}) + +target_compile_options(datatransfer_stub PRIVATE + ${TFADAPTER_COMMON_COMPILE_OPTION} +) + target_link_libraries(datatransfer_stub PRIVATE $ -) \ No newline at end of file + ${TFADAPTER_COMMON_LINK_OPTION} +) diff --git a/tf_adapter/tests/depends/ge_runner/CMakeLists.txt b/tf_adapter/tests/depends/ge_runner/CMakeLists.txt index 3681db1d730a4b20a0a2d03684f6cc8e631e2f97..c0e9331bb93f14f550ae1e023373a5589dcef5d5 100644 --- a/tf_adapter/tests/depends/ge_runner/CMakeLists.txt +++ b/tf_adapter/tests/depends/ge_runner/CMakeLists.txt @@ -23,6 +23,10 @@ set(BASE_DIR ${TOP_DIR}/../) add_library(ge_runner_stub SHARED ${SRC_FILES}) +target_compile_options(ge_runner_stub PRIVATE + ${TFADAPTER_COMMON_COMPILE_OPTION} +) + target_include_directories(ge_runner_stub PRIVATE ${TF_INSTALL_LIB_PATH}/include/ ${TFADAPTER_DIR}/tf_adapter/tests/depends/ascendcl/src @@ -31,4 +35,5 @@ target_include_directories(ge_runner_stub PRIVATE target_link_libraries(ge_runner_stub PRIVATE $ -) \ No newline at end of file + ${TFADAPTER_COMMON_LINK_OPTION} +) diff --git a/tf_adapter/tests/depends/indextransform/CMakeLists.txt b/tf_adapter/tests/depends/indextransform/CMakeLists.txt index 5f10848e437f20c8a8e333e285891291feb2789a..7dae41354925cddfc22a0c23139e015af38d72a4 100644 --- a/tf_adapter/tests/depends/indextransform/CMakeLists.txt +++ b/tf_adapter/tests/depends/indextransform/CMakeLists.txt @@ -22,6 +22,12 @@ file(GLOB_RECURSE SRC_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} include_directories(${TFADAPTER_DIR}/inc/) add_library(indextransform_stub SHARED ${SRC_FILES}) + +target_compile_options(indextransform_stub PRIVATE + ${TFADAPTER_COMMON_COMPILE_OPTION} +) + target_link_libraries(indextransform_stub PRIVATE $ -) \ No newline at end of file + ${TFADAPTER_COMMON_LINK_OPTION} +) diff --git a/tf_adapter/tests/depends/mmpa/CMakeLists.txt b/tf_adapter/tests/depends/mmpa/CMakeLists.txt index f5d1a3a53cc3ae3ef430bc515ef9917fd160aeca..f95065a0eeef236436ce754c80023e607e4b4a1d 100644 --- a/tf_adapter/tests/depends/mmpa/CMakeLists.txt +++ b/tf_adapter/tests/depends/mmpa/CMakeLists.txt @@ -22,9 +22,15 @@ file(GLOB_RECURSE SRC_FILES RELATIVE ${CMAKE_CURRENT_LIST_DIR} include_directories(${TFADAPTER_DIR}/inc) add_library(mmpa_stub SHARED ${SRC_FILES}) + +target_compile_options(mmpa_stub PRIVATE + ${TFADAPTER_COMMON_COMPILE_OPTION} +) + target_link_libraries(mmpa_stub PRIVATE $ + ${TFADAPTER_COMMON_LINK_OPTION} -Wl,--no-as-needed c_sec -Wl,--as-needed -) \ No newline at end of file +) diff --git a/tf_adapter/tests/depends/runtime/CMakeLists.txt b/tf_adapter/tests/depends/runtime/CMakeLists.txt index 82159d1de34bdd7fa5ba6f05c6bc3f21a769ce6b..9412e3fe9311c852adf0740de1cc81fc0b3400e0 100644 --- a/tf_adapter/tests/depends/runtime/CMakeLists.txt +++ b/tf_adapter/tests/depends/runtime/CMakeLists.txt @@ -21,6 +21,10 @@ file(GLOB_RECURSE SRC_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} add_library(runtime_stub SHARED ${SRC_FILES}) +target_compile_options(runtime_stub PRIVATE + ${TFADAPTER_COMMON_COMPILE_OPTION} +) + target_include_directories(runtime_stub PRIVATE ${CMAKE_CURRENT_LIST_DIR}/ ${TFADAPTER_DIR}/inc/ @@ -29,4 +33,5 @@ target_include_directories(runtime_stub PRIVATE target_link_libraries(runtime_stub PRIVATE $ -) \ No newline at end of file + ${TFADAPTER_COMMON_LINK_OPTION} +) diff --git a/tf_adapter/tests/st/CMakeLists.txt b/tf_adapter/tests/st/CMakeLists.txt index 850cf56fc38ebe623f0bd3e7a6d65a3247abb75d..47b92291a6674c0d83e833242f85cda124f30da4 100644 --- a/tf_adapter/tests/st/CMakeLists.txt +++ b/tf_adapter/tests/st/CMakeLists.txt @@ -48,9 +48,11 @@ target_include_directories(tfadapter_stest PRIVATE ${TFADAPTER_DIR}/tf_adapter/tests/depends/runtime/src ${TFADAPTER_DIR}/tf_adapter/tests/depends/ge_runner/src/ ${TFADAPTER_DIR}/tf_adapter/tests/depends/alog/src/ + ${TFADAPTER_DIR}/tf_adapter/tests ) target_compile_options(tfadapter_stest PRIVATE + ${TFADAPTER_COMMON_COMPILE_OPTION} -g --coverage -fprofile-arcs -ftest-coverage -Werror=format -Wno-missing-field-initializers @@ -66,6 +68,7 @@ add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0) target_compile_definitions(tfadapter_stest PRIVATE _FORTIFY_SOURCE=2 LOG_CPP + ONLY_COMPILE_OPEN_SRC ) foreach (ST_LINK_FLAG ${ST_LINK_FLAGS}) @@ -79,6 +82,7 @@ add_dependencies(tfadapter_stest aoe_tuning) target_link_libraries(tfadapter_stest PUBLIC $ + ${TFADAPTER_COMMON_LINK_OPTION} gtest gtest_main c_sec mmpa_stub indextransform_stub alog_stub datatransfer_stub ge_runner_stub ascendcl_stub runtime_stub ${PYTHON_LIB_PATH} -lrt -ldl -lgcov ) diff --git a/tf_adapter/tests/st/kernels/testcase/dataset/dataset_test_base.cc b/tf_adapter/tests/st/kernels/testcase/dataset/dataset_test_base.cc index 6a3a0336e93f9cbe433f8dee8e6e8a14efc5f60f..e6040d522f229492d9b366f900bc60bd4d8cd13e 100644 --- a/tf_adapter/tests/st/kernels/testcase/dataset/dataset_test_base.cc +++ b/tf_adapter/tests/st/kernels/testcase/dataset/dataset_test_base.cc @@ -323,11 +323,9 @@ Status DatasetOpsTestBase::RunFunction(const FunctionDef& fdef1, test::function: Status DatasetOpsTestBase::CreateOpKernelContext( OpKernel* kernels, gtl::InlinedVector* inputs, std::unique_ptr* ctx) { params_ = absl::make_unique(); - unique_ptr pas; - pas = std::move(params_); + OpKernelContext::Params *pas = params_.get(); cancellation_manager_ = absl::make_unique(); - unique_ptr cm = std::move(cancellation_manager_); - pas->cancellation_manager = cm.release(); + pas->cancellation_manager = cancellation_manager_.get(); pas->device = device_.get(); pas->frame_iter = FrameAndIter(0, 0); pas->function_library = flr_; @@ -338,8 +336,7 @@ Status DatasetOpsTestBase::CreateOpKernelContext( OpKernel* kernels, gtl::Inline slice_reader_cache_ = absl::make_unique(); pas->slice_reader_cache = slice_reader_cache_.get(); step_container_ = absl::make_unique(0, [](const string&) {}); - unique_ptr stc = std::move(step_container_); - pas->step_container = stc.release(); + pas->step_container = step_container_.get(); allocator_attrs_.clear(); for (int i = 0; i < pas->op_kernel->num_outputs(); i++) { @@ -350,7 +347,7 @@ Status DatasetOpsTestBase::CreateOpKernelContext( OpKernel* kernels, gtl::Inline } pas->output_attr_array = gtl::vector_as_array(&allocator_attrs_); - *ctx = absl::make_unique(pas.release()); + *ctx = absl::make_unique(pas); return Status::OK(); } diff --git a/tf_adapter/tests/st/kernels/testcase/dataset/device_queue_dataset_st.cc b/tf_adapter/tests/st/kernels/testcase/dataset/device_queue_dataset_st.cc index 0116276161384efdd8f4cbd4fb5b3b079417ffe9..6faced70786753bf445171841cad96255a6223b6 100644 --- a/tf_adapter/tests/st/kernels/testcase/dataset/device_queue_dataset_st.cc +++ b/tf_adapter/tests/st/kernels/testcase/dataset/device_queue_dataset_st.cc @@ -11,6 +11,7 @@ #include "gtest/gtest.h" #include "tf_adapter/common/adapter_logger.h" +#include "util/sanitizer_options.h" namespace tensorflow { namespace data { @@ -68,6 +69,7 @@ class DeviceQueueDatasetOpTest : public DatasetOpsTestBaseV2 + ${TFADAPTER_COMMON_LINK_OPTION} gtest gtest_main c_sec mmpa_stub indextransform_stub alog_stub datatransfer_stub ge_runner_stub ascendcl_stub runtime_stub ${PYTHON_LIB_PATH} -lrt -ldl -lgcov ) diff --git a/tf_adapter/tests/ut/kernels/testcase/dataset/dataset_test_base.cc b/tf_adapter/tests/ut/kernels/testcase/dataset/dataset_test_base.cc index f6f2ab29f8a26682cac0085e47830082052ee6a6..0ed2a9d254105a532f44b9f150892df010f278aa 100644 --- a/tf_adapter/tests/ut/kernels/testcase/dataset/dataset_test_base.cc +++ b/tf_adapter/tests/ut/kernels/testcase/dataset/dataset_test_base.cc @@ -323,11 +323,9 @@ Status DatasetOpsTestBase::RunFunction(const FunctionDef& fdef1, test::function: Status DatasetOpsTestBase::CreateOpKernelContext( OpKernel* kernels, gtl::InlinedVector* inputs, std::unique_ptr* ctx) { params_ = absl::make_unique(); - unique_ptr pas; - pas = std::move(params_); + OpKernelContext::Params *pas = params_.get(); cancellation_manager_ = absl::make_unique(); - unique_ptr cm = std::move(cancellation_manager_); - pas->cancellation_manager = cm.release(); + pas->cancellation_manager = cancellation_manager_.get(); pas->device = device_.get(); pas->frame_iter = FrameAndIter(0, 0); pas->function_library = flr_; @@ -338,8 +336,7 @@ Status DatasetOpsTestBase::CreateOpKernelContext( OpKernel* kernels, gtl::Inline slice_reader_cache_ = absl::make_unique(); pas->slice_reader_cache = slice_reader_cache_.get(); step_container_ = absl::make_unique(0, [](const string&) {}); - unique_ptr stc = std::move(step_container_); - pas->step_container = stc.release(); + pas->step_container = step_container_.get(); allocator_attrs_.clear(); for (int i = 0; i < pas->op_kernel->num_outputs(); i++) { @@ -350,7 +347,7 @@ Status DatasetOpsTestBase::CreateOpKernelContext( OpKernel* kernels, gtl::Inline } pas->output_attr_array = gtl::vector_as_array(&allocator_attrs_); - *ctx = absl::make_unique(pas.release()); + *ctx = absl::make_unique(pas); return Status::OK(); } diff --git a/tf_adapter/tests/ut/kernels/testcase/dataset/device_queue_dataset_ut.cc b/tf_adapter/tests/ut/kernels/testcase/dataset/device_queue_dataset_ut.cc index 674ba9f522bcf8b8f7d0aafd948aa2fc4b092d4f..eca33ea1e5b5e75243f0fb383fbb1bb2873762ec 100644 --- a/tf_adapter/tests/ut/kernels/testcase/dataset/device_queue_dataset_ut.cc +++ b/tf_adapter/tests/ut/kernels/testcase/dataset/device_queue_dataset_ut.cc @@ -11,6 +11,7 @@ #include "gtest/gtest.h" #include "tf_adapter/common/adapter_logger.h" +#include "util/sanitizer_options.h" namespace tensorflow { namespace data { @@ -68,6 +69,7 @@ class DeviceQueueDatasetOpTest : public DatasetOpsTestBaseV2