(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:'diff order' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (command.ShFunction name: create_files body: (command.BraceGroup children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (command.Simple words: [{(echo)} {(DQ ($ Id.VSub_Number '$1'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:29) fd: -1 arg_word: {(a.h)} ) ] ) (command.Simple words: [{(echo)} {(DQ ($ Id.VSub_Number '$1'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:41) fd: -1 arg_word: {(b.c)} ) ] ) (command.Simple words: [{(echo)} {(DQ ($ Id.VSub_Number '$1'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:53) fd: -1 arg_word: {(c/Makefile)} ) ] ) (command.Simple words: [{(echo)} {(DQ ($ Id.VSub_Number '$1'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:65) fd: -1 arg_word: {(d.txt)} ) ] ) (C {(git)} {(add)} {(a.h)} {(b.c)} {(c/Makefile)} {(d.txt)}) (C {(git)} {(commit)} {(-m) (DQ ($ Id.VSub_Number '$1'))}) ] ) ] ) ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:101))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:105) (Token id:Id.Lit_Chars val:'\tmkdir c &&\n' span_id:106) (Token id:Id.Lit_Chars val:'\tcreate_files 1 &&\n' span_id:107) (Token id:Id.Lit_Chars val:'\tcreate_files 2 &&\n' span_id:108) (Token id:Id.Lit_Chars val:'\n' span_id:109) (Token id:Id.Lit_Chars val:'\tcat >order_file_1 <<-\\EOF &&\n' span_id:110) (Token id:Id.Lit_Chars val:'\t*Makefile\n' span_id:111) (Token id:Id.Lit_Chars val:'\t*.txt\n' span_id:112) (Token id:Id.Lit_Chars val:'\t*.h\n' span_id:113) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:114) (Token id:Id.Lit_Chars val:'\n' span_id:115) (Token id:Id.Lit_Chars val:'\tcat >order_file_2 <<-\\EOF &&\n' span_id:116) (Token id:Id.Lit_Chars val:'\t*Makefile\n' span_id:117) (Token id:Id.Lit_Chars val:'\t*.h\n' span_id:118) (Token id:Id.Lit_Chars val:'\t*.c\n' span_id:119) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:120) (Token id:Id.Lit_Chars val:'\n' span_id:121) (Token id:Id.Lit_Chars val:'\tcat >expect_none <<-\\EOF &&\n' span_id:122) (Token id:Id.Lit_Chars val:'\ta.h\n' span_id:123) (Token id:Id.Lit_Chars val:'\tb.c\n' span_id:124) (Token id:Id.Lit_Chars val:'\tc/Makefile\n' span_id:125) (Token id:Id.Lit_Chars val:'\td.txt\n' span_id:126) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:127) (Token id:Id.Lit_Chars val:'\n' span_id:128) (Token id:Id.Lit_Chars val:'\tcat >expect_1 <<-\\EOF &&\n' span_id:129) (Token id:Id.Lit_Chars val:'\tc/Makefile\n' span_id:130) (Token id:Id.Lit_Chars val:'\td.txt\n' span_id:131) (Token id:Id.Lit_Chars val:'\ta.h\n' span_id:132) (Token id:Id.Lit_Chars val:'\tb.c\n' span_id:133) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:134) (Token id:Id.Lit_Chars val:'\n' span_id:135) (Token id:Id.Lit_Chars val:'\tcat >expect_2 <<-\\EOF\n' span_id:136) (Token id:Id.Lit_Chars val:'\tc/Makefile\n' span_id:137) (Token id:Id.Lit_Chars val:'\ta.h\n' span_id:138) (Token id:Id.Lit_Chars val:'\tb.c\n' span_id:139) (Token id:Id.Lit_Chars val:'\td.txt\n' span_id:140) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:141) ) } ) (C {(test_expect_success)} {(DQ ('no order (=tree object order)'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:152) (Token id: Id.Lit_Chars val: '\tgit diff --name-only HEAD^..HEAD >actual &&\n' span_id: 153 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_none actual\n' span_id:154) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'missing orderfile' span_id:161))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:165) (Token id:Id.Lit_Chars val:'\trm -f bogus_file &&\n' span_id:166) (Token id: Id.Lit_Chars val: '\ttest_must_fail git diff -Obogus_file --name-only HEAD^..HEAD\n' span_id: 167 ) ) } ) (C {(test_expect_success)} {(POSIXPERM) (Id.Lit_Comma ',') (SANITY)} {(SQ (Token id:Id.Lit_Chars val:'unreadable orderfile' span_id:178))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:182) (Token id:Id.Lit_Chars val:'\t>unreadable_file &&\n' span_id:183) (Token id:Id.Lit_Chars val:'\tchmod -r unreadable_file &&\n' span_id:184) (Token id: Id.Lit_Chars val: '\ttest_must_fail git diff -Ounreadable_file --name-only HEAD^..HEAD\n' span_id: 185 ) ) } ) (C {(test_expect_success)} {(DQ ('orderfile using option from subdir with --output'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:196) (Token id:Id.Lit_Chars val:'\tmkdir subdir &&\n' span_id:197) (Token id: Id.Lit_Chars val: '\tgit -C subdir diff -O../order_file_1 --output ../actual --name-only HEAD^..HEAD &&\n' span_id: 198 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_1 actual\n' span_id:199) ) } ) (command.ForEach iter_name: i iter_words: [{(1)} {(2)}] do_arg_iter: F body: (command.DoGroup children: [ (C {(test_expect_success)} {(DQ ('orderfile using option (') ($ Id.VSub_DollarName '$i') (')'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:225) (Token id: Id.Lit_Chars val: '\t\tgit diff -Oorder_file_$i --name-only HEAD^..HEAD >actual &&\n' span_id: 226 ) (Token id:Id.Lit_Chars val:'\t\ttest_cmp expect_$i actual\n' span_id:227) (Token id:Id.Lit_Chars val:'\t' span_id:228) ) } ) (C {(test_expect_success)} {(PIPE)} {(DQ ('orderfile is fifo (') ($ Id.VSub_DollarName '$i') (')'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:244) (Token id: Id.Lit_Chars val: '\t\trm -f order_fifo &&\n' span_id: 245 ) (Token id:Id.Lit_Chars val:'\t\tmkfifo order_fifo &&\n' span_id:246) (Token id:Id.Lit_Chars val:'\t\t{\n' span_id:247) (Token id:Id.Lit_Chars val:'\t\t\tcat order_file_$i >order_fifo &\n' span_id:248) (Token id:Id.Lit_Chars val:'\t\t} &&\n' span_id:249) (Token id: Id.Lit_Chars val: '\t\tgit diff -O order_fifo --name-only HEAD^..HEAD >actual &&\n' span_id: 250 ) (Token id:Id.Lit_Chars val:'\t\twait &&\n' span_id:251) (Token id: Id.Lit_Chars val: '\t\ttest_cmp expect_$i actual\n' span_id: 252 ) (Token id:Id.Lit_Chars val:'\t' span_id:253) ) } ) (C {(test_expect_success)} {(DQ ('orderfile using config (') ($ Id.VSub_DollarName '$i') (')'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:267) (Token id: Id.Lit_Chars val: '\t\tgit -c diff.orderfile=order_file_$i diff --name-only HEAD^..HEAD >actual &&\n' span_id: 268 ) (Token id:Id.Lit_Chars val:'\t\ttest_cmp expect_$i actual\n' span_id:269) (Token id:Id.Lit_Chars val:'\t' span_id:270) ) } ) (C {(test_expect_success)} {(DQ ('cancelling configured orderfile (') ($ Id.VSub_DollarName '$i') (')'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:284) (Token id: Id.Lit_Chars val: '\t\tgit -c diff.orderfile=order_file_$i diff -O/dev/null --name-only HEAD^..HEAD >actual &&\n' span_id: 285 ) (Token id:Id.Lit_Chars val:'\t\ttest_cmp expect_none actual\n' span_id:286) (Token id:Id.Lit_Chars val:'\t' span_id:287) ) } ) ] ) ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup for testing combine-diff order' span_id:296))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:300) (Token id:Id.Lit_Chars val:'\tgit checkout -b tmp HEAD~ &&\n' span_id:301) (Token id:Id.Lit_Chars val:'\tcreate_files 3 &&\n' span_id:302) (Token id:Id.Lit_Chars val:'\tgit checkout master &&\n' span_id:303) (Token id:Id.Lit_Chars val:'\tgit merge --no-commit -s ours tmp &&\n' span_id:304) (Token id:Id.Lit_Chars val:'\tcreate_files 5\n' span_id:305) ) } ) (C {(test_expect_success)} {(DQ ('combine-diff: no order (=tree object order)'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:316) (Token id: Id.Lit_Chars val: '\tgit diff --name-only HEAD HEAD^ HEAD^2 >actual &&\n' span_id: 317 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect_none actual\n' span_id:318) ) } ) (command.ForEach iter_name: i iter_words: [{(1)} {(2)}] do_arg_iter: F body: (command.DoGroup children: [ (C {(test_expect_success)} {(DQ ('combine-diff: orderfile using option (') ($ Id.VSub_DollarName '$i') (')'))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:344) (Token id: Id.Lit_Chars val: '\t\tgit diff -Oorder_file_$i --name-only HEAD HEAD^ HEAD^2 >actual &&\n' span_id: 345 ) (Token id:Id.Lit_Chars val:'\t\ttest_cmp expect_$i actual\n' span_id:346) (Token id:Id.Lit_Chars val:'\t' span_id:347) ) } ) ] ) ) (C {(test_done)}) ] )