This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Make io/ftwtest-sh remove temporary files on early exit


On Wed, Oct 21, 2015 at 09:06:49PM +0000, Joseph Myers wrote:
> The test io/ftwtest-sh creates a directory that at some points during
> the test does not have execute permission.  To avoid leaving behind
> such a directory that prevents the build directory from being removed
> with a simple "rm -rf", it traps various signals to make the directory
> executable and remove it before exit.  However, this doesn't cover the
> case where one of the tests simply fails (which happens with cross
> testing if testing on a remote system where the path to the build
> directory involves a symlink, or if that remote system fell over
> during testing - I think the latter is the case where the directory is
> left behind with bad permissions).
> 
> This patch makes that test also trap signal 0 (exit) so that the
> directory gets properly removed in such failure cases as well.
> 
> Tested in both configurations where the test passes and where it fails
> to verify that the result of the test is unchanged but the directory
> is no longer left behind where it was previously left behind.
> 
> 2015-10-21  Joseph Myers  <joseph@codesourcery.com>
> 
> 	* io/ftwtest-sh: Also trap on exit to remove temporary files.
> 
> diff --git a/io/ftwtest-sh b/io/ftwtest-sh
> index 478171d..8669eab 100644
> --- a/io/ftwtest-sh
> +++ b/io/ftwtest-sh
> @@ -45,7 +45,7 @@ export LC_ALL
>  tmp=${objpfx}io
>  tmpdir=$tmp/ftwtest.d
>  
> -trap 'chmod -fR a+x $tmpdir; rm -fr $tmpdir $testout' 1 2 3 15
> +trap 'chmod -fR a+x $tmpdir; rm -fr $tmpdir $testout' 0 1 2 3 15

If you do this, then ...

>  if test -d $tmpdir; then
>    chmod -fR a+x $tmpdir
> @@ -296,4 +296,6 @@ rm $testout
>  
>  rm -fr $tmpdir
>  
> +trap '' 0
> +
>  exit 0

... you could just remove "rm $testout" and "rm -fr $tmpdir" lines instead.


-- 
ldv

Attachment: pgpk3n1La7wJq.pgp
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]