2018-02-07 3:39 GMT+01:00 Kiyoshi KANAZAWA <yoi_no_myou...@yahoo.co.jp>: > HiAndreas, > > Have one FAIL in merge.log, after applying the patch.
Okay, my guess is that sed produces empty output for something like this: printf "" > empty.sed; echo hello | sed -f empty.sed If that is the case, the test suite should succeed with the attached patch against patch-2.7.6. Andreas
diff --git a/src/util.c b/src/util.c index b1c7266..1cc08ba 100644 --- a/src/util.c +++ b/src/util.c @@ -256,8 +256,8 @@ set_file_attributes (char const *to, enum file_attributes attr, } if (attr & FA_IDS) { - static uid_t euid = -1; - static gid_t egid = -1; + static uid_t euid = (uid_t)-1; + static gid_t egid = (gid_t)-1; uid_t uid; uid_t gid; diff --git a/tests/crlf-handling b/tests/crlf-handling index 239149c..c192cac 100644 --- a/tests/crlf-handling +++ b/tests/crlf-handling @@ -14,7 +14,7 @@ use_local_patch use_tmpdir lf2crlf() { - while read l; do echo -e "$l\r"; done + while read l; do printf "%s\r\n" "$l"; done } echo 1 > a diff --git a/tests/git-cleanup b/tests/git-cleanup index 2e3e4c6..ca527a1 100644 --- a/tests/git-cleanup +++ b/tests/git-cleanup @@ -36,8 +36,8 @@ BAD PATCH EOF echo 1 > f -echo -n '' > g -echo -n '' > h +printf '' > g +printf '' > h check 'patch -f -i 1.diff || echo status: $?' <<EOF patching file f diff --git a/tests/merge b/tests/merge index 22d787b..f0d52a8 100644 --- a/tests/merge +++ b/tests/merge @@ -30,30 +30,36 @@ x2() { while test $# -gt 0 && test "$1" != -- ; do echo "$1" shift - done > a.sed - echo "$body" | sed -f a.sed > b + done > b.sed + if test -s b.sed ; then + echo "$body" | sed -f b.sed > b + else + echo "$body" > b + fi shift while test $# -gt 0 ; do echo "$1" shift - done > b.sed - echo "$body" | sed -f b.sed > c - rm -f a.sed b.sed + done > c.sed + if test -s c.sed ; then + echo "$body" | sed -f c.sed > c + else + echo "$body" > c + fi + rm -f b.sed c.sed output=`diff -u a b | patch $ARGS -f c` status=$? echo "$output" | sed -e '/^$/d' -e '/^patching file c$/d' cat c - test $status == 0 || echo "Status: $status" + test $status = 0 || echo "Status: $status" } x() { - ARGS="$ARGS --merge" x2 "$@" + ARGS="--merge" x2 "$@" echo - ARGS="$ARGS --merge=diff3" x2 "$@" + ARGS="--merge=diff3" x2 "$@" } -unset ARGS - # ============================================================== check 'x 3' <<EOF diff --git a/tests/test-lib.sh b/tests/test-lib.sh index be0d7e3..661da52 100644 --- a/tests/test-lib.sh +++ b/tests/test-lib.sh @@ -41,7 +41,7 @@ use_local_patch() { eval 'patch() { if test -n "$GDB" ; then - echo -e "\n" >&3 + printf "\n\n" >&3 gdbserver localhost:53153 $PATCH "$@" 2>&3 else $PATCH "$@" @@ -113,22 +113,15 @@ cleanup() { exit $status } -if test -z "`echo -n`"; then - if eval 'test -n "${BASH_LINENO[0]}" 2>/dev/null'; then - eval ' - _start_test() { - echo -n "[${BASH_LINENO[2]}] $* -- " - }' - else - eval ' - _start_test() { - echo -n "* $* -- " - }' - fi +if eval 'test -n "${BASH_LINENO[0]}" 2>/dev/null'; then + eval ' + _start_test() { + printf "[${BASH_LINENO[2]}] %s -- " "$*" + }' else eval ' _start_test() { - echo "* $*" + printf "* %s -- " "$*" }' fi