summaryrefslogtreecommitdiff
path: root/t/helper
diff options
context:
space:
mode:
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>2022-10-12 21:02:22 (GMT)
committerJunio C Hamano <gitster@pobox.com>2022-10-12 21:12:40 (GMT)
commit910e2b372f215263a79ae1d849274d2a212c16e2 (patch)
treef3536c6c60b5b9e560aea9fa58c4fc1fafaf7dd5 /t/helper
parent7dd5762d9f3980a85f96dd9f143184dc2fa07275 (diff)
downloadgit-910e2b372f215263a79ae1d849274d2a212c16e2.zip
git-910e2b372f215263a79ae1d849274d2a212c16e2.tar.gz
git-910e2b372f215263a79ae1d849274d2a212c16e2.tar.bz2
run-command tests: use "return", not "exit"
Change the "run-command" test helper to "return" instead of calling "exit", see 338abb0f045 (builtins + test helpers: use return instead of exit() in cmd_*, 2021-06-08) Because we'd previously gotten past the SANITIZE=leak check by using exit() here we need to move to "goto cleanup" pattern. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/helper')
-rw-r--r--t/helper/test-run-command.c33
1 files changed, 22 insertions, 11 deletions
diff --git a/t/helper/test-run-command.c b/t/helper/test-run-command.c
index 30c474f..ee509ae 100644
--- a/t/helper/test-run-command.c
+++ b/t/helper/test-run-command.c
@@ -381,13 +381,14 @@ int cmd__run_command(int argc, const char **argv)
{
struct child_process proc = CHILD_PROCESS_INIT;
int jobs;
+ int ret;
if (argc > 1 && !strcmp(argv[1], "testsuite"))
- exit(testsuite(argc - 1, argv + 1));
+ return testsuite(argc - 1, argv + 1);
if (!strcmp(argv[1], "inherited-handle"))
- exit(inherit_handle(argv[0]));
+ return inherit_handle(argv[0]);
if (!strcmp(argv[1], "inherited-handle-child"))
- exit(inherit_handle_child());
+ return inherit_handle_child();
if (argc >= 2 && !strcmp(argv[1], "quote-stress-test"))
return !!quote_stress_test(argc - 1, argv + 1);
@@ -404,18 +405,24 @@ int cmd__run_command(int argc, const char **argv)
argv += 2;
argc -= 2;
}
- if (argc < 3)
- return 1;
+ if (argc < 3) {
+ ret = 1;
+ goto cleanup;
+ }
strvec_pushv(&proc.args, (const char **)argv + 2);
if (!strcmp(argv[1], "start-command-ENOENT")) {
- if (start_command(&proc) < 0 && errno == ENOENT)
- return 0;
+ if (start_command(&proc) < 0 && errno == ENOENT) {
+ ret = 0;
+ goto cleanup;
+ }
fprintf(stderr, "FAIL %s\n", argv[1]);
return 1;
}
- if (!strcmp(argv[1], "run-command"))
- exit(run_command(&proc));
+ if (!strcmp(argv[1], "run-command")) {
+ ret = run_command(&proc);
+ goto cleanup;
+ }
if (!strcmp(argv[1], "--ungroup")) {
argv += 1;
@@ -436,8 +443,12 @@ int cmd__run_command(int argc, const char **argv)
run_processes_parallel(jobs, no_job, NULL, task_finished,
&proc);
} else {
+ ret = 1;
fprintf(stderr, "check usage\n");
- return 1;
+ goto cleanup;
}
- exit(0);
+ ret = 0;
+cleanup:
+ child_process_clear(&proc);
+ return ret;
}