| @@ -27,7 +27,7 @@ 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 | |||
| -DBUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON -DCMAKE_MACOSX_RPATH=TRUE | |||
| BUILD_COMMAND $(MAKE) | |||
| INSTALL_COMMAND $(MAKE) install | |||
| EXCLUDE_FROM_ALL TRUE | |||
| @@ -52,10 +52,27 @@ set_target_properties(gtest_main PROPERTIES | |||
| target_include_directories(gtest INTERFACE ${GTEST_PKG_DIR}/include) | |||
| target_include_directories(gtest_main INTERFACE ${GTEST_PKG_DIR}/include) | |||
| add_library(gmock SHARED IMPORTED) | |||
| set_target_properties(gmock PROPERTIES | |||
| IMPORTED_LOCATION ${GTEST_PKG_DIR}/lib/libgmock.so | |||
| ) | |||
| add_library(gmock_main SHARED IMPORTED) | |||
| set_target_properties(gmock_main PROPERTIES | |||
| IMPORTED_LOCATION ${GTEST_PKG_DIR}/lib/libgmock_main.so | |||
| ) | |||
| target_include_directories(gmock INTERFACE ${GTEST_PKG_DIR}/include) | |||
| target_include_directories(gmock_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 | |||
| install(FILES ${GTEST_PKG_DIR}/lib/libgtest.so ${GTEST_PKG_DIR}/lib/libgtest_main.so ${GTEST_PKG_DIR}/lib/libgmock.so ${GTEST_PKG_DIR}/lib/libgmock_main.so OPTIONAL | |||
| DESTINATION ${INSTALL_LIBRARY_DIR}) | |||
| add_dependencies(gtest gtest_build) | |||
| @@ -1028,7 +1028,8 @@ target_compile_definitions(ut_libge_multiparts_utest PRIVATE | |||
| target_link_libraries(ut_libge_multiparts_utest | |||
| $<BUILD_INTERFACE:intf_pub> | |||
| ge_build_common ge_load_common ge_execute_common ge_optimize_common ge_partition_common ge_prepare_common ge_single_op ge_ut_common gtest gtest_main ascend_protobuf ${COMMON_SHARED_LIBRARIES} json -lrt -ldl -lgcov | |||
| ge_build_common ge_load_common ge_execute_common ge_optimize_common ge_partition_common ge_prepare_common ge_single_op ge_ut_common | |||
| gtest gtest_main gmock gmock_main ascend_protobuf ${COMMON_SHARED_LIBRARIES} json -lrt -ldl -lgcov | |||
| ) | |||
| # libge_others_utest | |||
| @@ -1047,7 +1048,8 @@ target_compile_options(ut_libge_others_utest PRIVATE | |||
| target_link_libraries(ut_libge_others_utest | |||
| $<BUILD_INTERFACE:intf_pub> | |||
| ge_load_common ge_execute_common ge_ut_common gtest gtest_main ascend_protobuf ${COMMON_SHARED_LIBRARIES} json -lrt -ldl -lgcov | |||
| ge_load_common ge_execute_common ge_ut_common | |||
| gtest gtest_main gmock gmock_main ascend_protobuf ${COMMON_SHARED_LIBRARIES} json -lrt -ldl -lgcov | |||
| ) | |||
| # libge_kernel_utest | |||
| @@ -1065,7 +1067,8 @@ target_compile_options(ut_libge_kernel_utest PRIVATE | |||
| target_link_libraries(ut_libge_kernel_utest | |||
| $<BUILD_INTERFACE:intf_pub> | |||
| ge_load_common ge_ut_common gtest gtest_main ascend_protobuf ${COMMON_SHARED_LIBRARIES} json -lrt -ldl -lgcov | |||
| ge_load_common ge_ut_common | |||
| gtest gtest_main gmock gmock_main ascend_protobuf ${COMMON_SHARED_LIBRARIES} json -lrt -ldl -lgcov | |||
| ) | |||
| # libge_distinct_load_utest | |||
| @@ -1090,10 +1093,10 @@ target_compile_definitions(ut_libge_distinct_load_utest PRIVATE | |||
| ) | |||
| target_link_libraries(ut_libge_distinct_load_utest | |||
| ${COMMON_SHARED_LIBRARIES} | |||
| $<BUILD_INTERFACE:intf_pub> | |||
| ge_execute_common ge_ut_common_format ge_load_common | |||
| ge_single_op ge_prepare_common | |||
| ge_optimize_common ge_build_common ge_partition_common ge_ut_common | |||
| gtest gtest_main ascend_protobuf json c_sec -lrt -ldl -lpthread -lgcov | |||
| ${COMMON_SHARED_LIBRARIES} | |||
| $<BUILD_INTERFACE:intf_pub> | |||
| ge_execute_common ge_ut_common_format ge_load_common | |||
| ge_single_op ge_prepare_common | |||
| ge_optimize_common ge_build_common ge_partition_common ge_ut_common | |||
| gtest gtest_main gmock gmock_main ascend_protobuf json c_sec -lrt -ldl -lpthread -lgcov | |||
| ) | |||
| @@ -15,6 +15,7 @@ | |||
| */ | |||
| #include <gtest/gtest.h> | |||
| #include <gmock/gmock.h> | |||
| #define private public | |||
| #define protected public | |||
| @@ -897,4 +898,48 @@ TEST_F(UtestDavinciModel, Sink_time_profile) { | |||
| model.SinkTimeProfile(current_data); | |||
| } | |||
| class ClassTest { | |||
| public: | |||
| virtual ~ClassTest() {} | |||
| virtual int func0() { | |||
| return 0; | |||
| } | |||
| virtual int func1(int a) { | |||
| return a; | |||
| } | |||
| virtual int func2(int a, int b) { | |||
| return a + b; | |||
| } | |||
| virtual int func3(int a, int b) const { | |||
| return a - b; | |||
| } | |||
| }; | |||
| class MockTest : public ClassTest { | |||
| public: | |||
| MOCK_METHOD0(func0, int()); | |||
| MOCK_METHOD1(func1, int(int a)); | |||
| MOCK_METHOD2(func2, int(int a, int b)); | |||
| MOCK_CONST_METHOD2(func3, int(int a, int b)); | |||
| }; | |||
| TEST_F(UtestDavinciModel, simple_test_gmock) { | |||
| MockTest mock_stub; | |||
| ON_CALL(mock_stub, func0()).WillByDefault(testing::Return(250)); | |||
| EXPECT_EQ(mock_stub.func0(), 250); | |||
| EXPECT_EQ(mock_stub.func0(), 250); | |||
| EXPECT_EQ(mock_stub.func0(), 250); | |||
| EXPECT_CALL(mock_stub, func1(testing::_)).Times(2).WillOnce(testing::Return(1024)).WillOnce(testing::Return(250)); | |||
| EXPECT_EQ(mock_stub.func1(1), 1024); | |||
| EXPECT_EQ(mock_stub.func1(1), 250); | |||
| EXPECT_CALL(mock_stub, func2(testing::_, 5)).Times(3).WillRepeatedly(testing::Return(1023)); | |||
| EXPECT_EQ(mock_stub.func2(1, 5), 1023); | |||
| EXPECT_EQ(mock_stub.func2(2, 5), 1023); | |||
| EXPECT_EQ(mock_stub.func2(3, 5), 1023); | |||
| } | |||
| } // namespace ge | |||