]> git.ipfire.org Git - thirdparty/git.git/commitdiff
run-command tests: use "return", not "exit"
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Wed, 12 Oct 2022 21:02:22 +0000 (23:02 +0200)
committerJunio C Hamano <gitster@pobox.com>
Wed, 12 Oct 2022 21:12:40 +0000 (14:12 -0700)
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>
t/helper/test-run-command.c

index 30c474f3243bbba65cc0cd47b36252af0f566b4e..ee509aefa2f76c7a07551dbc9d77af531715767b 100644 (file)
@@ -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;
 }