[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/2] test-framework-sh: revert port to NetBSD 7.0
From: |
Paul Eggert |
Subject: |
[PATCH 1/2] test-framework-sh: revert port to NetBSD 7.0 |
Date: |
Fri, 25 Mar 2016 12:46:29 -0700 |
It was a false alarm; I misinterpreted Assaf Gordon's report.
* tests/init.sh (testdir_prefix_, pfx_, template_length_):
Restore.
(test_dir_): Adjust to mktempd_ change.
(mktempd_): Restore 2nd arg. Use -t again.
(base_template_, template_, nx_): Resurrect old code.
---
ChangeLog | 8 ++++++++
tests/init.sh | 37 ++++++++++++++++++++++++++-----------
2 files changed, 34 insertions(+), 11 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index d01a62d..545e7a9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2016-03-25 Paul Eggert <address@hidden>
+ 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_):
+ Restore.
+ (test_dir_): Adjust to mktempd_ change.
+ (mktempd_): Restore 2nd arg. Use -t again.
+ (base_template_, template_, nx_): Resurrect old code.
+
Port better to Alpine Linux
Its diff implementation does not support -c, but does support -U3.
Problem reported by Assaf Gordon in: http://bugs.gnu.org/23107#13
diff --git a/tests/init.sh b/tests/init.sh
index 99d4d0b..71c4526 100644
--- a/tests/init.sh
+++ b/tests/init.sh
@@ -358,6 +358,9 @@ compare ()
fi
}
+# An arbitrary prefix to help distinguish test directories.
+testdir_prefix_ () { printf gt; }
+
# Run the user-overridable cleanup_ function, remove the temporary
# directory and exit with the incoming value of $?.
remove_tmp_ ()
@@ -471,7 +474,8 @@ setup_ ()
initial_cwd_=$PWD
fail=0
- test_dir_=`mktempd_ "$initial_cwd_"` \
+ pfx_=`testdir_prefix_`
+ test_dir_=`mktempd_ "$initial_cwd_" "$pfx_-$ME_.XXXX"` \
|| fail_ "failed to create temporary directory in $initial_cwd_"
cd "$test_dir_" || fail_ "failed to cd to temporary directory"
@@ -492,7 +496,7 @@ setup_ ()
# Create a temporary directory, much like mktemp -d does.
# Written by Jim Meyering.
#
-# Usage: mktempd_ /tmp
+# Usage: mktempd_ /tmp phoey.XXXXXXXXXX
#
# First, try to use the mktemp program.
# Failing that, we'll roll our own mktemp-like function:
@@ -540,16 +544,12 @@ rand_bytes_ ()
mktempd_ ()
{
case $# in
- 1);;
- *) fail_ "Usage: mktempd_ DIR";;
+ 2);;
+ *) fail_ "Usage: mktempd_ DIR TEMPLATE";;
esac
destdir_=$1
- base_template_=tmp.
- template_=$base_template_.XXXXXXXXXX
-
- # How many X's are at the end of the template.
- nx_=10
+ template_=$2
MAX_TRIES_=4
@@ -560,8 +560,14 @@ mktempd_ ()
*/) fail_ "invalid destination dir: remove trailing slash(es)";;
esac
+ case $template_ in
+ *XXXX) ;;
+ *) fail_ \
+ "invalid template: $template_ (must have a suffix of at least 4 X's)";;
+ esac
+
# First, try to use mktemp.
- d=`unset TMPDIR; { mktemp -d -p "$destdir_"; } 2>/dev/null` \
+ d=`unset TMPDIR; { mktemp -d -t -p "$destdir_" "$template_"; } 2>/dev/null` \
|| fail=1
# The resulting name must be in the specified directory.
@@ -581,6 +587,14 @@ mktempd_ ()
# If we reach this point, we'll have to create a directory manually.
+ # Get a copy of the template without its suffix of X's.
+ base_template_=`echo "$template_"|sed 's/XX*$//'`
+
+ # Calculate how many X's we've just removed.
+ template_length_=`echo "$template_" | wc -c`
+ nx_=`echo "$base_template_" | wc -c`
+ nx_=`expr $template_length_ - $nx_`
+
err_=
i_=1
while :; do
@@ -594,7 +608,8 @@ mktempd_ ()
fail_ "$err_"
}
-# To add more utility functions, use this file.
+# If you want to override the testdir_prefix_ function,
+# or to add more utility functions, use this file.
test -f "$srcdir/init.cfg" \
&& . "$srcdir/init.cfg"
--
2.5.5
- [PATCH 1/2] test-framework-sh: revert port to NetBSD 7.0,
Paul Eggert <=