(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('TEST_DIRECTORY', {[ComSub (Com {[LIT_CHARS pwd]})] [LIT_CHARS /../../../t]})]) (= scope= flags=1 words=[{[LIT_CHARS TEST_DIRECTORY]}] bindings=[]) (Com {[LIT_CHARS .]} {[LIT_CHARS ../../../t/test-lib.sh]}) (FunctionDef subtree_test_create_repo [] (AndOr OP_AND_IF (Com {[LIT_CHARS test_create_repo]} {[DQ [VarSub 1]]}) (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[DQ [VarSub 1]]}) (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS log.date]} {[LIT_CHARS relative]}) ) ) ) ) (FunctionDef create [] (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[DQ [VarSub 1]]} < (FilenameRedirectNode filename={[DQ [VarSub 1]]} "> 1), > ) (Com {[LIT_CHARS git]} {[LIT_CHARS add]} {[DQ [VarSub 1]]}) ) ) (FunctionDef check_equal [] (List (Com {[LIT_CHARS test_debug]} {[SQ ]}) (Com {[LIT_CHARS test_debug]} {[DQ [LIT_CHARS "echo "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "check a:"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "{"][VarSub 1][LIT_CHARS "}"][\ LIT_ESCAPED_CHAR "\\\""]]}) (Com {[LIT_CHARS test_debug]} {[DQ [LIT_CHARS "echo "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " b:"][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS " "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS "{"][VarSub 2][LIT_CHARS "}"][\ LIT_ESCAPED_CHAR "\\\""]]}) (If (Com {[LIT_OTHER "["]} {[DQ [VarSub 1]]} {[LIT_OTHER "="]} {[DQ [VarSub 2]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) (ElseTrue) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]}) ) ) ) (FunctionDef undo [] (Com {[LIT_CHARS git]} {[LIT_CHARS reset]} {[LIT_CHARS --hard]} {[LIT_CHARS HEAD] [LIT_TILDE "~"]}) ) (FunctionDef join_commits [] (List (= scope= flags=0 words=[] bindings=[('commit', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('all', {[SQ ]})]) (While (Com {[LIT_CHARS read]} {[LIT_CHARS x]} {[LIT_CHARS y]}) (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -z]} {[DQ [VarSub x]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS continue]}) (Com {[LIT_OTHER "["]} {[DQ [VarSub x]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS "commit:"]]} {[LIT_OTHER "]"]}) (List (If (Com {[LIT_OTHER "["]} {[LIT_CHARS -n]} {[DQ [VarSub commit]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[DQ [VarSub commit][LIT_CHARS " "][VarSub all]]}) (= scope= flags=0 words=[] bindings=[('all', {[SQ ]})]) ) ) (= scope= flags=0 words=[] bindings=[('commit', {[DQ [VarSub y]]})]) ) (ElseTrue) (= scope= flags=0 words=[] bindings=[('all', {[DQ [VarSub all][LIT_CHARS " "][VarSub y]]})]) ) ) (Com {[LIT_CHARS echo]} {[DQ [VarSub commit][LIT_CHARS " "][VarSub all]]}) ) ) (FunctionDef test_create_commit [] (Subshell (List (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('repo', {[VarSub 1]})]) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('commit', {[VarSub 2]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[DQ [VarSub repo]]}) (AndOr OP_OR_IF (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub commit]]})]]}) (Com {[LIT_CHARS error]} {[DQ [LIT_CHARS "Could not create directory for commit"]]}) ) ) ) ) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[DQ [VarSub commit]]} < (FilenameRedirectNode filename={[DQ [VarSub commit]]} "> 1), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS add]} {[DQ [VarSub commit]]}) (Com {[LIT_CHARS error]} {[DQ [LIT_CHARS "Could not add commit"]]}) ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS git]} {[LIT_CHARS commit]} {[LIT_CHARS -m]} {[DQ [VarSub commit]]}) (Com {[LIT_CHARS error]} {[DQ [LIT_CHARS "Could not commit"]]}) ) ) ) ) (FunctionDef last_commit_message [] (Com {[LIT_CHARS git]} {[LIT_CHARS log]} {[LIT_CHARS --pretty] [LIT_OTHER "="] [LIT_CHARS format] [LIT_OTHER ":"] [LIT_OTHER "%"] [LIT_CHARS s]} {[LIT_CHARS -1]}) ) (= scope= flags=0 words=[] bindings=[('subtree_test_count', {[LIT_CHARS 0]})]) (FunctionDef next_test [] (= scope= flags=0 words=[] bindings=[('subtree_test_count', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub subtree_test_count]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) ) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ expected &&\n"> actual 2>&1 &&\n"> ] [DQ [LIT_CHARS "expected: "]] [SQ ] [DQ [LIT_CHARS "actual: "]] [SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ expected &&\n"> actual 2>&1 &&\n"> ] [DQ [LIT_CHARS "expected: "]] [SQ ] [DQ [LIT_CHARS "actual: "]] [SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ \"sub dir\"/file &&\n"> ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ] [SQ ] [SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS next_test]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_done]}) )