Skip to content

Commit

Permalink
t7900: fix host-dependent behaviour when testing git-maintenance(1)
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Patrick Steinhardt <[email protected]>
Signed-off-by: Junio C Hamano <[email protected]>
  • Loading branch information
pks-t authored and peff committed Nov 25, 2024
1 parent 5833fce commit cd6dd80
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions t/t7900-maintenance.sh
Original file line number Diff line number Diff line change
Expand Up @@ -1012,10 +1012,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
'

Expand Down

0 comments on commit cd6dd80

Please sign in to comment.