(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:'magic pathspec tests using git-add' span_id:6))} spids: [4] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:18))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:22) (Token id:Id.Lit_Chars val:'\tmkdir sub anothersub &&\n' span_id:23) (Token id:Id.Lit_Chars val:'\t: >sub/foo &&\n' span_id:24) (Token id:Id.Lit_Chars val:'\t: >anothersub/foo\n' span_id:25) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'add :/' span_id:32))} { (DQ ('\n') ('\tcat >expected <<-EOF &&\n') ("\tadd 'anothersub/foo'\n") ("\tadd 'expected'\n") ("\tadd 'sub/actual'\n") ("\tadd 'sub/foo'\n") ('\tEOF\n') ('\t(cd sub && git add -n :/ >actual) &&\n') ('\ttest_cmp expected sub/actual\n') ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:50) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:53) fd: -1 here_begin: {(EOF)} here_end_span_id: 58 stdin_parts: [("add 'anothersub/foo'\n")] ) ] ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'add :/anothersub' span_id:63))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:67) (Token id: Id.Lit_Chars val: '\t(cd sub && git add -n :/anothersub >actual) &&\n' span_id: 68 ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected sub/actual\n' span_id:69) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'add :/non-existent' span_id:76))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:80) (Token id: Id.Lit_Chars val: '\t(cd sub && test_must_fail git add -n :/non-existent)\n' span_id: 81 ) ) } ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:87) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:90) fd: -1 here_begin: {(EOF)} here_end_span_id: 95 stdin_parts: [("add 'sub/foo'\n")] ) ] ) (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(test_have_prereq)} {(Id.KW_Bang '!') (MINGW)}) (command.Simple words: [{(mkdir)} {(DQ (':'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:112) fd: 2 arg_word: {(/dev/null)} ) ] ) ] ) ] action: [(C {(test_set_prereq)} {(COLON_DIR)})] spids: [97 115] ) ] ) (C {(test_expect_success)} {(COLON_DIR)} {(SQ (Token id:Id.Lit_Chars val:'a file with the same (long) magic name exists' span_id:130))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:134) (Token id:Id.Lit_Chars val:'\t: >":(icase)ha" &&\n' span_id:135) (Token id:Id.Lit_Chars val:'\ttest_must_fail git add -n ":(icase)ha" &&\n' span_id:136) (Token id:Id.Lit_Chars val:'\tgit add -n "./:(icase)ha"\n' span_id:137) ) } ) (C {(test_expect_success)} {(COLON_DIR)} {(SQ (Token id:Id.Lit_Chars val:'a file with the same (short) magic name exists' span_id:146))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:150) (Token id:Id.Lit_Chars val:'\t: >":/bar" &&\n' span_id:151) (Token id:Id.Lit_Chars val:'\ttest_must_fail git add -n :/bar &&\n' span_id:152) (Token id:Id.Lit_Chars val:'\tgit add -n "./:/bar"\n' span_id:153) ) } ) (C {(test_done)}) ] )