1#!/bin/sh
2
3test_description='Return value of diffs'
4
5. ./test-lib.sh
6
7test_expect_success 'setup' '
8 echo 1 >a &&
9 git add . &&
10 git commit -m first &&
11 echo 2 >b &&
12 git add . &&
13 git commit -a -m second
14'
15
16test_expect_success 'git diff-tree HEAD^ HEAD' '
17 git diff-tree --quiet HEAD^ HEAD >cnt
18 test $? = 1 && test $(wc -l <cnt) = 0
19'
20test_expect_success 'git diff-tree HEAD^ HEAD -- a' '
21 git diff-tree --quiet HEAD^ HEAD -- a >cnt
22 test $? = 0 && test $(wc -l <cnt) = 0
23'
24test_expect_success 'git diff-tree HEAD^ HEAD -- b' '
25 git diff-tree --quiet HEAD^ HEAD -- b >cnt
26 test $? = 1 && test $(wc -l <cnt) = 0
27'
28# this diff outputs one line: sha1 of the given head
29test_expect_success 'echo HEAD | git diff-tree --stdin' '
30 echo $(git rev-parse HEAD) | git diff-tree --quiet --stdin >cnt
31 test $? = 1 && test $(wc -l <cnt) = 1
32'
33test_expect_success 'git diff-tree HEAD HEAD' '
34 git diff-tree --quiet HEAD HEAD >cnt
35 test $? = 0 && test $(wc -l <cnt) = 0
36'
37test_expect_success 'git diff-files' '
38 git diff-files --quiet >cnt
39 test $? = 0 && test $(wc -l <cnt) = 0
40'
41test_expect_success 'git diff-index --cached HEAD' '
42 git diff-index --quiet --cached HEAD >cnt
43 test $? = 0 && test $(wc -l <cnt) = 0
44'
45test_expect_success 'git diff-index --cached HEAD^' '
46 git diff-index --quiet --cached HEAD^ >cnt
47 test $? = 1 && test $(wc -l <cnt) = 0
48'
49test_expect_success 'git diff-index --cached HEAD^' '
50 echo text >>b &&
51 echo 3 >c &&
52 git add . && {
53 git diff-index --quiet --cached HEAD^ >cnt
54 test $? = 1 && test $(wc -l <cnt) = 0
55 }
56'
57test_expect_success 'git diff-tree -Stext HEAD^ HEAD -- b' '
58 git commit -m "text in b" && {
59 git diff-tree --quiet -Stext HEAD^ HEAD -- b >cnt
60 test $? = 1 && test $(wc -l <cnt) = 0
61 }
62'
63test_expect_success 'git diff-tree -Snot-found HEAD^ HEAD -- b' '
64 git diff-tree --quiet -Snot-found HEAD^ HEAD -- b >cnt
65 test $? = 0 && test $(wc -l <cnt) = 0
66'
67test_expect_success 'git diff-files' '
68 echo 3 >>c && {
69 git diff-files --quiet >cnt
70 test $? = 1 && test $(wc -l <cnt) = 0
71 }
72'
73test_expect_success 'git diff-index --cached HEAD' '
74 git update-index c && {
75 git diff-index --quiet --cached HEAD >cnt
76 test $? = 1 && test $(wc -l <cnt) = 0
77 }
78'
79
80test_done