]> git.ipfire.org Git - thirdparty/git.git/blobdiff - t/t0061-run-command.sh
Merge branch 'dl/checkout-p-merge-base'
[thirdparty/git.git] / t / t0061-run-command.sh
index 015fac8b5d077165c7f9ac8090fd4e2ac12a7cb3..7d599675e35a75637a75ab6bfed19ff7f784a312 100755 (executable)
@@ -12,6 +12,10 @@ cat >hello-script <<-EOF
        cat hello-script
 EOF
 
+test_expect_success MINGW 'subprocess inherits only std handles' '
+       test-tool run-command inherited-handle
+'
+
 test_expect_success 'start_command reports ENOENT (slash)' '
        test-tool run-command start-command-ENOENT ./does-not-exist 2>err &&
        test_i18ngrep "\./does-not-exist" err
@@ -210,10 +214,23 @@ test_expect_success MINGW 'verify curlies are quoted properly' '
        test_cmp expect actual
 '
 
-test_expect_success MINGW 'can spawn with argv[0] containing spaces' '
-       cp "$GIT_BUILD_DIR/t/helper/test-fake-ssh$X" ./ &&
-       test_must_fail "$PWD/test-fake-ssh$X" 2>err &&
-       grep TRASH_DIRECTORY err
+test_expect_success MINGW 'can spawn .bat with argv[0] containing spaces' '
+       bat="$TRASH_DIRECTORY/bat with spaces in name.bat" &&
+
+       # Every .bat invocation will log its arguments to file "out"
+       rm -f out &&
+       echo "echo %* >>out" >"$bat" &&
+
+       # Ask git to invoke .bat; clone will fail due to fake SSH helper
+       test_must_fail env GIT_SSH="$bat" git clone myhost:src ssh-clone &&
+
+       # Spawning .bat can fail if there are two quoted cmd.exe arguments.
+       # .bat itself is first (due to spaces in name), so just one more is
+       # needed to verify. GIT_SSH will invoke .bat multiple times:
+       # 1) -G myhost
+       # 2) myhost "git-upload-pack src"
+       # First invocation will always succeed. Test the second one.
+       grep "git-upload-pack" out
 '
 
 test_done