(List (= scope= flags=0 words=[] bindings=[('test_description', {[LIT_CHARS check-ignore]})]) (Com {[LIT_CHARS .]} {[LIT_CHARS ./test-lib.sh]}) (FunctionDef init_vars [] (= scope= flags=0 words=[] bindings=[('global_excludes', {[DQ [LIT_CHARS global-excludes]]})]) ) (FunctionDef enable_global_excludes [] (AndOr OP_AND_IF (Com {[LIT_CHARS init_vars]}) (Com {[LIT_CHARS git]} {[LIT_CHARS config]} {[LIT_CHARS core.excludesfile]} {[DQ [VarSub global_excludes]]}) ) ) (FunctionDef expect_in [] (List (= scope= flags=0 words=[] bindings=[('dest', {[DQ [VarSub HOME][LIT_CHARS /expected-][VarSub 1]]}), ('text', {[DQ [VarSub 2]]})]) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub text]]}) (Com < (FilenameRedirectNode filename={[DQ [VarSub dest]]} "> 1), > ) (ElseTrue) (Com {[LIT_CHARS echo]} {[DQ [VarSub text]]} < (FilenameRedirectNode filename={[DQ [VarSub dest]]} "> 1), > ) ) ) ) (FunctionDef expect [] (Com {[LIT_CHARS expect_in]} {[LIT_CHARS stdout]} {[DQ [VarSub 1]]}) ) (FunctionDef expect_from_stdin [] (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[DQ [VarSub HOME][LIT_CHARS /expected-stdout]]} "> 1), > ) ) (FunctionDef test_stderr [] (List (= scope= flags=0 words=[] bindings=[('expected', {[DQ [VarSub 1]]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS expect_in]} {[LIT_CHARS stderr]} {[DQ [VarSub 1]]}) (Com {[LIT_CHARS test_i18ncmp]} {[DQ [VarSub HOME][LIT_CHARS /expected-stderr]]} {[DQ [VarSub HOME][LIT_CHARS /stderr]]}) ) ) ) (FunctionDef broken_c_unquote [] (Com {[DQ [VarSub PERL_PATH]]} {[LIT_CHARS -pe]} {[SQ ]} {[DQ [VarSub @]]}) ) (FunctionDef broken_c_unquote_verbose [] (Com {[DQ [VarSub PERL_PATH]]} {[LIT_CHARS -pe]} {[SQ ]} {[DQ [VarSub @]]}) ) (FunctionDef stderr_contains [] (List (= scope= flags=0 words=[] bindings=[('regexp', {[DQ [VarSub 1]]})]) (If (Com {[LIT_CHARS test_i18ngrep]} {[DQ [VarSub regexp]]} {[DQ [VarSub HOME][LIT_CHARS /stderr]]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "didn't find /"][VarSub regexp][LIT_CHARS "/ in "][VarSub HOME][LIT_CHARS /stderr]]}) (Com {[LIT_CHARS cat]} {[DQ [VarSub HOME][LIT_CHARS /stderr]]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]}) ) ) ) ) (FunctionDef stderr_empty_on_success [] (List (= scope= flags=0 words=[] bindings=[('expect_code', {[DQ [VarSub 1]]})]) (If (Com {[LIT_CHARS test]} {[VarSub expect_code]} {[LIT_OTHER "="]} {[LIT_CHARS 0]}) (Com {[LIT_CHARS test_stderr]} {[DQ ]}) (ElseTrue) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) ) ) (FunctionDef test_check_ignore [] (List (= scope= flags=0 words=[] bindings=[('args', {[DQ [VarSub 1]]}), ('expect_code', {[DQ [VarSub 2 test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS 0]}]]}), ('global_args', {[DQ [VarSub 3]]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS init_vars]}) (AndOr OP_AND_IF (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub HOME][LIT_CHARS /stdout]]} {[DQ [VarSub HOME][LIT_CHARS /stderr]]} {[DQ [VarSub HOME][LIT_CHARS /cmd]]}) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[LIT_CHARS git]} {[VarSub global_args]} {[LIT_CHARS check-ignore]} {[VarSub quiet_opt]} {[VarSub verbose_opt]} {[VarSub non_matching_opt]} {[VarSub no_index_opt]} {[VarSub args]} < (FilenameRedirectNode filename={[DQ [VarSub HOME][LIT_CHARS /cmd]]} "> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[DQ [VarSub expect_code]]} < (FilenameRedirectNode filename={[DQ [VarSub HOME][LIT_CHARS /expected-exit-code]]} "> 1), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS test_expect_code]} {[DQ [VarSub expect_code]]} {[LIT_CHARS git]} {[VarSub global_args]} {[LIT_CHARS check-ignore]} {[VarSub quiet_opt]} {[VarSub verbose_opt]} {[VarSub non_matching_opt]} {[VarSub no_index_opt]} {[VarSub args]} < (FilenameRedirectNode filename={[DQ [VarSub HOME][LIT_CHARS /stdout]]} "> 1), (FilenameRedirectNode filename={[DQ [VarSub HOME][LIT_CHARS /stderr]]} "> 2), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS test_cmp]} {[DQ [VarSub HOME][LIT_CHARS /expected-stdout]]} {[DQ [VarSub HOME][LIT_CHARS /stdout]]}) (Com {[LIT_CHARS stderr_empty_on_success]} {[DQ [VarSub expect_code]]}) ) ) ) ) ) ) ) ) (FunctionDef test_expect_success_multiple [] (List (= scope= flags=0 words=[] bindings=[('prereq', {[SQ ]})]) (If (Com {[LIT_CHARS test]} {[VarSub #]} {[LIT_CHARS -eq]} {[LIT_CHARS 5]}) (List (= scope= flags=0 words=[] bindings=[('prereq', {[VarSub 1]})]) (Com {[LIT_CHARS shift]}) ) ) (If (Com {[LIT_CHARS test]} {[DQ [VarSub 4]]} {[LIT_OTHER "="]} {[DQ [LIT_CHARS --index]]}) (= scope= flags=0 words=[] bindings=[('no_index_opt', {[SQ ]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('no_index_opt', {[VarSub 4]})]) ) (= scope= flags=0 words=[] bindings=[('testname', {[DQ [VarSub 1]]}), ('expect_all', {[DQ [VarSub 2]]}), ('code', {[DQ [VarSub 3]]})]) (= scope= flags=0 words=[] bindings=[('expect_verbose', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub expect_all]]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -v]} {[SQ ]}) )]})]) (= scope= flags=0 words=[] bindings=[('expect', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub expect_verbose]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]}) )]})]) (Com {[LIT_CHARS test_expect_success]} {[VarSub prereq]} {[DQ [VarSub testname][VarSub no_index_opt test_op=VS_TEST_COLON_PLUS {[LIT_CHARS " with "] [VarSub no_index_opt]}]]} {[SQ ]}) (If (Com {[LIT_CHARS test]} {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub expect_all]]}) (Com {[LIT_CHARS wc]} {[LIT_CHARS -l]}) )]} {[LIT_OTHER "="]} {[LIT_CHARS 1]}) (List (For quiet_opt [{[SQ ]}, {[SQ ]}]) (List (= scope= flags=0 words=[] bindings=[('opts', {[DQ [VarSub no_index_opt test_op=VS_TEST_COLON_PLUS {[VarSub no_index_opt] [LIT_CHARS " "]}][VarSub quiet_opt]]})]) (Com {[LIT_CHARS test_expect_success]} {[VarSub prereq]} {[DQ [VarSub testname][VarSub opts test_op=VS_TEST_COLON_PLUS {[LIT_CHARS " with "] [VarSub opts]}]]} {[DQ [LIT_CHARS "\n"][LIT_CHARS "\t\t\texpect '' &&\n"][LIT_CHARS "\t\t\t"][VarSub code][LIT_CHARS "\n"][LIT_CHARS "\t\t"]]}) ) ) (= scope= flags=0 words=[] bindings=[('quiet_opt', {[SQ ]})]) ) ) (For verbose_opt [{[SQ ]}, {[SQ ]}]) (For non_matching_opt [{[SQ ]}, {[SQ ]}, {[SQ ]}]) (List (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub non_matching_opt]]}) (= scope= flags=0 words=[] bindings=[('my_expect', {[DQ [VarSub expect_all]]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('my_expect', {[DQ [VarSub expect_verbose]]})]) ) (= scope= flags=0 words=[] bindings=[('test_code', {[DQ [LIT_CHARS "\n"][LIT_CHARS "\t\t\t\texpect '"][VarSub my_expect][LIT_CHARS "' &&\n"][LIT_CHARS "\t\t\t\t"][VarSub code][LIT_CHARS "\n"][LIT_CHARS "\t\t\t"]]})]) (= scope= flags=0 words=[] bindings=[('opts', {[DQ [VarSub no_index_opt test_op=VS_TEST_COLON_PLUS {[VarSub no_index_opt] [LIT_CHARS " "]}][VarSub verbose_opt][VarSub non_matching_opt test_op=VS_TEST_COLON_PLUS {[LIT_CHARS " "] [VarSub non_matching_opt]}]]})]) (Com {[LIT_CHARS test_expect_success]} {[VarSub prereq]} {[DQ [VarSub testname][VarSub opts test_op=VS_TEST_COLON_PLUS {[LIT_CHARS " with "] [VarSub opts]}]]} {[DQ [VarSub test_code]]}) ) ) ) (= scope= flags=0 words=[] bindings=[('verbose_opt', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('non_matching_opt', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('no_index_opt', {[SQ ]})]) ) ) (FunctionDef test_expect_success_multi [] (Com {[LIT_CHARS test_expect_success_multiple]} {[DQ [VarSub @]]} {[DQ [LIT_CHARS --index]]}) ) (FunctionDef test_expect_success_no_index_multi [] (Com {[LIT_CHARS test_expect_success_multiple]} {[DQ [VarSub @]]} {[DQ [LIT_CHARS --no-index]]}) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ a &&\n"> .gitignore &&\n"> $dir/not-ignored &&\n"> $dir/ignored-and-untracked &&\n"> $dir/ignored-but-in-index\n"> a/.gitignore &&\n"> a/b/.gitignore &&\n"> a/b/ignored-dir/.gitignore &&\n"> \"$global_excludes\" &&\n"> >.git/info/exclude\n"> ]}) (Com {[LIT_CHARS test_expect_success_multi]} {[SQ ]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success_multi]} {[SQ ]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success_multi]} {[SQ ]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (For verbose_opt [{[SQ ]}, {[SQ ]}]) (For quiet_opt [{[SQ ]}, {[SQ ]}]) (Com {[LIT_CHARS test_expect_success]} {[DQ [VarSub quiet_opt][LIT_CHARS " "][VarSub verbose_opt]]} {[DQ [LIT_CHARS "\n"][LIT_CHARS "\t\t\texpect '' &&\n"][LIT_CHARS "\t\t\ttest_check_ignore '"][VarSub quiet_opt][LIT_CHARS " "][VarSub verbose_opt][LIT_CHARS " foo' 128 &&\n"][LIT_CHARS "\t\t\tstderr_contains 'fatal: cannot have both --quiet and --verbose'\n"][LIT_CHARS "\t\t"]]}) ) ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success_multi]} {[SQ ]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success_multi]} {[SQ ]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success_multi]} {[SQ ]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success_multi]} {[SQ ]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success_multi]} {[SQ ]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success_multi]} {[SQ ]} {[SQ ]} {[SQ ]}) (For subdir [{[SQ ]}, {[SQ ]}]) (List (If (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub subdir]]}) (= scope= flags=0 words=[] bindings=[('where', {[DQ [LIT_CHARS "at top-level"]]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('where', {[DQ [LIT_CHARS "in subdir "][VarSub subdir]]})]) ) (Com {[LIT_CHARS test_expect_success_multi]} {[DQ [LIT_CHARS "non-existent file "][VarSub where][LIT_CHARS " not ignored"]]} {[DQ [LIT_CHARS "::\t"][VarSub subdir][LIT_CHARS non-existent]]} {[DQ [LIT_CHARS "test_check_ignore '"][VarSub subdir][LIT_CHARS "non-existent' 1"]]}) (Com {[LIT_CHARS test_expect_success_no_index_multi]} {[DQ [LIT_CHARS "non-existent file "][VarSub where][LIT_CHARS " not ignored"]]} {[DQ [LIT_CHARS "::\t"][VarSub subdir][LIT_CHARS non-existent]]} {[DQ [LIT_CHARS "test_check_ignore '"][VarSub subdir][LIT_CHARS "non-existent' 1"]]}) (Com {[LIT_CHARS test_expect_success_multi]} {[DQ [LIT_CHARS "non-existent file "][VarSub where][LIT_CHARS " ignored"]]} {[DQ [LIT_CHARS ".gitignore:1:one\t"][VarSub subdir][LIT_CHARS one]]} {[DQ [LIT_CHARS "test_check_ignore '"][VarSub subdir][LIT_CHARS "one'"]]}) (Com {[LIT_CHARS test_expect_success_no_index_multi]} {[DQ [LIT_CHARS "non-existent file "][VarSub where][LIT_CHARS " ignored"]]} {[DQ [LIT_CHARS ".gitignore:1:one\t"][VarSub subdir][LIT_CHARS one]]} {[DQ [LIT_CHARS "test_check_ignore '"][VarSub subdir][LIT_CHARS "one'"]]}) (Com {[LIT_CHARS test_expect_success_multi]} {[DQ [LIT_CHARS "existing untracked file "][VarSub where][LIT_CHARS " not ignored"]]} {[DQ [LIT_CHARS "::\t"][VarSub subdir][LIT_CHARS not-ignored]]} {[DQ [LIT_CHARS "test_check_ignore '"][VarSub subdir][LIT_CHARS "not-ignored' 1"]]}) (Com {[LIT_CHARS test_expect_success_no_index_multi]} {[DQ [LIT_CHARS "existing untracked file "][VarSub where][LIT_CHARS " not ignored"]]} {[DQ [LIT_CHARS "::\t"][VarSub subdir][LIT_CHARS not-ignored]]} {[DQ [LIT_CHARS "test_check_ignore '"][VarSub subdir][LIT_CHARS "not-ignored' 1"]]}) (Com {[LIT_CHARS test_expect_success_multi]} {[DQ [LIT_CHARS "existing tracked file "][VarSub where][LIT_CHARS " not ignored"]]} {[DQ [LIT_CHARS "::\t"][VarSub subdir][LIT_CHARS ignored-but-in-index]]} {[DQ [LIT_CHARS "test_check_ignore '"][VarSub subdir][LIT_CHARS "ignored-but-in-index' 1"]]}) (Com {[LIT_CHARS test_expect_success_no_index_multi]} {[DQ [LIT_CHARS "existing tracked file "][VarSub where][LIT_CHARS " shown as ignored"]]} {[DQ [LIT_CHARS ".gitignore:2:ignored-*\t"][VarSub subdir][LIT_CHARS ignored-but-in-index]]} {[DQ [LIT_CHARS "test_check_ignore '"][VarSub subdir][LIT_CHARS "ignored-but-in-index'"]]}) (Com {[LIT_CHARS test_expect_success_multi]} {[DQ [LIT_CHARS "existing untracked file "][VarSub where][LIT_CHARS " ignored"]]} {[DQ [LIT_CHARS ".gitignore:2:ignored-*\t"][VarSub subdir][LIT_CHARS ignored-and-untracked]]} {[DQ [LIT_CHARS "test_check_ignore '"][VarSub subdir][LIT_CHARS "ignored-and-untracked'"]]}) (Com {[LIT_CHARS test_expect_success_no_index_multi]} {[DQ [LIT_CHARS "existing untracked file "][VarSub where][LIT_CHARS " ignored"]]} {[DQ [LIT_CHARS ".gitignore:2:ignored-*\t"][VarSub subdir][LIT_CHARS ignored-and-untracked]]} {[DQ [LIT_CHARS "test_check_ignore '"][VarSub subdir][LIT_CHARS "ignored-and-untracked'"]]}) (Com {[LIT_CHARS test_expect_success_multi]} {[DQ [LIT_CHARS "mix of file types "][VarSub where]]} {[DQ [LIT_CHARS "::\t"][VarSub subdir][LIT_CHARS "non-existent\n"][LIT_CHARS ".gitignore:1:one\t"][VarSub subdir][LIT_CHARS "one\n"][LIT_CHARS "::\t"][VarSub subdir][LIT_CHARS "not-ignored\n"][LIT_CHARS "::\t"][VarSub subdir][LIT_CHARS "ignored-but-in-index\n"][LIT_CHARS ".gitignore:2:ignored-*\t"][VarSub subdir][LIT_CHARS ignored-and-untracked]]} {[DQ [LIT_CHARS "test_check_ignore '\n"][LIT_CHARS "\t\t\t"][VarSub subdir][LIT_CHARS "non-existent\n"][LIT_CHARS "\t\t\t"][VarSub subdir][LIT_CHARS "one\n"][LIT_CHARS "\t\t\t"][VarSub subdir][LIT_CHARS "not-ignored\n"][LIT_CHARS "\t\t\t"][VarSub subdir][LIT_CHARS "ignored-but-in-index\n"][LIT_CHARS "\t\t\t"][VarSub subdir][LIT_CHARS "ignored-and-untracked'\n"][LIT_CHARS "\t\t"]]}) (Com {[LIT_CHARS test_expect_success_no_index_multi]} {[DQ [LIT_CHARS "mix of file types "][VarSub where]]} {[DQ [LIT_CHARS "::\t"][VarSub subdir][LIT_CHARS "non-existent\n"][LIT_CHARS ".gitignore:1:one\t"][VarSub subdir][LIT_CHARS "one\n"][LIT_CHARS "::\t"][VarSub subdir][LIT_CHARS "not-ignored\n"][LIT_CHARS ".gitignore:2:ignored-*\t"][VarSub subdir][LIT_CHARS "ignored-but-in-index\n"][LIT_CHARS ".gitignore:2:ignored-*\t"][VarSub subdir][LIT_CHARS ignored-and-untracked]]} {[DQ [LIT_CHARS "test_check_ignore '\n"][LIT_CHARS "\t\t\t"][VarSub subdir][LIT_CHARS "non-existent\n"][LIT_CHARS "\t\t\t"][VarSub subdir][LIT_CHARS "one\n"][LIT_CHARS "\t\t\t"][VarSub subdir][LIT_CHARS "not-ignored\n"][LIT_CHARS "\t\t\t"][VarSub subdir][LIT_CHARS "ignored-but-in-index\n"][LIT_CHARS "\t\t\t"][VarSub subdir][LIT_CHARS "ignored-and-untracked'\n"][LIT_CHARS "\t\t"]]}) ) ) (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_expect_success_multi]} {[SQ ]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success_multi]} {[SQ ]} {[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_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success_multi]} {[LIT_CHARS SYMLINKS]} {[SQ ]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success_multi]} {[LIT_CHARS SYMLINKS]} {[SQ ]} {[SQ ]} {[SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ]}) (Com {[LIT_CHARS test_expect_success_multi]} {[LIT_CHARS SYMLINKS]} {[SQ ]} {[SQ ]} {[SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ]}) (Com {[LIT_CHARS test_expect_success_multi]} {[SQ ]} {[SQ ]} {[SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ]}) (Com {[LIT_CHARS test_expect_success_multi]} {[SQ ]} {[SQ ]} {[SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [SQ ] [\ LIT_ESCAPED_CHAR "\\'"] [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 cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "one\n"] [LIT_CHARS "not-ignored\n"] [LIT_CHARS "a/one\n"] [LIT_CHARS "a/not-ignored\n"] [LIT_CHARS "a/b/on\n"] [LIT_CHARS "a/b/one\n"] [LIT_CHARS "a/b/one one\n"] [LIT_CHARS "\"a/b/one two\"\n"] [LIT_CHARS "\"a/b/one\\\"three\"\n"] [LIT_CHARS "a/b/not-ignored\n"] [LIT_CHARS "a/b/two\n"] [LIT_CHARS "a/b/twooo\n"] [LIT_CHARS "globaltwo\n"] [LIT_CHARS "a/globaltwo\n"] [LIT_CHARS "a/b/globaltwo\n"] [LIT_CHARS "b/globaltwo\n"]} 0), (FilenameRedirectNode filename={[LIT_CHARS stdin]} "> 1), > ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "one\n"] [LIT_CHARS "a/one\n"] [LIT_CHARS "a/b/on\n"] [LIT_CHARS "a/b/one\n"] [LIT_CHARS "a/b/one one\n"] [LIT_CHARS "a/b/one two\n"] [LIT_CHARS "\"a/b/one\\\"three\"\n"] [LIT_CHARS "a/b/two\n"] [LIT_CHARS "a/b/twooo\n"] [LIT_CHARS "globaltwo\n"] [LIT_CHARS "a/globaltwo\n"] [LIT_CHARS "a/b/globaltwo\n"] [LIT_CHARS "b/globaltwo\n"]} 0), (FilenameRedirectNode filename={[LIT_CHARS expected-default]} "> 1), > ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS ".gitignore:1:one\tone\n"][LIT_CHARS ".gitignore:1:one\ta/one\n"][LIT_CHARS "a/b/.gitignore:8:!on*\ta/b/on\n"][LIT_CHARS "a/b/.gitignore:8:!on*\ta/b/one\n"][LIT_CHARS "a/b/.gitignore:8:!on*\ta/b/one one\n"][LIT_CHARS "a/b/.gitignore:8:!on*\ta/b/one two\n"][LIT_CHARS "a/b/.gitignore:8:!on*\t"][RIGHT_D_QUOTE "\""][LIT_CHARS a/b/one][\ LIT_ESCAPED_CHAR "\\\\"][RIGHT_D_QUOTE "\""][LIT_CHARS three][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS "a/b/.gitignore:9:!two\ta/b/two\n"][LIT_CHARS "a/.gitignore:1:two*\ta/b/twooo\n"][VarSub global_excludes][LIT_CHARS ":2:!globaltwo\tglobaltwo\n"][VarSub global_excludes][LIT_CHARS ":2:!globaltwo\ta/globaltwo\n"][VarSub global_excludes][LIT_CHARS ":2:!globaltwo\ta/b/globaltwo\n"][VarSub global_excludes][LIT_CHARS ":2:!globaltwo\tb/globaltwo\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS expected-verbose]} "> 1), > ) (Com {[LIT_CHARS broken_c_unquote]} {[LIT_CHARS stdin]} < (FilenameRedirectNode filename={[LIT_CHARS stdin0]} "> 1), > ) (Com {[LIT_CHARS broken_c_unquote]} {[LIT_CHARS expected-default]} < (FilenameRedirectNode filename={[LIT_CHARS expected-default0]} "> 1), > ) (Com {[LIT_CHARS broken_c_unquote_verbose]} {[LIT_CHARS expected-verbose]} < (FilenameRedirectNode filename={[LIT_CHARS expected-verbose0]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (For opts [{[SQ ]}, {[SQ ]}]) (List (Com {[LIT_CHARS test_expect_success]} {[DQ [VarSub opts]]} {[DQ [LIT_CHARS "\n"][LIT_CHARS "\t\texpect_from_stdin 0), (FilenameRedirectNode filename={[LIT_CHARS stdin]} "> 1), > ) (Com {[LIT_CHARS cat]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS ".gitignore:1:one\t../one\n"][LIT_CHARS "::\t../not-ignored\n"][LIT_CHARS ".gitignore:1:one\tone\n"][LIT_CHARS "::\tnot-ignored\n"][LIT_CHARS "a/b/.gitignore:8:!on*\tb/on\n"][LIT_CHARS "a/b/.gitignore:8:!on*\tb/one\n"][LIT_CHARS "a/b/.gitignore:8:!on*\tb/one one\n"][LIT_CHARS "a/b/.gitignore:8:!on*\tb/one two\n"][LIT_CHARS "a/b/.gitignore:8:!on*\t"][RIGHT_D_QUOTE "\""][LIT_CHARS b/one][\ LIT_ESCAPED_CHAR "\\\\"][RIGHT_D_QUOTE "\""][LIT_CHARS three][RIGHT_D_QUOTE "\""][LIT_CHARS "\n"][LIT_CHARS "a/b/.gitignore:9:!two\tb/two\n"][LIT_CHARS "::\tb/not-ignored\n"][LIT_CHARS "a/.gitignore:1:two*\tb/twooo\n"][VarSub global_excludes][LIT_CHARS ":2:!globaltwo\t../globaltwo\n"][VarSub global_excludes][LIT_CHARS ":2:!globaltwo\tglobaltwo\n"][VarSub global_excludes][LIT_CHARS ":2:!globaltwo\tb/globaltwo\n"][VarSub global_excludes][LIT_CHARS ":2:!globaltwo\t../b/globaltwo\n"][LIT_CHARS "::\tc/not-ignored\n"]]} 0), (FilenameRedirectNode filename={[LIT_CHARS expected-all]} "> 1), > ) (Com {[LIT_CHARS grep]} {[LIT_CHARS -v]} {[SQ ]} {[LIT_CHARS expected-all]} < (FilenameRedirectNode filename={[LIT_CHARS expected-verbose]} "> 1), > ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS expected-verbose]} < (FilenameRedirectNode filename={[LIT_CHARS expected-default]} "> 1), > ) (Com {[LIT_CHARS broken_c_unquote]} {[LIT_CHARS stdin]} < (FilenameRedirectNode filename={[LIT_CHARS stdin0]} "> 1), > ) (Com {[LIT_CHARS broken_c_unquote]} {[LIT_CHARS expected-default]} < (FilenameRedirectNode filename={[LIT_CHARS expected-default0]} "> 1), > ) (Com {[LIT_CHARS broken_c_unquote_verbose]} {[LIT_CHARS expected-verbose]} < (FilenameRedirectNode filename={[LIT_CHARS expected-verbose0]} "> 1), > ) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ ]}) (For opts [{[SQ ]}, {[SQ ]}]) (List (Com {[LIT_CHARS test_expect_success]} {[DQ [VarSub opts][LIT_CHARS " from subdirectory"]]} {[SQ ] [DQ [VarSub opts]] [SQ ]}) (Com {[LIT_CHARS test_expect_success]} {[DQ [VarSub opts][LIT_CHARS " from subdirectory with -v"]]} {[SQ ] [DQ [VarSub opts]] [SQ ]}) ) ) (Com {[LIT_CHARS test_expect_success]} {[LIT_CHARS PIPE]} {[SQ ]} {[SQ out &) &&\n"> in\" because check-ignore would get EOF\n"> in &&\n"> &-\" &&\n"> &9 one &&\n"> &9 two &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ whitespace/trailing &&\n"> whitespace/untracked &&\n"> ignore &&\n"> expect < err.expect &&\n"> actual 2>err &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_OTHER "!"] [LIT_CHARS MINGW]} {[SQ ]} {[SQ \"whitespace/trailing \" &&\n"> whitespace/untracked &&\n"> ignore &&\n"> expect &&\n"> err.expect &&\n"> actual 2>err &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[LIT_OTHER "!"] [LIT_CHARS MINGW] [LIT_COMMA ","] [LIT_OTHER "!"] [LIT_CHARS CYGWIN]} {[SQ ]} {[SQ \"whitespace/trailing 1 \" &&\n"> \"whitespace/trailing 2 \\\\\\\\\" &&\n"> \"whitespace/trailing 3 \\\\\\\\\" &&\n"> \"whitespace/trailing 4 \\\\ \" &&\n"> \"whitespace/trailing 5 \\\\ \\\\ \" &&\n"> \"whitespace/trailing 6 \\\\a\\\\\" &&\n"> whitespace/untracked &&\n"> ignore <<-\\EOF &&\n"> expect &&\n"> err.expect &&\n"> actual 2>err &&\n"> ]}) (Com {[LIT_CHARS test_expect_success]} {[SQ ]} {[SQ >global-excludes usually-ignored &&\n"> >.git/info/exclude \"!usually-ignored\" &&\n"> usually-ignored &&\n"> expect &&\n"> actual &&\n"> ]}) (Com {[LIT_CHARS test_done]}) )