summaryrefslogtreecommitdiff
path: root/tests/corrupt-reject-files
blob: 0e0c351f6352811f7c6d2f6c54f389dbbb2fbc43 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# Copyright (C) 2009, 2011 Free Software Foundation, Inc.
#
# Copying and distribution of this file, with or without modification,
# in any medium, are permitted without royalty provided the copyright
# notice and this notice are preserved.

. $srcdir/test-lib.sh

require_cat
use_local_patch
use_tmpdir

# ==============================================================

# Regression test for an off-by-one error:
#
# Date: Sun, 26 Aug 2007 13:50:45 +0200
# From: Jim Meyering <jim@meyering.net>
#
# The problem arises when the input is a context diff and the second
# byte on a line of context is not a space or tab.
# Patch then happily gobbles/ignores that bogus byte and outputs
# the rest of the line with an additional (NUL) byte at the end.

seq 1 7 > a

cat > ab.diff <<EOF
*** a
--- b
***************
*** 1,7 ****
  1
  2
  3
- X
  5
  6
 7 yyy
--- 1,6 ----
EOF

check 'patch a < ab.diff || echo "Status: $?"' <<EOF
patching file a
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- saving rejects to file a.rej
Status: 1
EOF

check 'cat -ve a.rej' <<EOF
*** a$
--- b$
***************$
*** 1,7 ****$
  1$
  2$
  3$
- X$
  5$
  6$
  7 yyy$
--- 1,6 ----$
  1$
  2$
  3$
  5$
  6$
  7 yyy$
EOF