| #!/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' \ |
| "\ |
| patching file input |
| Possibly reversed hunk 1 at 4 |
| Hunk 1 FAILED 1/1. |
| abc |
| +def |
| 123 |
| 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' \ |
| "\ |
| patching file input |
| Possibly reversed hunk 1 at 4 |
| Hunk 1 FAILED 1/1. |
| abc |
| 123 |
| +456 |
| 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 |