Merge branch 'ps/maintenance-start-crash-fix'
"git maintenance start" crashed due to an uninitialized variable reference, which has been corrected. * ps/maintenance-start-crash-fix: builtin/gc: fix crash when running `git maintenance start`
This commit is contained in:
@@ -1832,7 +1832,7 @@ static const char *get_extra_launchctl_strings(void) {
|
|||||||
* | Input | Output |
|
* | Input | Output |
|
||||||
* | *cmd | return code | *out | *is_available |
|
* | *cmd | return code | *out | *is_available |
|
||||||
* +-------+-------------+-------------------+---------------+
|
* +-------+-------------+-------------------+---------------+
|
||||||
* | "foo" | false | NULL | (unchanged) |
|
* | "foo" | false | "foo" (allocated) | (unchanged) |
|
||||||
* +-------+-------------+-------------------+---------------+
|
* +-------+-------------+-------------------+---------------+
|
||||||
*
|
*
|
||||||
* GIT_TEST_MAINT_SCHEDULER set to “foo:./mock_foo.sh,bar:./mock_bar.sh”
|
* GIT_TEST_MAINT_SCHEDULER set to “foo:./mock_foo.sh,bar:./mock_bar.sh”
|
||||||
@@ -1850,8 +1850,11 @@ static int get_schedule_cmd(const char *cmd, int *is_available, char **out)
|
|||||||
struct string_list_item *item;
|
struct string_list_item *item;
|
||||||
struct string_list list = STRING_LIST_INIT_NODUP;
|
struct string_list list = STRING_LIST_INIT_NODUP;
|
||||||
|
|
||||||
if (!testing)
|
if (!testing) {
|
||||||
|
if (out)
|
||||||
|
*out = xstrdup(cmd);
|
||||||
return 0;
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (is_available)
|
if (is_available)
|
||||||
*is_available = 0;
|
*is_available = 0;
|
||||||
|
|||||||
@@ -646,6 +646,22 @@ test_expect_success !MINGW 'register and unregister with regex metacharacters' '
|
|||||||
maintenance.repo "$(pwd)/$META"
|
maintenance.repo "$(pwd)/$META"
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'start without GIT_TEST_MAINT_SCHEDULER' '
|
||||||
|
test_when_finished "rm -rf systemctl.log script repo" &&
|
||||||
|
mkdir script &&
|
||||||
|
write_script script/systemctl <<-\EOF &&
|
||||||
|
echo "$*" >>../systemctl.log
|
||||||
|
EOF
|
||||||
|
git init repo &&
|
||||||
|
(
|
||||||
|
cd repo &&
|
||||||
|
sane_unset GIT_TEST_MAINT_SCHEDULER &&
|
||||||
|
PATH="$PWD/../script:$PATH" git maintenance start --scheduler=systemd
|
||||||
|
) &&
|
||||||
|
test_grep -- "--user list-timers" systemctl.log &&
|
||||||
|
test_grep -- "enable --now git-maintenance@" systemctl.log
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'start --scheduler=<scheduler>' '
|
test_expect_success 'start --scheduler=<scheduler>' '
|
||||||
test_expect_code 129 git maintenance start --scheduler=foo 2>err &&
|
test_expect_code 129 git maintenance start --scheduler=foo 2>err &&
|
||||||
test_grep "unrecognized --scheduler argument" err &&
|
test_grep "unrecognized --scheduler argument" err &&
|
||||||
|
|||||||
Reference in New Issue
Block a user