Since I had to reboot to Windows I gave a try at the grep snapshot
under Cygwin. I have Cygwin 1.5.25. All grep tests passed except:
- fmbtest.sh and euc-mb which were skipped
- help-version which failed because the sleep process created when
setting up kill_args keeps the $tmp directory busy and then it
cannot be removed.
The attached patch fixes this, using shell functions to do any
required setup only as requested. Would it be ok for coreutils?
Paolo
diff --git a/tests/help-version b/tests/help-version
index 21841e4..065bb05 100755
--- a/tests/help-version
+++ b/tests/help-version
@@ -116,107 +116,375 @@ tmp_out=out-$$
mkdir $tmp || fail=1
cd $tmp || fail=1
-comm_args="$tmp_in $tmp_in"
-csplit_args="$tmp_in //"
-cut_args='-f 1'
-join_args="$tmp_in $tmp_in"
-tr_args='a a'
+comm_setup ()
+{
+ args="$tmp_in $tmp_in"
+}
+
+csplit_setup ()
+{
+ args="$tmp_in //"
+}
+
+cut_setup ()
+{
+ args='-f 1'
+}
+
+join_setup ()
+{
+ args="$tmp_in $tmp_in"
+}
+
+tr_setup ()
+{
+ args='a a'
+}
+
+
+chmod_setup ()
+{
+ args="a+x $tmp_in"
+}
-chmod_args="a+x $tmp_in"
# Punt on these.
-chgrp_args=--version
-chown_args=--version
-mkfifo_args=--version
-mknod_args=--version
+chgrp_setup ()
+{
+ args=--version
+}
+
+chown_setup ()
+{
+ args=--version
+}
+
+mkfifo_setup ()
+{
+ args=--version
+}
+
+mknod_setup ()
+{
+ args=--version
+}
+
# Punt on uptime, since it fails (e.g., failing to get boot time)
# on some systems, and we shouldn't let that stop `make check'.
-uptime_args=--version
+uptime_setup ()
+{
+ args=--version
+}
+
# Create a file in the current directory, not in $TMPDIR.
-mktemp_args=mktemp.XXXX
+mktemp_setup ()
+{
+ args=mktemp.XXXX
+}
+
+
+cmp_setup ()
+{
+ args="$tmp_in $tmp_in2"
+}
-cmp_args="$tmp_in $tmp_in2"
# Tell dd not to print the line with transfer rate and total.
# The transfer rate would vary between runs.
-dd_args=status=noxfer
-
-zdiff_args="$zin $zin2"
-zcmp_args="$zin $zin2"
-zcat_args=$zin
-gunzip_args=$zin
-zmore_args=$zin
-zless_args=$zin
-znew_args=$bigZ_in
-zforce_args=$zin
-zgrep_args="z $zin"
-zegrep_args="z $zin"
-zfgrep_args="z $zin"
-gzexe_args=$tmp_in
+dd_setup ()
+{
+ args=status=noxfer
+}
+
+
+zdiff_setup ()
+{
+ args="$zin $zin2"
+}
+
+zcmp_setup ()
+{
+ args="$zin $zin2"
+}
+
+zcat_setup ()
+{
+ args=$zin
+}
+
+gunzip_setup ()
+{
+ args=$zin
+}
+
+zmore_setup ()
+{
+ args=$zin
+}
+
+zless_setup ()
+{
+ args=$zin
+}
+
+znew_setup ()
+{
+ args=$bigZ_in
+}
+
+zforce_setup ()
+{
+ args=$zin
+}
+
+zgrep_setup ()
+{
+ args="z $zin"
+}
+
+zegrep_setup ()
+{
+ args="z $zin"
+}
+
+zfgrep_setup ()
+{
+ args="z $zin"
+}
+
+gzexe_setup ()
+{
+ args=$tmp_in
+}
+
# We know that $tmp_in contains a "0"
-grep_args="0 $tmp_in"
-egrep_args="0 $tmp_in"
-fgrep_args="0 $tmp_in"
-
-diff_args="$tmp_in $tmp_in2"
-sdiff_args="$tmp_in $tmp_in2"
-diff3_args="$tmp_in $tmp_in2 $tmp_in2"
-cp_args="$tmp_in $tmp_in2"
-ln_args="$tmp_in ln-target"
-ginstall_args="$tmp_in $tmp_in2"
-mv_args="$tmp_in $tmp_in2"
-mkdir_args=$tmp_dir/subdir
-rmdir_args=$tmp_dir
-rm_args=$tmp_in
-shred_args=$tmp_in
-touch_args=$tmp_in2
-truncate_args="--reference=$tmp_in $tmp_in2"
-
-basename_args=$tmp_in
-dirname_args=$tmp_in
-expr_args=foo
+grep_setup ()
+{
+ args="0 $tmp_in"
+}
+
+egrep_setup ()
+{
+ args="0 $tmp_in"
+}
+
+fgrep_setup ()
+{
+ args="0 $tmp_in"
+}
+
+
+diff_setup ()
+{
+ args="$tmp_in $tmp_in2"
+}
+
+sdiff_setup ()
+{
+ args="$tmp_in $tmp_in2"
+}
+
+diff3_setup ()
+{
+ args="$tmp_in $tmp_in2 $tmp_in2"
+}
+
+cp_setup ()
+{
+ args="$tmp_in $tmp_in2"
+}
+
+ln_setup ()
+{
+ args="$tmp_in ln-target"
+}
+
+ginstall_setup ()
+{
+ args="$tmp_in $tmp_in2"
+}
+
+mv_setup ()
+{
+ args="$tmp_in $tmp_in2"
+}
+
+mkdir_setup ()
+{
+ args=$tmp_dir/subdir
+}
+
+rmdir_setup ()
+{
+ args=$tmp_dir
+}
+
+rm_setup ()
+{
+ args=$tmp_in
+}
+
+shred_setup ()
+{
+ args=$tmp_in
+}
+
+touch_setup ()
+{
+ args=$tmp_in2
+}
+
+truncate_setup ()
+{
+ args="--reference=$tmp_in $tmp_in2"
+}
+
+
+basename_setup ()
+{
+ args=$tmp_in
+}
+
+dirname_setup ()
+{
+ args=$tmp_in
+}
+
+expr_setup ()
+{
+ args=foo
+}
+
# Punt, in case GNU `id' hasn't been installed yet.
-groups_args=--version
-
-pathchk_args=$tmp_in
-yes_args=--version
-logname_args=--version
-nohup_args=--version
-printf_args=foo
-seq_args=10
-sleep_args=0
-su_args=--version
-stdbuf_args="-oL true"
-timeout_args=--version
+groups_setup ()
+{
+ args=--version
+}
+
+
+pathchk_setup ()
+{
+ args=$tmp_in
+}
+
+yes_setup ()
+{
+ args=--version
+}
+
+logname_setup ()
+{
+ args=--version
+}
+
+nohup_setup ()
+{
+ args=--version
+}
+
+printf_setup ()
+{
+ args=foo
+}
+
+seq_setup ()
+{
+ args=10
+}
+
+sleep_setup ()
+{
+ args=0
+}
+
+su_setup ()
+{
+ args=--version
+}
+
+stdbuf_setup ()
+{
+ args="-oL true"
+}
+
+timeout_setup ()
+{
+ args=--version
+}
+
# I'd rather not run sync, since it spins up disks that I've
# deliberately caused to spin down (but not unmounted).
-sync_args=--version
+sync_setup ()
+{
+ args=--version
+}
+
+
+test_setup ()
+{
+ args=foo
+}
-test_args=foo
# This is necessary in the unusual event that there is
# no valid entry in /etc/mtab.
-df_args=/
+df_setup ()
+{
+ args=/
+}
+
# This is necessary in the unusual event that getpwuid (getuid ()) fails.
-id_args=-u
+id_setup ()
+{
+ args=-u
+}
+
# Use env to avoid invoking built-in sleep of Solaris 11's /bin/sh.
-env sleep 10m &
-kill_args=$!
+kill_setup ()
+{
+ env sleep 10m &
+ args=$!
+}
+
+
+link_setup ()
+{
+ args="$tmp_in link-target"
+}
+
+unlink_setup ()
+{
+ args=$tmp_in
+}
+
+
+readlink_setup ()
+{
+ ln -s . slink
+ args=slink
+}
+
+
+stat_setup ()
+{
+ args=$tmp_in
+}
-link_args="$tmp_in link-target"
-unlink_args=$tmp_in
+unlink_setup ()
+{
+ args=$tmp_in
+}
-ln -s . slink
-readlink_args=slink
+lbracket_setup ()
+{
+ args=": ]"
+}
-stat_args=$tmp_in
-unlink_args=$tmp_in
-lbracket_args=": ]"
# Ensure that each program "works" (exits successfully) when doing
# something more than --help or --version.
@@ -238,7 +506,7 @@ for i in $built_programs; do
mkdir $tmp_dir
# echo ================== $i
test $i = [ && prog=lbracket || prog=$i
- eval "args=\$${prog}_args"
+ ${prog}_setup
if env $i $args < $tmp_in > $tmp_out; then
: # ok
else