Mail Archives: djgpp-workers/2002/04/16/07:47:29
Eli Zaretskii <eliz AT is DOT elta DOT co DOT il> wrote:
> On Mon, 15 Apr 2002, Richard Dawe wrote:
>
>> > How does my creation of a stem.$$ temporary _directory_ (in the current
>> > directory) cause trouble? AFAICS (for the few tests I looked at), there
>> > is no risk that more than one of those little scripts will run at the
>> > same time, so there shouldn't be a problem on that front.
>>
>> Some of the tests do not delete the directories the create.
>
> That rings a bell: DOS and some versions of Windows won't let you delete
> the directory that's the current directory on some drive, even if you do
> that from another drive. The trick to overcome that is to chdir to the
> root directory on that drive before removing the temporary directory.
>
> I'm not sure this problem is relevant to the case in point, since I
> understood from Jim's message that the test suite creates the temporary
> directories where you run the suite, not under $TMPDIR (which can
> typically be on a different drive). But I thought I'd mention this
> caveat anyway, in case some of the tests do use $TMPDIR.
>
> Normally, the "trap ... rm ..." parts of many scripts are vulnerable to
> this problem.
Right.
That's why newer tests should all have code like this:
pwd=`pwd`
tmp=FIXME.$$
trap 'status=$?; cd $pwd; rm -rf $tmp && exit $status' 0
trap '(exit $?); exit' 1 2 13 15
framework_failure=0
mkdir $tmp || framework_failure=1
cd $tmp || framework_failure=1
...
(exit $fail); exit
I'm sure some of the older test scripts don't do it right.
If you find some, please let me know.
- Raw text -