]> git.ipfire.org Git - thirdparty/git.git/blobdiff - t/helper/test-run-command.c
test-tool run-command testsuite: get shell from env
[thirdparty/git.git] / t / helper / test-run-command.c
index c0ed8722c8779b7617382959ff92f2e0a2ea8db6..a41a54d9cb7963cd4ee4ac8869056dc857d5fc8c 100644 (file)
@@ -65,6 +65,7 @@ struct testsuite {
        struct string_list tests, failed;
        int next;
        int quiet, immediate, verbose, verbose_log, trace, write_junit_xml;
+       const char *shell_path;
 };
 #define TESTSUITE_INIT { \
        .tests = STRING_LIST_INIT_DUP, \
@@ -80,7 +81,9 @@ static int next_test(struct child_process *cp, struct strbuf *err, void *cb,
                return 0;
 
        test = suite->tests.items[suite->next++].string;
-       strvec_pushl(&cp->args, "sh", test, NULL);
+       if (suite->shell_path)
+               strvec_push(&cp->args, suite->shell_path);
+       strvec_push(&cp->args, test);
        if (suite->quiet)
                strvec_push(&cp->args, "--quiet");
        if (suite->immediate)
@@ -162,6 +165,10 @@ static int testsuite(int argc, const char **argv)
        if (max_jobs <= 0)
                max_jobs = online_cpus();
 
+       suite.shell_path = getenv("TEST_SHELL_PATH");
+       if (!suite.shell_path)
+               suite.shell_path = "sh";
+
        dir = opendir(".");
        if (!dir)
                die("Could not open the current directory");