1#!/bin/sh 2# Copyright 2008 by Denys Vlasenko 3# Licensed under GPLv2, see file LICENSE in this source tree. 4 5. ./testing.sh 6 7# testing "test name" "command(s)" "expected result" "file input" "stdin" 8 9testing "patch with old_file == new_file" \ 10 'patch 2>&1; echo $?; cat input' \ 11"\ 12patching file input 130 14qwe 15asd 16zxc 17" \ 18"\ 19qwe 20zxc 21" \ 22"\ 23--- input Jan 01 01:01:01 2000 24+++ input Jan 01 01:01:01 2000 25@@ -1,2 +1,3 @@ 26 qwe 27+asd 28 zxc 29" \ 30 31testing "patch with nonexistent old_file" \ 32 'patch 2>&1; echo $?; cat input' \ 33"\ 34patching file input 350 36qwe 37asd 38zxc 39" \ 40"\ 41qwe 42zxc 43" \ 44"\ 45--- input.doesnt_exist Jan 01 01:01:01 2000 46+++ input Jan 01 01:01:01 2000 47@@ -1,2 +1,3 @@ 48 qwe 49+asd 50 zxc 51" \ 52 53testing "patch -R with nonexistent old_file" \ 54 'patch -R 2>&1; echo $?; cat input' \ 55"\ 56patching file input 570 58qwe 59zxc 60" \ 61"\ 62qwe 63asd 64zxc 65" \ 66"\ 67--- input.doesnt_exist Jan 01 01:01:01 2000 68+++ input Jan 01 01:01:01 2000 69@@ -1,2 +1,3 @@ 70 qwe 71+asd 72 zxc 73" \ 74 75testing "patch detects already applied hunk" \ 76 'patch 2>&1; echo $?; cat input' \ 77"\ 78patching file input 79Possibly reversed hunk 1 at 4 80Hunk 1 FAILED 1/1. 81 abc 82+def 83 123 841 85abc 86def 87123 88" \ 89"\ 90abc 91def 92123 93" \ 94"\ 95--- input.old Jan 01 01:01:01 2000 96+++ input Jan 01 01:01:01 2000 97@@ -1,2 +1,3 @@ 98 abc 99+def 100 123 101" \ 102 103testing "patch detects already applied hunk at the EOF" \ 104 'patch 2>&1; echo $?; cat input' \ 105"\ 106patching file input 107Possibly reversed hunk 1 at 4 108Hunk 1 FAILED 1/1. 109 abc 110 123 111+456 1121 113abc 114123 115456 116" \ 117"\ 118abc 119123 120456 121" \ 122"\ 123--- input.old Jan 01 01:01:01 2000 124+++ input Jan 01 01:01:01 2000 125@@ -1,2 +1,3 @@ 126 abc 127 123 128+456 129" \ 130 131# testing "test name" "command(s)" "expected result" "file input" "stdin" 132testing "patch -N ignores already applied hunk" \ 133 'patch -N 2>&1; echo $?; cat input' \ 134"\ 135patching file input 1360 137abc 138def 139123 140" \ 141"\ 142abc 143def 144123 145" \ 146"\ 147--- input 148+++ input 149@@ -1,2 +1,3 @@ 150 abc 151+def 152 123 153" \ 154 155# testing "test name" "command(s)" "expected result" "file input" "stdin" 156testing "patch FILE PATCH" \ 157 'cat >a.patch; patch input a.patch 2>&1; echo $?; cat input; rm a.patch' \ 158"\ 159patching file input 1600 161abc 162def 163123 164" \ 165"\ 166abc 167123 168" \ 169"\ 170--- foo.old 171+++ foo 172@@ -1,2 +1,3 @@ 173 abc 174+def 175 123 176" \ 177 178# testing "test name" "command(s)" "expected result" "file input" "stdin" 179testing "patch at the beginning" \ 180 'patch 2>&1; cat input' \ 181"\ 182patching file input 183111changed 184444 185555 186666 187777 188888 189999 190" \ 191"\ 192111 193222 194333 195444 196555 197666 198777 199888 200999 201" \ 202"\ 203--- input 204+++ input 205@@ -1,6 +1,4 @@ 206-111 207-222 208-333 209+111changed 210 444 211 555 212 666 213" \ 214 215# testing "test name" "command(s)" "expected result" "file input" "stdin" 216testing "patch creates new file" \ 217 'patch 2>&1; echo $?; cat testfile; rm testfile' \ 218"\ 219creating testfile 2200 221qwerty 222" "" "\ 223--- /dev/null 224+++ testfile 225@@ -0,0 +1 @@ 226+qwerty 227" 228 229# testing "test name" "command(s)" "expected result" "file input" "stdin" 230testing "patch understands ...dir///dir..." \ 231 'patch -p1 2>&1; echo $?' \ 232"\ 233patching file dir2///file 234patch: can't open 'dir2///file': No such file or directory 2351 236" "" "\ 237--- bogus_dir///dir2///file 238+++ bogus_dir///dir2///file 239@@ -1,2 +1,3 @@ 240 qwe 241+asd 242 zxc 243" 244 245testing "patch internal buffering bug?" \ 246 'patch -p1 2>&1; echo $?; cat input' \ 247"\ 248patching file input 2490 250foo 251 252 253 254 255 256 2571 2582 2593 260 261bar 262" \ 263"\ 264foo 265 266 267 268 269 270 271 272bar 273" \ 274"\ 275--- a/input.orig 276+++ b/input 277@@ -5,5 +5,8 @@ foo 278 279 280 281+1 282+2 283+3 284 285 bar 286-- 2872.9.2 288" \ 289 290rm input.orig 2>/dev/null 291 292exit $FAILCOUNT 293