Browse Source

enable gmock for test

tags/v1.2.0
zhangxiaokun 3 years ago
parent
commit
d5849832d3
3 changed files with 76 additions and 11 deletions
  1. +19
    -2
      cmake/external_libs/gtest.cmake
  2. +12
    -9
      tests/ut/ge/CMakeLists.txt
  3. +45
    -0
      tests/ut/ge/graph/load/davinci_model_unittest.cc

+ 19
- 2
cmake/external_libs/gtest.cmake View File

@@ -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)


+ 12
- 9
tests/ut/ge/CMakeLists.txt View File

@@ -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
)

+ 45
- 0
tests/ut/ge/graph/load/davinci_model_unittest.cc View File

@@ -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

Loading…
Cancel
Save