#!/bin/sh test_description='git shell tests' . ./test-lib.sh test_expect_success 'shell allows upload-pack' ' printf 0000 >input && git upload-pack . expect && git shell -c "git-upload-pack $SQ.$SQ" 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_expect_success 'shell complains of overlong commands' ' perl -e "print \"a\" x 2**12 for (0..2**19)" | test_must_fail git shell 2>err && grep "too long" err ' test_done