ip link: add VLAN support
[oweals/busybox.git] / testsuite / patch.tests
index 749d936eaedbfb7c918a243c0a776888296f516f..2759d2ad4b788cad47a5afb78c28ae2ba257222a 100755 (executable)
@@ -1,13 +1,13 @@
 #!/bin/sh
 # Copyright 2008 by Denys Vlasenko
-# Licensed under GPL v2, see file LICENSE for details.
+# Licensed under GPLv2, see file LICENSE in this source tree.
 
 . ./testing.sh
 
-# testing "test name" "options" "expected result" "file input" "stdin"
+# testing "test name" "command(s)" "expected result" "file input" "stdin"
 
 testing "patch with old_file == new_file" \
-       'patch; echo $?; cat input' \
+       'patch 2>&1; echo $?; cat input' \
 "\
 patching file input
 0
@@ -29,7 +29,7 @@ zxc
 " \
 
 testing "patch with nonexistent old_file" \
-       'patch; echo $?; cat input' \
+       'patch 2>&1; echo $?; cat input' \
 "\
 patching file input
 0
@@ -51,7 +51,7 @@ zxc
 " \
 
 testing "patch -R with nonexistent old_file" \
-       'patch -R; echo $?; cat input' \
+       'patch -R 2>&1; echo $?; cat input' \
 "\
 patching file input
 0
@@ -75,9 +75,12 @@ 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
-patch: hunk #1 FAILED at 1
-patch: 1 out of 1 hunk FAILED
 1
 abc
 def
@@ -97,13 +100,15 @@ def
  123
 " \
 
-# Currently fails (erroneously appends second "456" line):
-false && testing "patch detects already applied hunk" \
+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
-patch: hunk #1 FAILED at 2
-patch: 1 out of 1 hunk FAILED
 1
 abc
 123
@@ -123,6 +128,120 @@ abc
 +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
+"
+
 rm input.orig 2>/dev/null
 
 exit $FAILCOUNT