t / lib-read-tree.shon commit remove #!interpreter line from shell libraries (11d6214)
   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.
   4#
   5read_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 &&
  10    git read-tree "$@"
  11}
  12
  13read_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 "$@"
  19}
  20
  21read_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 &&
  29    git read-tree "$@"
  30}
  31
  32read_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 "$@"
  41}