#!/bin/sh # Copyright 2008 by Denys Vlasenko # Licensed under GPL v2, see file LICENSE for details. . ./testing.sh # testing "test name" "options" "expected result" "file input" "stdin" testing "patch with old_file == new_file" \ 'patch; 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; 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; 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 patch: hunk #1 FAILED at 1 patch: 1 out of 1 hunk FAILED 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 " \ # Currently fails (erroneously appends second "456" line): false && testing "patch detects already applied hunk" \ 'patch 2>&1; echo $?; cat input' \ "\ patching file input patch: hunk #1 FAILED at 2 patch: 1 out of 1 hunk FAILED 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 " \ exit $FAILCOUNT