* build-aux/gendocs.sh (version):
* doc/gendocs_template:
* doc/gendocs_template_min:
* doc/gnulib.texi:
* lib/version-etc.c (COPYRIGHT_YEAR):
Update copyright dates by hand in templates and the like.
* all files: Run 'make update-copyright'.
* tests/init.sh (gl_shell_test_script_): Add a function to
eliminate a shell like "dash" (unlike bash, zsh) that has
surprising/risky "local var='...'" semantics. Inspired by
the problem and discussion in https://bugs.gnu.org/24116#11.
* 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.
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.
Its diff implementation does not support -c, but does support -U3.
Problem reported by Assaf Gordon in: http://bugs.gnu.org/23107#13
* tests/init.sh (diff_opt_): New var.
(compare_): Prefer diff -U3 to diff -c to plain diff.
Problem reported by Assaf Gordon in: http://bugs.gnu.org/23107#13
* tests/init.sh (testdir_prefix_, pfx_, template_length_):
Remove. All uses removed.
(test_dir_): Adjust to mktempd_ change.
(mktempd_): Omit 2nd arg. Stop using -t, as it is not portable.
(base_template_, template_, nx_): Simplify by hardcoding.
* build-aux/gendocs.sh (version):
* doc/gendocs_template:
* doc/gendocs_template_min:
* doc/gnulib.texi:
* lib/version-etc.c (COPYRIGHT_YEAR):
Update copyright dates by hand in templates and the like.
* all files: Run 'make update-copyright'.
The local keyword is very widely supported and used
in tests in coreutils and grep at least. Therefore
restrict to testing with shells that support it.
This mainly excludes /bin/sh on Solaris.
Note standard ksh also doesn't support this keyword,
but that wasn't in the list of considered shells anyway.
For discussion on adding 'local' to POSIX, see:
http://thread.gmane.org/gmane.linux.debian.devel.bugs.general/122267/focus=3271
* tests/init.sh (gl_shell_test_script_): Add a test for 'local'.
* tests/init.sh (returns_): Disable tracing for this wrapper
function, so that stderr of the wrapped command is unchanged,
allowing for verification of the contents.
* tests/init.sh (returns_): A new function for use in tests,
to allow for easier checking of return values, where you expect
a command to exit with failure status. By checking for a particular
exit code, you don't hide any crashes for example.
Some test cases in 'grep' need a shell that groks '$(';
export re_shell_ for their benefit. Problem reported for 'grep'
by Dagobert Michelsen in <http://bugs.gnu.org/16380>.
* tests/init.sh (re_shell_): Export if it's used.
This addresses symptoms of the problem reported by Nelson H.F. Beebe in
<http://lists.gnu.org/archive/html/bug-gzip/2012-06/msg00008.html>.
Although Nelson's bug was not necessarily fixed by this patch,
it seems wise to make the change for safety.
* tests/init.sh (path_prepend_): Do not rely on PWD updating
automagically after 'cd'; this is not reliable on older shells.
(setup_): Fail if we cannot cd to temporary directory.
* tests/init.sh: Undefine any pre-defined aliases if the selected shell
is bash. This avoids problems for those who alias standard commands to
non-conforming uses, like those reported in http://bugs.gnu.org/11256.
Suggested by Tim Mooney <Tim.Mooney@ndsu.edu>.
* tests/init.sh (compare_): Don't use 'diff -u' if it inserts a space
in column 1, like 'diff -c' does.
* tests/test-init.sh (test_compare): Don't repeat the test from init.sh
whether 'diff -u' is used. Instead, test whether the output contains
some '@' character.
* tests/init.sh (compare_dev_null_): Do not try to accommodate
compare arguments that start with "-". Besides, we do not worry
about this when invoking diff or cmp; why start now with sed?
Using "--" to separate options from argument would trigger sed
failure in at least Solaris 7, HP-UX 11.00, IRIX 6.5, FreeBSD 6.4,
OpenBSD 4.9 and NetBSD 5.1. Reported by Bruno Haible.
* tests/init.sh (compare): Ignore nonzero exit from compare_dev_null_.
Otherwise, in a test script that uses "set -x" (like many in vc-dwim)
a use like "compare exp out" would get evoke an unconditional failure.
* tests/init.sh (compare_): Document the preferred order of arguments.
(emit_diff_u_header_): New function.
(compare_dev_null_): Emit a simulated diff, rather than just the
contents of the unexpected file. Suggestion from Bruno Haible.
* tests/init.sh (warn_): Use printf, not echo. The latter would
misbehave when given strings containing a backslash or starting
with e.g., -n. James Youngman suggested setting IFS.
* tests/init.sh: Relax check for diff -u support.
Rather than checking for GNU diff via --version, simply check
for support for -u itself. Useful at least on OpenBSD 4.9,
AIX 7.1, IRIX 6.5 and Solaris 10.
* tests/init.sh (stderr_fileno_): Update the advice in comments.
See http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/22488
for lots of discussion. Stefano Lattarini suggested the solution
of putting "9>&2" after the command. Reported by Bruno Haible.
Before this patch, the only way offered by tests/init.sh to
properly signal a hard error was the `framework_failure_'
function. But the error message issued by that function,
as its name would suggest, refers to a set-up failure in the
testsuite, while hard errors can obviously also be due to
other reasons. The best way to fix this inconsistency is to
introduce a new function with a more general error message.
* tests/init.sh (fatal_): New function.
If the shell test loop first finds a marginal then a good shell, the
variable $gl_set_x_corrupts_stderr is still set to true and needlessly
drops $VERBOSE logging.
* tests/init.sh: (gl_set_x_corrupts_stderr_): Clear for successful
shell.
Signed-off-by: Eric Blake <eblake@redhat.com>
* tests/test-malloca.c (main): Unset the environment variable
to greatly speed up the test.
* tests/init.sh: Don't say that MALLOC_PERTURB_ is cheap.
* modules/malloca-tests: Depend on unsetenv.
* tests/init.sh: Make it a little easier to see that a function's
name is "warn_", and not "warn" when looking at the first part of
its definition: "warn_ ()". Suggested by Ralf Wildenhues.
* tests/init.sh (setup_): Ensure that IFS is defined,
so that saving and restoring it works as expected. This
appears to be useful at least for an old version of dash
from a long time ago (RH 6). See here for details:
http://thread.gmane.org/gmane.comp.gnu.coreutils.general/436/focus=455
Not that it's likely to happen, but if I were to remove from a PATH
directory a file named "*.exe" (yes, starting with an asterisk),
at just the right moment, it would have made init.sh ignore all
remaining .exe-suffixed names in that directory.
* tests/init.sh (find_exe_basenames_): Don't give up on a directory if
a file named "*.exe" is removed between the glob expansion and the
processing of that oddly named file.
Cygwin was failing test-vc-list-files-{cvs,git}.sh, because of
spurious output on stderr.
../../tests/test-vc-list-files-cvs.sh (exe_shim): skipping directory: /home/eblake/m4-branch/build-aux
All because build-aux was a directory containing just scripts, and
no .exe extensions. This fixes it.
* tests/init.sh: Accomodate directory containing only scripts.
Signed-off-by: Eric Blake <eblake@redhat.com>