(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]} ) (FunctionDef setup_repository [] (AndOr OP_AND_IF (Com {[LIT_CHARS mkdir]} {[DQ [VarSub 1]]} ) (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[DQ [VarSub 1]]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS init]} ) (AndOr OP_AND_IF (Com < (FilenameRedirectNode filename={[LIT_CHARS file]} "> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS add]} {[LIT_CHARS file]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS test_tick]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS commit]} {[LIT_CHARS -m]} {[DQ [LIT_CHARS Initial]]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS checkout]} {[LIT_CHARS -b]} {[LIT_CHARS side]} ) (AndOr OP_AND_IF (Com < (FilenameRedirectNode filename={[LIT_CHARS elif]} "> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS add]} {[LIT_CHARS elif]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS test_tick]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS commit]} {[LIT_CHARS -m]} {[DQ [LIT_CHARS Second]]} ) (Com {[LIT_CHARS git]} {[LIT_CHARS checkout]} {[LIT_CHARS master]} ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) (FunctionDef tokens_match [] (AndOr OP_AND_IF (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub 1]]} ) (Com {[LIT_CHARS tr]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS sort]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS expect]} "> 1), > ) ) (AndOr OP_AND_IF (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub 2]]} ) (Com {[LIT_CHARS tr]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS sort]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS actual]} "> 1), > ) ) (Com {[LIT_CHARS test_cmp]} {[LIT_CHARS expect]} {[LIT_CHARS actual]} ) ) ) ) (FunctionDef check_remote_track [] (List (= scope= flags=0 words=[] bindings=[('actual', {[ComSub (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS remote]} {[LIT_CHARS show]} {[DQ [VarSub 1]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -ne]} {[SQ ]}) )]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS shift]} ) (Com {[LIT_CHARS tokens_match]} {[DQ [VarSub *]]} {[DQ [VarSub actual]]} ) ) ) ) (FunctionDef check_tracking_branch [] (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('f', {[DQ ]})]) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('r', {[ComSub (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS for-each-ref]} {[DQ [LIT_CHARS "--format=%(refname)"]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -ne]} {[DQ [LIT_CHARS "s|^refs/remotes/"][VarSub 1][LIT_CHARS "/||p"]]}) )]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS shift]} ) (Com {[LIT_CHARS tokens_match]} {[DQ [VarSub *]]} {[DQ [VarSub r]]} ) ) ) ) ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS setup]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS C_LOCALE_OUTPUT]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ actual &&\n"> expect &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS C_LOCALE_OUTPUT]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS C_LOCALE_OUTPUT]} {[SQ ]} {[SQ actual &&\n"> expect &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect1 < expect2 < actual1 &&\n"> actual2 &&\n"> ]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS test/expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "* remote origin\n"][LIT_CHARS " Fetch URL: "][ComSub (Com {[LIT_CHARS pwd]})][LIT_CHARS "/one\n"][LIT_CHARS " Push URL: "][ComSub (Com {[LIT_CHARS pwd]})][LIT_CHARS "/one\n"][LIT_CHARS " HEAD branch: master\n"][LIT_CHARS " Remote branches:\n"][LIT_CHARS " master new (next fetch will store in remotes/origin)\n"][LIT_CHARS " side tracked\n"][LIT_CHARS " Local branches configured for 'git pull':\n"][LIT_CHARS " ahead merges with remote master\n"][LIT_CHARS " master merges with remote master\n"][LIT_CHARS " octopus merges with remote topic-a\n"][LIT_CHARS " and with remote topic-b\n"][LIT_CHARS " and with remote topic-c\n"][LIT_CHARS " rebase rebases onto remote master\n"][LIT_CHARS " Local refs configured for 'git push':\n"][LIT_CHARS " master pushes to master (local out of date)\n"][LIT_CHARS " master pushes to upstream (create)\n"][LIT_CHARS "* remote two\n"][LIT_CHARS " Fetch URL: ../two\n"][LIT_CHARS " Push URL: ../three\n"][LIT_CHARS " HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"][LIT_CHARS " another\n"][LIT_CHARS " master\n"][LIT_CHARS " Local refs configured for 'git push':\n"][LIT_CHARS " ahead forces to master (fast-forwardable)\n"][LIT_CHARS " master pushes to another (up to date)\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ > file &&\n"> file &&\n"> output &&\n"> ]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS test/expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "* remote origin\n"][LIT_CHARS " Fetch URL: "][ComSub (Com {[LIT_CHARS pwd]})][LIT_CHARS "/one\n"][LIT_CHARS " Push URL: "][ComSub (Com {[LIT_CHARS pwd]})][LIT_CHARS "/one\n"][LIT_CHARS " HEAD branch: (not queried)\n"][LIT_CHARS " Remote branches: (status not queried)\n"][LIT_CHARS " master\n"][LIT_CHARS " side\n"][LIT_CHARS " Local branches configured for 'git pull':\n"][LIT_CHARS " ahead merges with remote master\n"][LIT_CHARS " master merges with remote master\n"][LIT_CHARS " Local refs configured for 'git push' (status not queried):\n"][LIT_CHARS " (matching) pushes to (matching)\n"][LIT_CHARS " refs/heads/master pushes to refs/heads/upstream\n"][LIT_CHARS " refs/tags/lastbackup forces to refs/tags/lastbackup\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\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 expect &&\n"> output &&\n"> ]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS test/expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "error: Multiple remote HEAD branches. Please choose one explicitly with:\n"][LIT_CHARS " git remote set-head two another\n"][LIT_CHARS " git remote set-head two master\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output 2>&1 &&\n"> ]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS test/expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "refs/remotes/origin/side2\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> ]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS test/expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "Pruning origin\n"][LIT_CHARS "URL: "][ComSub (Com {[LIT_CHARS pwd]})][LIT_CHARS "/one\n"][LIT_CHARS " * [would prune] origin/side2\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\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 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]} < (FilenameRedirectNode filename={[LIT_CHARS test/expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "some-tag\n"]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ foobar &&\n"> ../test/output &&\n"> >../test/output &&\n"> ]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS test/expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "some-tag\n"] [LIT_CHARS "foobar-tag\n"] [LIT_CHARS "--tags\n"]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ../test/output &&\n"> >../test/output &&\n"> >../test/output) &&\n"> ]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS test/expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "--no-tags\n"]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ../test/output &&\n"> ../test/output &&\n"> >../test/output) &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS one/expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS " apis/master\n"][LIT_CHARS " apis/side\n"][LIT_CHARS " drosophila/another\n"][LIT_CHARS " drosophila/master\n"][LIT_CHARS " drosophila/side\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> ]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS one/expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS " drosophila/another\n"][LIT_CHARS " drosophila/master\n"][LIT_CHARS " drosophila/side\n"][LIT_CHARS " manduca/master\n"][LIT_CHARS " manduca/side\n"][LIT_CHARS " megaloprepus/master\n"][LIT_CHARS " megaloprepus/side\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS one/expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS " apis/master\n"][LIT_CHARS " apis/side\n"][LIT_CHARS " manduca/master\n"][LIT_CHARS " manduca/side\n"][LIT_CHARS " megaloprepus/master\n"][LIT_CHARS " megaloprepus/side\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> ]} ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS one/expect]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS " drosophila/another\n"][LIT_CHARS " drosophila/master\n"][LIT_CHARS " drosophila/side\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ output &&\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 cat]} < (FilenameRedirectNode filename={[LIT_CHARS remotes_origin]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "URL: "][ComSub (Com {[LIT_CHARS pwd]})][LIT_CHARS "/one\n"][LIT_CHARS "Push: refs/heads/master:refs/heads/upstream\n"][LIT_CHARS "Pull: refs/heads/master:refs/heads/origin\n"]]} 0), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ .git/remotes/origin &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ .git/branches/origin &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ err 2>&1 &&\n"> err &&\n"> 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 expect.initial &&\n"> expect.add &&\n"> expect.replace &&\n"> expect.add-two &&\n"> expect.setup-ffonly &&\n"> expect.respect-ffonly &&\n"> config-result &&\n"> ../actual.initial &&\n"> config-result &&\n"> ../actual.add &&\n"> config-result &&\n"> ../actual.replace &&\n"> config-result &&\n"> ../actual.add-two &&\n"> config-result &&\n"> ../actual.setup-ffonly &&\n"> config-result &&\n"> ../actual.respect-ffonly\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect.initial &&\n"> expect.replace &&\n"> ../actual.initial &&\n"> ../actual.replace\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> >expect &&\n"> actual &&\n"> >actual &&\n"> >actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> >expect &&\n"> >expect &&\n"> actual &&\n"> >actual &&\n"> >actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> >expect &&\n"> >expect &&\n"> actual &&\n"> >actual &&\n"> >actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> >expect &&\n"> >expect &&\n"> actual &&\n"> >actual &&\n"> >actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> >expect &&\n"> >expect &&\n"> >expect &&\n"> actual &&\n"> >actual &&\n"> >actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> >expect &&\n"> >expect &&\n"> >expect &&\n"> actual &&\n"> >actual &&\n"> >actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> >expect &&\n"> >expect &&\n"> actual &&\n"> >actual &&\n"> >actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> >expect &&\n"> actual &&\n"> >actual &&\n"> >actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> >expect &&\n"> >expect &&\n"> actual &&\n"> >actual &&\n"> >actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> >expect &&\n"> >expect &&\n"> actual &&\n"> >actual &&\n"> >actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> >expect &&\n"> actual &&\n"> >actual &&\n"> >actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> >expect &&\n"> actual &&\n"> >actual &&\n"> >actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> >expect &&\n"> >expect &&\n"> actual &&\n"> >actual &&\n"> >actual &&\n"> ]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expect &&\n"> >expect &&\n"> actual &&\n"> >actual &&\n"> >actual &&\n"> ]} ) (Com {[LIT_CHARS test_done]} ) )