(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 ls-files -k and -m flags test.\n' span_id:15) (Token id:Id.Lit_Chars val:'\n' span_id:16) (Token id:Id.Lit_Chars val:'This test prepares the following in the cache:\n' span_id:17) (Token id:Id.Lit_Chars val:'\n' span_id:18) (Token id:Id.Lit_Chars val:' path0 - a file\n' span_id:19) (Token id: Id.Lit_Chars val: ' path1 - a symlink\n' span_id: 20 ) (Token id:Id.Lit_Chars val:' path2/file2 - a file in a directory\n' span_id:21) (Token id: Id.Lit_Chars val: ' path3/file3 - a file in a directory\n' span_id: 22 ) (Token id:Id.Lit_Chars val:' pathx/ju - a file in a directory\n' span_id:23) (Token id: Id.Lit_Chars val: ' submod1/\t- a submodule\n' span_id: 24 ) (Token id:Id.Lit_Chars val:' submod2/\t- another submodule\n' span_id:25) (Token id:Id.Lit_Chars val:'\n' span_id:26) (Token id:Id.Lit_Chars val:'and the following on the filesystem:\n' span_id:27) (Token id:Id.Lit_Chars val:'\n' span_id:28) (Token id:Id.Lit_Chars val:' path0/file0 - a file in a directory\n' span_id:29) (Token id: Id.Lit_Chars val: ' path1/file1 - a file in a directory\n' span_id: 30 ) (Token id:Id.Lit_Chars val:' path2 - a file\n' span_id:31) (Token id: Id.Lit_Chars val: ' path3 - a symlink\n' span_id: 32 ) (Token id:Id.Lit_Chars val:' path4\t- a file\n' span_id:33) (Token id:Id.Lit_Chars val:' path5\t- a symlink\n' span_id:34) (Token id:Id.Lit_Chars val:' path6/file6 - a file in a directory\n' span_id:35) (Token id: Id.Lit_Chars val: ' pathx/ju/nk - a file in a directory to be killed\n' span_id: 36 ) (Token id:Id.Lit_Chars val:' submod1/\t- a submodule (modified from the cache)\n' span_id:37) (Token id: Id.Lit_Chars val: ' submod2/\t- a submodule (matches the cache)\n' span_id: 38 ) (Token id:Id.Lit_Chars val:'\n' span_id:39) (Token id: Id.Lit_Chars val: 'git ls-files -k should report that existing filesystem objects\n' span_id: 40 ) (Token id:Id.Lit_Chars val:'path0/*, path1/*, path2 and path3 to be killed.\n' span_id:41) (Token id:Id.Lit_Chars val:'\n' span_id:42) (Token id: Id.Lit_Chars val: 'Also for modification test, the cache and working tree have:\n' span_id: 43 ) (Token id:Id.Lit_Chars val:'\n' span_id:44) (Token id: Id.Lit_Chars val: ' path7 - an empty file, modified to a non-empty file.\n' span_id: 45 ) (Token id: Id.Lit_Chars val: ' path8 - a non-empty file, modified to an empty file.\n' span_id: 46 ) (Token id:Id.Lit_Chars val:' path9\t- an empty file, cache dirtied.\n' span_id:47) (Token id: Id.Lit_Chars val: ' path10\t- a non-empty file, cache dirtied.\n' span_id: 48 ) (Token id:Id.Lit_Chars val:'\n' span_id:49) (Token id: Id.Lit_Chars val: 'We should report path0, path1, path2/file2, path3/file3, path7 and path8\n' span_id: 50 ) (Token id: Id.Lit_Chars val: 'modified without reporting path9 and path10. submod1 is also modified.\n' span_id: 51 ) ) } spids: [13] ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git update-index --add to add various paths.' span_id:62))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:66) (Token id:Id.Lit_Chars val:'\tdate >path0 &&\n' span_id:67) (Token id:Id.Lit_Chars val:'\ttest_ln_s_add xyzzy path1 &&\n' span_id:68) (Token id:Id.Lit_Chars val:'\tmkdir path2 path3 pathx &&\n' span_id:69) (Token id:Id.Lit_Chars val:'\tdate >path2/file2 &&\n' span_id:70) (Token id:Id.Lit_Chars val:'\tdate >path3/file3 &&\n' span_id:71) (Token id:Id.Lit_Chars val:'\t>pathx/ju &&\n' span_id:72) (Token id:Id.Lit_Chars val:'\t: >path7 &&\n' span_id:73) (Token id:Id.Lit_Chars val:'\tdate >path8 &&\n' span_id:74) (Token id:Id.Lit_Chars val:'\t: >path9 &&\n' span_id:75) (Token id:Id.Lit_Chars val:'\tdate >path10 &&\n' span_id:76) (Token id: Id.Lit_Chars val: '\tgit update-index --add -- path0 path?/file? pathx/ju path7 path8 path9 path10 &&\n' span_id: 77 ) (Token id:Id.Lit_Chars val:'\tgit init submod1 &&\n' span_id:78) (Token id: Id.Lit_Chars val: '\tgit -C submod1 commit --allow-empty -m "empty 1" &&\n' span_id: 79 ) (Token id:Id.Lit_Chars val:'\tgit init submod2 &&\n' span_id:80) (Token id: Id.Lit_Chars val: '\tgit -C submod2 commit --allow-empty -m "empty 2" &&\n' span_id: 81 ) (Token id:Id.Lit_Chars val:'\tgit update-index --add submod[12] &&\n' span_id:82) (Token id:Id.Lit_Chars val:'\t(\n' span_id:83) (Token id:Id.Lit_Chars val:'\t\tcd submod1 &&\n' span_id:84) (Token id: Id.Lit_Chars val: '\t\tgit commit --allow-empty -m "empty 1 (updated)"\n' span_id: 85 ) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:86) (Token id:Id.Lit_Chars val:'\trm -fr path?\t# leave path10 alone\n' span_id:87) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git ls-files -k to show killed files.' span_id:94))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:98) (Token id:Id.Lit_Chars val:'\tdate >path2 &&\n' span_id:99) (Token id:Id.Lit_Chars val:'\tif test_have_prereq SYMLINKS\n' span_id:100) (Token id:Id.Lit_Chars val:'\tthen\n' span_id:101) (Token id:Id.Lit_Chars val:'\t\tln -s frotz path3 &&\n' span_id:102) (Token id:Id.Lit_Chars val:'\t\tln -s nitfol path5\n' span_id:103) (Token id:Id.Lit_Chars val:'\telse\n' span_id:104) (Token id:Id.Lit_Chars val:'\t\tdate >path3 &&\n' span_id:105) (Token id:Id.Lit_Chars val:'\t\tdate >path5\n' span_id:106) (Token id:Id.Lit_Chars val:'\tfi &&\n' span_id:107) (Token id:Id.Lit_Chars val:'\tmkdir -p path0 path1 path6 pathx/ju &&\n' span_id:108) (Token id:Id.Lit_Chars val:'\tdate >path0/file0 &&\n' span_id:109) (Token id:Id.Lit_Chars val:'\tdate >path1/file1 &&\n' span_id:110) (Token id:Id.Lit_Chars val:'\tdate >path6/file6 &&\n' span_id:111) (Token id:Id.Lit_Chars val:'\tdate >path7 &&\n' span_id:112) (Token id:Id.Lit_Chars val:'\t: >path8 &&\n' span_id:113) (Token id:Id.Lit_Chars val:'\t: >path9 &&\n' span_id:114) (Token id:Id.Lit_Chars val:'\ttouch path10 &&\n' span_id:115) (Token id:Id.Lit_Chars val:'\t>pathx/ju/nk &&\n' span_id:116) (Token id:Id.Lit_Chars val:'\tcat >.expected <<-\\EOF\n' span_id:117) (Token id:Id.Lit_Chars val:'\tpath0/file0\n' span_id:118) (Token id:Id.Lit_Chars val:'\tpath1/file1\n' span_id:119) (Token id:Id.Lit_Chars val:'\tpath2\n' span_id:120) (Token id:Id.Lit_Chars val:'\tpath3\n' span_id:121) (Token id:Id.Lit_Chars val:'\tpathx/ju/nk\n' span_id:122) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:123) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git ls-files -k output (w/o icase)' span_id:130))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:134) (Token id:Id.Lit_Chars val:'\tgit ls-files -k >.output &&\n' span_id:135) (Token id:Id.Lit_Chars val:'\ttest_cmp .expected .output\n' span_id:136) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git ls-files -k output (w/ icase)' span_id:143))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:147) (Token id: Id.Lit_Chars val: '\tgit -c core.ignorecase=true ls-files -k >.output &&\n' span_id: 148 ) (Token id:Id.Lit_Chars val:'\ttest_cmp .expected .output\n' span_id:149) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git ls-files -m to show modified files.' span_id:156))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:160) (Token id:Id.Lit_Chars val:'\tgit ls-files -m >.output\n' span_id:161) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'validate git ls-files -m output.' span_id:168))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:172) (Token id:Id.Lit_Chars val:'\tcat >.expected <<-\\EOF &&\n' span_id:173) (Token id:Id.Lit_Chars val:'\tpath0\n' span_id:174) (Token id:Id.Lit_Chars val:'\tpath1\n' span_id:175) (Token id:Id.Lit_Chars val:'\tpath2/file2\n' span_id:176) (Token id:Id.Lit_Chars val:'\tpath3/file3\n' span_id:177) (Token id:Id.Lit_Chars val:'\tpath7\n' span_id:178) (Token id:Id.Lit_Chars val:'\tpath8\n' span_id:179) (Token id:Id.Lit_Chars val:'\tpathx/ju\n' span_id:180) (Token id:Id.Lit_Chars val:'\tsubmod1\n' span_id:181) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:182) (Token id:Id.Lit_Chars val:'\ttest_cmp .expected .output\n' span_id:183) ) } ) (C {(test_done)}) ] )