From: Eric Blake Date: Tue, 17 Nov 2009 04:21:10 +0000 (-0700) Subject: xalloc-die-tests: avoid printing null pointer X-Git-Tag: v0.1~5186 X-Git-Url: http://erislabs.org.uk/gitweb/?a=commitdiff_plain;h=a77f03bcadfda404d30cec6725e5d946e4babf05;p=gnulib.git xalloc-die-tests: avoid printing null pointer The test leaked "(null): memory exhausted" to stderr, or crashed for less capable printf. * modules/xalloc-die-tests (Files, Makefile.am): Wrap execution in shell script. * tests/test-xalloc-die.c (program_name): Declare. * tests/test-xalloc-die.sh (tmpfiles): New file. Signed-off-by: Eric Blake --- diff --git a/ChangeLog b/ChangeLog index 0c56777b4..68b11aa03 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2009-11-16 Eric Blake + xalloc-die-tests: avoid printing null pointer + * modules/xalloc-die-tests (Files, Makefile.am): Wrap execution in + shell script. + * tests/test-xalloc-die.c (program_name): Declare. + * tests/test-xalloc-die.sh (tmpfiles): New file. + setenv, unsetenv: work around various bugs * lib/setenv.c (setenv) [!HAVE_SETENV]: Resync from glibc. (setenv) [HAVE_SETENV]: Work around bugs. diff --git a/modules/xalloc-die-tests b/modules/xalloc-die-tests index 03ee303cd..97b25e774 100644 --- a/modules/xalloc-die-tests +++ b/modules/xalloc-die-tests @@ -1,9 +1,11 @@ Files: tests/test-xalloc-die.c +tests/test-xalloc-die.sh Depends-on: Makefile.am: -TESTS += test-xalloc-die +TESTS += test-xalloc-die.sh +TESTS_ENVIRONMENT += EXEEXT='@EXEEXT@' XFAIL_TESTS += test-xalloc-die check_PROGRAMS += test-xalloc-die diff --git a/tests/test-xalloc-die.c b/tests/test-xalloc-die.c index e28176778..88461e84b 100644 --- a/tests/test-xalloc-die.c +++ b/tests/test-xalloc-die.c @@ -20,6 +20,8 @@ #include "xalloc.h" +char *program_name = "test-xalloc-die"; + int main (void) { diff --git a/tests/test-xalloc-die.sh b/tests/test-xalloc-die.sh new file mode 100755 index 000000000..340a500f7 --- /dev/null +++ b/tests/test-xalloc-die.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +tmpfiles="" +trap '__st=$?; rm -fr $tmpfiles; exit $__st' 0 +trap '__st=$?; (exit $__st); exit $__st' 1 2 3 15 + +if ( diff --version < /dev/null 2>&1 | grep GNU ) 2>&1 > /dev/null; then + compare() { diff -u "$@"; } +elif ( cmp --version < /dev/null 2>&1 | grep GNU ) 2>&1 > /dev/null; then + compare() { cmp -s "$@"; } +else + compare() { cmp "$@"; } +fi + +tmpfiles="t-xalloc-die.tmp" +./test-xalloc-die${EXEEXT} 2> t-xalloc-die.tmp +case $? in + 1) ;; + *) (exit 1); exit 1 ;; +esac + +compare - t-xalloc-die.tmp <<\EOF || { (exit 1); exit 1; } +test-xalloc-die: memory exhausted +EOF + +rm -fr $tmpfiles + +exit 0