提交 d2ea15de 编写于 作者: W wujing 提交者: lifeng68

add ctest(&& MemCheck) for CI

Signed-off-by: Nwujing <wujing50@huawei.com>
上级 ba403ff8
......@@ -70,21 +70,25 @@ source $basepath/install_depends.sh
echo_success "===================RUN DT-LLT TESTCASES START========================="
cd $ISULAD_COPY_PATH
rm -rf build
cd ./test
mkdir build && cd build
if [[ "x${GCOV}" == "xON" ]]; then
./test.sh -mcoverage -c -r -t
if [[ $? -ne 0 ]]; then
exit 1
fi
ISULAD_SRC_PATH=$(env | grep TOPDIR | awk -F = '{print $2}')
tar -zcf $ISULAD_SRC_PATH/isulad-llt-gcov.tar.gz ./coverage
cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_COVERAGE=ON -DENABLE_UT=ON ..
make -j $(nproc)
ctest # && ctest -T memcheck
if [[ $? -ne 0 ]]; then
exit 1
fi
make coverage
ISULAD_SRC_PATH=$(env | grep TOPDIR | awk -F = '{print $2}')
tar -zcf $ISULAD_SRC_PATH/isulad-llt-gcov.tar.gz ./test/coverage/
else
./test.sh -m -c -r
if [[ $? -ne 0 ]]; then
exit 1
fi
cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_UT=ON ..
make -j $(nproc)
ctest
if [[ $? -ne 0 ]]; then
exit 1
fi
fi
./test.sh -e
echo_success "===================RUN DT-LLT TESTCASES END========================="
cd $ISULAD_COPY_PATH
......
......@@ -56,6 +56,9 @@ include(cmake/protoc.cmake)
# unit test and coverage
SET(CMAKE_VERBOSE_MAKEFILE OFF)
IF(ENABLE_COVERAGE)
IF(NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
message(WARNING "Debugging mode should be turned on when generating code coverage reports, otherwise coverage may be inaccurate")
ENDIF()
MESSAGE(STATUS "Enable coverage compile option")
SET(COVERAGE_C_OPTION "${COVERAGE_OPTION} -fprofile-arcs -ftest-coverage -fkeep-inline-functions")
SET(COVERAGE_CXX_OPTION "${COVERAGE_OPTION} -fprofile-arcs -ftest-coverage")
......@@ -74,6 +77,10 @@ ENDIF()
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src)
OPTION(ENABLE_UT "ut switch" OFF)
IF(ENABLE_UT)
include(CTest)
include(Dart)
find_program(MEMORYCHECK_COMMAND NAMES valgrind)
set(MEMORYCHECK_COMMAND_OPTIONS "--trace-children=yes --leak-check=full")
enable_testing()
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/test)
ENDIF(ENABLE_UT)
......
......@@ -44,3 +44,26 @@ add_subdirectory(cmd)
add_subdirectory(runtime)
add_subdirectory(specs)
add_subdirectory(services)
IF(ENABLE_COVERAGE)
add_custom_target(coverage
COMMAND lcov --directory . --zerocounters
COMMAND lcov -c -i -d . -o coverage.base
COMMAND ctest
COMMAND lcov --directory . --capture --output-file coverage.info
COMMAND lcov -a coverage.base -a coverage.info --output-file coverage.total
COMMAND lcov --remove coverage.total ${COVERAGE_EXCLUDES} --output-file ${PROJECT_BINARY_DIR}/coverage.info.cleaned
COMMAND genhtml -o coverage ${PROJECT_BINARY_DIR}/coverage.info.cleaned
COMMAND ${CMAKE_COMMAND} -E remove coverage.base coverage.total ${PROJECT_BINARY_DIR}/coverage.info.cleaned
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
COMMENT "generating report..."
)
add_custom_command(TARGET coverage POST_BUILD
COMMAND ;
COMMENT "open .test/coverage/index.html in browser to view the coverage analysis report."
)
ENDIF(ENABLE_COVERAGE)
......@@ -46,3 +46,4 @@ target_include_directories(${EXE} PUBLIC
${CMAKE_BINARY_DIR}/conf
)
target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} -lgrpc++ -lprotobuf -lcrypto -lyajl -lz)
add_test(NAME ${EXE} COMMAND ${EXE})
......@@ -47,4 +47,5 @@ target_include_directories(${EXE} PUBLIC
${CMAKE_BINARY_DIR}/conf
)
target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} -lgrpc++ -lprotobuf -lcrypto -lyajl -lz)
add_test(NAME ${EXE} COMMAND ${EXE})
......@@ -48,3 +48,4 @@ target_include_directories(${EXE} PUBLIC
${CMAKE_BINARY_DIR}/conf
)
target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} -lgrpc++ -lprotobuf -lcrypto -lyajl -lz)
add_test(NAME ${EXE} COMMAND ${EXE})
......@@ -48,3 +48,4 @@ target_include_directories(${EXE} PUBLIC
${CMAKE_BINARY_DIR}/conf
)
target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} -lgrpc++ -lprotobuf -lcrypto -lyajl -lz)
add_test(NAME ${EXE} COMMAND ${EXE})
......@@ -14,3 +14,4 @@ target_include_directories(${EXE} PUBLIC
${CMAKE_BINARY_DIR}/conf
)
target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} -lyajl)
add_test(NAME ${EXE} COMMAND ${EXE})
......@@ -26,3 +26,4 @@ target_include_directories(${EXE} PUBLIC
)
set_target_properties(${EXE} PROPERTIES LINK_FLAGS "-Wl,--wrap,calloc")
target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} -lcrypto -lyajl -lz)
add_test(NAME ${EXE} COMMAND ${EXE})
......@@ -25,3 +25,4 @@ target_include_directories(${EXE} PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../../../src/utils/cutils
)
target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} -lcrypto -lyajl -lz)
add_test(NAME ${EXE} COMMAND ${EXE})
......@@ -26,3 +26,4 @@ target_include_directories(${EXE} PUBLIC
)
set_target_properties(${EXE} PROPERTIES LINK_FLAGS "-Wl,--wrap,util_strdup_s -Wl,--wrap,calloc -Wl,--wrap,strcat_s")
target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} -lcrypto -lyajl -lz)
add_test(NAME ${EXE} COMMAND ${EXE})
......@@ -60,3 +60,4 @@ target_include_directories(${EXE} PUBLIC
set_target_properties(${EXE} PROPERTIES LINK_FLAGS "-Wl,--wrap,util_common_calloc_s -Wl,--wrap,util_smart_calloc_s -Wl,--wrap,merge_env")
target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} -lgrpc++ -lprotobuf -lcrypto -lyajl -lz)
add_test(NAME ${EXE} COMMAND ${EXE})
......@@ -23,8 +23,8 @@
#include "isula_libutils/container_config.h"
#include "oci_ut_common.h"
#define IMAGETOOL_IMAGE_FILE "image/oci/oci_config_merge/imagetool_image.json"
#define OCI_RUNTIME_SPEC_FILE "image/oci/oci_config_merge/oci_runtime_spec.json"
#define IMAGETOOL_IMAGE_FILE "../../../../../test/image/oci/oci_config_merge/imagetool_image.json"
#define OCI_RUNTIME_SPEC_FILE "../../../../../test/image/oci/oci_config_merge/oci_runtime_spec.json"
#define MALLOC_COUNT 5
static int g_malloc_count = 0;
......
......@@ -59,3 +59,4 @@ target_include_directories(${EXE} PUBLIC
)
target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} -lcrypto -lyajl -lz libhttpclient)
add_test(NAME ${EXE} COMMAND ${EXE})
......@@ -64,6 +64,7 @@ std::string get_dir()
}
}
return static_cast<std::string>(abs_path) + "../../../../../test/image/oci/registry";
return static_cast<std::string>(abs_path);
}
......
......@@ -42,3 +42,4 @@ target_include_directories(${EXE} PUBLIC
)
target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} -lcrypto -lyajl -lz)
add_test(NAME ${EXE} COMMAND ${EXE})
......@@ -60,7 +60,7 @@ std::string GetDirectory()
}
}
return static_cast<std::string>(abs_path);
return static_cast<std::string>(abs_path) + "../../../../../../test/image/oci/storage/images";
}
bool dirExists(const char *path)
......
......@@ -60,6 +60,8 @@ target_link_libraries(${DRIVER_EXE}
${LIBTAR_LIBRARY}
-lwebsockets -lcrypto -lyajl -larchive -ldevmapper -lz)
add_test(NAME ${DRIVER_EXE} COMMAND ${DRIVER_EXE})
#[[
SET(EXE storage_layers_ut)
......
......@@ -54,7 +54,7 @@ std::string GetDirectory()
}
}
return static_cast<std::string>(abs_path);
return static_cast<std::string>(abs_path) + "../../../../../../test/image/oci/storage/layers";
}
bool dirExists(const char *path)
......@@ -229,4 +229,4 @@ TEST(StorageOverlay2QuotaOptionsTest, test_overlay2_is_quota_options)
for(auto option : options) {
ASSERT_TRUE(overlay2_is_quota_options(nullptr, option.c_str()));
}
}
\ No newline at end of file
}
......@@ -43,7 +43,7 @@ std::string GetDirectory()
}
}
return static_cast<std::string>(abs_path);
return static_cast<std::string>(abs_path) + "../../../../../../test/image/oci/storage/layers";
}
bool dirExists(const char *path)
......
......@@ -40,3 +40,4 @@ target_include_directories(${EXE} PUBLIC
)
target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} -lcrypto -lyajl -lz)
add_test(NAME ${EXE} COMMAND ${EXE})
......@@ -49,7 +49,7 @@ std::string GetDirectory()
}
}
return static_cast<std::string>(abs_path);
return static_cast<std::string>(abs_path) + "../../../../../../test/image/oci/storage/rootfs";
}
bool dirExists(const char *path)
......
......@@ -25,3 +25,4 @@ target_include_directories(${EXE} PUBLIC
)
set_target_properties(${EXE} PROPERTIES LINK_FLAGS "-Wl,--wrap,getcwd -Wl,--wrap,readlink")
target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} -lcrypto -lyajl -lz)
add_test(NAME ${EXE} COMMAND ${EXE})
......@@ -55,3 +55,4 @@ target_include_directories(${EXE} PUBLIC
)
target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} -lpthread -lgrpc++ -lprotobuf -lcrypto -lyajl -lz)
add_test(NAME ${EXE} COMMAND ${EXE})
......@@ -56,3 +56,4 @@ target_include_directories(${EXE} PUBLIC
)
target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} -lgrpc++ -lprotobuf -lcrypto -lyajl -lz)
add_test(NAME ${EXE} COMMAND ${EXE})
......@@ -276,7 +276,7 @@ TEST_F(LcrRtOpsUnitTest, test_rt_lcr_start)
{
rt_start_params_t params = {};
pid_ppid_info_t pid_info = {};
char *pid_path = get_absolute_path("runtime/lcr/pid.file");
char *pid_path = get_absolute_path("../../../../test/runtime/lcr/pid.file");
ASSERT_EQ(rt_lcr_start(nullptr, nullptr, nullptr, nullptr), -1);
......
......@@ -75,3 +75,4 @@ target_include_directories(${EXE} PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../../../../mocks
)
target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} -lgrpc++ -lprotobuf -lcrypto -lyajl -lz)
add_test(NAME ${EXE} COMMAND ${EXE})
......@@ -71,3 +71,5 @@ target_include_directories(${MOCK_EXE} PUBLIC
target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${SELINUX_LIBRARY} ${ISULA_LIBUTILS_LIBRARY} -lcrypto -lyajl -lz)
target_link_libraries(${MOCK_EXE} ${GTEST_BOTH_LIBRARIES} ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${SELINUX_LIBRARY} ${ISULA_LIBUTILS_LIBRARY} -lcrypto -lyajl -lz)
add_test(NAME ${EXE} COMMAND ${EXE})
add_test(NAME ${MOCK_EXE} COMMAND ${MOCK_EXE})
......@@ -72,3 +72,4 @@ target_include_directories(${EXE} PUBLIC
)
target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} -lgrpc++ -lprotobuf -lcrypto -lyajl -lz)
add_test(NAME ${EXE} COMMAND ${EXE})
......@@ -55,8 +55,8 @@ public:
NiceMock<MockIsuladConf> m_isulad_conf;
};
#define HOST_CONFIG_FILE "specs/specs/hostconfig.json"
#define OCI_RUNTIME_SPEC_FILE "specs/specs/oci_runtime_spec.json"
#define HOST_CONFIG_FILE "../../../../test/specs/specs/hostconfig.json"
#define OCI_RUNTIME_SPEC_FILE "../../../../test/specs/specs/oci_runtime_spec.json"
TEST(merge_conf_cgroup_ut, test_merge_conf_cgroup_1)
{
......
......@@ -68,3 +68,4 @@ target_include_directories(${EXE} PUBLIC
)
target_link_libraries(${EXE} ${GTEST_BOTH_LIBRARIES} ${GMOCK_LIBRARY} ${GMOCK_MAIN_LIBRARY} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} -lgrpc++ -lprotobuf -lcrypto -lyajl -lz)
add_test(NAME ${EXE} COMMAND ${EXE})
......@@ -42,7 +42,7 @@ using ::testing::_;
using namespace std;
#define HOOKS_CONFIG_FILE "specs/specs_extend/hooks.json"
#define HOOKS_CONFIG_FILE "../../../../test/specs/specs_extend/hooks.json"
TEST(make_sure_oci_spec_linux_ut, test_make_sure_oci_spec_linux)
{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册