(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_description) op: assign_op.Equal rhs: { (SQ (Token id: Id.Lit_Chars val: 'git apply should handle files with incomplete lines.\n' span_id: 15 ) (Token id:Id.Lit_Chars val:'\n' span_id:16) ) } spids: [13] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.Subshell command_list: (command.CommandList children: [ (command.Sentence child: (C {(echo)} {(a)}) terminator: (Token id:Id.Op_Semi val:';' span_id:32) ) (C {(echo)} {(b)}) ] ) redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:39) fd: -1 arg_word: {(frotz.0)} ) ] ) (command.Subshell command_list: (command.CommandList children: [ (command.Sentence child: (C {(echo)} {(a)}) terminator: (Token id:Id.Op_Semi val:';' span_id:46) ) (command.Sentence child: (C {(echo)} {(b)}) terminator: (Token id:Id.Op_Semi val:';' span_id:51) ) (C {(echo)} {(c)}) ] ) redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:58) fd: -1 arg_word: {(frotz.1)} ) ] ) (command.Subshell command_list: (command.CommandList children: [ (command.Sentence child: (C {(echo)} {(a)}) terminator: (Token id:Id.Op_Semi val:';' span_id:65) ) (command.Pipeline children: [ (C {(echo)} {(b)}) (C {(tr)} {(-d)} {(SQ (Token id:Id.Lit_Chars val:'\\012' span_id:78))}) ] negated: F ) ] ) redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:82) fd: -1 arg_word: {(frotz.2)} ) ] ) (command.Subshell command_list: (command.CommandList children: [ (command.Sentence child: (C {(echo)} {(a)}) terminator: (Token id:Id.Op_Semi val:';' span_id:89) ) (command.Sentence child: (C {(echo)} {(c)}) terminator: (Token id:Id.Op_Semi val:';' span_id:94) ) (command.Pipeline children: [ (C {(echo)} {(b)}) (C {(tr)} {(-d)} {(SQ (Token id:Id.Lit_Chars val:'\\012' span_id:107))}) ] negated: F ) ] ) redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:111) fd: -1 arg_word: {(frotz.3)} ) ] ) (command.ForEach iter_name: i iter_words: [{(0)} {(1)} {(2)} {(3)}] do_arg_iter: F body: (command.DoGroup children: [ (command.ForEach iter_name: j iter_words: [{(0)} {(1)} {(2)} {(3)}] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(test)} {($ Id.VSub_DollarName '$i')} {(-eq)} {($ Id.VSub_DollarName '$j')}) (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:160) ) ] ) (command.Simple words: [{(cat)} {(frotz.) ($ Id.VSub_DollarName '$i')}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:168) fd: -1 arg_word: {(frotz)} ) ] ) (C {(test_expect_success)} { (DQ ('apply diff between ') ($ Id.VSub_DollarName '$i') (' and ') ($ Id.VSub_DollarName '$j') ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:182) (Token id: Id.Lit_Chars val: '\tgit apply <"$TEST_DIRECTORY"/t4101/diff.$i-$j &&\n' span_id: 183 ) (Token id:Id.Lit_Chars val:'\ttest_cmp frotz.$j frotz\n' span_id:184) (Token id:Id.Lit_Chars val:' ' span_id:185) ) } ) ] ) ) ] ) ) (C {(test_done)}) ] )