#!/bin/sh
# Copyright 2008 by Denys Vlasenko
# Licensed under GPLv2, see file LICENSE in this source tree.

. ./testing.sh

# testing "test name" "command(s)" "expected result" "file input" "stdin"

testing "patch with old_file == new_file" \
	'patch 2>&1; echo $?; cat input' \
"\
patching file input
0
qwe
asd
zxc
" \
"\
qwe
zxc
" \
"\
--- input	Jan 01 01:01:01 2000
+++ input	Jan 01 01:01:01 2000
@@ -1,2 +1,3 @@
 qwe
+asd
 zxc
" \

testing "patch with nonexistent old_file" \
	'patch 2>&1; echo $?; cat input' \
"\
patching file input
0
qwe
asd
zxc
" \
"\
qwe
zxc
" \
"\
--- input.doesnt_exist	Jan 01 01:01:01 2000
+++ input	Jan 01 01:01:01 2000
@@ -1,2 +1,3 @@
 qwe
+asd
 zxc
" \

testing "patch -R with nonexistent old_file" \
	'patch -R 2>&1; echo $?; cat input' \
"\
patching file input
0
qwe
zxc
" \
"\
qwe
asd
zxc
" \
"\
--- input.doesnt_exist	Jan 01 01:01:01 2000
+++ input	Jan 01 01:01:01 2000
@@ -1,2 +1,3 @@
 qwe
+asd
 zxc
" \

testing "patch detects already applied hunk" \
	'patch 2>&1; echo $?; cat input' \
"\
Possibly reversed hunk 1 at 4
Hunk 1 FAILED 1/1.
 abc
+def
 123
patching file input
1
abc
def
123
" \
"\
abc
def
123
" \
"\
--- input.old	Jan 01 01:01:01 2000
+++ input	Jan 01 01:01:01 2000
@@ -1,2 +1,3 @@
 abc
+def
 123
" \

testing "patch detects already applied hunk at the EOF" \
	'patch 2>&1; echo $?; cat input' \
"\
Possibly reversed hunk 1 at 4
Hunk 1 FAILED 1/1.
 abc
 123
+456
patching file input
1
abc
123
456
" \
"\
abc
123
456
" \
"\
--- input.old	Jan 01 01:01:01 2000
+++ input	Jan 01 01:01:01 2000
@@ -1,2 +1,3 @@
 abc
 123
+456
" \

# testing "test name" "command(s)" "expected result" "file input" "stdin"
testing "patch -N ignores already applied hunk" \
	'patch -N 2>&1; echo $?; cat input' \
"\
patching file input
0
abc
def
123
" \
"\
abc
def
123
" \
"\
--- input
+++ input
@@ -1,2 +1,3 @@
 abc
+def
 123
" \

# testing "test name" "command(s)" "expected result" "file input" "stdin"
testing "patch FILE PATCH" \
	'cat >a.patch; patch input a.patch 2>&1; echo $?; cat input; rm a.patch' \
"\
patching file input
0
abc
def
123
" \
"\
abc
123
" \
"\
--- foo.old
+++ foo
@@ -1,2 +1,3 @@
 abc
+def
 123
" \

# testing "test name" "command(s)" "expected result" "file input" "stdin"
testing "patch at the beginning" \
	'patch 2>&1; cat input' \
"\
patching file input
111changed
444
555
666
777
888
999
" \
"\
111
222
333
444
555
666
777
888
999
" \
"\
--- input
+++ input
@@ -1,6 +1,4 @@
-111
-222
-333
+111changed
 444
 555
 666
" \

# testing "test name" "command(s)" "expected result" "file input" "stdin"
testing "patch creates new file" \
	'patch 2>&1; echo $?; cat testfile; rm testfile' \
"\
creating testfile
0
qwerty
" "" "\
--- /dev/null
+++ testfile
@@ -0,0 +1 @@
+qwerty
"

# testing "test name" "command(s)" "expected result" "file input" "stdin"
testing "patch understands ...dir///dir..." \
	'patch -p1 2>&1; echo $?' \
"\
patching file dir2///file
patch: can't open 'dir2///file': No such file or directory
1
" "" "\
--- bogus_dir///dir2///file
+++ bogus_dir///dir2///file
@@ -1,2 +1,3 @@
 qwe
+asd
 zxc
"

testing "patch internal buffering bug?" \
	'patch -p1 2>&1; echo $?; cat input' \
"\
patching file input
0
foo






1
2
3

bar
" \
"\
foo







bar
" \
"\
--- a/input.orig
+++ b/input
@@ -5,5 +5,8 @@ foo
 
 
 
+1
+2
+3
 
 bar
-- 
2.9.2
" \

rm input.orig 2>/dev/null

exit $FAILCOUNT
