On Dec 16, 2014, at 1:24 PM, Dominique d'Humières <[email protected]> wrote:
> My patch is different and I am attaching it (it is quite old, so it may not
> apply cleanly). The problem for more evolved form is that *.dSYM are
> directories and ASAICT there is no command in derange to remove them.
>
> At least my patch tracks all the locations giving *.dSYM.
So, I think it would be better to do:
remote_file build deletedir $dsym_file
And then replace standard_file (from remote.exp) with a patched routine that
adds:
deletedir {
foreach x $args {
if { [file exists $x] && [file isdirectory $x] } {
exec rm -rf $x
}
}
return
}
and:
deletedir {
foreach x $args {
if { [file exists $x] && [file isdirectory $x] } {
exec rm -rf $x
}
}
return
}
and try that. The patched routine can go into dejagnu144-fixes.exp then you
just include this way up at the top from the same thing that include the thing
that includes remote.exp. That patch can be submitted to dejagnu, and when
that comes out, we should just return from the 144-fixes.exp file when the
version number is >= the fixed version.
If that’s too annoying, how about:
remote_file_build_deletedir $dsym_file
and then define that to do the operation, protected by:
if { [is_remote target] } { return }
That’s pretty good, and once we switch to a dejagnu that supports deleting a
directory, we could then remove it and just use remote_file.
It is a shame that there are a zillion places where this idiom is repeated.
What a nightmare. I can’t help but wonder if we aren’t better off just doing:
find $testingdir . -type d -name \*.dSYM -exec rm -rf
at the end of testing, and be done with it, forever, no squirrelly lines all
over the place, and 0 chance it will ever need maintenance or that someone
might add a new fragment that won’t cleanup on darwin. Might even be faster.
Not pretty, but dSYM didn’t start out pretty either. Also, less of an eyesore
in the general code.