(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:'Return value of diffs' 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:'\techo 1 >a &&\n' span_id:23) (Token id:Id.Lit_Chars val:'\tgit add . &&\n' span_id:24) (Token id:Id.Lit_Chars val:'\tgit commit -m first &&\n' span_id:25) (Token id:Id.Lit_Chars val:'\techo 2 >b &&\n' span_id:26) (Token id:Id.Lit_Chars val:'\tgit add . &&\n' span_id:27) (Token id:Id.Lit_Chars val:'\tgit commit -a -m second &&\n' span_id:28) (Token id:Id.Lit_Chars val:'\tmkdir -p test-outside/repo && (\n' span_id:29) (Token id:Id.Lit_Chars val:'\t\tcd test-outside/repo &&\n' span_id:30) (Token id:Id.Lit_Chars val:'\t\tgit init &&\n' span_id:31) (Token id:Id.Lit_Chars val:'\t\techo "1 1" >a &&\n' span_id:32) (Token id:Id.Lit_Chars val:'\t\tgit add . &&\n' span_id:33) (Token id:Id.Lit_Chars val:'\t\tgit commit -m 1\n' span_id:34) (Token id:Id.Lit_Chars val:'\t) &&\n' span_id:35) (Token id:Id.Lit_Chars val:'\tmkdir -p test-outside/non/git && (\n' span_id:36) (Token id:Id.Lit_Chars val:'\t\tcd test-outside/non/git &&\n' span_id:37) (Token id:Id.Lit_Chars val:'\t\techo "1 1" >a &&\n' span_id:38) (Token id:Id.Lit_Chars val:'\t\techo "1 1" >matching-file &&\n' span_id:39) (Token id:Id.Lit_Chars val:'\t\techo "1 1 " >trailing-space &&\n' span_id:40) (Token id:Id.Lit_Chars val:'\t\techo "1 1" >extra-space &&\n' span_id:41) (Token id:Id.Lit_Chars val:'\t\techo "2" >never-match\n' span_id:42) (Token id:Id.Lit_Chars val:'\t)\n' span_id:43) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git diff-tree HEAD^ HEAD' span_id:50))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:54) (Token id: Id.Lit_Chars val: '\ttest_expect_code 1 git diff-tree --quiet HEAD^ HEAD >cnt &&\n' span_id: 55 ) (Token id:Id.Lit_Chars val:'\ttest_line_count = 0 cnt\n' span_id:56) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git diff-tree HEAD^ HEAD -- a' span_id:62))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:66) (Token id: Id.Lit_Chars val: '\ttest_expect_code 0 git diff-tree --quiet HEAD^ HEAD -- a >cnt &&\n' span_id: 67 ) (Token id:Id.Lit_Chars val:'\ttest_line_count = 0 cnt\n' span_id:68) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git diff-tree HEAD^ HEAD -- b' span_id:74))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:78) (Token id: Id.Lit_Chars val: '\ttest_expect_code 1 git diff-tree --quiet HEAD^ HEAD -- b >cnt &&\n' span_id: 79 ) (Token id:Id.Lit_Chars val:'\ttest_line_count = 0 cnt\n' span_id:80) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'echo HEAD | git diff-tree --stdin' span_id:89))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:93) (Token id:Id.Lit_Chars val:'\techo $(git rev-parse HEAD) |\n' span_id:94) (Token id:Id.Lit_Chars val:'\ttest_expect_code 1 git diff-tree --quiet --stdin >cnt &&\n' span_id:95) (Token id:Id.Lit_Chars val:'\ttest_line_count = 1 cnt\n' span_id:96) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git diff-tree HEAD HEAD' span_id:102))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:106) (Token id: Id.Lit_Chars val: '\ttest_expect_code 0 git diff-tree --quiet HEAD HEAD >cnt &&\n' span_id: 107 ) (Token id:Id.Lit_Chars val:'\ttest_line_count = 0 cnt\n' span_id:108) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git diff-files' span_id:114))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:118) (Token id: Id.Lit_Chars val: '\ttest_expect_code 0 git diff-files --quiet >cnt &&\n' span_id: 119 ) (Token id:Id.Lit_Chars val:'\ttest_line_count = 0 cnt\n' span_id:120) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git diff-index --cached HEAD' span_id:126))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:130) (Token id: Id.Lit_Chars val: '\ttest_expect_code 0 git diff-index --quiet --cached HEAD >cnt &&\n' span_id: 131 ) (Token id:Id.Lit_Chars val:'\ttest_line_count = 0 cnt\n' span_id:132) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git diff-index --cached HEAD^' span_id:138))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:142) (Token id: Id.Lit_Chars val: '\ttest_expect_code 1 git diff-index --quiet --cached HEAD^ >cnt &&\n' span_id: 143 ) (Token id:Id.Lit_Chars val:'\ttest_line_count = 0 cnt\n' span_id:144) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git diff-index --cached HEAD^' span_id:150))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:154) (Token id:Id.Lit_Chars val:'\techo text >>b &&\n' span_id:155) (Token id:Id.Lit_Chars val:'\techo 3 >c &&\n' span_id:156) (Token id:Id.Lit_Chars val:'\tgit add . &&\n' span_id:157) (Token id: Id.Lit_Chars val: '\ttest_expect_code 1 git diff-index --quiet --cached HEAD^ >cnt &&\n' span_id: 158 ) (Token id:Id.Lit_Chars val:'\ttest_line_count = 0 cnt\n' span_id:159) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git diff-tree -Stext HEAD^ HEAD -- b' span_id:165))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:169) (Token id:Id.Lit_Chars val:'\tgit commit -m "text in b" &&\n' span_id:170) (Token id: Id.Lit_Chars val: '\ttest_expect_code 1 git diff-tree --quiet -Stext HEAD^ HEAD -- b >cnt &&\n' span_id: 171 ) (Token id:Id.Lit_Chars val:'\ttest_line_count = 0 cnt\n' span_id:172) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git diff-tree -Snot-found HEAD^ HEAD -- b' span_id:178))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:182) (Token id: Id.Lit_Chars val: '\ttest_expect_code 0 git diff-tree --quiet -Snot-found HEAD^ HEAD -- b >cnt &&\n' span_id: 183 ) (Token id:Id.Lit_Chars val:'\ttest_line_count = 0 cnt\n' span_id:184) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git diff-files' span_id:190))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:194) (Token id:Id.Lit_Chars val:'\techo 3 >>c &&\n' span_id:195) (Token id:Id.Lit_Chars val:'\ttest_expect_code 1 git diff-files --quiet >cnt &&\n' span_id:196) (Token id:Id.Lit_Chars val:'\ttest_line_count = 0 cnt\n' span_id:197) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git diff-index --cached HEAD' span_id:204))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:208) (Token id:Id.Lit_Chars val:'\tgit update-index c &&\n' span_id:209) (Token id: Id.Lit_Chars val: '\ttest_expect_code 1 git diff-index --quiet --cached HEAD >cnt &&\n' span_id: 210 ) (Token id:Id.Lit_Chars val:'\ttest_line_count = 0 cnt\n' span_id:211) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git diff, one file outside repo' span_id:218))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:222) (Token id:Id.Lit_Chars val:'\t(\n' span_id:223) (Token id:Id.Lit_Chars val:'\t\tcd test-outside/repo &&\n' span_id:224) (Token id: Id.Lit_Chars val: '\t\ttest_expect_code 0 git diff --quiet a ../non/git/matching-file &&\n' span_id: 225 ) (Token id: Id.Lit_Chars val: '\t\ttest_expect_code 1 git diff --quiet a ../non/git/extra-space\n' span_id: 226 ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:227) ) } ) (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git diff, both files outside repo' span_id:234))} { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:238) (Token id:Id.Lit_Chars val:'\t(\n' span_id:239) (Token id: Id.Lit_Chars val: '\t\tGIT_CEILING_DIRECTORIES="$TRASH_DIRECTORY/test-outside" &&\n' span_id: 240 ) (Token id:Id.Lit_Chars val:'\t\texport GIT_CEILING_DIRECTORIES &&\n' span_id:241) (Token id:Id.Lit_Chars val:'\t\tcd test-outside/non/git &&\n' span_id:242) (Token id: Id.Lit_Chars val: '\t\ttest_expect_code 0 git diff --quiet a matching-file &&\n' span_id: 243 ) (Token id:Id.Lit_Chars val:'\t\ttest_expect_code 1 git diff --quiet a extra-space\n' span_id:244) (Token id:Id.Lit_Chars val:'\t)\n' span_id:245) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'git diff --ignore-space-at-eol, one file outside repo' span_id: 252 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:256) (Token id:Id.Lit_Chars val:'\t(\n' span_id:257) (Token id:Id.Lit_Chars val:'\t\tcd test-outside/repo &&\n' span_id:258) (Token id: Id.Lit_Chars val: '\t\ttest_expect_code 0 git diff --quiet --ignore-space-at-eol a ../non/git/trailing-space &&\n' span_id: 259 ) (Token id: Id.Lit_Chars val: '\t\ttest_expect_code 1 git diff --quiet --ignore-space-at-eol a ../non/git/extra-space\n' span_id: 260 ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:261) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'git diff --ignore-space-at-eol, both files outside repo' span_id: 268 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:272) (Token id:Id.Lit_Chars val:'\t(\n' span_id:273) (Token id: Id.Lit_Chars val: '\t\tGIT_CEILING_DIRECTORIES="$TRASH_DIRECTORY/test-outside" &&\n' span_id: 274 ) (Token id:Id.Lit_Chars val:'\t\texport GIT_CEILING_DIRECTORIES &&\n' span_id:275) (Token id:Id.Lit_Chars val:'\t\tcd test-outside/non/git &&\n' span_id:276) (Token id: Id.Lit_Chars val: '\t\ttest_expect_code 0 git diff --quiet --ignore-space-at-eol a trailing-space &&\n' span_id: 277 ) (Token id: Id.Lit_Chars val: '\t\ttest_expect_code 1 git diff --quiet --ignore-space-at-eol a extra-space\n' span_id: 278 ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:279) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'git diff --ignore-all-space, one file outside repo' span_id: 286 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:290) (Token id:Id.Lit_Chars val:'\t(\n' span_id:291) (Token id:Id.Lit_Chars val:'\t\tcd test-outside/repo &&\n' span_id:292) (Token id: Id.Lit_Chars val: '\t\ttest_expect_code 0 git diff --quiet --ignore-all-space a ../non/git/trailing-space &&\n' span_id: 293 ) (Token id: Id.Lit_Chars val: '\t\ttest_expect_code 0 git diff --quiet --ignore-all-space a ../non/git/extra-space &&\n' span_id: 294 ) (Token id: Id.Lit_Chars val: '\t\ttest_expect_code 1 git diff --quiet --ignore-all-space a ../non/git/never-match\n' span_id: 295 ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:296) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'git diff --ignore-all-space, both files outside repo' span_id: 303 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:307) (Token id:Id.Lit_Chars val:'\t(\n' span_id:308) (Token id: Id.Lit_Chars val: '\t\tGIT_CEILING_DIRECTORIES="$TRASH_DIRECTORY/test-outside" &&\n' span_id: 309 ) (Token id:Id.Lit_Chars val:'\t\texport GIT_CEILING_DIRECTORIES &&\n' span_id:310) (Token id:Id.Lit_Chars val:'\t\tcd test-outside/non/git &&\n' span_id:311) (Token id: Id.Lit_Chars val: '\t\ttest_expect_code 0 git diff --quiet --ignore-all-space a trailing-space &&\n' span_id: 312 ) (Token id: Id.Lit_Chars val: '\t\ttest_expect_code 0 git diff --quiet --ignore-all-space a extra-space &&\n' span_id: 313 ) (Token id: Id.Lit_Chars val: '\t\ttest_expect_code 1 git diff --quiet --ignore-all-space a never-match\n' span_id: 314 ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:315) ) } ) (C {(test_expect_success)} { (SQ (Token id: Id.Lit_Chars val: 'git diff --quiet ignores stat-change only entries' span_id: 322 ) ) } { (SQ (Token id:Id.Lit_Chars val:'\n' span_id:326) (Token id:Id.Lit_Chars val:'\ttest-chmtime +10 a &&\n' span_id:327) (Token id:Id.Lit_Chars val:'\techo modified >>b &&\n' span_id:328) (Token id:Id.Lit_Chars val:'\ttest_expect_code 1 git diff --quiet\n' span_id:329) ) } ) (C {(test_done)}) ] )