Mercurial > hg > octave-lyh > gnulib-hg
changeset 12510:618282a72d9b
tests: use macros.h in more places
Make the ASSERT macro a bit more reusable.
* tests/macros.h (ASSERT): Depend on ASSERT_STREAM.
(ASSERT_STREAM): Provide default of stderr.
* tests/test-dirent-safer.c: Include macros.h, using alternate
stream for assertions.
* tests/test-dup-safer.c: Likewise.
* tests/test-freopen-safer.c: Likewise.
* tests/test-getopt.c: Likewise.
* tests/test-openat-safer.c: Likewise.
* tests/test-pipe.c: Likewise.
* tests/test-popen-safer.c: Likewise.
* modules/dirent-safer-tests (Files): Include macros.h.
* modules/unistd-safer-tests (Files): Likewise.
* modules/freopen-safer-tests (Files): Likewise.
* modules/getopt-posix-tests (Files): Likewise.
* modules/openat-safer-tests (Files): Likewise.
* modules/pipe-tests (Files): Likewise.
Signed-off-by: Eric Blake <ebb9@byu.net>
author | Eric Blake <ebb9@byu.net> |
---|---|
date | Fri, 25 Dec 2009 16:06:48 -0700 |
parents | aa547f8201c1 |
children | b8d731a7c105 |
files | ChangeLog modules/dirent-safer-tests modules/freopen-safer-tests modules/getopt-posix-tests modules/openat-safer-tests modules/pipe-tests modules/unistd-safer-tests tests/macros.h tests/test-dirent-safer.c tests/test-dup-safer.c tests/test-freopen-safer.c tests/test-getopt.c tests/test-openat-safer.c tests/test-pipe.c tests/test-popen-safer.c |
diffstat | 15 files changed, 60 insertions(+), 95 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,23 @@ +2009-12-26 Eric Blake <ebb9@byu.net> + + tests: use macros.h in more places + * tests/macros.h (ASSERT): Depend on ASSERT_STREAM. + (ASSERT_STREAM): Provide default of stderr. + * tests/test-dirent-safer.c: Include macros.h, using alternate + stream for assertions. + * tests/test-dup-safer.c: Likewise. + * tests/test-freopen-safer.c: Likewise. + * tests/test-getopt.c: Likewise. + * tests/test-openat-safer.c: Likewise. + * tests/test-pipe.c: Likewise. + * tests/test-popen-safer.c: Likewise. + * modules/dirent-safer-tests (Files): Include macros.h. + * modules/unistd-safer-tests (Files): Likewise. + * modules/freopen-safer-tests (Files): Likewise. + * modules/getopt-posix-tests (Files): Likewise. + * modules/openat-safer-tests (Files): Likewise. + * modules/pipe-tests (Files): Likewise. + 2009-12-26 Bruno Haible <bruno@clisp.org> javacomp: Portability fix.
--- a/modules/dirent-safer-tests +++ b/modules/dirent-safer-tests @@ -1,5 +1,6 @@ Files: tests/test-dirent-safer.c +tests/macros.h Depends-on: dup2
--- a/modules/freopen-safer-tests +++ b/modules/freopen-safer-tests @@ -1,5 +1,6 @@ Files: tests/test-freopen-safer.c +tests/macros.h Depends-on:
--- a/modules/getopt-posix-tests +++ b/modules/getopt-posix-tests @@ -1,4 +1,5 @@ Files: +tests/macros.h tests/signature.h tests/test-getopt.c tests/test-getopt.h
--- a/modules/openat-safer-tests +++ b/modules/openat-safer-tests @@ -1,5 +1,6 @@ Files: tests/test-openat-safer.c +tests/macros.h Depends-on:
--- a/modules/pipe-tests +++ b/modules/pipe-tests @@ -1,6 +1,7 @@ Files: tests/test-pipe.sh tests/test-pipe.c +tests/macros.h Depends-on: progname
--- a/modules/unistd-safer-tests +++ b/modules/unistd-safer-tests @@ -1,5 +1,6 @@ Files: tests/test-dup-safer.c +tests/macros.h Depends-on: binary-io
--- a/tests/macros.h +++ b/tests/macros.h @@ -21,9 +21,16 @@ #include <stdio.h> #include <stdlib.h> +/* Define ASSERT_STREAM before including this file if ASSERT must + target a stream other than stderr. */ +#ifndef ASSERT_STREAM +# define ASSERT_STREAM stderr +#endif + /* ASSERT (condition); verifies that the specified condition is fulfilled. If not, a message - is printed to stderr and the program is terminated with an error code. + is printed to ASSERT_STREAM if defined (defaulting to stderr if + undefined) and the program is terminated with an error code. This macro has the following properties: - The programmer specifies the expected condition, not the failure @@ -33,16 +40,17 @@ - On Unix platforms, the tester can debug the test program with a debugger (provided core dumps are enabled: "ulimit -c unlimited"). - For the sake of platforms where no debugger is available (such as - some mingw systems), an error message is printed on stderr that - includes the source location of the ASSERT invocation. + some mingw systems), an error message is printed on the error + stream that includes the source location of the ASSERT invocation. */ #define ASSERT(expr) \ do \ { \ if (!(expr)) \ { \ - fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \ - fflush (stderr); \ + fprintf (ASSERT_STREAM, "%s:%d: assertion failed\n", \ + __FILE__, __LINE__); \ + fflush (ASSERT_STREAM); \ abort (); \ } \ } \
--- a/tests/test-dirent-safer.c +++ b/tests/test-dirent-safer.c @@ -23,7 +23,6 @@ #include <errno.h> #include <fcntl.h> #include <stdio.h> -#include <stdlib.h> #include <unistd.h> #include "unistd-safer.h" @@ -33,19 +32,10 @@ duplicate the original stderr. */ #define BACKUP_STDERR_FILENO 10 -static FILE *myerr; +#define ASSERT_STREAM myerr +#include "macros.h" -#define ASSERT(expr) \ - do \ - { \ - if (!(expr)) \ - { \ - fprintf (myerr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \ - fflush (myerr); \ - abort (); \ - } \ - } \ - while (0) +static FILE *myerr; int main (void)
--- a/tests/test-dup-safer.c +++ b/tests/test-dup-safer.c @@ -24,8 +24,6 @@ #include <errno.h> #include <stdbool.h> #include <stdio.h> -#include <stdlib.h> -#include <sys/stat.h> #include "binary-io.h" #include "cloexec.h" @@ -49,19 +47,10 @@ duplicate the original stderr. */ #define BACKUP_STDERR_FILENO 10 -static FILE *myerr; +#define ASSERT_STREAM myerr +#include "macros.h" -#define ASSERT(expr) \ - do \ - { \ - if (!(expr)) \ - { \ - fprintf (myerr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \ - fflush (myerr); \ - abort (); \ - } \ - } \ - while (0) +static FILE *myerr; /* Return true if FD is open. */ static bool
--- a/tests/test-freopen-safer.c +++ b/tests/test-freopen-safer.c @@ -22,7 +22,6 @@ #include "stdio--.h" /* Helpers. */ -#include <stdlib.h> #include <unistd.h> /* This test intentionally closes stderr. So, we arrange to have fd 10 @@ -30,19 +29,10 @@ duplicate the original stderr. */ #define BACKUP_STDERR_FILENO 10 -static FILE *myerr; +#define ASSERT_STREAM myerr +#include "macros.h" -#define ASSERT(expr) \ - do \ - { \ - if (!(expr)) \ - { \ - fprintf (myerr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \ - fflush (myerr); \ - abort (); \ - } \ - } \ - while (0) +static FILE *myerr; int main (void)
--- a/tests/test-getopt.c +++ b/tests/test-getopt.c @@ -55,19 +55,10 @@ duplicate the original stderr. */ #define BACKUP_STDERR_FILENO 10 -static FILE *myerr; +#define ASSERT_STREAM myerr +#include "macros.h" -#define ASSERT(expr) \ - do \ - { \ - if (!(expr)) \ - { \ - fprintf (myerr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \ - fflush (myerr); \ - abort (); \ - } \ - } \ - while (0) +static FILE *myerr; #include "test-getopt.h" #if GNULIB_GETOPT_GNU
--- a/tests/test-openat-safer.c +++ b/tests/test-openat-safer.c @@ -22,7 +22,6 @@ #include <errno.h> #include <stdio.h> -#include <stdlib.h> #include <sys/stat.h> #include <unistd.h> @@ -31,19 +30,10 @@ duplicate the original stderr. */ #define BACKUP_STDERR_FILENO 10 -static FILE *myerr; +#define ASSERT_STREAM myerr +#include "macros.h" -#define ASSERT(expr) \ - do \ - { \ - if (!(expr)) \ - { \ - fprintf (myerr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \ - fflush (myerr); \ - abort (); \ - } \ - } \ - while (0) +static FILE *myerr; #define witness "test-openat-safer.txt"
--- a/tests/test-pipe.c +++ b/tests/test-pipe.c @@ -33,19 +33,10 @@ duplicate the original stderr. */ #define BACKUP_STDERR_FILENO 10 -static FILE *myerr; +#define ASSERT_STREAM myerr +#include "macros.h" -#define ASSERT(expr) \ - do \ - { \ - if (!(expr)) \ - { \ - fprintf (myerr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \ - fflush (myerr); \ - abort (); \ - } \ - } \ - while (0) +static FILE *myerr; /* Code executed by the child process. argv[1] = "child". */ static int
--- a/tests/test-popen-safer.c +++ b/tests/test-popen-safer.c @@ -22,7 +22,6 @@ #include "stdio--.h" /* Helpers. */ -#include <stdlib.h> #include <sys/wait.h> #include <unistd.h> @@ -31,19 +30,10 @@ duplicate the original stderr. */ #define BACKUP_STDERR_FILENO 10 -static FILE *myerr; +#define ASSERT_STREAM myerr +#include "macros.h" -#define ASSERT(expr) \ - do \ - { \ - if (!(expr)) \ - { \ - fprintf (myerr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \ - fflush (myerr); \ - abort (); \ - } \ - } \ - while (0) +static FILE *myerr; int main (int argc, char **argv)