]>
Commit | Line | Data |
---|---|---|
d8faea9d JN |
1 | #!/bin/sh |
2 | ||
3 | test_description='diff --relative tests' | |
4 | . ./test-lib.sh | |
5 | ||
6 | test_expect_success 'setup' ' | |
7 | git commit --allow-empty -m empty && | |
8 | echo content >file1 && | |
9 | mkdir subdir && | |
10 | echo other content >subdir/file2 && | |
11 | git add . && | |
12 | git commit -m one | |
13 | ' | |
14 | ||
15 | check_diff() { | |
16 | expect=$1; shift | |
17 | cat >expected <<EOF | |
18 | diff --git a/$expect b/$expect | |
19 | new file mode 100644 | |
20 | index 0000000..25c05ef | |
21 | --- /dev/null | |
22 | +++ b/$expect | |
23 | @@ -0,0 +1 @@ | |
24 | +other content | |
25 | EOF | |
26 | test_expect_success "-p $*" " | |
27 | git diff -p $* HEAD^ >actual && | |
28 | test_cmp expected actual | |
29 | " | |
30 | } | |
31 | ||
32 | check_stat() { | |
33 | expect=$1; shift | |
34 | cat >expected <<EOF | |
35 | $expect | 1 + | |
36 | 1 files changed, 1 insertions(+), 0 deletions(-) | |
37 | EOF | |
38 | test_expect_success "--stat $*" " | |
39 | git diff --stat $* HEAD^ >actual && | |
40 | test_cmp expected actual | |
41 | " | |
42 | } | |
43 | ||
44 | check_raw() { | |
45 | expect=$1; shift | |
46 | cat >expected <<EOF | |
47 | :000000 100644 0000000000000000000000000000000000000000 25c05ef3639d2d270e7fe765a67668f098092bc5 A $expect | |
48 | EOF | |
49 | test_expect_success "--raw $*" " | |
50 | git diff --no-abbrev --raw $* HEAD^ >actual && | |
51 | test_cmp expected actual | |
52 | " | |
53 | } | |
54 | ||
55 | for type in diff stat raw; do | |
56 | check_$type file2 --relative=subdir/ | |
57 | check_$type file2 --relative=subdir | |
58 | check_$type dir/file2 --relative=sub | |
59 | done | |
60 | ||
61 | test_done |