mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-15 05:44:58 +00:00
Fix a problem where the test cases were sometimes failing
Estimated hours taken: 0.5 Fix a problem where the test cases were sometimes failing if old /tmp/mmake* directories were left lying around. scripts/ml.in: scripts/mmake.in: When creating the temporary directory, if mkdir fails (e.g. because that directory already exists), then try again with a different directory name. Only report an error if it fails 20 times in a row.
This commit is contained in:
@@ -591,15 +591,21 @@ case $demangle in
|
|||||||
# create the pipe, making sure we remove it if interrupted
|
# create the pipe, making sure we remove it if interrupted
|
||||||
old_umask=`umask`
|
old_umask=`umask`
|
||||||
umask 022
|
umask 022
|
||||||
|
try=0
|
||||||
|
until
|
||||||
ML_TMPDIR=$TMPDIR/ml$$
|
ML_TMPDIR=$TMPDIR/ml$$
|
||||||
PIPE=$ML_TMPDIR/pipe
|
PIPE=$ML_TMPDIR/pipe
|
||||||
trap 'rmdir $ML_TMPDIR >/dev/null 2>&1; exit 1' 1 2 3 13 15
|
trap 'rmdir $ML_TMPDIR >/dev/null 2>&1; exit 1' 1 2 3 13 15
|
||||||
if mkdir $ML_TMPDIR ; then
|
mkdir $ML_TMPDIR
|
||||||
true
|
do
|
||||||
else
|
try="`expr $try + 1`"
|
||||||
echo "Unable to create temporary pipe" 1>&2
|
# give up after 20 tries
|
||||||
|
case "$try" in 20)
|
||||||
|
echo "ml: unable to create temporary directory" \
|
||||||
|
"for pipe" 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
esac
|
||||||
|
done
|
||||||
trap 'rm -rf $ML_TMPDIR; exit 1' 1 2 3 13 15
|
trap 'rm -rf $ML_TMPDIR; exit 1' 1 2 3 13 15
|
||||||
umask $old_umask
|
umask $old_umask
|
||||||
$MKFIFO $PIPE
|
$MKFIFO $PIPE
|
||||||
|
|||||||
@@ -182,16 +182,22 @@ else
|
|||||||
case "$MKTEMP" in
|
case "$MKTEMP" in
|
||||||
"") old_umask=`umask`
|
"") old_umask=`umask`
|
||||||
umask 022
|
umask 022
|
||||||
mmake_tmpdir=$TMPDIR/mmake$$
|
try=0
|
||||||
|
until
|
||||||
|
mmake_tmpdir=$TMPDIR/mmake$$-$try
|
||||||
tmp=$mmake_tmpdir/mmake
|
tmp=$mmake_tmpdir/mmake
|
||||||
trap 'rmdir $mmake_tmpdir >/dev/null 2>&1; exit 1' \
|
trap 'rmdir $mmake_tmpdir >/dev/null 2>&1; exit 1' \
|
||||||
1 2 3 13 15
|
1 2 3 13 15
|
||||||
if mkdir $mmake_tmpdir ; then
|
mkdir $mmake_tmpdir
|
||||||
true
|
do
|
||||||
else
|
try=`expr $try + 1`
|
||||||
echo "Unable to create temporary makefile" 1>&2
|
# give up after 20 tries
|
||||||
|
case $try in 20)
|
||||||
|
echo "mmake: unable to create directory" \
|
||||||
|
"for temporary makefile" 1>&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
esac
|
||||||
|
done
|
||||||
trap 'status=$?; rm -rf $mmake_tmpdir; exit $status' \
|
trap 'status=$?; rm -rf $mmake_tmpdir; exit $status' \
|
||||||
0 1 2 3 13 15
|
0 1 2 3 13 15
|
||||||
umask $old_umask
|
umask $old_umask
|
||||||
|
|||||||
Reference in New Issue
Block a user