# HG changeset patch # User Eric Blake # Date 1258431670 25200 # Node ID 8cf4c5e7274bb8de171942a750fbf9039fbbadad # Parent c8288fd3f281f58a7d227892995451671387856b 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 --- 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 --- 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 --- 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 --- /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