diff options
author | Jim Meyering <meyering@fb.com> | 2016-07-23 16:33:35 -0700 |
---|---|---|
committer | Jim Meyering <meyering@fb.com> | 2016-07-23 16:37:40 -0700 |
commit | 0353af91a02d1bd14b18d10293f1ef27dd6c0a58 (patch) | |
tree | c8668b86fe05aef1ae3461889bb5f069fadbf7d4 | |
parent | a10ff125c8ff7fbaf1100cd41ea4e8ac0d594c82 (diff) | |
download | diffutils-0353af91a02d1bd14b18d10293f1ef27dd6c0a58.tar.gz |
gnulib: update to latest; and tests/init.sh
* gnulib: Update to latest.
* init.sh: Update from gnulib.
m--------- | gnulib | 0 | ||||
-rw-r--r-- | tests/init.sh | 31 |
2 files changed, 17 insertions, 14 deletions
diff --git a/gnulib b/gnulib -Subproject 9c780eb5856f02192301672ccbde8cb1f096c09 +Subproject 348402f2aac342bc925b7aaea9ee3cc353f427a diff --git a/tests/init.sh b/tests/init.sh index ee08022..97e4e4b 100644 --- a/tests/init.sh +++ b/tests/init.sh @@ -308,13 +308,19 @@ if diff_out_=`exec 2>/dev/null; diff -u "$0" "$0" < /dev/null` \ fi } fi -elif diff_out_=`exec 2>/dev/null; diff -c "$0" "$0" < /dev/null`; then +elif + for diff_opt_ in -U3 -c '' no; do + test "$diff_opt_" = no && break + diff_out_=`exec 2>/dev/null; diff $diff_opt_ "$0" "$0" </dev/null` && break + done + test "$diff_opt_" != no +then if test -z "$diff_out_"; then - compare_ () { diff -c "$@"; } + compare_ () { diff $diff_opt_ "$@"; } else compare_ () { - if diff -c "$@" > diff.out; then + if diff $diff_opt_ "$@" > diff.out; then # No differences were found, but AIX and HP-UX 'diff' produce output # "No differences encountered" or "There are no differences between the # files.". Hide this output. @@ -466,7 +472,6 @@ setup_ () fi initial_cwd_=$PWD - fail=0 pfx_=`testdir_prefix_` test_dir_=`mktempd_ "$initial_cwd_" "$pfx_-$ME_.XXXX"` \ @@ -550,8 +555,9 @@ mktempd_ () # 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 @@ -561,20 +567,17 @@ mktempd_ () 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 } @@ -593,7 +596,7 @@ mktempd_ () 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; |