blob: b95f4856061da723cbe36bd6955c552bee7a29aa [file] [log] [blame]
# Helper functions to check if read-tree would succeed/fail as expected with
# and without the dry-run option. They also test that the dry-run does not
# write the index and that together with -u it doesn't touch the work tree.
#
read_tree_must_succeed () {
git ls-files -s >pre-dry-run &&
git read-tree -n "$@" &&
git ls-files -s >post-dry-run &&
test_cmp pre-dry-run post-dry-run &&
git read-tree "$@"
}
read_tree_must_fail () {
git ls-files -s >pre-dry-run &&
test_must_fail git read-tree -n "$@" &&
git ls-files -s >post-dry-run &&
test_cmp pre-dry-run post-dry-run &&
test_must_fail git read-tree "$@"
}
read_tree_u_must_succeed () {
git ls-files -s >pre-dry-run &&
git diff-files -p >pre-dry-run-wt &&
git read-tree -n "$@" &&
git ls-files -s >post-dry-run &&
git diff-files -p >post-dry-run-wt &&
test_cmp pre-dry-run post-dry-run &&
test_cmp pre-dry-run-wt post-dry-run-wt &&
git read-tree "$@"
}
read_tree_u_must_fail () {
git ls-files -s >pre-dry-run &&
git diff-files -p >pre-dry-run-wt &&
test_must_fail git read-tree -n "$@" &&
git ls-files -s >post-dry-run &&
git diff-files -p >post-dry-run-wt &&
test_cmp pre-dry-run post-dry-run &&
test_cmp pre-dry-run-wt post-dry-run-wt &&
test_must_fail git read-tree "$@"
}