Merge branch 'jc/lstat'
[git] / t / t0004-unwritable.sh
1 #!/bin/sh
2
3 test_description='detect unwritable repository and fail correctly'
4
5 . ./test-lib.sh
6
7 test_expect_success setup '
8
9         >file &&
10         git add file &&
11         git commit -m initial &&
12         echo >file &&
13         git add file
14
15 '
16
17 test_expect_success 'write-tree should notice unwritable repository' '
18
19         (
20                 chmod a-w .git/objects
21                 test_must_fail git write-tree
22         )
23         status=$?
24         chmod 775 .git/objects
25         (exit $status)
26
27 '
28
29 test_expect_success 'commit should notice unwritable repository' '
30
31         (
32                 chmod a-w .git/objects
33                 test_must_fail git commit -m second
34         )
35         status=$?
36         chmod 775 .git/objects
37         (exit $status)
38
39 '
40
41 test_expect_success 'update-index should notice unwritable repository' '
42
43         (
44                 echo a >file &&
45                 chmod a-w .git/objects
46                 test_must_fail git update-index file
47         )
48         status=$?
49         chmod 775 .git/objects
50         (exit $status)
51
52 '
53
54 test_expect_success 'add should notice unwritable repository' '
55
56         (
57                 echo b >file &&
58                 chmod a-w .git/objects
59                 test_must_fail git add file
60         )
61         status=$?
62         chmod 775 .git/objects
63         (exit $status)
64
65 '
66
67 test_done