]> git.ipfire.org Git - thirdparty/git.git/commitdiff
shell: add basic tests
authorJeff King <peff@peff.net>
Wed, 28 Sep 2022 22:50:36 +0000 (18:50 -0400)
committerTaylor Blau <me@ttaylorr.com>
Sat, 1 Oct 2022 04:23:38 +0000 (00:23 -0400)
We have no tests of even basic functionality of git-shell. Let's add a
couple of obvious ones. This will serve as a framework for adding tests
for new things we fix, as well as making sure we don't screw anything up
too badly while doing so.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Taylor Blau <me@ttaylorr.com>
t/t9850-shell.sh [new file with mode: 0755]

diff --git a/t/t9850-shell.sh b/t/t9850-shell.sh
new file mode 100755 (executable)
index 0000000..2af476c
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+test_description='git shell tests'
+. ./test-lib.sh
+
+test_expect_success 'shell allows upload-pack' '
+       printf 0000 >input &&
+       git upload-pack . <input >expect &&
+       git shell -c "git-upload-pack $SQ.$SQ" <input >actual &&
+       test_cmp expect actual
+'
+
+test_expect_success 'shell forbids other commands' '
+       test_must_fail git shell -c "git config foo.bar baz"
+'
+
+test_expect_success 'shell forbids interactive use by default' '
+       test_must_fail git shell
+'
+
+test_expect_success 'shell allows interactive command' '
+       mkdir git-shell-commands &&
+       write_script git-shell-commands/ping <<-\EOF &&
+       echo pong
+       EOF
+       echo pong >expect &&
+       echo ping | git shell >actual &&
+       test_cmp expect actual
+'
+
+test_done