Browse Source

make 'make test' exit(1) if a test fails.

svn:r1190
Nick Mathewson 20 years ago
parent
commit
5072488a95
2 changed files with 17 additions and 1 deletions
  1. 10 0
      src/common/test.h
  2. 7 1
      src/or/test.c

+ 10 - 0
src/common/test.h

@@ -16,8 +16,11 @@
 #define PRETTY_FUNCTION ""
 #endif
 
+extern int have_failed;
+
 #define test_fail()                                             \
   STMT_BEGIN                                                    \
+    have_failed = 1;                                            \
     printf("\nFile %s: line %d (%s): assertion failed.",        \
       __FILE__,                                                 \
       __LINE__,                                                 \
@@ -28,6 +31,7 @@
 #define test_assert(expr)                                       \
   STMT_BEGIN                                                    \
   if(expr) { printf("."); } else {                              \
+    have_failed = 1;                                            \
     printf("\nFile %s: line %d (%s): assertion failed: (%s)\n", \
       __FILE__,                                                 \
       __LINE__,                                                 \
@@ -40,6 +44,7 @@
   STMT_BEGIN                                                    \
     long v1=(long)(expr1), v2=(long)(expr2);                    \
     if(v1==v2) { printf("."); } else {                          \
+    have_failed = 1;                                            \
     printf("\nFile %s: line %d (%s): Assertion failed: (%s==%s)\n"\
            "      (%ld != %ld)\n",                              \
       __FILE__,                                                 \
@@ -54,6 +59,7 @@
   STMT_BEGIN                                                    \
     long v1=(long)(expr1), v2=(long)(expr2);                    \
     if(v1!=v2) { printf("."); } else {                          \
+    have_failed = 1;                                            \
     printf("\nFile %s: line %d (%s): Assertion failed: (%s!=%s)\n"\
            "      (%ld == %ld)\n",                              \
       __FILE__,                                                 \
@@ -68,6 +74,7 @@
   STMT_BEGIN                                                    \
     char *v1=(expr1), *v2=(expr2);                              \
     if(!strcmp(v1,v2)) { printf("."); } else {                  \
+    have_failed = 1;                                            \
     printf("\nFile %s: line %d (%s): Assertion failed: (%s==%s)\n"\
            "      (\"%s\" != \"%s\")\n",                        \
       __FILE__,                                                 \
@@ -82,6 +89,7 @@
   STMT_BEGIN                                                    \
     char *v1=(expr1), *v2=(expr2);                              \
     if(strcmp(v1,v2)) { printf("."); } else {                   \
+    have_failed = 1;                                            \
     printf("\nFile %s: line %d (%s): Assertion failed: (%s!=%s)\n"\
            "      (\"%s\" == \"%s\")\n",                        \
       __FILE__,                                                 \
@@ -96,6 +104,7 @@
   STMT_BEGIN                                                    \
     void *v1=(expr1), *v2=(expr2);                              \
     if(!memcmp(v1,v2,(len))) { printf("."); } else {            \
+    have_failed = 1;                                            \
     printf("\nFile %s: line %d (%s): Assertion failed: (%s==%s)\n", \
       __FILE__,                                                 \
       __LINE__,                                                 \
@@ -108,6 +117,7 @@
   STMT_BEGIN                                                    \
     void *v1=(expr1), *v2=(expr2);                              \
     if(memcmp(v1,v2,(len))) { printf("."); } else {             \
+    have_failed = 1;                                            \
     printf("\nFile %s: line %d (%s): Assertion failed: (%s!=%s)\n", \
       __FILE__,                                                 \
       __LINE__,                                                 \

+ 7 - 1
src/or/test.c

@@ -15,6 +15,8 @@
 #include "or.h"
 #include "../common/test.h"
 
+int have_failed = 0;
+
 void
 dump_hex(char *s, int len)
 {
@@ -715,7 +717,11 @@ main(int c, char**v){
   puts("\n========================= Directory Formats ===============");
   test_dir_format();
   puts("");
-  return 0;
+
+  if (have_failed)
+    return 1;
+  else
+    return 0;
 }
 
 /*