summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Blake <ebb9@byu.net>2009-12-25 16:06:48 -0700
committerEric Blake <ebb9@byu.net>2009-12-26 11:03:54 -0700
commit9a3454362bbd242121df2ba63aef92fc96a1e390 (patch)
tree9f18767510e5dcd7e8a6b20b358582882d53b119
parenta93454a87ee0ea0bcd92ea55c1eb87330119d438 (diff)
downloadgnulib-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--ChangeLog20
-rw-r--r--modules/dirent-safer-tests1
-rw-r--r--modules/freopen-safer-tests1
-rw-r--r--modules/getopt-posix-tests1
-rw-r--r--modules/openat-safer-tests1
-rw-r--r--modules/pipe-tests1
-rw-r--r--modules/unistd-safer-tests1
-rw-r--r--tests/macros.h18
-rw-r--r--tests/test-dirent-safer.c16
-rw-r--r--tests/test-dup-safer.c17
-rw-r--r--tests/test-freopen-safer.c16
-rw-r--r--tests/test-getopt.c15
-rw-r--r--tests/test-openat-safer.c16
-rw-r--r--tests/test-pipe.c15
-rw-r--r--tests/test-popen-safer.c16
15 files changed, 60 insertions, 95 deletions
diff --git a/ChangeLog b/ChangeLog
index f17fd9555c..fbf1354d85 100644
--- 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.
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)