From: Stefano Lattarini Date: Thu, 12 Jan 2012 09:06:14 +0000 (+0100) Subject: coverage: expose automake bug#10470 (distcheck-related) X-Git-Tag: v1.11.2b~6^2~5^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=657eed2e1b1f2e0fac19f4c840b72a71ec6e1141;p=thirdparty%2Fautomake.git coverage: expose automake bug#10470 (distcheck-related) * tests/distcheck-pr10470.test: New test. * tests/Makefile.am (TESTS, XFAIL_TESTS): Add it. Report and suggestions by Peter Rosin and Eric Blake. --- diff --git a/tests/Makefile.am b/tests/Makefile.am index 8817b64f8..e10dbd537 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -23,6 +23,7 @@ auxdir2.test \ cond17.test \ dist-auxfile.test \ dist-auxfile-2.test \ +distcheck-pr10470.test \ gcj6.test \ java-nobase.test \ objext-pr10128.test \ @@ -352,6 +353,7 @@ distcheck-hook2.test \ distcheck-missing-m4.test \ distcheck-outdated-m4.test \ distcheck-pr9579.test \ +distcheck-pr10470.test \ distcheck-override-infodir.test \ dmalloc.test \ doc-parsing-buglets-colneq-subst.test \ diff --git a/tests/distcheck-pr10470.test b/tests/distcheck-pr10470.test new file mode 100755 index 000000000..e774dd70d --- /dev/null +++ b/tests/distcheck-pr10470.test @@ -0,0 +1,61 @@ +#! /bin/sh +# Copyright (C) 2012 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Ensure "make distcheck" does not experience racy failures on +# systems (like MinGW/MSYS) that cannot remove a directory "in use" +# by a process (e.g., that is its "current working directory"). +# See automake bug#10470. + +parallel_tests=no +. ./defs || Exit 1 + +set -e + +mkdir foo.d +sh -c "cd foo.d && sleep '4'" & +# Without this sleep, the "rm -rf foo.d" below would reliably beat +# the "cd foo.d" in the subshell above, and the test would be always +# skipped, even on MinGW/MSYS. +sleep '1' +rm -rf foo.d && skip_ 'system is able to remove "in use" directories' + +echo AC_OUTPUT >> configure.in + +cat > Makefile.am < foo.test <output 2>&1 || { cat output; Exit 1; } +cat output +# Sanity check: verify that our code has hit a problem removing +# the distdir, but has recovered from it. +grep "rm:.*$destdir" output || fatal_ "expected code path not covered" + +: