talloc: allow replacement allocator
[ccan] / ccan / tap / tap.c
index 0eaec9a5f852827d879553cfd50cd8bdf252f2c6..106da912487ba28665fc82d9f206e4c639085a34 100644 (file)
@@ -42,7 +42,7 @@ static unsigned int test_count = 0; /* Number of tests that have been run */
 static unsigned int e_tests = 0; /* Expected number of tests to run */
 static unsigned int failures = 0; /* Number of tests that failed */
 static char *todo_msg = NULL;
 static unsigned int e_tests = 0; /* Expected number of tests to run */
 static unsigned int failures = 0; /* Number of tests that failed */
 static char *todo_msg = NULL;
-static char *todo_msg_fixed = "libtap malloc issue";
+static const char *todo_msg_fixed = "libtap malloc issue";
 static int todo = 0;
 static int test_died = 0;
 static int test_pid;
 static int todo = 0;
 static int test_died = 0;
 static int test_pid;
@@ -68,7 +68,7 @@ _expected_tests(unsigned int tests)
 }
 
 static void
 }
 
 static void
-diagv(char *fmt, va_list ap)
+diagv(const char *fmt, va_list ap)
 {
        fputs("# ", stdout);
        vfprintf(stdout, fmt, ap);
 {
        fputs("# ", stdout);
        vfprintf(stdout, fmt, ap);
@@ -76,7 +76,7 @@ diagv(char *fmt, va_list ap)
 }
 
 static void
 }
 
 static void
-_diag(char *fmt, ...)
+_diag(const char *fmt, ...)
 {
        va_list ap;
        va_start(ap, fmt);
 {
        va_list ap;
        va_start(ap, fmt);
@@ -92,8 +92,8 @@ _diag(char *fmt, ...)
  * test_comment -- a comment to print afterwards, may be NULL
  */
 unsigned int
  * test_comment -- a comment to print afterwards, may be NULL
  */
 unsigned int
-_gen_result(int ok, const char *func, char *file, unsigned int line, 
-           char *test_name, ...)
+_gen_result(int ok, const char *func, const char *file, unsigned int line, 
+           const char *test_name, ...)
 {
        va_list ap;
        char *local_test_name = NULL;
 {
        va_list ap;
        char *local_test_name = NULL;
@@ -179,6 +179,9 @@ _gen_result(int ok, const char *func, char *file, unsigned int line,
 
        UNLOCK;
 
 
        UNLOCK;
 
+       if (!ok && tap_fail_callback)
+               tap_fail_callback();
+
        /* We only care (when testing) that ok is positive, but here we
           specifically only want to return 1 or 0 */
        return ok ? 1 : 0;
        /* We only care (when testing) that ok is positive, but here we
           specifically only want to return 1 or 0 */
        return ok ? 1 : 0;
@@ -260,7 +263,7 @@ _tap_init(void)
                /* stdout needs to be unbuffered so that the output appears
                   in the same place relative to stderr output as it does 
                   with Test::Harness */
                /* stdout needs to be unbuffered so that the output appears
                   in the same place relative to stderr output as it does 
                   with Test::Harness */
-               setbuf(stdout, 0);
+//             setbuf(stdout, 0);
                run_once = 1;
        }
 }
                run_once = 1;
        }
 }
@@ -293,7 +296,7 @@ plan_no_plan(void)
  * Note that the plan is to skip all tests
  */
 void
  * Note that the plan is to skip all tests
  */
 void
-plan_skip_all(char *reason)
+plan_skip_all(const char *reason)
 {
 
        LOCK;
 {
 
        LOCK;
@@ -345,7 +348,7 @@ plan_tests(unsigned int tests)
 }
 
 void
 }
 
 void
-diag(char *fmt, ...)
+diag(const char *fmt, ...)
 {
        va_list ap;
 
 {
        va_list ap;
 
@@ -359,7 +362,7 @@ diag(char *fmt, ...)
 }
 
 void
 }
 
 void
-skip(unsigned int n, char *fmt, ...)
+skip(unsigned int n, const char *fmt, ...)
 {
        va_list ap;
        char *skip_msg;
 {
        va_list ap;
        char *skip_msg;
@@ -384,7 +387,7 @@ skip(unsigned int n, char *fmt, ...)
 }
 
 void
 }
 
 void
-todo_start(char *fmt, ...)
+todo_start(const char *fmt, ...)
 {
        va_list ap;
 
 {
        va_list ap;