1 # Helper functions to check if read-tree would succeed/fail as expected with
2 # and without the dry-run option. They also test that the dry-run does not
3 # write the index and that together with -u it doesn't touch the work tree.
5 read_tree_must_succeed
() {
6 git ls-files
-s >pre-dry-run
&&
7 git read-tree
-n "$@" &&
8 git ls-files
-s >post-dry-run
&&
9 test_cmp pre-dry-run post-dry-run
&&
13 read_tree_must_fail
() {
14 git ls-files
-s >pre-dry-run
&&
15 test_must_fail git read-tree
-n "$@" &&
16 git ls-files
-s >post-dry-run
&&
17 test_cmp pre-dry-run post-dry-run
&&
18 test_must_fail git read-tree
"$@"
21 read_tree_u_must_succeed
() {
22 git ls-files
-s >pre-dry-run
&&
23 git diff-files
-p >pre-dry-run-wt
&&
24 git read-tree
-n "$@" &&
25 git ls-files
-s >post-dry-run
&&
26 git diff-files
-p >post-dry-run-wt
&&
27 test_cmp pre-dry-run post-dry-run
&&
28 test_cmp pre-dry-run-wt post-dry-run-wt
&&
32 read_tree_u_must_fail
() {
33 git ls-files
-s >pre-dry-run
&&
34 git diff-files
-p >pre-dry-run-wt
&&
35 test_must_fail git read-tree
-n "$@" &&
36 git ls-files
-s >post-dry-run
&&
37 git diff-files
-p >post-dry-run-wt
&&
38 test_cmp pre-dry-run post-dry-run
&&
39 test_cmp pre-dry-run-wt post-dry-run-wt
&&
40 test_must_fail git read-tree
"$@"