From: Karl Berry Date: Sun, 19 Jan 2020 02:06:23 +0000 (-0800) Subject: tests: use find+rm, not perl, to remove temporary directories. X-Git-Tag: v1.16.2~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=40415b21c1ab1c4036e153e4e43d8a373134b228;p=thirdparty%2Fautomake.git tests: use find+rm, not perl, to remove temporary directories. This change fixes automake bug#39078: https://debbugs.gnu.org/39078 * t/ax/test-lib.sh (rm_rf_): run chmod -R u+rwx and rm -rf, instead of calling our t/ax/deltree.pl script. This reverses the change of 2013-05-16. It made sense to write and use deltree at that point, but unfortunately as of perl-5.28.0 (File::Path.pm version 2.15), rmtree no longer removes a tree with unreadable subdirectories, such as we (intentionally) have. So we might as well go back to rm -rf. The unconditional recursive chmod instead of the previously-used more complex find command will hopefully prove portable. See the bug report for more details. Our deltree.pl is not used for anything else, but nevertheless leaving it in our source tree for now, for ease of reversion and comparison. --- diff --git a/t/ax/test-lib.sh b/t/ax/test-lib.sh index 57afc0732..69e98fb0b 100644 --- a/t/ax/test-lib.sh +++ b/t/ax/test-lib.sh @@ -197,7 +197,27 @@ seq_ () rm_rf_ () { test $# -gt 0 || return 0 - $PERL "$am_testaux_srcdir"/deltree.pl "$@" + chmod -R u+rwx "$@" || : + rm -rf "$@" # if it fails, ok, we fail + _am_rmrf_status=$? + # + # In the past, we ran this Perl script instead of the above + # chmod && rm. See the ChangeLog for details. + #$PERL "$am_testaux_srcdir"/deltree.pl "$@" + # + # Let's fail up front if anything remains after the supposed removal. + for _am_rmrf_v + do + if test -e "$_am_rmrf_v"; then + echo "$me (test-lib.sh:rm_rf_): tree not removed: $_am_rmrf_v" >&2 + echo "$me (test-lib.sh:rm_rf_): ls -alR follows:" >&2 + ls -alR $_am_rmrf_v >&2 # should always be there + echo "$me (test-lib.sh:rm_rf_): " \ + "end ls of tree not removed ($_am_rmrf_v)." >&2 + _am_rmrf_status=2 + fi + done + return $_am_rmrf_status } commented_sed_unindent_prog='