3d4b1ba23f9eacec4e1bcd29345cc7d3943badce
[platform/upstream/git.git] / t / t4006-diff-mode.sh
1 #!/bin/sh
2 #
3 # Copyright (c) 2005 Junio C Hamano
4 #
5
6 test_description='Test mode change diffs.
7
8 '
9 . ./test-lib.sh
10
11 sed_script='s/\(:100644 100755\) \('"$_x40"'\) \2 /\1 X X /'
12
13 test_expect_success 'setup' '
14         echo frotz >rezrov &&
15         git update-index --add rezrov &&
16         tree=`git write-tree` &&
17         echo $tree
18 '
19
20 test_expect_success 'chmod' '
21         test_chmod +x rezrov &&
22         git diff-index $tree >current &&
23         sed -e "$sed_script" <current >check &&
24         echo ":100644 100755 X X M      rezrov" >expected &&
25         test_cmp expected check
26 '
27
28 test_expect_success 'prepare binary file' '
29         git commit -m rezrov &&
30         printf "\00\01\02\03\04\05\06" >binbin &&
31         git add binbin &&
32         git commit -m binbin
33 '
34
35 test_expect_success '--stat output after text chmod' '
36         test_chmod -x rezrov &&
37         echo " 0 files changed" >expect &&
38         git diff HEAD --stat >actual &&
39         test_i18ncmp expect actual
40 '
41
42 test_expect_success '--shortstat output after text chmod' '
43         git diff HEAD --shortstat >actual &&
44         test_i18ncmp expect actual
45 '
46
47 test_expect_success '--stat output after binary chmod' '
48         test_chmod +x binbin &&
49         echo " 0 files changed" >expect &&
50         git diff HEAD --stat >actual &&
51         test_i18ncmp expect actual
52 '
53
54 test_expect_success '--shortstat output after binary chmod' '
55         git diff HEAD --shortstat >actual &&
56         test_i18ncmp expect actual
57 '
58
59 test_done