| @@ -0,0 +1,30 @@ | |||
| # Parser | |||
| build/ | |||
| output/ | |||
| prebuilts/ | |||
| cov/ | |||
| *.ir | |||
| *.out | |||
| # Dynamic libraries | |||
| # *.so | |||
| *.dylib | |||
| # Static libraries | |||
| *.la | |||
| *.lai | |||
| *.a | |||
| *.lib | |||
| # Protocol buffers | |||
| *_pb2.py | |||
| *.pb.h | |||
| *.pb.cc | |||
| # Object files | |||
| *.o | |||
| # Editor | |||
| .vscode | |||
| .idea/ | |||
| cmake-build-* | |||
| @@ -16,6 +16,7 @@ if (ENABLE_OPEN_SRC) | |||
| include(cmake/external_libs/protoc.cmake) | |||
| include(cmake/external_libs/securec.cmake) | |||
| include(cmake/external_libs/json.cmake) | |||
| include(cmake/external_libs/gtest.cmake) | |||
| include(cmake/FindModule.cmake) | |||
| include(cmake/intf_pub_linux.cmake) | |||
| @@ -37,6 +38,8 @@ if (ENABLE_OPEN_SRC) | |||
| find_module(static_mmpa libmmpa.a ${GE_LIB_PATH}) | |||
| elseif(ENABLE_GE_COV OR ENABLE_GE_UT) | |||
| message(STATUS "Runing on llt mode, no need to depend other component") | |||
| elseif(ENABLE_PARSER_UT OR ENABLE_PARSER_COV) | |||
| add_subdirectory(tests) | |||
| else() | |||
| if(DEFINED ENV{ASCEND_CUSTOM_PATH}) | |||
| set(ASCEND_DIR $ENV{ASCEND_CUSTOM_PATH}) | |||
| @@ -53,10 +53,10 @@ checkopts() | |||
| { | |||
| VERBOSE="" | |||
| THREAD_NUM=8 | |||
| # ENABLE_GE_UT_ONLY_COMPILE="off" | |||
| ENABLE_GE_UT="off" | |||
| ENABLE_GE_ST="off" | |||
| ENABLE_GE_COV="off" | |||
| # ENABLE_PARSER_UT_ONLY_COMPILE="off" | |||
| ENABLE_PARSER_UT="off" | |||
| ENABLE_PARSER_ST="off" | |||
| ENABLE_PARSER_COV="off" | |||
| GE_ONLY="on" | |||
| ENABLE_GITEE="off" | |||
| # Process the options | |||
| @@ -65,19 +65,18 @@ checkopts() | |||
| OPTARG=$(echo ${OPTARG} | tr '[A-Z]' '[a-z]') | |||
| case "${opt}" in | |||
| u) | |||
| # ENABLE_GE_UT_ONLY_COMPILE="on" | |||
| ENABLE_GE_UT="on" | |||
| ENABLE_PARSER_UT="on" | |||
| GE_ONLY="off" | |||
| ;; | |||
| s) | |||
| ENABLE_GE_ST="on" | |||
| ENABLE_PARSER_ST="on" | |||
| ;; | |||
| t) | |||
| ENABLE_GE_UT="on" | |||
| GE_ONLY="off" | |||
| ;; | |||
| ENABLE_PARSER_UT="on" | |||
| GE_ONLY="off" | |||
| ;; | |||
| c) | |||
| ENABLE_GE_COV="on" | |||
| ENABLE_PARSER_COV="on" | |||
| GE_ONLY="off" | |||
| ;; | |||
| h) | |||
| @@ -124,17 +123,17 @@ build_parser() | |||
| cd "${BUILD_PATH}" | |||
| CMAKE_ARGS="-DBUILD_PATH=$BUILD_PATH -DGE_ONLY=$GE_ONLY" | |||
| if [[ "X$ENABLE_GE_COV" = "Xon" ]]; then | |||
| CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_GE_COV=ON" | |||
| if [[ "X$ENABLE_PARSER_COV" = "Xon" ]]; then | |||
| CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_PARSER_COV=ON" | |||
| fi | |||
| if [[ "X$ENABLE_GE_UT" = "Xon" ]]; then | |||
| CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_GE_UT=ON" | |||
| if [[ "X$ENABLE_PARSER_UT" = "Xon" ]]; then | |||
| CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_PARSER_UT=ON" | |||
| fi | |||
| if [[ "X$ENABLE_GE_ST" = "Xon" ]]; then | |||
| CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_GE_ST=ON" | |||
| if [[ "X$ENABLE_PARSER_ST" = "Xon" ]]; then | |||
| CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_PARSER_ST=ON" | |||
| fi | |||
| if [[ "X$ENABLE_GITEE" = "Xon" ]]; then | |||
| @@ -149,7 +148,13 @@ build_parser() | |||
| echo "execute command: cmake ${CMAKE_ARGS} .. failed." | |||
| return 1 | |||
| fi | |||
| make ${VERBOSE} -j${THREAD_NUM} && make install | |||
| if [ "X$ENABLE_PARSER_UT" = "Xon" ]; then | |||
| make ut_parser -j8 | |||
| else | |||
| make ${VERBOSE} -j${THREAD_NUM} && make install | |||
| fi | |||
| if [ 0 -ne $? ] | |||
| then | |||
| echo "execute command: make ${VERBOSE} -j${THREAD_NUM} && make install failed." | |||
| @@ -170,6 +175,25 @@ find ${OUTPUT_PATH} -name "*.so*" -print0 | xargs -0 chmod 500 | |||
| echo "---------------- Parser output generated ----------------" | |||
| if [[ "X$ENABLE_PARSER_UT" = "Xon" || "X$ENABLE_PARSER_COV" = "Xon" ]]; then | |||
| cp ${BUILD_PATH}/tests/ut/parser/ut_parser ${OUTPUT_PATH} | |||
| RUN_TEST_CASE=${OUTPUT_PATH}/ut_parser && ${RUN_TEST_CASE} | |||
| if [[ "$?" -ne 0 ]]; then | |||
| echo "!!! UT FAILED, PLEASE CHECK YOUR CHANGES !!!" | |||
| echo -e "\033[31m${RUN_TEST_CASE}\033[0m" | |||
| exit 1; | |||
| fi | |||
| echo "Generating coverage statistics, please wait..." | |||
| cd ${BASEPATH} | |||
| rm -rf ${BASEPATH}/cov | |||
| mkdir ${BASEPATH}/cov | |||
| lcov -c -d build/tests/ut/parser -o cov/tmp.info | |||
| lcov -r cov/tmp.info '*/output/*' '*/build/opensrc/*' '*/build/proto/*' '*/third_party/*' '*/tests/*' '/usr/local/*' '*/metadef/inc/*' -o cov/coverage.info | |||
| cd ${BASEPATH}/cov | |||
| genhtml coverage.info | |||
| fi | |||
| # generate output package in tar form, including ut/st libraries/executables | |||
| generate_package() | |||
| { | |||
| @@ -212,7 +236,7 @@ generate_package() | |||
| tar -cf parser_lib.tar fwkacllib acllib atc | |||
| } | |||
| if [[ "X$ENABLE_GE_UT" = "Xoff" ]]; then | |||
| if [[ "X$ENABLE_PARSER_UT" = "Xoff" ]]; then | |||
| generate_package | |||
| fi | |||
| echo "---------------- Parser package archive generated ----------------" | |||
| @@ -0,0 +1,64 @@ | |||
| if (HAVE_GTEST) | |||
| return() | |||
| endif() | |||
| include(ExternalProject) | |||
| if ((${CMAKE_INSTALL_PREFIX} STREQUAL /usr/local) OR | |||
| (${CMAKE_INSTALL_PREFIX} STREQUAL "C:/Program Files (x86)/ascend")) | |||
| set(CMAKE_INSTALL_PREFIX ${PARSER_DIR}/output CACHE STRING "path for install()" FORCE) | |||
| message(STATUS "No install prefix selected, default to ${CMAKE_INSTALL_PREFIX}.") | |||
| endif() | |||
| if (PARSER_PB_PKG) | |||
| set(REQ_URL "${PARSER_PB_PKG}/libs/ge_gtest/release-1.8.1.tar.gz") | |||
| set(MD5 "") | |||
| elseif (ENABLE_GITEE) | |||
| set(REQ_URL "https://gitee.com/mirrors/googletest/repository/archive/release-1.8.1.tar.gz") | |||
| set(MD5 "") | |||
| else() | |||
| set(REQ_URL "https://github.com/google/googletest/archive/release-1.8.1.tar.gz") | |||
| set(MD5 "") | |||
| endif () | |||
| set (gtest_CXXFLAGS "-D_GLIBCXX_USE_CXX11_ABI=0 -D_FORTIFY_SOURCE=2 -O2 -fstack-protector-all -Wl,-z,relro,-z,now,-z,noexecstack") | |||
| set (gtest_CFLAGS "-D_GLIBCXX_USE_CXX11_ABI=0 -D_FORTIFY_SOURCE=2 -O2 -fstack-protector-all -Wl,-z,relro,-z,now,-z,noexecstack") | |||
| ExternalProject_Add(gtest_build | |||
| URL ${REQ_URL} | |||
| TLS_VERIFY OFF | |||
| CONFIGURE_COMMAND ${CMAKE_COMMAND} -DCMAKE_CXX_FLAGS=${gtest_CXXFLAGS} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}/gtest <SOURCE_DIR> | |||
| -DBUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_MACOSX_RPATH=TRUE -Dgtest_disable_pthreads=ON | |||
| BUILD_COMMAND $(MAKE) | |||
| INSTALL_COMMAND $(MAKE) install | |||
| EXCLUDE_FROM_ALL TRUE | |||
| ) | |||
| set(GTEST_PKG_DIR ${CMAKE_INSTALL_PREFIX}/gtest) | |||
| file(MAKE_DIRECTORY ${GTEST_PKG_DIR}/include) | |||
| add_library(gtest SHARED IMPORTED) | |||
| set_target_properties(gtest PROPERTIES | |||
| IMPORTED_LOCATION ${GTEST_PKG_DIR}/lib/libgtest.so | |||
| ) | |||
| add_library(gtest_main SHARED IMPORTED) | |||
| set_target_properties(gtest_main PROPERTIES | |||
| IMPORTED_LOCATION ${GTEST_PKG_DIR}/lib/libgtest_main.so | |||
| ) | |||
| target_include_directories(gtest INTERFACE ${GTEST_PKG_DIR}/include) | |||
| target_include_directories(gtest_main INTERFACE ${GTEST_PKG_DIR}/include) | |||
| set(INSTALL_BASE_DIR "") | |||
| set(INSTALL_LIBRARY_DIR lib) | |||
| install(FILES ${GTEST_PKG_DIR}/lib/libgtest.so ${GTEST_PKG_DIR}/lib/libgtest_main.so OPTIONAL | |||
| DESTINATION ${INSTALL_LIBRARY_DIR}) | |||
| add_dependencies(gtest gtest_build) | |||
| #set(HAVE_GFLAGS TRUE CACHE BOOL "gflags build add") | |||
| set(HAVE_GTEST TRUE) | |||
| @@ -5,15 +5,20 @@ endif() | |||
| include(ExternalProject) | |||
| set(JSON_SRC_DIR ${CMAKE_BINARY_DIR}/opensrc/json/include) | |||
| #if (ENABLE_GITEE) | |||
| if (PARSER_PB_PKG) | |||
| set(REQ_URL "${PARSER_PB_PKG}/libs/ge_nlohmann_json/include.zip") | |||
| set(MD5 "") | |||
| set(JSON_INCLUDE_DIR ${JSON_SRC_DIR}) | |||
| #else if (ENABLE_GITEE) | |||
| # set(REQ_URL "https://gitee.com/mirrors/JSON-for-Modern-CPP/repository/archive/v3.6.1.zip") | |||
| # set(MD5 "5bda78ce308e6cfcf614dcf1d5ff27a7") | |||
| # set(JSON_INCLUDE_DIR "${JSON_SRC_DIR}/include") | |||
| #else() | |||
| else() | |||
| set(REQ_URL "https://github.com/nlohmann/json/releases/download/v3.6.1/include.zip") | |||
| set(MD5 "0dc903888211db3a0f170304cd9f3a89") | |||
| set(JSON_INCLUDE_DIR ${JSON_SRC_DIR}) | |||
| #endif () | |||
| endif () | |||
| ExternalProject_Add(json_build | |||
| URL ${REQ_URL} | |||
| #URL /home/txd/workspace/cloud_code/pkg/include.zip | |||
| @@ -10,11 +10,20 @@ if ((${CMAKE_INSTALL_PREFIX} STREQUAL /usr/local) OR | |||
| message(STATUS "No install prefix selected, default to ${CMAKE_INSTALL_PREFIX}.") | |||
| endif() | |||
| if (PARSER_PB_PKG) | |||
| set(REQ_URL "${PARSER_PB_PKG}/libs/securec/v1.1.10.tar.gz") | |||
| set(MD5 "") | |||
| else() | |||
| set(REQ_URL "https://gitee.com/openeuler/libboundscheck/repository/archive/v1.1.10.tar.gz") | |||
| set(MD5 "") | |||
| endif() | |||
| ExternalProject_Add(c_sec_build | |||
| URL https://gitee.com/openeuler/libboundscheck/repository/archive/v1.1.10.tar.gz | |||
| #URL /home/txd/workspace/linux_cmake/pkg/protobuf-3.8.0.tar.gz | |||
| URL ${REQ_URL} | |||
| #URL https://gitee.com/openeuler/libboundscheck/repository/archive/v1.1.10.tar.gz | |||
| #SOURCE_DIR ${PARSER_DIR}/../libc_sec | |||
| PATCH_COMMAND patch -p1 < ${PARSER_DIR}/metadef/third_party/patch/securec/0001-add-securec-cmake-script.patch | |||
| PATCH_COMMAND patch -p1 < ${PARSER_DIR}/metadef/third_party/patch/securec/0001-add-securec-cmake-script.patch | |||
| TLS_VERIFY OFF | |||
| CONFIGURE_COMMAND ${CMAKE_COMMAND} | |||
| -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} | |||
| -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} | |||
| @@ -0,0 +1,28 @@ | |||
| # Copyright 2019-2020 Huawei Technologies Co., Ltd | |||
| # | |||
| # Licensed under the Apache License, Version 2.0 (the "License"); | |||
| # you may not use this file except in compliance with the License. | |||
| # You may obtain a copy of the License at | |||
| # | |||
| # http://www.apache.org/licenses/LICENSE-2.0 | |||
| # | |||
| # Unless required by applicable law or agreed to in writing, software | |||
| # distributed under the License is distributed on an "AS IS" BASIS, | |||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| # See the License for the specific language governing permissions and | |||
| # limitations under the License. | |||
| # ============================================================================ | |||
| project(tests CXX C) | |||
| add_subdirectory(depends/slog) | |||
| add_subdirectory(depends/mmpa) | |||
| add_subdirectory(depends/profiler) | |||
| add_subdirectory(depends/error_manager) | |||
| if (ENABLE_PARSER_COV OR ENABLE_PARSER_UT) | |||
| add_subdirectory(ut) | |||
| endif() | |||
| if (ENABLE_PARSER_ST) | |||
| add_subdirectory(st) | |||
| endif() | |||
| @@ -0,0 +1,34 @@ | |||
| # Copyright 2019-2020 Huawei Technologies Co., Ltd | |||
| # | |||
| # Licensed under the Apache License, Version 2.0 (the "License"); | |||
| # you may not use this file except in compliance with the License. | |||
| # You may obtain a copy of the License at | |||
| # | |||
| # http://www.apache.org/licenses/LICENSE-2.0 | |||
| # | |||
| # Unless required by applicable law or agreed to in writing, software | |||
| # distributed under the License is distributed on an "AS IS" BASIS, | |||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| # See the License for the specific language governing permissions and | |||
| # limitations under the License. | |||
| # ============================================================================ | |||
| #cmake_minimum_required(VERSION 2.8) | |||
| project(STUB_ERROR_MANAGER) | |||
| file(GLOB_RECURSE SRCS RELATIVE ${CMAKE_CURRENT_LIST_DIR} | |||
| "src/error_manager_stub.cc" | |||
| ) | |||
| include_directories(${PARSER_DIR}/metadef/inc) | |||
| include_directories(${PARSER_DIR}/metadef/inc/external) | |||
| include_directories(${PARSER_DIR}/metadef/metadef/inc) | |||
| include_directories(${PARSER_DIR}/metadef/inc/framework) | |||
| include_directories(${PARSER_DIR}/metadef/metadef/inc/external) | |||
| include_directories(${PARSER_DIR}/metadef/third_party/fwkacllib/inc) | |||
| add_library(error_manager_stub SHARED ${SRCS}) | |||
| target_link_libraries(error_manager_stub PRIVATE | |||
| $<BUILD_INTERFACE:intf_pub> | |||
| ) | |||
| @@ -0,0 +1,95 @@ | |||
| /** | |||
| * Copyright 2019-2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "common/util/error_manager/error_manager.h" | |||
| ErrorManager &ErrorManager::GetInstance() { | |||
| static ErrorManager instance; | |||
| return instance; | |||
| } | |||
| /// | |||
| /// @brief init | |||
| /// @param [in] path: current so path | |||
| /// @return int 0(success) -1(fail) | |||
| /// | |||
| int ErrorManager::Init(std::string path) { return 0; } | |||
| /// | |||
| /// @brief Report error message | |||
| /// @param [in] error_code: error code | |||
| /// @param [in] args_map: parameter map | |||
| /// @return int 0(success) -1(fail) | |||
| /// | |||
| int ErrorManager::ReportErrMessage(std::string error_code, const std::map<std::string, std::string> &args_map) { | |||
| return 0; | |||
| } | |||
| int ErrorManager::ReportInterErrMessage(std::string error_code, const std::string &error_msg) { | |||
| return 0; | |||
| } | |||
| const std::string &ErrorManager::GetLogHeader() { | |||
| static const std::string kLogHeader("GeUtStub"); | |||
| return kLogHeader; | |||
| } | |||
| /// | |||
| /// @brief output error message | |||
| /// @param [in] handle: print handle | |||
| /// @return int 0(success) -1(fail) | |||
| /// | |||
| int ErrorManager::OutputErrMessage(int handle) { return 0; } | |||
| /// | |||
| /// @brief output message | |||
| /// @param [in] handle: print handle | |||
| /// @return int 0(success) -1(fail) | |||
| /// | |||
| int ErrorManager::OutputMessage(int handle) { return 0; } | |||
| /// | |||
| /// @brief Report error message | |||
| /// @param [in] key: vector parameter key | |||
| /// @param [in] value: vector parameter value | |||
| /// | |||
| void ErrorManager::ATCReportErrMessage(std::string error_code, const std::vector<std::string> &key, | |||
| const std::vector<std::string> &value) { | |||
| } | |||
| /// | |||
| /// @brief report graph compile failed message such as error code and op_name in mstune case | |||
| /// @param [in] msg: failed message map, key is error code, value is op_name | |||
| /// @return int 0(success) -1(fail) | |||
| /// | |||
| int ErrorManager::ReportMstuneCompileFailedMsg(const std::string &root_graph_name, | |||
| const std::map<std::string, std::string> &msg) { return 0; } | |||
| /// | |||
| /// @brief get graph compile failed message in mstune case | |||
| /// @param [in] graph_name: graph name | |||
| /// @param [out] msg_map: failed message map, key is error code, value is op_name list | |||
| /// @return int 0(success) -1(fail) | |||
| /// | |||
| int ErrorManager::GetMstuneCompileFailedMsg(const std::string &graph_name, std::map<std::string, std::vector<std::string>> &msg_map) { return 0; } | |||
| void ErrorManager::SetStage(const std::string &first_stage, const std::string &second_stage) { | |||
| } | |||
| void ErrorManager::GenWorkStreamIdDefault() { | |||
| } | |||
| @@ -0,0 +1,39 @@ | |||
| # Copyright 2019-2020 Huawei Technologies Co., Ltd | |||
| # | |||
| # Licensed under the Apache License, Version 2.0 (the "License"); | |||
| # you may not use this file except in compliance with the License. | |||
| # You may obtain a copy of the License at | |||
| # | |||
| # http://www.apache.org/licenses/LICENSE-2.0 | |||
| # | |||
| # Unless required by applicable law or agreed to in writing, software | |||
| # distributed under the License is distributed on an "AS IS" BASIS, | |||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| # See the License for the specific language governing permissions and | |||
| # limitations under the License. | |||
| # ============================================================================ | |||
| #cmake_minimum_required(VERSION 2.8) | |||
| project(STUB_MMPA) | |||
| file(GLOB_RECURSE SRCS RELATIVE ${CMAKE_CURRENT_LIST_DIR} | |||
| "src/mmpa_stub.cc" | |||
| ) | |||
| include_directories(${PARSER_DIR}/metadef/third_party/fwkacllib/inc) | |||
| include_directories(${PARSER_DIR}/metadef/third_party/graphengine/inc/framework) | |||
| include_directories(${PARSER_DIR}/metadef/inc) | |||
| include_directories(${PARSER_DIR}/metadef/inc/external) | |||
| include_directories(${PARSER_DIR}/metadef/metadef/inc) | |||
| include_directories(${PARSER_DIR}/metadef/inc/framework) | |||
| include_directories(${PARSER_DIR}/metadef/metadef/inc/external) | |||
| add_library(mmpa_stub SHARED ${SRCS}) | |||
| target_link_libraries(mmpa_stub PRIVATE | |||
| $<BUILD_INTERFACE:intf_pub> | |||
| -Wl,--no-as-needed | |||
| ascend_protobuf | |||
| -Wl,--as-needed | |||
| c_sec | |||
| ) | |||
| @@ -0,0 +1,284 @@ | |||
| /** | |||
| * Copyright 2019-2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "mmpa/mmpa_api.h" | |||
| INT32 mmOpen(const CHAR *path_name, INT32 flags) { | |||
| INT32 fd = HANDLE_INVALID_VALUE; | |||
| if (NULL == path_name) { | |||
| syslog(LOG_ERR, "The path name pointer is null.\r\n"); | |||
| return EN_INVALID_PARAM; | |||
| } | |||
| if (0 == (flags & (O_RDONLY | O_WRONLY | O_RDWR | O_CREAT))) { | |||
| syslog(LOG_ERR, "The file open mode is error.\r\n"); | |||
| return EN_INVALID_PARAM; | |||
| } | |||
| fd = open(path_name, flags); | |||
| if (fd < MMPA_ZERO) { | |||
| syslog(LOG_ERR, "Open file failed, errno is %s.\r\n", strerror(errno)); | |||
| return EN_ERROR; | |||
| } | |||
| return fd; | |||
| } | |||
| INT32 mmOpen2(const CHAR *path_name, INT32 flags, MODE mode) { | |||
| INT32 fd = HANDLE_INVALID_VALUE; | |||
| if (NULL == path_name) { | |||
| syslog(LOG_ERR, "The path name pointer is null.\r\n"); | |||
| return EN_INVALID_PARAM; | |||
| } | |||
| if (MMPA_ZERO == (flags & (O_RDONLY | O_WRONLY | O_RDWR | O_CREAT))) { | |||
| syslog(LOG_ERR, "The file open mode is error.\r\n"); | |||
| return EN_INVALID_PARAM; | |||
| } | |||
| if ((MMPA_ZERO == (mode & (S_IRUSR | S_IREAD))) && (MMPA_ZERO == (mode & (S_IWUSR | S_IWRITE)))) { | |||
| syslog(LOG_ERR, "The permission mode of the file is error.\r\n"); | |||
| return EN_INVALID_PARAM; | |||
| } | |||
| fd = open(path_name, flags, mode); | |||
| if (fd < MMPA_ZERO) { | |||
| syslog(LOG_ERR, "Open file failed, errno is %s.\r\n", strerror(errno)); | |||
| return EN_ERROR; | |||
| } | |||
| return fd; | |||
| } | |||
| INT32 mmClose(INT32 fd) { | |||
| INT32 result = EN_OK; | |||
| if (fd < MMPA_ZERO) { | |||
| syslog(LOG_ERR, "The file fd is invalid.\r\n"); | |||
| return EN_INVALID_PARAM; | |||
| } | |||
| result = close(fd); | |||
| if (EN_OK != result) { | |||
| syslog(LOG_ERR, "Close the file failed, errno is %s.\r\n", strerror(errno)); | |||
| return EN_ERROR; | |||
| } | |||
| return EN_OK; | |||
| } | |||
| mmSsize_t mmWrite(INT32 fd, VOID *mm_buf, UINT32 mm_count) { | |||
| mmSsize_t result = MMPA_ZERO; | |||
| if ((fd < MMPA_ZERO) || (NULL == mm_buf)) { | |||
| syslog(LOG_ERR, "Input parameter invalid.\r\n"); | |||
| return EN_INVALID_PARAM; | |||
| } | |||
| result = write(fd, mm_buf, (size_t)mm_count); | |||
| if (result < MMPA_ZERO) { | |||
| syslog(LOG_ERR, "Write buf to file failed, errno is %s.\r\n", strerror(errno)); | |||
| return EN_ERROR; | |||
| } | |||
| return result; | |||
| } | |||
| mmSsize_t mmRead(INT32 fd, VOID *mm_buf, UINT32 mm_count) { | |||
| mmSsize_t result = MMPA_ZERO; | |||
| if ((fd < MMPA_ZERO) || (NULL == mm_buf)) { | |||
| syslog(LOG_ERR, "Input parameter invalid.\r\n"); | |||
| return EN_INVALID_PARAM; | |||
| } | |||
| result = read(fd, mm_buf, (size_t)mm_count); | |||
| if (result < MMPA_ZERO) { | |||
| syslog(LOG_ERR, "Read file to buf failed, errno is %s.\r\n", strerror(errno)); | |||
| return EN_ERROR; | |||
| } | |||
| return result; | |||
| } | |||
| INT32 mmMkdir(const CHAR *lp_path_name, mmMode_t mode) { | |||
| INT32 t_mode = mode; | |||
| INT32 ret = EN_OK; | |||
| if (NULL == lp_path_name) { | |||
| syslog(LOG_ERR, "The input path is null.\r\n"); | |||
| return EN_INVALID_PARAM; | |||
| } | |||
| if (t_mode < MMPA_ZERO) { | |||
| syslog(LOG_ERR, "The input mode is wrong.\r\n"); | |||
| return EN_INVALID_PARAM; | |||
| } | |||
| ret = mkdir(lp_path_name, mode); | |||
| if (EN_OK != ret) { | |||
| syslog(LOG_ERR, "Failed to create the directory, the ret is %s.\r\n", strerror(errno)); | |||
| return EN_ERROR; | |||
| } | |||
| return EN_OK; | |||
| } | |||
| void *memCpyS(void *dest, const void *src, UINT32 count) { | |||
| char *tmp = (char *)dest; | |||
| char *s = (char *)src; | |||
| if (MMPA_ZERO == count) { | |||
| return dest; | |||
| } | |||
| while (count--) { | |||
| *tmp++ = *s++; | |||
| } | |||
| return dest; | |||
| } | |||
| INT32 mmRmdir(const CHAR *lp_path_name) { return rmdir(lp_path_name); } | |||
| mmTimespec mmGetTickCount() { | |||
| mmTimespec rts; | |||
| struct timespec ts = {0}; | |||
| (void)clock_gettime(CLOCK_MONOTONIC_RAW, &ts); | |||
| rts.tv_sec = ts.tv_sec; | |||
| rts.tv_nsec = ts.tv_nsec; | |||
| return rts; | |||
| } | |||
| INT32 mmGetTid() { | |||
| INT32 ret = (INT32)syscall(SYS_gettid); | |||
| if (ret < MMPA_ZERO) { | |||
| return EN_ERROR; | |||
| } | |||
| return ret; | |||
| } | |||
| INT32 mmAccess(const CHAR *path_name) { | |||
| if (path_name == NULL) { | |||
| return EN_INVALID_PARAM; | |||
| } | |||
| INT32 ret = access(path_name, F_OK); | |||
| if (ret != EN_OK) { | |||
| return EN_ERROR; | |||
| } | |||
| return EN_OK; | |||
| } | |||
| INT32 mmStatGet(const CHAR *path, mmStat_t *buffer) { | |||
| if ((path == NULL) || (buffer == NULL)) { | |||
| return EN_INVALID_PARAM; | |||
| } | |||
| INT32 ret = stat(path, buffer); | |||
| if (ret != EN_OK) { | |||
| return EN_ERROR; | |||
| } | |||
| return EN_OK; | |||
| } | |||
| INT32 mmGetFileSize(const CHAR *file_name, ULONGLONG *length) { | |||
| if ((file_name == NULL) || (length == NULL)) { | |||
| return EN_INVALID_PARAM; | |||
| } | |||
| struct stat file_stat; | |||
| (void)memset_s(&file_stat, sizeof(file_stat), 0, sizeof(file_stat)); // unsafe_function_ignore: memset | |||
| INT32 ret = lstat(file_name, &file_stat); | |||
| if (ret < MMPA_ZERO) { | |||
| return EN_ERROR; | |||
| } | |||
| *length = (ULONGLONG)file_stat.st_size; | |||
| return EN_OK; | |||
| } | |||
| INT32 mmScandir(const CHAR *path, mmDirent ***entryList, mmFilter filterFunc, mmSort sort) | |||
| { | |||
| return 0; | |||
| } | |||
| VOID mmScandirFree(mmDirent **entryList, INT32 count) | |||
| { | |||
| } | |||
| INT32 mmAccess2(const CHAR *pathName, INT32 mode) | |||
| { | |||
| return 0; | |||
| } | |||
| INT32 mmGetTimeOfDay(mmTimeval *timeVal, mmTimezone *timeZone) | |||
| { | |||
| return 0; | |||
| } | |||
| INT32 mmRealPath(const CHAR *path, CHAR *realPath, INT32 realPathLen) | |||
| { | |||
| return 0; | |||
| } | |||
| INT32 mmGetErrorCode() | |||
| { | |||
| return 0; | |||
| } | |||
| INT32 mmIsDir(const CHAR *fileName) | |||
| { | |||
| return 0; | |||
| } | |||
| INT32 mmGetEnv(const CHAR *name, CHAR *value, UINT32 len) | |||
| { | |||
| return 0; | |||
| } | |||
| INT32 mmDlclose(VOID *handle) | |||
| { | |||
| return 0; | |||
| } | |||
| CHAR *mmDlerror() | |||
| { | |||
| return ""; | |||
| } | |||
| INT32 mmDladdr(VOID *addr, mmDlInfo *info) | |||
| { | |||
| return 0; | |||
| } | |||
| VOID *mmDlopen(const CHAR *fileName, INT32 mode) | |||
| { | |||
| return NULL; | |||
| } | |||
| VOID *mmDlsym(VOID *handle, const CHAR *funcName) | |||
| { | |||
| return NULL; | |||
| } | |||
| INT32 mmGetPid() | |||
| { | |||
| return (INT32)getpid(); | |||
| } | |||
| INT32 mmDup2(INT32 oldFd, INT32 newFd) { | |||
| return -1; | |||
| } | |||
| INT32 mmDup(INT32 fd) { | |||
| return -1; | |||
| } | |||
| @@ -0,0 +1,28 @@ | |||
| # Copyright 2019-2020 Huawei Technologies Co., Ltd | |||
| # | |||
| # Licensed under the Apache License, Version 2.0 (the "License"); | |||
| # you may not use this file except in compliance with the License. | |||
| # You may obtain a copy of the License at | |||
| # | |||
| # http://www.apache.org/licenses/LICENSE-2.0 | |||
| # | |||
| # Unless required by applicable law or agreed to in writing, software | |||
| # distributed under the License is distributed on an "AS IS" BASIS, | |||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| # See the License for the specific language governing permissions and | |||
| # limitations under the License. | |||
| # ============================================================================ | |||
| #cmake_minimum_required(VERSION 2.8) | |||
| project(profiler_stub) | |||
| file(GLOB_RECURSE SRC_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} | |||
| "src/profiler_stub.cc" | |||
| ) | |||
| include_directories(${PARSER_DIR}/metadef/third_party/fwkacllib/inc) | |||
| add_library(profiler_stub SHARED ${SRC_FILES}) | |||
| target_link_libraries(profiler_stub PRIVATE | |||
| $<BUILD_INTERFACE:intf_pub> | |||
| ) | |||
| @@ -0,0 +1,34 @@ | |||
| /** | |||
| * Copyright 2019-2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "toolchain/prof_engine.h" | |||
| #include "toolchain/prof_mgr_core.h" | |||
| void * ProfMgrStartUp(const ProfMgrCfg *cfg) | |||
| { | |||
| return nullptr; | |||
| } | |||
| int ProfMgrStop(void *handle) | |||
| { | |||
| return 0; | |||
| } | |||
| int Msprof::Engine::RegisterEngine(const std::string& module, const Msprof::Engine::EngineIntf* engine) | |||
| { | |||
| return 0; | |||
| } | |||
| @@ -0,0 +1,26 @@ | |||
| # Copyright 2019-2020 Huawei Technologies Co., Ltd | |||
| # | |||
| # Licensed under the Apache License, Version 2.0 (the "License"); | |||
| # you may not use this file except in compliance with the License. | |||
| # You may obtain a copy of the License at | |||
| # | |||
| # http://www.apache.org/licenses/LICENSE-2.0 | |||
| # | |||
| # Unless required by applicable law or agreed to in writing, software | |||
| # distributed under the License is distributed on an "AS IS" BASIS, | |||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| # See the License for the specific language governing permissions and | |||
| # limitations under the License. | |||
| # ============================================================================ | |||
| #cmake_minimum_required(VERSION 2.8) | |||
| project(slog_stub) | |||
| file(GLOB_RECURSE SRC_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} | |||
| "src/*.cc" | |||
| ) | |||
| include_directories(${PARSER_DIR}/metadef/third_party/fwkacllib/inc) | |||
| add_library(slog_stub SHARED ${SRC_FILES}) | |||
| target_link_libraries(slog_stub PRIVATE | |||
| $<BUILD_INTERFACE:intf_pub> | |||
| ) | |||
| @@ -0,0 +1,48 @@ | |||
| /** | |||
| * Copyright 2019-2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "toolchain/slog.h" | |||
| #include <stdarg.h> | |||
| #include <stdio.h> | |||
| #include <string.h> | |||
| void dav_log(int module_id, const char *fmt, ...) {} | |||
| void DlogErrorInner(int module_id, const char *fmt, ...) { dav_log(module_id, fmt); } | |||
| void DlogWarnInner(int module_id, const char *fmt, ...) { dav_log(module_id, fmt); } | |||
| void DlogInfoInner(int module_id, const char *fmt, ...) { dav_log(module_id, fmt); } | |||
| void DlogDebugInner(int module_id, const char *fmt, ...) { dav_log(module_id, fmt); } | |||
| void DlogEventInner(int module_id, const char *fmt, ...) { dav_log(module_id, fmt); } | |||
| void DlogInner(int module_id, int level, const char *fmt, ...) { dav_log(module_id, fmt); } | |||
| void DlogWithKVInner(int module_id, int level, KeyValue *pst_kv_array, int kv_num, const char *fmt, ...) { | |||
| dav_log(module_id, fmt); | |||
| } | |||
| int dlog_setlevel(int module_id, int level, int enable_event) { return DLOG_DEBUG; } | |||
| int dlog_getlevel(int module_id, int *enable_event) { return DLOG_DEBUG; } | |||
| int CheckLogLevel(int moduleId, int logLevel) | |||
| { | |||
| return 1; | |||
| } | |||
| @@ -0,0 +1,24 @@ | |||
| # Copyright 2019-2020 Huawei Technologies Co., Ltd | |||
| # | |||
| # Licensed under the Apache License, Version 2.0 (the "License"); | |||
| # you may not use this file except in compliance with the License. | |||
| # You may obtain a copy of the License at | |||
| # | |||
| # http://www.apache.org/licenses/LICENSE-2.0 | |||
| # | |||
| # Unless required by applicable law or agreed to in writing, software | |||
| # distributed under the License is distributed on an "AS IS" BASIS, | |||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| # See the License for the specific language governing permissions and | |||
| # limitations under the License. | |||
| # ============================================================================ | |||
| project(ut CXX C) | |||
| if (ENABLE_PARSER_COV) | |||
| set(COVERAGE_COMPILER_FLAGS "-g --coverage -fprofile-arcs -fPIC -O0 -ftest-coverage") | |||
| set(CMAKE_CXX_FLAGS "${COVERAGE_COMPILER_FLAGS}") | |||
| endif() | |||
| add_subdirectory(parser) | |||
| @@ -0,0 +1,345 @@ | |||
| # Copyright 2019-2020 Huawei Technologies Co., Ltd | |||
| # | |||
| # Licensed under the Apache License, Version 2.0 (the "License"); | |||
| # you may not use this file except in compliance with the License. | |||
| # You may obtain a copy of the License at | |||
| # | |||
| # http://www.apache.org/licenses/LICENSE-2.0 | |||
| # | |||
| # Unless required by applicable law or agreed to in writing, software | |||
| # distributed under the License is distributed on an "AS IS" BASIS, | |||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| # See the License for the specific language governing permissions and | |||
| # limitations under the License. | |||
| # ============================================================================ | |||
| project(ut_parser) | |||
| set(CMAKE_CXX_STANDARD 11) | |||
| ################################################################################ | |||
| set(PARSER_PROTO_LIST | |||
| "${PARSER_DIR}/metadef/proto/om.proto" | |||
| "${PARSER_DIR}/metadef/proto/ge_ir.proto" | |||
| "${PARSER_DIR}/metadef/proto/task.proto" | |||
| "${PARSER_DIR}/metadef/proto/tensorflow/attr_value.proto" | |||
| "${PARSER_DIR}/metadef/proto/tensorflow/function.proto" | |||
| "${PARSER_DIR}/metadef/proto/tensorflow/graph.proto" | |||
| "${PARSER_DIR}/metadef/proto/tensorflow/graph_library.proto" | |||
| "${PARSER_DIR}/metadef/proto/tensorflow/node_def.proto" | |||
| "${PARSER_DIR}/metadef/proto/tensorflow/op_def.proto" | |||
| "${PARSER_DIR}/metadef/proto/tensorflow/resource_handle.proto" | |||
| "${PARSER_DIR}/metadef/proto/tensorflow/tensor.proto" | |||
| "${PARSER_DIR}/metadef/proto/tensorflow/tensor_shape.proto" | |||
| "${PARSER_DIR}/metadef/proto/tensorflow/types.proto" | |||
| "${PARSER_DIR}/metadef/proto/tensorflow/versions.proto" | |||
| "${PARSER_DIR}/metadef/proto/caffe/caffe.proto" | |||
| "${PARSER_DIR}/metadef/proto/onnx/ge_onnx.proto" | |||
| #"${PARSER_DIR}/metadef/proto/proto_inner/ge_onnx.proto" | |||
| ) | |||
| protobuf_generate(ge PARSER_PROTO_SRCS PARSER_PROTO_HDRS ${PARSER_PROTO_LIST}) | |||
| ############ libut_parser_proto.a ############ | |||
| add_library(ut_parser_proto STATIC | |||
| ${PARSER_PROTO_HDRS} ${PARSER_PROTO_SRCS} | |||
| ) | |||
| target_compile_definitions(ut_parser_proto PRIVATE | |||
| PROTOBUF_INLINE_NOT_IN_HEADERS=0 | |||
| google=ascend_private | |||
| ) | |||
| target_compile_options(ut_parser_proto PRIVATE | |||
| -O2 -g -fno-common | |||
| ) | |||
| target_link_libraries(ut_parser_proto PRIVATE | |||
| $<BUILD_INTERFACE:intf_pub> | |||
| ascend_protobuf | |||
| ) | |||
| ################################################################################ | |||
| set(DUPLICATE_PROTO_LIST | |||
| "${PARSER_DIR}/metadef/proto/proto_inner/ge_onnx.proto" | |||
| ) | |||
| protobuf_generate(ge DUP_PROTO_SRCS DUP_PROTO_HDRS ${DUPLICATE_PROTO_LIST}) | |||
| ################################################################################ | |||
| set(MATEDEF_SRC_FILES | |||
| "${PARSER_DIR}/metadef/graph/aligned_ptr.cc" | |||
| "${PARSER_DIR}/metadef/graph/anchor.cc" | |||
| "${PARSER_DIR}/metadef/graph/ascend_string.cc" | |||
| "${PARSER_DIR}/metadef/graph/attr_value.cc" | |||
| "${PARSER_DIR}/metadef/graph/buffer.cc" | |||
| "${PARSER_DIR}/metadef/graph/compute_graph.cc" | |||
| "${PARSER_DIR}/metadef/graph/debug/graph_debug.cc" | |||
| "${PARSER_DIR}/metadef/graph/detail/attributes_holder.cc" | |||
| "${PARSER_DIR}/metadef/graph/format_refiner.cc" | |||
| "${PARSER_DIR}/metadef/graph/ge_attr_define.cc" | |||
| "${PARSER_DIR}/metadef/graph/ge_attr_value.cc" | |||
| "${PARSER_DIR}/metadef/graph/ge_tensor.cc" | |||
| "${PARSER_DIR}/metadef/graph/gnode.cc" | |||
| "${PARSER_DIR}/metadef/graph/graph.cc" | |||
| "${PARSER_DIR}/metadef/graph/inference_context.cc" | |||
| "${PARSER_DIR}/metadef/graph/model.cc" | |||
| "${PARSER_DIR}/metadef/graph/model_serialize.cc" | |||
| "${PARSER_DIR}/metadef/graph/node.cc" | |||
| "${PARSER_DIR}/metadef/graph/op_desc.cc" | |||
| "${PARSER_DIR}/metadef/graph/operator.cc" | |||
| "${PARSER_DIR}/metadef/graph/operator_factory.cc" | |||
| "${PARSER_DIR}/metadef/graph/operator_factory_impl.cc" | |||
| "${PARSER_DIR}/metadef/graph/opsproto/opsproto_manager.cc" | |||
| "${PARSER_DIR}/metadef/graph/option/ge_context.cc" | |||
| "${PARSER_DIR}/metadef/graph/option/ge_local_context.cc" | |||
| "${PARSER_DIR}/metadef/graph/ref_relation.cc" | |||
| "${PARSER_DIR}/metadef/graph/runtime_inference_context.cc" | |||
| "${PARSER_DIR}/metadef/graph/shape_refiner.cc" | |||
| "${PARSER_DIR}/metadef/graph/tensor.cc" | |||
| "${PARSER_DIR}/metadef/graph/types.cc" | |||
| "${PARSER_DIR}/metadef/graph/utils/anchor_utils.cc" | |||
| "${PARSER_DIR}/metadef/graph/utils/ge_ir_utils.cc" | |||
| "${PARSER_DIR}/metadef/graph/utils/graph_utils.cc" | |||
| "${PARSER_DIR}/metadef/graph/utils/node_utils.cc" | |||
| "${PARSER_DIR}/metadef/graph/utils/op_desc_utils.cc" | |||
| "${PARSER_DIR}/metadef/graph/utils/tensor_utils.cc" | |||
| "${PARSER_DIR}/metadef/graph/utils/transformer_utils.cc" | |||
| "${PARSER_DIR}/metadef/graph/utils/tuning_utils.cc" | |||
| "${PARSER_DIR}/metadef/graph/utils/type_utils.cc" | |||
| "${PARSER_DIR}/metadef/ops/op_imp.cpp" | |||
| "${PARSER_DIR}/metadef/third_party/transformer/src/axis_util.cc" | |||
| "${PARSER_DIR}/metadef/third_party/transformer/src/expand_dimension.cc" | |||
| "${PARSER_DIR}/metadef/third_party/transformer/src/transfer_shape_according_to_format.cc" | |||
| ) | |||
| # include directories | |||
| include_directories(${CMAKE_CURRENT_LIST_DIR}) | |||
| include_directories(${PARSER_DIR}/metadef/inc) | |||
| include_directories(${PARSER_DIR}/metadef/inc/graph) | |||
| include_directories(${PARSER_DIR}/metadef/inc/external) | |||
| include_directories(${PARSER_DIR}/metadef/inc/external/graph) | |||
| include_directories(${PARSER_DIR}/metadef/graph) | |||
| include_directories(${PARSER_DIR}/metadef/third_party) | |||
| include_directories(${PARSER_DIR}/metadef/third_party/graphengine/inc) | |||
| include_directories(${PARSER_DIR}/metadef/third_party/graphengine/inc/external) | |||
| include_directories(${PARSER_DIR}/metadef/third_party/graphengine/inc/external/ge) | |||
| include_directories(${PARSER_DIR}/metadef/third_party/fwkacllib/inc) | |||
| include_directories(${PARSER_DIR}/metadef/third_party/transformer/inc) | |||
| include_directories(${PARSER_DIR}/metadef) | |||
| include_directories(${CMAKE_BINARY_DIR}/proto/ge) | |||
| include_directories(${CMAKE_BINARY_DIR}/proto/ge/proto) | |||
| ############ libut_parser_graph.a ############ | |||
| add_library(ut_parser_graph STATIC | |||
| ${MATEDEF_SRC_FILES} ${PARSER_PROTO_HDRS} ${DUP_PROTO_HDRS} | |||
| ) | |||
| target_compile_definitions(ut_parser_graph PRIVATE | |||
| google=ascend_private | |||
| ) | |||
| target_compile_options(ut_parser_graph PRIVATE | |||
| -O2 -g -fno-common | |||
| ) | |||
| target_link_libraries(ut_parser_graph PRIVATE | |||
| $<BUILD_INTERFACE:intf_pub> | |||
| c_sec ascend_protobuf | |||
| ) | |||
| ################################################################################ | |||
| set(REGISTER_SRC_FILES | |||
| "${PARSER_DIR}/metadef/register/auto_mapping_util.cpp" | |||
| "${PARSER_DIR}/metadef/register/graph_optimizer/buffer_fusion/buffer_fusion_pass_base.cc" | |||
| "${PARSER_DIR}/metadef/register/graph_optimizer/buffer_fusion/buffer_fusion_pass_registry.cc" | |||
| "${PARSER_DIR}/metadef/register/graph_optimizer/buffer_fusion/buffer_fusion_pattern.cc" | |||
| "${PARSER_DIR}/metadef/register/graph_optimizer/fusion_statistic/fusion_statistic_recorder.cc" | |||
| "${PARSER_DIR}/metadef/register/graph_optimizer/graph_fusion/fusion_pass_registry.cc" | |||
| "${PARSER_DIR}/metadef/register/graph_optimizer/graph_fusion/fusion_pattern.cc" | |||
| "${PARSER_DIR}/metadef/register/graph_optimizer/graph_fusion/graph_fusion_pass_base.cc" | |||
| "${PARSER_DIR}/metadef/register/graph_optimizer/graph_fusion/pattern_fusion_base_pass.cc" | |||
| "${PARSER_DIR}/metadef/register/graph_optimizer/graph_fusion/pattern_fusion_base_pass_impl.cc" | |||
| "${PARSER_DIR}/metadef/register/host_cpu_context.cc" | |||
| "${PARSER_DIR}/metadef/register/infer_data_slice_registry.cc" | |||
| "${PARSER_DIR}/metadef/register/ops_kernel_builder_registry.cc" | |||
| "${PARSER_DIR}/metadef/register/op_kernel_registry.cpp" | |||
| "${PARSER_DIR}/metadef/register/op_tiling.cpp" | |||
| "${PARSER_DIR}/metadef/register/op_tiling_registry.cpp" | |||
| "${PARSER_DIR}/metadef/register/register.cpp" | |||
| "${PARSER_DIR}/metadef/register/register_format_transfer.cc" | |||
| "${PARSER_DIR}/metadef/register/register_pass.cpp" | |||
| "${PARSER_DIR}/metadef/register/scope/scope_graph.cc" | |||
| "${PARSER_DIR}/metadef/register/scope/scope_pass.cc" | |||
| "${PARSER_DIR}/metadef/register/scope/scope_pass_registry.cc" | |||
| "${PARSER_DIR}/metadef/register/scope/scope_pattern.cc" | |||
| "${PARSER_DIR}/metadef/register/scope/scope_util.cc" | |||
| "${PARSER_DIR}/metadef/register/tensor_assign.cpp" | |||
| ) | |||
| # include directories | |||
| include_directories(${CMAKE_CURRENT_LIST_DIR}) | |||
| include_directories(${CMAKE_BINARY_DIR}/proto/ge) | |||
| include_directories(${PARSER_DIR}/metadef) | |||
| include_directories(${PARSER_DIR}/metadef/graph) | |||
| include_directories(${PARSER_DIR}/metadef/inc) | |||
| include_directories(${PARSER_DIR}/metadef/inc/external) | |||
| include_directories(${PARSER_DIR}/metadef/inc/register) | |||
| include_directories(${PARSER_DIR}/metadef/third_party/fwkacllib/inc) | |||
| include_directories(${PARSER_DIR}/metadef/third_party/graphengine/inc) | |||
| include_directories(${PARSER_DIR}/metadef/third_party/graphengine/inc/external) | |||
| include_directories(${PARSER_DIR}/metadef/third_party/graphengine/inc/framework) | |||
| ############ libut_parser_register.a ############ | |||
| add_library(ut_parser_register STATIC | |||
| ${REGISTER_SRC_FILES} ${PARSER_PROTO_HDRS} | |||
| ) | |||
| target_compile_definitions(ut_parser_register PRIVATE | |||
| google=ascend_private | |||
| ) | |||
| target_compile_options(ut_parser_register PRIVATE | |||
| -O2 -g -fno-common | |||
| ) | |||
| target_link_libraries(ut_parser_register PRIVATE | |||
| $<BUILD_INTERFACE:intf_pub> | |||
| c_sec ascend_protobuf json | |||
| ) | |||
| ################################################################################ | |||
| set(PARSER_SRC_FILES | |||
| "${PARSER_DIR}/parser/caffe/caffe_custom_parser_adapter.cc" | |||
| "${PARSER_DIR}/parser/caffe/caffe_data_parser.cc" | |||
| "${PARSER_DIR}/parser/caffe/caffe_op_parser.cc" | |||
| "${PARSER_DIR}/parser/caffe/caffe_parser.cc" | |||
| "${PARSER_DIR}/parser/caffe/caffe_reshape_parser.cc" | |||
| "${PARSER_DIR}/parser/common/acl_graph_parser_util.cc" | |||
| "${PARSER_DIR}/parser/common/convert/pb2json.cc" | |||
| "${PARSER_DIR}/parser/common/data_op_parser.cc" | |||
| "${PARSER_DIR}/parser/common/model_saver.cc" | |||
| "${PARSER_DIR}/parser/common/op_def/arg_op.cc" | |||
| "${PARSER_DIR}/parser/common/op_def/constant_op.cc" | |||
| "${PARSER_DIR}/parser/common/op_def/defs.cc" | |||
| "${PARSER_DIR}/parser/common/op_def/fill_op.cc" | |||
| "${PARSER_DIR}/parser/common/op_def/frameworkop_op.cc" | |||
| "${PARSER_DIR}/parser/common/op_def/ir_pb_converter.cc" | |||
| "${PARSER_DIR}/parser/common/op_def/no_op_op.cc" | |||
| "${PARSER_DIR}/parser/common/op_def/operator.cc" | |||
| "${PARSER_DIR}/parser/common/op_def/op_schema.cc" | |||
| "${PARSER_DIR}/parser/common/op_def/ref_switch_op.cc" | |||
| "${PARSER_DIR}/parser/common/op_def/shape_n_op.cc" | |||
| "${PARSER_DIR}/parser/common/op_def/variable_op.cc" | |||
| "${PARSER_DIR}/parser/common/op_def/var_is_initialized_op_op.cc" | |||
| "${PARSER_DIR}/parser/common/op_map.cc" | |||
| "${PARSER_DIR}/parser/common/op_parser_factory.cc" | |||
| "${PARSER_DIR}/parser/common/parser_api.cc" | |||
| "${PARSER_DIR}/parser/common/parser_factory.cc" | |||
| "${PARSER_DIR}/parser/common/parser_fp16_t.cc" | |||
| "${PARSER_DIR}/parser/common/parser_inner_ctx.cc" | |||
| "${PARSER_DIR}/parser/common/parser_types.cc" | |||
| "${PARSER_DIR}/parser/common/parser_utils.cc" | |||
| "${PARSER_DIR}/parser/common/pass_manager.cc" | |||
| "${PARSER_DIR}/parser/common/pre_checker.cc" | |||
| "${PARSER_DIR}/parser/common/proto_file_parser.cc" | |||
| "${PARSER_DIR}/parser/common/register_tbe.cc" | |||
| "${PARSER_DIR}/parser/common/tbe_plugin_loader.cc" | |||
| "${PARSER_DIR}/parser/common/thread_pool.cc" | |||
| "${PARSER_DIR}/parser/onnx/onnx_constant_parser.cc" | |||
| "${PARSER_DIR}/parser/onnx/onnx_custom_parser_adapter.cc" | |||
| "${PARSER_DIR}/parser/onnx/onnx_data_parser.cc" | |||
| "${PARSER_DIR}/parser/onnx/onnx_parser.cc" | |||
| "${PARSER_DIR}/parser/onnx/onnx_util.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/graph_functiondef.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/graph_optimizer.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/iterator_fusion_pass.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/scope/scope_pass_manager.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/tensorflow_arg_parser.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/tensorflow_auto_mapping_parser_adapter.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/tensorflow_constant_parser.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/tensorflow_custom_parser_adapter.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/tensorflow_data_parser.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/tensorflow_enter_parser.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/tensorflow_fill_parser.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/tensorflow_frameworkop_parser.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/tensorflow_fusionop_util.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/tensorflow_fusion_custom_parser_adapter.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/tensorflow_fusion_op_parser.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/tensorflow_identity_parser.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/tensorflow_merge_parser.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/tensorflow_no_op_parser.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/tensorflow_parser.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/tensorflow_ref_switch_parser.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/tensorflow_reshape_parser.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/tensorflow_shape_n_parser.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/tensorflow_squeeze_parser.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/tensorflow_util.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/tensorflow_variable_v2_parser.cc" | |||
| "${PARSER_DIR}/parser/tensorflow/tensorflow_var_is_initialized_op_parser.cc" | |||
| ) | |||
| # include directories | |||
| include_directories(${CMAKE_CURRENT_LIST_DIR}) | |||
| include_directories(${CMAKE_BINARY_DIR}/proto/ge) | |||
| include_directories(${PARSER_DIR}) | |||
| include_directories(${PARSER_DIR}/inc) | |||
| include_directories(${PARSER_DIR}/parser) | |||
| include_directories(${PARSER_DIR}/metadef/inc) | |||
| include_directories(${PARSER_DIR}/metadef/inc/external) | |||
| include_directories(${PARSER_DIR}/metadef/inc/register) | |||
| include_directories(${PARSER_DIR}/metadef/third_party/fwkacllib/inc) | |||
| include_directories(${PARSER_DIR}/metadef/third_party/graphengine/inc) | |||
| include_directories(${PARSER_DIR}/metadef/third_party/graphengine/inc/external) | |||
| include_directories(${PARSER_DIR}/metadef/third_party/graphengine/inc/framework) | |||
| set(PARSER_UT_FILES | |||
| "testcase/parser_unittest.cc" | |||
| ) | |||
| ############ libut_parser_common.a ############ | |||
| add_library(ut_parser_common STATIC | |||
| ${PARSER_SRC_FILES} ${PARSER_PROTO_HDRS} | |||
| ) | |||
| target_compile_definitions(ut_parser_common PRIVATE | |||
| google=ascend_private | |||
| ) | |||
| target_compile_options(ut_parser_common PRIVATE | |||
| -g --coverage -fprofile-arcs -ftest-coverage | |||
| -Werror=format | |||
| ) | |||
| target_link_libraries(ut_parser_common PRIVATE | |||
| $<BUILD_INTERFACE:intf_pub> | |||
| ut_parser_proto ut_parser_graph c_sec | |||
| ascend_protobuf | |||
| json | |||
| ) | |||
| ################################################################################ | |||
| add_executable(ut_parser | |||
| ${PARSER_UT_FILES} ${PARSER_PROTO_SRCS} | |||
| ) | |||
| target_compile_options(ut_parser PRIVATE | |||
| -g | |||
| ) | |||
| target_compile_definitions(ut_parser PRIVATE | |||
| google=ascend_private | |||
| ) | |||
| target_link_libraries(ut_parser | |||
| $<BUILD_INTERFACE:intf_pub> | |||
| ut_parser_proto | |||
| -Wl,--whole-archive ut_parser_common -Wl,--no-whole-archive | |||
| ut_parser_graph ut_parser_register error_manager_stub mmpa_stub | |||
| gtest gtest_main slog_stub ascend_protobuf c_sec -lrt -ldl -lgcov | |||
| ) | |||
| @@ -0,0 +1,37 @@ | |||
| /** | |||
| * Copyright 2019-2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include <gtest/gtest.h> | |||
| #include <iostream> | |||
| #include "parser/common/op_parser_factory.h" | |||
| namespace ge { | |||
| class UtestParser : public testing::Test { | |||
| protected: | |||
| void SetUp() {} | |||
| void TearDown() {} | |||
| }; | |||
| TEST_F(UtestParser, base) { | |||
| std::shared_ptr<OpParserFactory> factory = OpParserFactory::Instance(domi::TENSORFLOW); | |||
| EXPECT_NE(factory, nullptr); | |||
| } | |||
| } // namespace ge | |||