From: Paul Eggert Date: Sun, 15 Jan 2023 00:47:41 +0000 (-0800) Subject: test-framework-sh: work around AIX 7.2 diff bugs X-Git-Tag: v1.0~1833 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=2647256a786c5900897fc15130688991503dae25;p=gnulib.git test-framework-sh: work around AIX 7.2 diff bugs * tests/init.sh (compare_dev_null_): Run diff in the C locale. AIX 7.2 diff messes up in UTF-8 locales; for example, ‘printf '\360\220\200\200\n' | diff - /dev/null’ incorrectly outputs nothing and exits with status 0 when LC_ALL=en_US.UTF-8. --- diff --git a/ChangeLog b/ChangeLog index fb467a3c14..0900c54c1d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2023-01-14 Paul Eggert + + test-framework-sh: work around AIX 7.2 diff bugs + * tests/init.sh (compare_dev_null_): Run diff in the C locale. + AIX 7.2 diff messes up in UTF-8 locales; for example, + ‘printf '\360\220\200\200\n' | diff - /dev/null’ incorrectly + outputs nothing and exits with status 0 when LC_ALL=en_US.UTF-8. + 2023-01-14 Bruno Haible error, verror tests: Fix link error when the package uses libintl. diff --git a/tests/init.sh b/tests/init.sh index 6c09392867..0494097e9f 100644 --- a/tests/init.sh +++ b/tests/init.sh @@ -646,18 +646,19 @@ compare_dev_null_ () for diff_opt_ in -u -U3 -c '' no; do test "$diff_opt_" != no && - diff_out_=`exec 2>/dev/null; diff $diff_opt_ "$0" "$0" < /dev/null` && + diff_out_=`exec 2>/dev/null + LC_ALL=C diff $diff_opt_ "$0" "$0" < /dev/null` && break done if test "$diff_opt_" != no; then if test -z "$diff_out_"; then - compare_ () { diff $diff_opt_ "$@"; } + compare_ () { LC_ALL=C diff $diff_opt_ "$@"; } else compare_ () { # If no differences were found, AIX and HP-UX 'diff' produce output # like "No differences encountered". Hide this output. - diff $diff_opt_ "$@" > diff.out + LC_ALL=C diff $diff_opt_ "$@" > diff.out diff_status_=$? test $diff_status_ -eq 0 || cat diff.out || diff_status_=2 rm -f diff.out || diff_status_=2