From: @zhangxiaokun9 Reviewed-by: @xchu42,@ji_chen Signed-off-by: @ji_chentags/v1.2.0
| @@ -27,7 +27,7 @@ ExternalProject_Add(gtest_build | |||||
| URL ${REQ_URL} | URL ${REQ_URL} | ||||
| TLS_VERIFY OFF | TLS_VERIFY OFF | ||||
| CONFIGURE_COMMAND ${CMAKE_COMMAND} -DCMAKE_CXX_FLAGS=${gtest_CXXFLAGS} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}/gtest <SOURCE_DIR> | 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) | BUILD_COMMAND $(MAKE) | ||||
| INSTALL_COMMAND $(MAKE) install | INSTALL_COMMAND $(MAKE) install | ||||
| EXCLUDE_FROM_ALL TRUE | 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 INTERFACE ${GTEST_PKG_DIR}/include) | ||||
| target_include_directories(gtest_main 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_BASE_DIR "") | ||||
| set(INSTALL_LIBRARY_DIR lib) | 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}) | DESTINATION ${INSTALL_LIBRARY_DIR}) | ||||
| add_dependencies(gtest gtest_build) | add_dependencies(gtest gtest_build) | ||||
| @@ -1029,7 +1029,8 @@ target_compile_definitions(ut_libge_multiparts_utest PRIVATE | |||||
| target_link_libraries(ut_libge_multiparts_utest | target_link_libraries(ut_libge_multiparts_utest | ||||
| $<BUILD_INTERFACE:intf_pub> | $<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 | # libge_others_utest | ||||
| @@ -1048,7 +1049,8 @@ target_compile_options(ut_libge_others_utest PRIVATE | |||||
| target_link_libraries(ut_libge_others_utest | target_link_libraries(ut_libge_others_utest | ||||
| $<BUILD_INTERFACE:intf_pub> | $<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 | # libge_kernel_utest | ||||
| @@ -1066,7 +1068,8 @@ target_compile_options(ut_libge_kernel_utest PRIVATE | |||||
| target_link_libraries(ut_libge_kernel_utest | target_link_libraries(ut_libge_kernel_utest | ||||
| $<BUILD_INTERFACE:intf_pub> | $<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 | # libge_distinct_load_utest | ||||
| @@ -1091,10 +1094,10 @@ target_compile_definitions(ut_libge_distinct_load_utest PRIVATE | |||||
| ) | ) | ||||
| target_link_libraries(ut_libge_distinct_load_utest | 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 <gtest/gtest.h> | ||||
| #include <gmock/gmock.h> | |||||
| #define private public | #define private public | ||||
| #define protected public | #define protected public | ||||
| @@ -897,4 +898,48 @@ TEST_F(UtestDavinciModel, Sink_time_profile) { | |||||
| model.SinkTimeProfile(current_data); | 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 | } // namespace ge | ||||