]> git.ipfire.org Git - thirdparty/automake.git/commitdiff
tests: use find+rm, not perl, to remove temporary directories.
authorKarl Berry <karl@freefriends.org>
Sun, 19 Jan 2020 02:06:23 +0000 (18:06 -0800)
committerKarl Berry <karl@freefriends.org>
Mon, 20 Jan 2020 02:18:21 +0000 (18:18 -0800)
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.

t/ax/test-lib.sh

index 57afc073266ab82319203ad59cef8bdf216988a8..69e98fb0bebe3e2b4f51d491f7a4b936d53a2989 100644 (file)
@@ -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='