(List (= scope= flags=0 words=[] bindings=[('test_description', {[SQ ]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]}) (Com {[LIT_CHARS .]} {[DQ [VarSub TEST_DIRECTORY]] [LIT_CHARS /lib-submodule-update.sh]}) (FunctionDef am [] (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS format-patch]} {[LIT_CHARS --stdout]} {[LIT_CHARS --ignore-submodules] [LIT_OTHER "="] [LIT_CHARS dirty]} {[DQ [LIT_CHARS ..][VarSub 1]]}) (Com {[LIT_CHARS git]} {[LIT_CHARS am]} {[LIT_CHARS -]}) ) ) (Com {[LIT_CHARS test_submodule_switch]} {[DQ [LIT_CHARS am]]}) (FunctionDef am_3way [] (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS format-patch]} {[LIT_CHARS --stdout]} {[LIT_CHARS --ignore-submodules] [LIT_OTHER "="] [LIT_CHARS dirty]} {[DQ [LIT_CHARS ..][VarSub 1]]}) (Com {[LIT_CHARS git]} {[LIT_CHARS am]} {[LIT_CHARS --3way]} {[LIT_CHARS -]}) ) ) (= scope= flags=0 words=[] bindings=[('KNOWN_FAILURE_NOFF_MERGE_ATTEMPTS_TO_MERGE_REMOVED_SUBMODULE_FILES', {[LIT_CHARS 1]})]) (Com {[LIT_CHARS test_submodule_switch]} {[DQ [LIT_CHARS am_3way]]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ../initial-submodule\n"> ../first-submodule\n"> ../second-submodule\n"> ]}) (FunctionDef run_test [] (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('START_COMMIT', {[VarSub 1]})]) (AndOr OP_AND_IF (= scope= flags=0 words=[] bindings=[('EXPECT', {[VarSub 2]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS test_might_fail]} {[LIT_CHARS git]} {[LIT_CHARS am]} {[LIT_CHARS --abort]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS reset]} {[LIT_CHARS --hard]} {[VarSub START_COMMIT]}) (AndOr OP_AND_IF (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[LIT_OTHER "*"] [LIT_CHARS .patch]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS format-patch]} {[LIT_CHARS -1]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS reset]} {[LIT_CHARS --hard]} {[VarSub START_COMMIT] [LIT_OTHER "^"]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS submodule]} {[LIT_CHARS update]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS am]} {[LIT_OTHER "*"] [LIT_CHARS .patch]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS submodule]} {[LIT_CHARS update]}) (AndOr OP_AND_IF (Com {[LIT_CHARS git]} {[LIT_CHARS -C]} {[LIT_CHARS submodule]} {[LIT_CHARS rev-parse]} {[LIT_CHARS HEAD]} < (FilenameRedirectNode filename={[LIT_CHARS actual]} "> 1), > ) (Com {[LIT_CHARS test_cmp]} {[VarSub EXPECT]} {[LIT_CHARS actual]}) ) ) ) ) ) ) ) ) ) ) ) ) (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_done]}) )