(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS setup]} {[SQ a &&\n"> a &&\n"> ]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS victim.git/hooks/pre-receive]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "#!/bin/sh\n"] [LIT_CHARS "printf %s \"$@\" >>$GIT_DIR/pre-receive.args\n"] [LIT_CHARS "cat - >$GIT_DIR/pre-receive.stdin\n"] [LIT_CHARS "echo STDOUT pre-receive\n"] [LIT_CHARS "echo STDERR pre-receive >&2\n"]} 0), > ) (Com {[LIT_CHARS chmod]} {[LIT_CHARS u] [LIT_OTHER "+"] [LIT_CHARS x]} {[LIT_CHARS victim.git/hooks/pre-receive]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS victim.git/hooks/update]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "#!/bin/sh\n"] [LIT_CHARS "echo \"$@\" >>$GIT_DIR/update.args\n"] [LIT_CHARS "read x; printf %s \"$x\" >$GIT_DIR/update.stdin\n"] [LIT_CHARS "echo STDOUT update $1\n"] [LIT_CHARS "echo STDERR update $1 >&2\n"] [LIT_CHARS "test \"$1\" = refs/heads/master || exit\n"]} 0), > ) (Com {[LIT_CHARS chmod]} {[LIT_CHARS u] [LIT_OTHER "+"] [LIT_CHARS x]} {[LIT_CHARS victim.git/hooks/update]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS victim.git/hooks/post-receive]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "#!/bin/sh\n"] [LIT_CHARS "printf %s \"$@\" >>$GIT_DIR/post-receive.args\n"] [LIT_CHARS "cat - >$GIT_DIR/post-receive.stdin\n"] [LIT_CHARS "echo STDOUT post-receive\n"] [LIT_CHARS "echo STDERR post-receive >&2\n"]} 0), > ) (Com {[LIT_CHARS chmod]} {[LIT_CHARS u] [LIT_OTHER "+"] [LIT_CHARS x]} {[LIT_CHARS victim.git/hooks/post-receive]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS victim.git/hooks/post-update]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "#!/bin/sh\n"] [LIT_CHARS "echo \"$@\" >>$GIT_DIR/post-update.args\n"] [LIT_CHARS "read x; printf %s \"$x\" >$GIT_DIR/post-update.stdin\n"] [LIT_CHARS "echo STDOUT post-update\n"] [LIT_CHARS "echo STDERR post-update >&2\n"]} 0), > ) (Com {[LIT_CHARS chmod]} {[LIT_CHARS u] [LIT_OTHER "+"] [LIT_CHARS x]} {[LIT_CHARS victim.git/hooks/post-update]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS push]} {[SQ send.out 2>send.err\n">]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "remote: STDOUT pre-receive\n"][LIT_CHARS "remote: STDERR pre-receive\n"][LIT_CHARS "remote: STDOUT update refs/heads/master\n"][LIT_CHARS "remote: STDERR update refs/heads/master\n"][LIT_CHARS "remote: STDOUT update refs/heads/tofail\n"][LIT_CHARS "remote: STDERR update refs/heads/tofail\n"][LIT_CHARS "remote: error: hook declined to update refs/heads/tofail\n"][LIT_CHARS "remote: STDOUT post-receive\n"][LIT_CHARS "remote: STDERR post-receive\n"][LIT_CHARS "remote: STDOUT post-update\n"][LIT_CHARS "remote: STDERR post-update\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_done]}) )