From db952e8122e584dbb24d28d36abc2ac1b8ad0c77 Mon Sep 17 00:00:00 2001
From: zhangxiaoyu <zhangxiaoyu58@huawei.com>
Date: Mon, 29 Nov 2021 16:07:39 +0800
Subject: [PATCH 11/14] add fuzz build in CI

Signed-off-by: zhangxiaoyu <zhangxiaoyu58@huawei.com>
---
 CI/make-and-install.sh   |  9 +++++++++
 CMakeLists.txt           |  4 ++--
 test/fuzz/CMakeLists.txt | 25 +++++++++++++++++++------
 3 files changed, 30 insertions(+), 8 deletions(-)

diff --git a/CI/make-and-install.sh b/CI/make-and-install.sh
index 602878bf..3fd88b84 100755
--- a/CI/make-and-install.sh
+++ b/CI/make-and-install.sh
@@ -74,12 +74,21 @@ rm -rf build
 mkdir build && cd build
 cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_UT=ON -DENABLE_SHIM_V2=ON ..
 make -j $(nproc)
+make install
 ctest -T memcheck --output-on-failure
 if [[ $? -ne 0 ]]; then
     exit 1
 fi
 echo_success "===================RUN DT-LLT TESTCASES END========================="
 
+# build fuzz
+cd $ISULAD_COPY_PATH
+rm -rf build
+mkdir build
+cd build
+cmake -DCMAKE_BUILD_TYPE=Debug -DENABLE_FUZZ=ON ..
+make -j $(nproc)
+
 # build rest version
 cd $ISULAD_COPY_PATH
 rm -rf build
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0f7d6b9c..8fc03f2d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -86,9 +86,9 @@ IF(ENABLE_UT)
     add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/test)
 ENDIF(ENABLE_UT)
 
-IF(ENABLE_FUZZ)
+IF(ENABLE_FUZZ AND (NOT ENABLE_UT))
     add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/test)
-ENDIF(ENABLE_FUZZ)
+ENDIF(ENABLE_FUZZ AND (NOT ENABLE_UT))
 
 # install all files
 install(FILES ${CMAKE_BINARY_DIR}/conf/isulad.pc
diff --git a/test/fuzz/CMakeLists.txt b/test/fuzz/CMakeLists.txt
index 816dd3cf..61ab47d7 100644
--- a/test/fuzz/CMakeLists.txt
+++ b/test/fuzz/CMakeLists.txt
@@ -20,9 +20,18 @@ SET(EXE1 im_config_image_exist_fuzz)
 SET(EXE2 im_get_image_count_fuzz)
 SET(EXE3 test_volume_mount_spec_fuzz)
 SET(EXE4 test_volume_parse_volume_fuzz)
-add_executable(${EXE0} im_oci_image_exist_fuzz.cc)
-add_executable(${EXE1} im_config_image_exist_fuzz.cc)
-add_executable(${EXE2} im_get_image_count_fuzz.cc)
+add_executable(${EXE0}
+    ${CMAKE_CURRENT_SOURCE_DIR}/../../src/daemon/config/isulad_config.c
+    ${CMAKE_CURRENT_SOURCE_DIR}/../../src/daemon/config/daemon_arguments.c
+    im_oci_image_exist_fuzz.cc)
+add_executable(${EXE1}
+    ${CMAKE_CURRENT_SOURCE_DIR}/../../src/daemon/config/isulad_config.c
+    ${CMAKE_CURRENT_SOURCE_DIR}/../../src/daemon/config/daemon_arguments.c
+    im_config_image_exist_fuzz.cc)
+add_executable(${EXE2}
+    ${CMAKE_CURRENT_SOURCE_DIR}/../../src/daemon/config/isulad_config.c
+    ${CMAKE_CURRENT_SOURCE_DIR}/../../src/daemon/config/daemon_arguments.c
+    im_get_image_count_fuzz.cc)
 add_executable(${EXE3}
     ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils/cutils/utils.c
     ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils/cutils/path.c
@@ -36,6 +45,8 @@ add_executable(${EXE3}
     ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils/cutils/utils_verify.c
     ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils/sha256/sha256.c
     ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils/cutils/utils_mount_spec.c
+    ${CMAKE_CURRENT_SOURCE_DIR}/../../src/daemon/config/isulad_config.c
+    ${CMAKE_CURRENT_SOURCE_DIR}/../../src/daemon/config/daemon_arguments.c
     test_volume_mount_spec_fuzz.cc
     )
 add_executable(${EXE4}
@@ -51,6 +62,8 @@ add_executable(${EXE4}
     ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils/cutils/utils_verify.c
     ${CMAKE_CURRENT_SOURCE_DIR}/../../src/utils/sha256/sha256.c
     ${CMAKE_CURRENT_SOURCE_DIR}/../../src/daemon/modules/spec/parse_volume.c
+    ${CMAKE_CURRENT_SOURCE_DIR}/../../src/daemon/config/isulad_config.c
+    ${CMAKE_CURRENT_SOURCE_DIR}/../../src/daemon/config/daemon_arguments.c
     test_volume_parse_volume_fuzz.cc
     )
 
@@ -96,15 +109,15 @@ target_include_directories(${EXE4} PUBLIC
 
 set_target_properties(${EXE0} PROPERTIES LINKER_LANGUAGE CXX)
 set_target_properties(${EXE0} PROPERTIES LINK_FLAGS "-fsanitize=address -fsanitize-coverage=trace-pc")
-target_link_libraries(${EXE0} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} ${LIB_FUZZING_ENGINE} pthread rt -lisulad_img)
+target_link_libraries(${EXE0} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} ${LIB_FUZZING_ENGINE} pthread rt -lisulad_img -lgcov)
 
 set_target_properties(${EXE1} PROPERTIES LINKER_LANGUAGE CXX)
 set_target_properties(${EXE1} PROPERTIES LINK_FLAGS "-fsanitize=address -fsanitize-coverage=trace-pc")
-target_link_libraries(${EXE1} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} ${LIB_FUZZING_ENGINE} pthread rt -lisulad_img)
+target_link_libraries(${EXE1} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} ${LIB_FUZZING_ENGINE} pthread rt -lisulad_img -lgcov)
 
 set_target_properties(${EXE2} PROPERTIES LINKER_LANGUAGE CXX)
 set_target_properties(${EXE2} PROPERTIES LINK_FLAGS "-fsanitize=address -fsanitize-coverage=trace-pc")
-target_link_libraries(${EXE2} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} ${LIB_FUZZING_ENGINE} pthread rt -lisulad_img)
+target_link_libraries(${EXE2} ${CMAKE_THREAD_LIBS_INIT} ${ISULA_LIBUTILS_LIBRARY} ${LIB_FUZZING_ENGINE} pthread rt -lisulad_img -lgcov)
 
 set_target_properties(${EXE3} PROPERTIES LINKER_LANGUAGE CXX)
 set_target_properties(${EXE3} PROPERTIES LINK_FLAGS "-fsanitize=address -fsanitize-coverage=trace-pc")
-- 
2.25.1

