(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 test patches with whitespace expansion.' span_id: 15 ) ) } spids: [13] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(setup)} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:29) (Token id:Id.Lit_Chars val:'\t#\n' span_id:30) (Token id: Id.Lit_Chars val: '\t## create test-N, patchN.patch, expect-N files\n' span_id: 31 ) (Token id:Id.Lit_Chars val:'\t#\n' span_id:32) (Token id:Id.Lit_Chars val:'\n' span_id:33) (Token id:Id.Lit_Chars val:'\t# test 1\n' span_id:34) (Token id:Id.Lit_Chars val:'\tprintf "\\t%s\\n" 1 2 3 4 5 6 >before &&\n' span_id:35) (Token id:Id.Lit_Chars val:'\tprintf "\\t%s\\n" 1 2 3 >after &&\n' span_id:36) (Token id:Id.Lit_Chars val:'\tprintf "%64s\\n" a b c >>after &&\n' span_id:37) (Token id:Id.Lit_Chars val:'\tprintf "\\t%s\\n" 4 5 6 >>after &&\n' span_id:38) (Token id:Id.Lit_Chars val:'\tgit diff --no-index before after |\n' span_id:39) (Token id: Id.Lit_Chars val: '\t\tsed -e "s/before/test-1/" -e "s/after/test-1/" >patch1.patch &&\n' span_id: 40 ) (Token id:Id.Lit_Chars val:'\tprintf "%64s\\n" 1 2 3 4 5 6 >test-1 &&\n' span_id:41) (Token id: Id.Lit_Chars val: '\tprintf "%64s\\n" 1 2 3 a b c 4 5 6 >expect-1 &&\n' span_id: 42 ) (Token id:Id.Lit_Chars val:'\n' span_id:43) (Token id:Id.Lit_Chars val:'\t# test 2\n' span_id:44) (Token id: Id.Lit_Chars val: '\tprintf "\\t%s\\n" a b c d e f >before &&\n' span_id: 45 ) (Token id:Id.Lit_Chars val:'\tprintf "\\t%s\\n" a b c >after &&\n' span_id:46) (Token id:Id.Lit_Chars val:'\tn=10 &&\n' span_id:47) (Token id:Id.Lit_Chars val:'\tx=1 &&\n' span_id:48) (Token id:Id.Lit_Chars val:'\twhile test $x -lt $n\n' span_id:49) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:50) (Token id:Id.Lit_Chars val:'\t\tprintf "%63s%d\\n" "" $x >>after\n' span_id:51) (Token id:Id.Lit_Chars val:'\t\tx=$(( $x + 1 ))\n' span_id:52) (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:53) (Token id:Id.Lit_Chars val:'\tprintf "\\t%s\\n" d e f >>after &&\n' span_id:54) (Token id:Id.Lit_Chars val:'\tgit diff --no-index before after |\n' span_id:55) (Token id: Id.Lit_Chars val: '\t\tsed -e "s/before/test-2/" -e "s/after/test-2/" >patch2.patch &&\n' span_id: 56 ) (Token id:Id.Lit_Chars val:'\tprintf "%64s\\n" a b c d e f >test-2 &&\n' span_id:57) (Token id:Id.Lit_Chars val:'\tprintf "%64s\\n" a b c >expect-2 &&\n' span_id:58) (Token id:Id.Lit_Chars val:'\tx=1 &&\n' span_id:59) (Token id:Id.Lit_Chars val:'\twhile test $x -lt $n\n' span_id:60) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:61) (Token id: Id.Lit_Chars val: '\t\tprintf "%63s%d\\n" "" $x >>expect-2\n' span_id: 62 ) (Token id:Id.Lit_Chars val:'\t\tx=$(( $x + 1 ))\n' span_id:63) (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:64) (Token id:Id.Lit_Chars val:'\tprintf "%64s\\n" d e f >>expect-2 &&\n' span_id:65) (Token id:Id.Lit_Chars val:'\n' span_id:66) (Token id:Id.Lit_Chars val:'\t# test 3\n' span_id:67) (Token id: Id.Lit_Chars val: '\tprintf "\\t%s\\n" a b c d e f >before &&\n' span_id: 68 ) (Token id:Id.Lit_Chars val:'\tprintf "\\t%s\\n" a b c >after &&\n' span_id:69) (Token id:Id.Lit_Chars val:'\tn=100 &&\n' span_id:70) (Token id:Id.Lit_Chars val:'\tx=0 &&\n' span_id:71) (Token id:Id.Lit_Chars val:'\twhile test $x -lt $n\n' span_id:72) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:73) (Token id:Id.Lit_Chars val:'\t\tprintf "%63s%02d\\n" "" $x >>after\n' span_id:74) (Token id:Id.Lit_Chars val:'\t\tx=$(( $x + 1 ))\n' span_id:75) (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:76) (Token id:Id.Lit_Chars val:'\tprintf "\\t%s\\n" d e f >>after &&\n' span_id:77) (Token id:Id.Lit_Chars val:'\tgit diff --no-index before after |\n' span_id:78) (Token id: Id.Lit_Chars val: '\tsed -e "s/before/test-3/" -e "s/after/test-3/" >patch3.patch &&\n' span_id: 79 ) (Token id:Id.Lit_Chars val:'\tprintf "%64s\\n" a b c d e f >test-3 &&\n' span_id:80) (Token id:Id.Lit_Chars val:'\tprintf "%64s\\n" a b c >expect-3 &&\n' span_id:81) (Token id:Id.Lit_Chars val:'\tx=0 &&\n' span_id:82) (Token id:Id.Lit_Chars val:'\twhile test $x -lt $n\n' span_id:83) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:84) (Token id: Id.Lit_Chars val: '\t\tprintf "%63s%02d\\n" "" $x >>expect-3\n' span_id: 85 ) (Token id:Id.Lit_Chars val:'\t\tx=$(( $x + 1 ))\n' span_id:86) (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:87) (Token id:Id.Lit_Chars val:'\tprintf "%64s\\n" d e f >>expect-3 &&\n' span_id:88) (Token id:Id.Lit_Chars val:'\n' span_id:89) (Token id:Id.Lit_Chars val:'\t# test 4\n' span_id:90) (Token id:Id.Lit_Chars val:'\t>before &&\n' span_id:91) (Token id:Id.Lit_Chars val:'\tx=0 &&\n' span_id:92) (Token id:Id.Lit_Chars val:'\twhile test $x -lt 50\n' span_id:93) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:94) (Token id:Id.Lit_Chars val:'\t\tprintf "\\t%02d\\n" $x >>before\n' span_id:95) (Token id:Id.Lit_Chars val:'\t\tx=$(( $x + 1 ))\n' span_id:96) (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:97) (Token id:Id.Lit_Chars val:'\tcat before >after &&\n' span_id:98) (Token id:Id.Lit_Chars val:'\tprintf "%64s\\n" a b c >>after &&\n' span_id:99) (Token id:Id.Lit_Chars val:'\twhile test $x -lt 100\n' span_id:100) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:101) (Token id:Id.Lit_Chars val:'\t\tprintf "\\t%02d\\n" $x >>before\n' span_id:102) (Token id:Id.Lit_Chars val:'\t\tprintf "\\t%02d\\n" $x >>after\n' span_id:103) (Token id:Id.Lit_Chars val:'\t\tx=$(( $x + 1 ))\n' span_id:104) (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:105) (Token id:Id.Lit_Chars val:'\tgit diff --no-index before after |\n' span_id:106) (Token id: Id.Lit_Chars val: '\tsed -e "s/before/test-4/" -e "s/after/test-4/" >patch4.patch &&\n' span_id: 107 ) (Token id:Id.Lit_Chars val:'\t>test-4 &&\n' span_id:108) (Token id:Id.Lit_Chars val:'\tx=0 &&\n' span_id:109) (Token id:Id.Lit_Chars val:'\twhile test $x -lt 50\n' span_id:110) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:111) (Token id:Id.Lit_Chars val:'\t\tprintf "%63s%02d\\n" "" $x >>test-4\n' span_id:112) (Token id:Id.Lit_Chars val:'\t\tx=$(( $x + 1 ))\n' span_id:113) (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:114) (Token id:Id.Lit_Chars val:'\tcat test-4 >expect-4 &&\n' span_id:115) (Token id:Id.Lit_Chars val:'\tprintf "%64s\\n" a b c >>expect-4 &&\n' span_id:116) (Token id:Id.Lit_Chars val:'\twhile test $x -lt 100\n' span_id:117) (Token id:Id.Lit_Chars val:'\tdo\n' span_id:118) (Token id: Id.Lit_Chars val: '\t\tprintf "%63s%02d\\n" "" $x >>test-4\n' span_id: 119 ) (Token id:Id.Lit_Chars val:'\t\tprintf "%63s%02d\\n" "" $x >>expect-4\n' span_id:120) (Token id:Id.Lit_Chars val:'\t\tx=$(( $x + 1 ))\n' span_id:121) (Token id:Id.Lit_Chars val:'\tdone &&\n' span_id:122) (Token id:Id.Lit_Chars val:'\n' span_id:123) (Token id: Id.Lit_Chars val: '\tgit config core.whitespace tab-in-indent,tabwidth=63 &&\n' span_id: 124 ) (Token id:Id.Lit_Chars val:'\tgit config apply.whitespace fix\n' span_id:125) (Token id:Id.Lit_Chars val:'\n' span_id:126) ) } ) (command.ForEach iter_name: t iter_words: [{(1)} {(2)} {(3)} {(4)}] do_arg_iter: F body: (command.DoGroup children: [ (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'apply with ws expansion (t=$t)' span_id:157))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:161) (Token id: Id.Lit_Chars val: '\t\tgit apply patch$t.patch &&\n' span_id: 162 ) (Token id:Id.Lit_Chars val:'\t\ttest_cmp test-$t expect-$t\n' span_id:163) (Token id:Id.Lit_Chars val:'\t' span_id:164) ) } ) ] ) ) (C {(test_done)}) ] )