|  | #!/bin/sh | 
|  |  | 
|  | test_description='git apply should exit non-zero with unrecognized input.' | 
|  |  | 
|  | . ./test-lib.sh | 
|  |  | 
|  | test_expect_success 'setup' ' | 
|  | test_commit 1 | 
|  | ' | 
|  |  | 
|  | test_expect_success 'apply --check exits non-zero with unrecognized input' ' | 
|  | test_must_fail git apply --check - <<-\EOF | 
|  | I am not a patch | 
|  | I look nothing like a patch | 
|  | git apply must fail | 
|  | EOF | 
|  | ' | 
|  |  | 
|  | test_expect_success 'apply exits non-zero with no-op patch' ' | 
|  | cat >input <<-\EOF && | 
|  | diff --get a/1 b/1 | 
|  | index 6696ea4..606eddd 100644 | 
|  | --- a/1 | 
|  | +++ b/1 | 
|  | @@ -1,1 +1,1 @@ | 
|  | 1 | 
|  | EOF | 
|  | test_must_fail git apply --stat input && | 
|  | test_must_fail git apply --check input | 
|  | ' | 
|  |  | 
|  | test_expect_success '`apply --recount` allows no-op patch' ' | 
|  | echo 1 >1 && | 
|  | git apply --recount --check <<-\EOF | 
|  | diff --get a/1 b/1 | 
|  | index 6696ea4..606eddd 100644 | 
|  | --- a/1 | 
|  | +++ b/1 | 
|  | @@ -1,1 +1,1 @@ | 
|  | 1 | 
|  | EOF | 
|  | ' | 
|  |  | 
|  | test_expect_success 'invalid combination: create and copy' ' | 
|  | test_must_fail git apply --check - <<-\EOF | 
|  | diff --git a/1 b/2 | 
|  | new file mode 100644 | 
|  | copy from 1 | 
|  | copy to 2 | 
|  | EOF | 
|  | ' | 
|  |  | 
|  | test_expect_success 'invalid combination: create and rename' ' | 
|  | test_must_fail git apply --check - <<-\EOF | 
|  | diff --git a/1 b/2 | 
|  | new file mode 100644 | 
|  | rename from 1 | 
|  | rename to 2 | 
|  | EOF | 
|  | ' | 
|  |  | 
|  | test_done |