From b9337b6a58501fcbae612a86d4219a8db2c5c1ff Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 11 Apr 1998 09:51:01 +0000 Subject: Update. 1998-04-11 09:33 Ulrich Drepper * Makeconfig (rtobjdir): New variable. (rpath-link): Add rtobjdir and thread directory, if available. * test-skeleton.c: Add support to remove temporary files. Always define test_dir. Improve message about expected signal. * rt/Makefile (tests): Add tst-aio. Add rules for tst-aio to be linked with librt and thread library. * rt/aio_misc.c: Correct fundamental bugs. * rt/aio_suspend.c: Correct bug in test for available request. Initialize conditional variable. * rt/lio_listio.c: Initialize conditional variable. * rt/lio_listio64.c: Likewise. * rt/tst-aio.c: New file. * sysdeps/libm-ieee754/s_signgam.c: Undo last change. * sysdeps/libm-ieee754/w_gamma.c: Likewise. Adopt for ISO C 9x. * sysdeps/libm-ieee754/w_gammaf.c: Likewise. * sysdeps/libm-ieee754/w_gammal.c: Likewise. * sysdeps/libm-ieee754/w_lgamma.c: Likewise. * sysdeps/libm-ieee754/w_lgammaf.c: Likewise. * sysdeps/libm-ieee754/w_lgammal.c: Likewise. 1998-04-11 14:49 Mark Kettenis * posix/regex.c [_LIBC] (__re_syntax_options): Initialize to 0. * elf/dl-load.c (open_path): Use correct name for test whether directory in load path exists. * sysdeps/libm-ieee754/s_expm1.c: Remove variable one. * sysdeps/libm-ieee754/e_pow.c: Fix typo. Patches by Tom Rini . * wcsmbs/wcstof_l.c: Declare ____wcstoull_l_internal. * wcsmbs/wcstod_l.c: Likewise. * wcsmbs/wcstold_l.c: Likewise. --- test-skeleton.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 2 deletions(-) (limited to 'test-skeleton.c') diff --git a/test-skeleton.c b/test-skeleton.c index 5bb5c44..39c6073 100644 --- a/test-skeleton.c +++ b/test-skeleton.c @@ -18,6 +18,7 @@ Boston, MA 02111-1307, USA. */ #include +#include #include #include #include @@ -52,6 +53,39 @@ static int pid; /* Directory to place temporary files in. */ static const char *test_dir; +/* List of temporary files. */ +struct name_list +{ + struct qelem q; + const char *name; +} *name_list; + +/* Add temporary files in list. */ +void +add_temp_file (const char *name) +{ + struct name_list *newp = (struct name_list *) calloc (sizeof (*newp), 1); + if (newp != NULL) + { + newp->name = name; + if (name_list == NULL) + name_list = (struct name_list *) &newp->q; + else + insque (newp, name_list); + } +} + +/* Delete all temporary files. */ +void +delete_temp_files (void) +{ + while (name_list != NULL) + { + remove (name_list->name); + name_list = (struct name_list *) name_list->q.q_forw; + } +} + /* Timeout handler. We kill the child and exit with an error. */ void timeout_handler (int sig __attribute__ ((unused))) @@ -114,11 +148,20 @@ main (int argc, char *argv[]) exit (1); } } + else + { + test_dir = getenv ("TMPDIR"); + if (test_dir == NULL || test_dir[0] == '\0') + test_dir = "/tmp"; + } /* If we are not expected to fork run the function immediately. */ if (direct) return TEST_FUNCTION; + /* make sure temporary files are deleted. */ + atexit (delete_temp_files); + /* Set up the test environment: - prevent core dumps - set up the timer @@ -166,8 +209,12 @@ main (int argc, char *argv[]) #endif if (WTERMSIG (status) != EXPECTED_SIGNAL) { - fprintf (stderr, "Incorrect signal from child: got `%s', need `%s'\n", - strsignal (WTERMSIG (status)), strsignal (EXPECTED_SIGNAL)); + if (EXPECTED_SIGNAL != 0) + fprintf (stderr, "Incorrect signal from child: got `%s', need `%s'\n", + strsignal (WTERMSIG (status)), strsignal (EXPECTED_SIGNAL)); + else + fprintf (stderr, "Incorrect signal from child: got `%s'\n", + strsignal (WTERMSIG (status))); exit (1); } -- cgit v1.1