Commit d02f4f7ad73d91504b9c9eb096989684edbc3417

Edward Thomson 2021-11-17T14:31:29

cmake: refactor `add_clar_test` into separate module

diff --git a/ci/test.sh b/ci/test.sh
index ec21519..0815522 100755
--- a/ci/test.sh
+++ b/ci/test.sh
@@ -156,10 +156,6 @@ fi
 
 # Run the tests that do not require network connectivity.
 
-if [ -z "$SKIP_UTILITY_TESTS" ]; then
-	run_test util
-fi
-
 if [ -z "$SKIP_OFFLINE_TESTS" ]; then
 	echo ""
 	echo "##############################################################################"
diff --git a/cmake/AddClarTest.cmake b/cmake/AddClarTest.cmake
new file mode 100644
index 0000000..7439416
--- /dev/null
+++ b/cmake/AddClarTest.cmake
@@ -0,0 +1,7 @@
+function(ADD_CLAR_TEST project name)
+        if(NOT USE_LEAK_CHECKER STREQUAL "OFF")
+                add_test(${name} "${PROJECT_SOURCE_DIR}/script/${USE_LEAK_CHECKER}.sh" "${PROJECT_BINARY_DIR}/${project}" ${ARGN})
+        else()
+                add_test(${name} "${PROJECT_BINARY_DIR}/${project}" ${ARGN})
+        endif()
+endfunction(ADD_CLAR_TEST)
diff --git a/tests/libgit2/CMakeLists.txt b/tests/libgit2/CMakeLists.txt
index 90ae625..27f421a 100644
--- a/tests/libgit2/CMakeLists.txt
+++ b/tests/libgit2/CMakeLists.txt
@@ -63,20 +63,13 @@ if(MSVC_IDE)
 	set_source_files_properties("precompiled.c" COMPILE_FLAGS "/Ycprecompiled.h")
 endif()
 
-function(ADD_CLAR_TEST name)
-	if(NOT USE_LEAK_CHECKER STREQUAL "OFF")
-		add_test(${name} "${PROJECT_SOURCE_DIR}/script/${USE_LEAK_CHECKER}.sh" "${PROJECT_BINARY_DIR}/libgit2_tests" ${ARGN})
-	else()
-		add_test(${name} "${PROJECT_BINARY_DIR}/libgit2_tests" ${ARGN})
-	endif()
-endfunction(ADD_CLAR_TEST)
-
-add_clar_test(offline             -v -xonline)
-add_clar_test(invasive            -v -score::ftruncate -sfilter::stream::bigfile -sodb::largefiles -siterator::workdir::filesystem_gunk -srepo::init -srepo::init::at_filesystem_root)
-add_clar_test(online              -v -sonline -xonline::customcert)
-add_clar_test(online_customcert   -v -sonline::customcert)
-add_clar_test(gitdaemon           -v -sonline::push)
-add_clar_test(ssh                 -v -sonline::push -sonline::clone::ssh_cert -sonline::clone::ssh_with_paths -sonline::clone::path_whitespace_ssh)
-add_clar_test(proxy               -v -sonline::clone::proxy)
-add_clar_test(auth_clone          -v -sonline::clone::cred)
-add_clar_test(auth_clone_and_push -v -sonline::clone::push -sonline::push)
+include(AddClarTest)
+add_clar_test(libgit2_tests offline             -v -xonline)
+add_clar_test(libgit2_tests invasive            -v -score::ftruncate -sfilter::stream::bigfile -sodb::largefiles -siterator::workdir::filesystem_gunk -srepo::init -srepo::init::at_filesystem_root)
+add_clar_test(libgit2_tests online              -v -sonline -xonline::customcert)
+add_clar_test(libgit2_tests online_customcert   -v -sonline::customcert)
+add_clar_test(libgit2_tests gitdaemon           -v -sonline::push)
+add_clar_test(libgit2_tests ssh                 -v -sonline::push -sonline::clone::ssh_cert -sonline::clone::ssh_with_paths -sonline::clone::path_whitespace_ssh)
+add_clar_test(libgit2_tests proxy               -v -sonline::clone::proxy)
+add_clar_test(libgit2_tests auth_clone          -v -sonline::clone::cred)
+add_clar_test(libgit2_tests auth_clone_and_push -v -sonline::clone::push -sonline::push)
diff --git a/tests/util/CMakeLists.txt b/tests/util/CMakeLists.txt
index 739eb58..232590f 100644
--- a/tests/util/CMakeLists.txt
+++ b/tests/util/CMakeLists.txt
@@ -62,14 +62,7 @@ if(MSVC_IDE)
 	set_source_files_properties("precompiled.c" COMPILE_FLAGS "/Ycprecompiled.h")
 endif()
 
-function(ADD_CLAR_TEST name)
-	if(NOT USE_LEAK_CHECKER STREQUAL "OFF")
-		add_test(${name} "${libgit2_SOURCE_DIR}/script/${USE_LEAK_CHECKER}.sh" "${libgit2_BINARY_DIR}/util_tests" ${ARGN})
-	else()
-		add_test(${name} "${libgit2_BINARY_DIR}/util_tests" ${ARGN})
-	endif()
-endfunction(ADD_CLAR_TEST)
-
 enable_testing()
 
-add_clar_test(util -v)
+include(AddClarTest)
+add_clar_test(util_tests util -v)