diff options
author | Eric Blake <ebb9@byu.net> | 2009-12-25 16:06:48 -0700 |
---|---|---|
committer | Eric Blake <ebb9@byu.net> | 2009-12-26 11:03:54 -0700 |
commit | 9a3454362bbd242121df2ba63aef92fc96a1e390 (patch) | |
tree | 9f18767510e5dcd7e8a6b20b358582882d53b119 | |
parent | a93454a87ee0ea0bcd92ea55c1eb87330119d438 (diff) | |
download | gnulib-9a3454362bbd242121df2ba63aef92fc96a1e390.tar.gz |
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>
-rw-r--r-- | ChangeLog | 20 | ||||
-rw-r--r-- | modules/dirent-safer-tests | 1 | ||||
-rw-r--r-- | modules/freopen-safer-tests | 1 | ||||
-rw-r--r-- | modules/getopt-posix-tests | 1 | ||||
-rw-r--r-- | modules/openat-safer-tests | 1 | ||||
-rw-r--r-- | modules/pipe-tests | 1 | ||||
-rw-r--r-- | modules/unistd-safer-tests | 1 | ||||
-rw-r--r-- | tests/macros.h | 18 | ||||
-rw-r--r-- | tests/test-dirent-safer.c | 16 | ||||
-rw-r--r-- | tests/test-dup-safer.c | 17 | ||||
-rw-r--r-- | tests/test-freopen-safer.c | 16 | ||||
-rw-r--r-- | tests/test-getopt.c | 15 | ||||
-rw-r--r-- | tests/test-openat-safer.c | 16 | ||||
-rw-r--r-- | tests/test-pipe.c | 15 | ||||
-rw-r--r-- | tests/test-popen-safer.c | 16 |
15 files changed, 60 insertions, 95 deletions
@@ -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. diff --git a/modules/dirent-safer-tests b/modules/dirent-safer-tests index da87778917..2bc95933fd 100644 --- 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 diff --git a/modules/freopen-safer-tests b/modules/freopen-safer-tests index 9511880a29..048d8a2a44 100644 --- 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: diff --git a/modules/getopt-posix-tests b/modules/getopt-posix-tests index 438b6e4c1d..9c73d08b7b 100644 --- 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 diff --git a/modules/openat-safer-tests b/modules/openat-safer-tests index 20bf3822d2..1f0b158fc0 100644 --- 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: diff --git a/modules/pipe-tests b/modules/pipe-tests index 14d1e0fef1..0e31a865a6 100644 --- 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 diff --git a/modules/unistd-safer-tests b/modules/unistd-safer-tests index a6da5a9bd5..cc4b97ab3b 100644 --- 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 diff --git a/tests/macros.h b/tests/macros.h index dc55fbe02e..b29378e944 100644 --- 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 (); \ } \ } \ diff --git a/tests/test-dirent-safer.c b/tests/test-dirent-safer.c index 8d5d529282..045d29b44b 100644 --- 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) diff --git a/tests/test-dup-safer.c b/tests/test-dup-safer.c index 24cc9e5f37..6a5c69d802 100644 --- 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 @@ static int zero (void) { return 0; } 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 diff --git a/tests/test-freopen-safer.c b/tests/test-freopen-safer.c index 40ba8872d4..41d47dad40 100644 --- 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) diff --git a/tests/test-getopt.c b/tests/test-getopt.c index 9502a442ef..8896590258 100644 --- a/tests/test-getopt.c +++ b/tests/test-getopt.c @@ -55,19 +55,10 @@ SIGNATURE_CHECK (getopt, int, (int, char * const[], char const *)); 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 diff --git a/tests/test-openat-safer.c b/tests/test-openat-safer.c index f7091807d3..7a49600561 100644 --- 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" diff --git a/tests/test-pipe.c b/tests/test-pipe.c index 4c298a7aa2..ec498f46d3 100644 --- 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 diff --git a/tests/test-popen-safer.c b/tests/test-popen-safer.c index 281dae9a7a..d9ab831331 100644 --- 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) |