aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2024-11-25 06:33:41 +0100
committerJunio C Hamano <gitster@pobox.com>2024-11-25 15:22:04 +0900
commitba874d1dac4b4284b98132ce727b29325202c798 (patch)
tree7da81a8049bf0c09b959f55ec60b24107a5970f5
parentbuiltin/gc: provide hint when maintenance hits a stale schedule lock (diff)
downloadgit-ba874d1dac4b4284b98132ce727b29325202c798.tar.gz
git-ba874d1dac4b4284b98132ce727b29325202c798.zip
t7900: fix host-dependent behaviour when testing git-maintenance(1)
We have recently added a new test to t7900 that exercises whether git-maintenance(1) fails as expected when the "schedule.lock" file exists. The test depends on whether or not the host has the required executables present to schedule maintenance tasks in the first place, like systemd or launchctl -- if not, the test fails with an unrelated error before even checking for the lock file. This fails for example in our CI systems, where macOS images do not have launchctl available. Fix this issue by creating a stub systemctl(1) binary and using the systemd scheduler. Reported-by: Jeff King <peff@peff.net> Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xt/t7900-maintenance.sh9
1 files changed, 7 insertions, 2 deletions
diff --git a/t/t7900-maintenance.sh b/t/t7900-maintenance.sh
index ee803b35b4..fdf00f22d1 100755
--- a/t/t7900-maintenance.sh
+++ b/t/t7900-maintenance.sh
@@ -996,10 +996,15 @@ test_expect_success 'repacking loose objects is quiet' '
'
test_expect_success 'maintenance aborts with existing lock file' '
- test_when_finished "rm -rf repo" &&
+ test_when_finished "rm -rf repo script" &&
+ mkdir script &&
+ write_script script/systemctl <<-\EOF &&
+ true
+ EOF
+
git init repo &&
: >repo/.git/objects/schedule.lock &&
- test_must_fail git -C repo maintenance start 2>err &&
+ test_must_fail env PATH="$PWD/script:$PATH" git -C repo maintenance start --scheduler=systemd 2>err &&
test_grep "Another scheduled git-maintenance(1) process seems to be running" err
'