diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-10-21 10:49:24 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-10-21 10:49:24 -0700 |
commit | cec3e186f7b76cdced54286ef1da42b6978c4c8d (patch) | |
tree | 8e7ca592b5e92112c30b940b5ef8242a3fa48a38 /t | |
parent | df6840855d24c2f54c0b8a66cbac33d8af43333a (diff) | |
parent | 2c93286ab2ca5271e26779ffd1ecfd1c7a082a41 (diff) | |
download | git-cec3e186f7b76cdced54286ef1da42b6978c4c8d.tar.gz |
Merge branch 'jm/maint-apply-detects-corrupt-patch-header' into maint
* jm/maint-apply-detects-corrupt-patch-header:
fix "git apply --index ..." not to deref NULL
Diffstat (limited to 't')
-rwxr-xr-x | t/t4254-am-corrupt.sh | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/t/t4254-am-corrupt.sh b/t/t4254-am-corrupt.sh new file mode 100755 index 0000000000..b7da95fac5 --- /dev/null +++ b/t/t4254-am-corrupt.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +test_description='git am with corrupt input' +. ./test-lib.sh + +# Note the missing "+++" line: +cat > bad-patch.diff <<'EOF' +From: A U Thor <au.thor@example.com> +diff --git a/f b/f +index 7898192..6178079 100644 +--- a/f +@@ -1 +1 @@ +-a ++b +EOF + +test_expect_success setup ' + test $? = 0 && + echo a > f && + git add f && + test_tick && + git commit -m initial +' + +# This used to fail before, too, but with a different diagnostic. +# fatal: unable to write file '(null)' mode 100644: Bad address +# Also, it had the unwanted side-effect of deleting f. +test_expect_success 'try to apply corrupted patch' ' + git am bad-patch.diff 2> actual + test $? = 1 +' + +cat > expected <<EOF +fatal: git diff header lacks filename information (line 4) +EOF + +test_expect_success 'compare diagnostic; ensure file is still here' ' + test $? = 0 && + test -f f && + test_cmp expected actual +' + +test_done |