(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 fileA fileA &&\n"> subdir/fileB fileB &&\n"> fileA fileA modified &&\n"> subdir/fileB fileB modified &&\n"> fileA fileA again &&\n"> subdir/fileB fileB again &&\n"> fileA fileA modified in alternate history &&\n"> subdir/fileB fileB modified in alternate history &&\n"> ]} ) (FunctionDef check [] (List (= scope= flags=0 words=[] bindings=[('type', {[VarSub 1]})]) (Com {[LIT_CHARS shift]} ) (= scope= flags=0 words=[] bindings=[('arg', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('which', {[LIT_CHARS arg]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[LIT_CHARS test.expect]} ) (For a do_arg_iter) (List (If (Com {[LIT_CHARS test]} {[DQ [LIT_CHARS z][VarSub a]]} {[LIT_DBRACKET_LIKE "="]} {[LIT_CHARS z--]} ) (List (= scope= flags=0 words=[] bindings=[('which', {[LIT_CHARS expect]})]) (= scope= flags=0 words=[] bindings=[('child', {[SQ ]})]) (Com {[LIT_CHARS continue]} ) ) ) (If (Com {[LIT_CHARS test]} {[DQ [VarSub which]]} {[LIT_DBRACKET_LIKE "="]} {[LIT_CHARS arg]} ) (List (= scope= flags=0 words=[] bindings=[('arg', {[DQ [VarSub arg][VarSub a][LIT_CHARS " "]]})]) (Com {[LIT_CHARS continue]} ) ) ) (If (Com {[LIT_CHARS test]} {[DQ [VarSub type]]} {[LIT_DBRACKET_LIKE "="]} {[LIT_CHARS basic]} ) (Com {[LIT_CHARS echo]} {[DQ [VarSub a]]} ) (ElseTrue) (List (If (Com {[LIT_CHARS test]} {[DQ [LIT_CHARS z][VarSub child]]} {[LIT_NEQUAL "!="]} {[LIT_CHARS z]} ) (Com {[LIT_CHARS echo]} {[DQ [VarSub child][LIT_CHARS " "][VarSub a]]} ) ) (= scope= flags=0 words=[] bindings=[('child', {[DQ [VarSub a]]})]) ) ) ) ) (If (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[DQ [VarSub type]]} {[LIT_NEQUAL "!="]} {[LIT_CHARS basic]} ) (Com {[LIT_CHARS test]} {[DQ [LIT_CHARS z][VarSub child]]} {[LIT_NEQUAL "!="]} {[LIT_CHARS z]} ) ) (Com {[LIT_CHARS echo]} {[VarSub child]} < (FilenameRedirectNode filename={[LIT_CHARS test.expect]} >"> 1), > ) ) (If (Com {[LIT_CHARS test]} {[VarSub type]} {[LIT_DBRACKET_LIKE "="]} {[LIT_CHARS basic]} ) (Com {[LIT_CHARS git]} {[LIT_CHARS rev-list]} {[VarSub arg]} < (FilenameRedirectNode filename={[LIT_CHARS test.actual]} "> 1), > ) (Com {[LIT_CHARS test]} {[VarSub type]} {[LIT_DBRACKET_LIKE "="]} {[LIT_CHARS parents]} ) (Com {[LIT_CHARS git]} {[LIT_CHARS rev-list]} {[LIT_CHARS --parents]} {[VarSub arg]} < (FilenameRedirectNode filename={[LIT_CHARS test.actual]} "> 1), > ) (Com {[LIT_CHARS test]} {[VarSub type]} {[LIT_DBRACKET_LIKE "="]} {[LIT_CHARS parents-raw]} ) (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS rev-list]} {[LIT_CHARS --parents]} {[LIT_CHARS --pretty] [LIT_DBRACKET_LIKE "="] [LIT_CHARS raw]} {[VarSub arg]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -n]} {[LIT_CHARS -e]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS test.actual]} "> 1), > ) ) ) (Com {[LIT_CHARS test_cmp]} {[LIT_CHARS test.expect]} {[LIT_CHARS test.actual]} ) ) ) (For type [{[LIT_CHARS basic]}, {[LIT_CHARS parents]}, {[LIT_CHARS parents-raw]}]) (List (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS "\t\trm -f .git/info/grafts &&\n"][LIT_CHARS "\t\tcheck "][VarSub type][LIT_CHARS " "][VarSub B2][LIT_CHARS " -- "][VarSub B2][LIT_CHARS " "][VarSub B1][LIT_CHARS " "][VarSub B0][LIT_CHARS "\n"][LIT_CHARS "\t"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS "\t\techo '"][VarSub B0][LIT_CHARS " "][VarSub A2][LIT_CHARS "' >.git/info/grafts &&\n"][LIT_CHARS "\t\tcheck "][VarSub type][LIT_CHARS " "][VarSub B2][LIT_CHARS " -- "][VarSub B2][LIT_CHARS " "][VarSub B1][LIT_CHARS " "][VarSub B0][LIT_CHARS " "][VarSub A2][LIT_CHARS " "][VarSub A1][LIT_CHARS " "][VarSub A0][LIT_CHARS "\n"][LIT_CHARS "\t"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS "\t\trm -f .git/info/grafts &&\n"][LIT_CHARS "\t\tcheck "][VarSub type][LIT_CHARS " "][VarSub B2][LIT_CHARS " subdir -- "][VarSub B2][LIT_CHARS " "][VarSub B0][LIT_CHARS "\n"][LIT_CHARS "\t"]]} ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[DQ [LIT_CHARS "\n"][LIT_CHARS "\t\techo '"][VarSub B0][LIT_CHARS " "][VarSub A2][LIT_CHARS "' >.git/info/grafts &&\n"][LIT_CHARS "\t\tcheck "][VarSub type][LIT_CHARS " "][VarSub B2][LIT_CHARS " subdir -- "][VarSub B2][LIT_CHARS " "][VarSub B0][LIT_CHARS " "][VarSub A2][LIT_CHARS " "][VarSub A0][LIT_CHARS "\n"][LIT_CHARS "\t"]]} ) ) ) (Com {[LIT_CHARS test_done]} ) )