X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftap%2Ftap.c;h=9f6d4d066a4e7068d16bc05659cb47fd680b3f6b;hp=a5156aa194a748ecdf8822d49fde91ce7a0a257f;hb=414da16fc2996a74f19f47ab7379ca61a723b425;hpb=ac0e87d7ecf790c187ce3c5d837b971fdd016b57 diff --git a/ccan/tap/tap.c b/ccan/tap/tap.c index a5156aa1..9f6d4d06 100644 --- a/ccan/tap/tap.c +++ b/ccan/tap/tap.c @@ -23,10 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ -/* FIXME: The real fix is an asprintf module. */ -#ifndef _GNU_SOURCE -#define _GNU_SOURCE 1 -#endif +#include "config.h" #include #include #include @@ -49,7 +46,7 @@ static int test_pid; /* Encapsulate the pthread code in a conditional. In the absence of libpthread the code does nothing */ -#ifdef HAVE_LIBPTHREAD +#if HAVE_LIBPTHREAD #include static pthread_mutex_t M = PTHREAD_MUTEX_INITIALIZER; # define LOCK pthread_mutex_lock(&M) @@ -118,7 +115,8 @@ _gen_result(int ok, const char *func, const char *file, unsigned int line, if(local_test_name) { name_is_digits = 1; for(c = local_test_name; *c != '\0'; c++) { - if(!isdigit(*c) && !isspace(*c)) { + if(!isdigit((unsigned char)*c) + && !isspace((unsigned char)*c)) { name_is_digits = 0; break; } @@ -179,6 +177,9 @@ _gen_result(int ok, const char *func, const char *file, unsigned int line, 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; @@ -260,7 +261,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 */ - setbuf(stdout, 0); +// setbuf(stdout, 0); run_once = 1; } }