In a file system without symbolic link support, one test fails. Seen on Linux in a VFAT file system:
FAIL: symlinks ============== [26] ln -s f l -- FAILED --- expected +++ got @@ -1 +1 @@ - +ln: failed to create symbolic link 'l': Operation not permitted [28] patch < create.diff || echo "Status: $?" -- FAILED --- expected +++ got @@ -1,3 +1 @@ -File l is not a regular file -- refusing to patch -1 out of 1 hunk ignored -- saving rejects to file l.rej -Status: 1 +patching file l [34] cat f -- ok [42] ln -s f l -- FAILED --- expected +++ got @@ -1 +1 @@ - +ln: failed to create symbolic link 'l': Operation not permitted [52] patch < modify.diff || echo "Status: $?" -- FAILED --- expected +++ got @@ -1,3 +1,12 @@ -File l is not a regular file -- refusing to patch -1 out of 1 hunk ignored -- saving rejects to file l.rej +can't find file to patch at input line 3 +Perhaps you should have used the -p or --strip option? +The text leading up to this was: +-------------------------- +|--- l +|+++ l +-------------------------- +File to patch: +Skip this patch? [y] +Skipping patch. +1 out of 1 hunk ignored Status: 1 [58] patch --follow-symlinks < modify.diff || echo "Status: $?" -- FAILED --- expected +++ got @@ -1 +1,12 @@ -patching file l +can't find file to patch at input line 3 +Perhaps you should have used the -p or --strip option? +The text leading up to this was: +-------------------------- +|--- l +|+++ l +-------------------------- +File to patch: +Skip this patch? [y] +Skipping patch. +1 out of 1 hunk ignored +Status: 1 [62] cat f -- ok [66] cat l -- FAILED --- expected +++ got @@ -1 +1 @@ -two +cat: l: No such file or directory [74] ln -s f l -- FAILED --- expected +++ got @@ -1 +1 @@ - +ln: failed to create symbolic link 'l': Operation not permitted [83] patch < delete.diff || echo "Status: $?" -- FAILED --- expected +++ got @@ -1,3 +1,6 @@ -File l is not a regular file -- refusing to patch -1 out of 1 hunk ignored -- saving rejects to file l.rej +The next patch would delete the file l, +which does not exist! Assume -R? [n] +Apply anyway? [n] +Skipping patch. +1 out of 1 hunk ignored Status: 1 [102] patch -p1 < create-symlink.diff || echo "Status: $?" -- FAILED --- expected +++ got @@ -1 +1,3 @@ patching symbolic link symlink +/boot/efi/devel/patch-2.7.6.200-be8b/src/patch: **** Can't create symbolic link symlink : Operation not permitted +Status: 2 [106] echo a > target1 && cat symlink -- FAILED --- expected +++ got @@ -1 +1 @@ -a +cat: symlink: No such file or directory [109] echo b > target1 && cat symlink -- FAILED --- expected +++ got @@ -1 +1 @@ -b +cat: symlink: No such file or directory [126] patch -p1 < modify-symlink.diff || echo "Status: $?" -- FAILED --- expected +++ got @@ -1 +1,14 @@ -patching symbolic link symlink +can't find file to patch at input line 5 +Perhaps you used the wrong -p or --strip option? +The text leading up to this was: +-------------------------- +|diff --git a/symlink b/symlink +|index 12a8d8a..3b7781e 120000 +|--- a/symlink +|+++ b/symlink +-------------------------- +File to patch: +Skip this patch? [y] +Skipping patch. +1 out of 1 hunk ignored +Status: 1 [130] echo a > target2 && cat symlink -- FAILED --- expected +++ got @@ -1 +1 @@ -a +cat: symlink: No such file or directory [133] echo b > target2 && cat symlink -- FAILED --- expected +++ got @@ -1 +1 @@ -b +cat: symlink: No such file or directory [149] patch -p1 < delete-symlink.diff || echo "Status: $?" -- FAILED --- expected +++ got @@ -1 +1,6 @@ -patching symbolic link symlink +The next patch would delete the file symlink, +which does not exist! Assume -R? [n] +Apply anyway? [n] +Skipping patch. +1 out of 1 hunk ignored +Status: 1 [153] test ! -L symlink -- ok ln: failed to create symbolic link 'l2': Operation not permitted ln: failed to create symbolic link 'l1': Operation not permitted [169] patch -p0 < f.diff || echo "Status: $?" -- FAILED --- expected +++ got @@ -1,2 +1 @@ -Invalid file name l1/f -- skipping patch -Status: 1 +patching file l1/f rm: cannot remove 'l1': Is a directory [185] mkdir abc -- ok [186] mkdir abc/def -- ok ln: failed to create symbolic link 'abc/def/ghi': Operation not permitted [188] patch -p0 < retraverse.diff || echo "Status: $?" -- ok ln: failed to create symbolic link 'ld': Operation not permitted [208] patch -p0 < ld.diff -- FAILED --- expected +++ got @@ -1 +1,11 @@ -patching file ld/f +can't find file to patch at input line 3 +Perhaps you used the wrong -p or --strip option? +The text leading up to this was: +-------------------------- +|--- ld/f +|+++ ld/f +-------------------------- +File to patch: +Skip this patch? [y] +Skipping patch. +1 out of 1 hunk ignored ln: failed to create symbolic link 'e/ld': Operation not permitted [223] patch -p0 < eld.diff -- FAILED --- expected +++ got @@ -1 +1,11 @@ -patching file e/ld/f +can't find file to patch at input line 3 +Perhaps you used the wrong -p or --strip option? +The text leading up to this was: +-------------------------- +|--- e/ld/f +|+++ e/ld/f +-------------------------- +File to patch: +Skip this patch? [y] +Skipping patch. +1 out of 1 hunk ignored ln: failed to create symbolic link 'e/ld': Operation not permitted [230] patch -p0 -R < eld.diff -- FAILED --- expected +++ got @@ -1 +1,11 @@ -patching file e/ld/f +can't find file to patch at input line 3 +Perhaps you used the wrong -p or --strip option? +The text leading up to this was: +-------------------------- +|--- e/ld/f +|+++ e/ld/f +-------------------------- +File to patch: +Skip this patch? [y] +Skipping patch. +1 out of 1 hunk ignored ln: failed to create symbolic link 'g/bad-rel': Operation not permitted ln: failed to create symbolic link 'bad-rel-step2': Operation not permitted ln: failed to create symbolic link 'g/bad-rel-step1': Operation not permitted ln: failed to create symbolic link 'g/bad-abs': Operation not permitted [255] patch -p0 < follow-bad-symlink.diff || echo "Status: $?" -- FAILED --- expected +++ got @@ -1,4 +1,3 @@ -Invalid file name g/bad-rel/x -- skipping patch -Invalid file name g/bad-rel-step1/x -- skipping patch -Invalid file name g/bad-abs/x -- skipping patch -Status: 1 +patching file g/bad-rel/x +patching file g/bad-rel-step1/x +patching file g/bad-abs/x [275] patch -p1 < symlink-target.diff || echo "Status: $?" -- FAILED --- expected +++ got @@ -1 +1,3 @@ patching symbolic link dir/foo +/boot/efi/devel/patch-2.7.6.200-be8b/src/patch: **** Can't create symbolic link dir/foo : Operation not permitted +Status: 2 [313] patch -f -p1 < follow-symlink.diff || echo "Status: $?" -- FAILED --- expected +++ got @@ -1,5 +1,3 @@ patching symbolic link dir/foo -patching file dir/foo/bar -patching symbolic link dir/bad -Invalid file name dir/bad/baz -- skipping patch -Status: 1 +/boot/efi/devel/patch-2.7.6.200-be8b/src/patch: **** Can't create symbolic link dir/foo : Operation not permitted +Status: 2 [321] cat bar -- FAILED --- expected +++ got @@ -1 +1 @@ -created in .. +cat: bar: No such file or directory [338] patch -p1 < bad-symlink-target1.diff || echo "Status: $?" -- FAILED --- expected +++ got @@ -1 +1,3 @@ patching symbolic link bar +/boot/efi/devel/patch-2.7.6.200-be8b/src/patch: **** Can't create symbolic link bar : Operation not permitted +Status: 2 [353] patch -p1 < bad-symlink-target2.diff || echo "Status: $?" -- FAILED --- expected +++ got @@ -1 +1,3 @@ patching symbolic link baz +/boot/efi/devel/patch-2.7.6.200-be8b/src/patch: **** Can't create symbolic link baz : Operation not permitted +Status: 2 ln: failed to create symbolic link 'here': Operation not permitted ln: failed to create symbolic link 'here_d': Operation not permitted [376] patch -p0 < good-absolute.diff -- ok [387] patch -p1 --backup < create-symlink.diff || echo "Status: $?" -- FAILED --- expected +++ got @@ -1 +1,3 @@ patching symbolic link symlink +/boot/efi/devel/patch-2.7.6.200-be8b/src/patch: **** Can't create symbolic link symlink : Operation not permitted +Status: 2 [391] test -f symlink.orig && test ! -s symlink.orig -- ok [395] patch -p1 --backup < modify-symlink.diff || echo "Status: $?" -- FAILED --- expected +++ got @@ -1 +1,14 @@ -patching symbolic link symlink +can't find file to patch at input line 5 +Perhaps you used the wrong -p or --strip option? +The text leading up to this was: +-------------------------- +|diff --git a/symlink b/symlink +|index 12a8d8a..3b7781e 120000 +|--- a/symlink +|+++ b/symlink +-------------------------- +File to patch: +Skip this patch? [y] +Skipping patch. +1 out of 1 hunk ignored +Status: 1 [399] echo a > symlink.orig && cat target1 -- FAILED --- expected +++ got @@ -1 +1 @@ -a +cat: target1: No such file or directory [402] echo b > symlink.orig && cat target1 -- FAILED --- expected +++ got @@ -1 +1 @@ -b +cat: target1: No such file or directory [409] patch -p1 --backup < delete-symlink.diff || echo "Status: $?" -- FAILED --- expected +++ got @@ -1 +1,6 @@ -patching symbolic link symlink +The next patch would delete the file symlink, +which does not exist! Assume -R? [n] +Apply anyway? [n] +Skipping patch. +1 out of 1 hunk ignored +Status: 1 [413] echo a > symlink.orig && cat target2 -- FAILED --- expected +++ got @@ -1 +1 @@ -a +cat: target2: No such file or directory [416] echo b > symlink.orig && cat target2 -- FAILED --- expected +++ got @@ -1 +1 @@ -b +cat: target2: No such file or directory [424] mkdir d -- ok [432] ln -sf d l -- FAILED --- expected +++ got @@ -1 +1 @@ - +ln: failed to create symbolic link 'l': Operation not permitted [434] patch -p1 -i l/ab.diff -- FAILED --- expected +++ got @@ -1 +1 @@ -patching file foo +/boot/efi/devel/patch-2.7.6.200-be8b/src/patch: **** Can't open patch file l/ab.diff : No such file or directory 43 tests (9 passed, 34 failed) FAIL symlinks (exit status: 1)
