1#!/bin/sh
   2test_description='git apply should exit non-zero with unrecognized input.'
   4. ./test-lib.sh
   6test_expect_success 'setup' '
   8        test_commit 1
   9'
  10test_expect_success 'apply --check exits non-zero with unrecognized input' '
  12        test_must_fail git apply --check - <<-\EOF
  13        I am not a patch
  14        I look nothing like a patch
  15        git apply must fail
  16        EOF
  17'
  18test_expect_success 'apply exits non-zero with no-op patch' '
  20        cat >input <<-\EOF &&
  21        diff --get a/1 b/1
  22        index 6696ea4..606eddd 100644
  23        --- a/1
  24        +++ b/1
  25        @@ -1,1 +1,1 @@
  26         1
  27        EOF
  28        test_must_fail git apply --stat input &&
  29        test_must_fail git apply --check input
  30'
  31test_expect_success '`apply --recount` allows no-op patch' '
  33        echo 1 >1 &&
  34        git apply --recount --check <<-\EOF
  35        diff --get a/1 b/1
  36        index 6696ea4..606eddd 100644
  37        --- a/1
  38        +++ b/1
  39        @@ -1,1 +1,1 @@
  40         1
  41        EOF
  42'
  43test_expect_success 'invalid combination: create and copy' '
  45        test_must_fail git apply --check - <<-\EOF
  46        diff --git a/1 b/2
  47        new file mode 100644
  48        copy from 1
  49        copy to 2
  50        EOF
  51'
  52test_expect_success 'invalid combination: create and rename' '
  54        test_must_fail git apply --check - <<-\EOF
  55        diff --git a/1 b/2
  56        new file mode 100644
  57        rename from 1
  58        rename to 2
  59        EOF
  60'
  61test_done