va_list ap;
failed = 1;
- fprintf(stderr, "- ERROR %s at %s:%d: ", name, n, l);
+ fprintf(stderr, " ERROR %s %s:%d: ", name, n, l);
va_start(ap, s);
vfprintf(stderr, s, ap);
va_end(ap);
#include <stdio.h>
#include <errno.h>
#include <string.h>
+#include <signal.h>
#include "test.h"
#define TEST(r, f, x, m) ( \
- ((r) = (f)) == (x) || \
+ msg = #f, ((r) = (f)) == (x) || \
(error("%s failed (" m ")\n", #f, r, x), 0) )
#define TEST_S(s, x, m) ( \
!strcmp((s),(x)) || \
(error("[%s] != [%s] (%s)\n", s, x, m), 0) )
+static volatile char *msg = "";
+
+static void alarmhandler(int sig) {
+ error("timeout in %s\n", msg);
+ _Exit(1);
+}
+
static pthread_key_t k1, k2;
static void dtor(void *p)
pthread_mutex_t mtx;
pthread_cond_t cond;
+ signal(SIGALRM, alarmhandler);
+ alarm(10);
+
TEST(r, pthread_barrier_init(&barrier2, 0, 2), 0, "creating barrier");
/* Test basic thread creation and joining */