(command.CommandList children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:test_description) op: Equal rhs: {(SQ <'Return value of diffs'>)} ) ] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ <setup>)} { (SQ <'\n'> <'\techo "1 " >a &&\n'> <'\tgit add . &&\n'> <'\tgit commit -m zeroth &&\n'> <'\techo 1 >a &&\n'> <'\tgit add . &&\n'> <'\tgit commit -m first &&\n'> <'\techo 2 >b &&\n'> <'\tgit add . &&\n'> <'\tgit commit -a -m second\n'> ) } ) (C {(test_expect_success)} {(SQ <'git diff --quiet -w HEAD^^ HEAD^'>)} {(SQ <'\n'> <'\tgit diff --quiet -w HEAD^^ HEAD^\n'>)} ) (C {(test_expect_success)} {(SQ <'git diff --quiet HEAD^^ HEAD^'>)} {(SQ <'\n'> <'\ttest_must_fail git diff --quiet HEAD^^ HEAD^\n'>)} ) (C {(test_expect_success)} {(SQ <'git diff --quiet -w HEAD^ HEAD'>)} {(SQ <'\n'> <'\ttest_must_fail git diff --quiet -w HEAD^ HEAD\n'>)} ) (C {(test_expect_success)} {(SQ <'git diff-tree HEAD^ HEAD'>)} {(SQ <'\n'> <'\ttest_expect_code 1 git diff-tree --exit-code HEAD^ HEAD\n'>)} ) (C {(test_expect_success)} {(SQ <'git diff-tree HEAD^ HEAD -- a'>)} {(SQ <'\n'> <'\tgit diff-tree --exit-code HEAD^ HEAD -- a\n'>)} ) (C {(test_expect_success)} {(SQ <'git diff-tree HEAD^ HEAD -- b'>)} {(SQ <'\n'> <'\ttest_expect_code 1 git diff-tree --exit-code HEAD^ HEAD -- b\n'>)} ) (C {(test_expect_success)} {(SQ <'echo HEAD | git diff-tree --stdin'>)} { (SQ <'\n'> <'\techo $(git rev-parse HEAD) | test_expect_code 1 git diff-tree --exit-code --stdin\n'> ) } ) (C {(test_expect_success)} {(SQ <'git diff-tree HEAD HEAD'>)} {(SQ <'\n'> <'\tgit diff-tree --exit-code HEAD HEAD\n'>)} ) (C {(test_expect_success)} {(SQ <'git diff-files'>)} {(SQ <'\n'> <'\tgit diff-files --exit-code\n'>)}) (C {(test_expect_success)} {(SQ <'git diff-index --cached HEAD'>)} {(SQ <'\n'> <'\tgit diff-index --exit-code --cached HEAD\n'>)} ) (C {(test_expect_success)} {(SQ <'git diff-index --cached HEAD^'>)} {(SQ <'\n'> <'\ttest_expect_code 1 git diff-index --exit-code --cached HEAD^\n'>)} ) (C {(test_expect_success)} {(SQ <'git diff-index --cached HEAD^'>)} { (SQ <'\n'> <'\techo text >>b &&\n'> <'\techo 3 >c &&\n'> <'\tgit add . &&\n'> <'\ttest_expect_code 1 git diff-index --exit-code --cached HEAD^\n'> ) } ) (C {(test_expect_success)} {(SQ <'git diff-tree -Stext HEAD^ HEAD -- b'>)} { (SQ <'\n'> <'\tgit commit -m "text in b" &&\n'> <'\ttest_expect_code 1 git diff-tree -p --exit-code -Stext HEAD^ HEAD -- b\n'> ) } ) (C {(test_expect_success)} {(SQ <'git diff-tree -Snot-found HEAD^ HEAD -- b'>)} {(SQ <'\n'> <'\tgit diff-tree -p --exit-code -Snot-found HEAD^ HEAD -- b\n'>)} ) (C {(test_expect_success)} {(SQ <'git diff-files'>)} {(SQ <'\n'> <'\techo 3 >>c &&\n'> <'\ttest_expect_code 1 git diff-files --exit-code\n'>)} ) (C {(test_expect_success)} {(SQ <'git diff-index --cached HEAD'>)} { (SQ <'\n'> <'\tgit update-index c &&\n'> <'\ttest_expect_code 1 git diff-index --exit-code --cached HEAD\n'> ) } ) (C {(test_expect_success)} {(SQ <'--check --exit-code returns 0 for no difference'>)} {(SQ <'\n'> <'\n'> <'\tgit diff --check --exit-code\n'> <'\n'>)} ) (C {(test_expect_success)} {(SQ <'--check --exit-code returns 1 for a clean difference'>)} { (SQ <'\n'> <'\n'> <'\techo "good" > a &&\n'> <'\ttest_expect_code 1 git diff --check --exit-code\n'> <'\n'> ) } ) (C {(test_expect_success)} {(SQ <'--check --exit-code returns 3 for a dirty difference'>)} { (SQ <'\n'> <'\n'> <'\techo "bad " >> a &&\n'> <'\ttest_expect_code 3 git diff --check --exit-code\n'> <'\n'> ) } ) (C {(test_expect_success)} {(SQ <'--check with --no-pager returns 2 for dirty difference'>)} {(SQ <'\n'> <'\n'> <'\ttest_expect_code 2 git --no-pager diff --check\n'> <'\n'>)} ) (C {(test_expect_success)} {(SQ <'check should test not just the last line'>)} { (SQ <'\n'> <'\techo "" >>a &&\n'> <'\ttest_expect_code 2 git --no-pager diff --check\n'> <'\n'>) } ) (C {(test_expect_success)} {(SQ <'check detects leftover conflict markers'>)} { (SQ <'\n'> <'\tgit reset --hard &&\n'> <'\tgit checkout HEAD^ &&\n'> <'\techo binary >>b &&\n'> <'\tgit commit -m "side" b &&\n'> <'\ttest_must_fail git merge master &&\n'> <'\tgit add b &&\n'> <'\ttest_expect_code 2 git --no-pager diff --cached --check >test.out &&\n'> <'\ttest 3 = $(grep "conflict marker" test.out | wc -l) &&\n'> <'\tgit reset --hard\n'> ) } ) (C {(test_expect_success)} {(SQ <'check honors conflict marker length'>)} { (SQ <'\n'> <'\tgit reset --hard &&\n'> <'\techo ">>>>>>> boo" >>b &&\n'> <'\techo "======" >>a &&\n'> <'\tgit diff --check a &&\n'> <'\ttest_expect_code 2 git diff --check b &&\n'> <'\tgit reset --hard &&\n'> <'\techo ">>>>>>>> boo" >>b &&\n'> <'\techo "========" >>a &&\n'> <'\tgit diff --check &&\n'> <'\techo "b conflict-marker-size=8" >.gitattributes &&\n'> <'\ttest_expect_code 2 git diff --check b &&\n'> <'\tgit diff --check a &&\n'> <'\tgit reset --hard\n'> ) } ) (C {(test_done)}) ] )