Jim Meyering [Fri, 9 Apr 2010 18:53:49 +0000 (20:53 +0200)]
init.sh: run tr in the "C" locale to avoid multibyte interpretation
* tests/init.sh (rand_bytes_): Run tr in the "C" locale so it does
not try to interpret its random input bytes. Jarno Rajahalme reported
that ./test-xalloc-die.sh would fail with "tr: Illegal byte sequence"
on Darwin 10.3.0 with LC_CTYPE=UTF-8.
(mktempd_): Likewise, just in case.
Jim Meyering [Fri, 9 Apr 2010 08:44:23 +0000 (10:44 +0200)]
ftruncate: mark module as obsolete; even MinGW provides it, now
* modules/ftruncate (Status): Obsolete.
(Notice): Say that.
* doc/posix-functions/ftruncate.texi: Don't say MinGW lacks it.
http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/9203
Jim Meyering [Wed, 7 Apr 2010 11:45:59 +0000 (13:45 +0200)]
maint.mk: add a PATH crosschecking syntax-check rule
* top/maint.mk (sc_cross_check_PATH_usage_in_tests): New rule.
Useful if you use a test like the one in help-version (coreutils,
diffutils, grep, gzip) that ensures $(VERSION) matches what is
printed by prog --version.
Jim Meyering [Tue, 6 Apr 2010 17:24:57 +0000 (19:24 +0200)]
init.sh: simply unset TMPDIR rather than risking env -i
* tests/init.sh (mktempd_): Using env -i is rather harsh, and
although it probably works fine on all Unix-based systems, some
systems (Cygwin?) cannot tolerate a totally cleared environment.
Suggestion from Eric Blake.
Jim Meyering [Mon, 5 Apr 2010 17:30:38 +0000 (19:30 +0200)]
xstrtoumax-tests: convert to use init.sh
* modules/xstrtoumax-tests (Files): Add tests/init.sh.
* tests/test-xstrtoumax.sh: Invoke "$srcdir/init.sh" and path_prepend_.
Use Exit, not exit.
Remove uses of $EXEEXT and "./" to run a program in the current dir.
Jim Meyering [Mon, 5 Apr 2010 16:27:15 +0000 (18:27 +0200)]
xstrtoimax-tests: convert to use init.sh
* modules/xstrtoimax-tests (Files): Add tests/init.sh.
* tests/test-xstrtoimax.sh: Invoke "$srcdir/init.sh" and path_prepend_.
Use Exit, not exit.
Remove uses of $EXEEXT and "./" to run a program in the current dir.
Jim Meyering [Mon, 5 Apr 2010 14:32:41 +0000 (16:32 +0200)]
xstrtol-tests: convert to use init.sh
* modules/xstrtol-tests (Files): Add tests/init.sh.
* tests/test-xstrtol.sh: Invoke "$srcdir/init.sh" and path_prepend_.
Use Exit, not exit.
Remove uses of $EXEEXT and "./" to run a program in the current dir.
Jim Meyering [Mon, 5 Apr 2010 14:12:55 +0000 (16:12 +0200)]
atexit-tests: convert to use init.sh
* modules/atexit-tests (Files): Add tests/init.sh.
* tests/test-atexit.sh: Invoke "$srcdir/init.sh" and path_prepend_.
Use Exit, not exit.
Remove uses of $EXEEXT and "./" to run a program in the current dir.
Jim Meyering [Mon, 5 Apr 2010 08:01:07 +0000 (10:01 +0200)]
init.sh: make it easier for a test script to write to the tty, ...
when using automake's parallel-tests mode.
* tests/init.sh (stderr_fileno_): Define overridable variable.
(warn_): New function, to use it.
(fail_, skip_, framework_failure_): Use warn_.
* top/maint.mk (_prohibit_regexp): Define, to help people realize
that they need to convert their project-specific syntax-check rules
to use the new _sc_search_regexp.
Jose E. Marchesi [Sun, 28 Mar 2010 11:35:24 +0000 (13:35 +0200)]
maint.mk: match 0 or more whitespace-before-function-call '('
* top/maint.mk (sc_error_exit_success): Relax regexp to match uses
that have zero or two-and-more spaces between the function name
and the open parenthesis.
(sc_error_message_warn_fatal): Likewise.
(sc_error_message_uppercase): Likewise.
(sc_error_message_period): Likewise.
Eric Blake [Wed, 31 Mar 2010 21:33:55 +0000 (15:33 -0600)]
maint.mk: check for [ as well as test
A word on the regex: \<\[ never matches, so the match instead
looks for a leading space in that case. Although configure.ac
should generally use test instead of [ (because the latter has
to be spelled [[ because of m4 processing), libvirt had a case
of the latter that would have been detected with this rule.
* top/maint.mk (sc_prohibit_test_minus_ao): Extend test.
Based on a libvirt report by Matthias Bolte.
Eric Blake [Tue, 30 Mar 2010 21:56:17 +0000 (15:56 -0600)]
gnumakefile: don't squelch _version output
Borrowing from a trick I discovered on the libvirt list.
More details about how this trick works:
GNU make parses all Makefiles, then checks whether they are
up-to-date, all before making anything else; if any Makefile
timestamps change, then it restarts with the original arguments and
repeats the check for up-to-date Makefiles (assuming that this time
the check will pass). Since all the rules are parsed before Makefile
is updated, proceeding without reloading Makefiles would result in the
use of the stale $(VERSION) string that was in effect when we first
started, so we must update a timestamp to force the reload. However,
if we made Makefile depend on _version, we would end up running
_version twice. So instead, we make _version run a recursive make to
update Makefile (the recursive make skips the rules for checking
whether the version string needs an update, avoiding any extra runs of
_version), then ensure that GNUmakefile has an updated timestamp to
force the reload of the updated Makefile.
* top/GNUmakefile (GNUmakefile): Create one-shot dependency rather
than using $(shell) to run _version target.
(_autoreconf): Run verbosely, by default.
Eric Blake [Tue, 30 Mar 2010 14:47:41 +0000 (08:47 -0600)]
maint: improve module indicators
* m4/gnulib-common.m4 (gl_MODULE_INDICATOR_SET_VARIABLE)
(gl_MODULE_INDICATOR, gl_MODULE_INDICATOR_FOR_TESTS): Fit in 80
columns, and avoid extra macro expansion.
Eric Blake [Mon, 29 Mar 2010 21:08:59 +0000 (15:08 -0600)]
fdopendir: work around FreeBSD bug
Without a declaration, at least tar would core dump on 64-bit
FreeBSD because gcc only used 32 bits of the resulting pointer.
* m4/dirent_h.m4 (gl_DIRENT_H_DEFAULTS): New witness.
* m4/fdopendir.m4 (gl_FUNC_FDOPENDIR): Set it.
* modules/dirent (Makefile.am): Substitute it.
* lib/dirent.in.h (fdopendir): Supply missing FreeBSD
declaration.
* doc/posix-functions/fdopendir.texi (fdopendir): Document the
fix.
Reported by Christian Weisgerber <naddy@mips.inka.de>.