From d7971544fe17378f44f49983010dbfc1834f7bef Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Fri, 16 Jan 2026 17:31:16 +0000 Subject: [PATCH 1/2] ci(*-leaks): skip the git-svn tests to save time MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I noticed recently that the leak-checking jobs still take a lot of time, and upon analysis, the git-svn tests contribute significantly to this. Analyzing a recent CI run, I saw that the Git test suite contains 1,017 tests, running for approximately 5ΒΌ hours total. Of these, 65 git-svn-related tests (~6% of test count) took 42.24 minutes combined, accounting for ~13.% of the total runtime. This implies that the git-svn tests are roughly twice as expernsive compared to the other tests. However, testing git-svn in the leak-checking jobs provides minimal value: git-svn is implemented as a Perl script, and leak checking only handles C code. While git-svn does call into Git's built-in commands that are implemented in C, these are standard Git operations that are already thoroughly exercised elsewhere in the test suite. Therefore, running the git-svn tests in the leak-checking jobs only adds to the overall run time with little value in return. Given that the leak-checking jobs are particularly time-intensive and these 42+ minutes of SVN tests per job provide no additional leak detection value, skip them in the *-leaks jobs to reduce CI runtime. Assisted-by: Claude Sonnet 4.5 Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- ci/lib.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/ci/lib.sh b/ci/lib.sh index f561884d40..a165c7f268 100755 --- a/ci/lib.sh +++ b/ci/lib.sh @@ -356,6 +356,7 @@ linux-musl-meson) ;; linux-leaks|linux-reftable-leaks) export SANITIZE=leak + export NO_SVN_TESTS=LetsSaveSomeTime ;; linux-asan-ubsan) export SANITIZE=address,undefined From 047bd7dfe3b6563ea5f6543533207e3481f3e74c Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sat, 17 Jan 2026 10:34:17 -0800 Subject: [PATCH 2/2] ci: skip CVS and P4 tests in leaks job, too Looking at the CI logs, the p4 and cvs tests account for another 24 minutes of test time and they offer minimal value for quite a similar reason as the previous step. Let's introduce and use a mechanism to skip these tests to save some resources. Suggested-by: Phillip Wood Signed-off-by: Junio C Hamano --- ci/lib.sh | 2 ++ t/lib-cvs.sh | 6 ++++++ t/lib-git-p4.sh | 5 +++++ 3 files changed, 13 insertions(+) diff --git a/ci/lib.sh b/ci/lib.sh index a165c7f268..3ecbf147db 100755 --- a/ci/lib.sh +++ b/ci/lib.sh @@ -356,7 +356,9 @@ linux-musl-meson) ;; linux-leaks|linux-reftable-leaks) export SANITIZE=leak + export NO_CVS_TESTS=LetsSaveSomeTime export NO_SVN_TESTS=LetsSaveSomeTime + export NO_P4_TESTS=LetsSaveSomeTime ;; linux-asan-ubsan) export SANITIZE=address,undefined diff --git a/t/lib-cvs.sh b/t/lib-cvs.sh index 57b9b2db9b..c8b4404888 100644 --- a/t/lib-cvs.sh +++ b/t/lib-cvs.sh @@ -2,6 +2,12 @@ . ./test-lib.sh +if test -n "$NO_CVS_TESTS" +then + skip_all='skipping git cvs tests, NO_CVS_TESTS defined' + test_done +fi + unset CVS_SERVER if ! type cvs >/dev/null 2>&1 diff --git a/t/lib-git-p4.sh b/t/lib-git-p4.sh index 2a5b8738ea..d22e9c684a 100644 --- a/t/lib-git-p4.sh +++ b/t/lib-git-p4.sh @@ -16,6 +16,11 @@ P4D_TIMEOUT=300 . ./test-lib.sh +if test -n "$NO_P4_TESTS" +then + skip_all='skipping git p4 tests, NO_P4_TESTS defined' + test_done +fi if ! test_have_prereq PYTHON then skip_all='skipping git p4 tests; python not available'