Mercurial > gnulib
changeset 18281:51329ab07d78
test-framework-sh: minor cleanups
* tests/init.sh (testdir_prefix_): Output a trailing newline,
since strictly speaking POSIX requires this.
(setup_): Do not use the variable 'fail', as that makes the
trace output harder to read ('fail' is typically used by
tests to mean the test failed). Treat // portably.
Check that new directory is not merely a sibling of the tmp dir.
Avoid unnecessary invocation of tr.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Fri, 25 Mar 2016 12:25:37 -0700 |
parents | 17d3fc65ee37 |
children | 4a3a7c6111c8 |
files | ChangeLog tests/init.sh |
diffstat | 2 files changed, 17 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Fri Mar 25 12:00:35 2016 -0700 +++ b/ChangeLog Fri Mar 25 12:25:37 2016 -0700 @@ -1,5 +1,14 @@ 2016-03-25 Paul Eggert <eggert@cs.ucla.edu> + test-framework-sh: minor cleanups + * tests/init.sh (testdir_prefix_): Output a trailing newline, + since strictly speaking POSIX requires this. + (setup_): Do not use the variable 'fail', as that makes the + trace output harder to read ('fail' is typically used by + tests to mean the test failed). Treat // portably. + Check that new directory is not merely a sibling of the tmp dir. + Avoid unnecessary invocation of tr. + test-framework-sh: revert port to NetBSD 7.0 It was a false alarm; I misinterpreted Assaf Gordon's report. * tests/init.sh (testdir_prefix_, pfx_, template_length_):
--- a/tests/init.sh Fri Mar 25 12:00:35 2016 -0700 +++ b/tests/init.sh Fri Mar 25 12:25:37 2016 -0700 @@ -472,7 +472,6 @@ fi initial_cwd_=$PWD - fail=0 pfx_=`testdir_prefix_` test_dir_=`mktempd_ "$initial_cwd_" "$pfx_-$ME_.XXXX"` \ @@ -556,8 +555,9 @@ # Disallow any trailing slash on specified destdir: # it would subvert the post-mktemp "case"-based destdir test. case $destdir_ in - /) ;; + / | //) destdir_slash_=$destdir;; */) fail_ "invalid destination dir: remove trailing slash(es)";; + *) destdir_slash_=$destdir_/;; esac case $template_ in @@ -567,20 +567,17 @@ esac # First, try to use mktemp. - d=`unset TMPDIR; { mktemp -d -t -p "$destdir_" "$template_"; } 2>/dev/null` \ - || fail=1 + d=`unset TMPDIR; { mktemp -d -t -p "$destdir_" "$template_"; } 2>/dev/null` && # The resulting name must be in the specified directory. - case $d in "$destdir_"*);; *) fail=1;; esac + case $d in "$destdir_slash_"*) :;; *) false;; esac && # It must have created the directory. - test -d "$d" || fail=1 + test -d "$d" && # It must have 0700 permissions. Handle sticky "S" bits. - perms=`ls -dgo "$d" 2>/dev/null|tr S -` || fail=1 - case $perms in drwx------*) ;; *) fail=1;; esac - - test $fail = 0 && { + perms=`ls -dgo "$d" 2>/dev/null` && + case $perms in drwx--[-S]---*) :;; *) false;; esac && { echo "$d" return } @@ -599,7 +596,7 @@ i_=1 while :; do X_=`rand_bytes_ $nx_` - candidate_dir_="$destdir_/$base_template_$X_" + candidate_dir_="$destdir_slash_$base_template_$X_" err_=`mkdir -m 0700 "$candidate_dir_" 2>&1` \ && { echo "$candidate_dir_"; return; } test $MAX_TRIES_ -le $i_ && break;