/* Licensed under LGPL - see LICENSE file for details */
-#include "config.h"
+#include <ccan/failtest/failtest.h>
#include <stdarg.h>
#include <string.h>
#include <stdio.h>
#include <sys/time.h>
#include <signal.h>
#include <assert.h>
+#include <ccan/time/time.h>
#include <ccan/read_write_all/read_write_all.h>
#include <ccan/failtest/failtest_proto.h>
-#include <ccan/failtest/failtest.h>
#include <ccan/build_assert/build_assert.h>
enum failtest_result (*failtest_hook)(struct failtest_call *, unsigned);
if (child == 0) {
if (tracefd != -1) {
- struct timeval now;
+ struct timeval diff;
const char *p;
- gettimeofday(&now, NULL);
- if (now.tv_usec < start.tv_usec) {
- now.tv_sec--;
- now.tv_usec += 1000000;
- }
- now.tv_usec -= start.tv_usec;
- now.tv_sec -= start.tv_sec;
+
+ diff = time_sub(time_now(), start);
p = failpath_string();
trace("%u->%u (%u.%02u): %s (", getppid(), getpid(),
- (int)now.tv_sec, (int)now.tv_usec / 10000, p);
+ (int)diff.tv_sec, (int)diff.tv_usec / 10000, p);
free((char *)p);
p = strrchr(history[history_num-1].file, '/');
if (p)
free((char *)call.pathname);
p->u.open.ret = open(pathname, call.flags, call.mode);
- if (!failpath && p->u.open.ret == -1) {
+ if (p->u.open.ret == -1) {
p->fail = false;
p->error = errno;
} else if (should_fail(p)) {
debugpath = argv[i] + strlen("--debugpath=");
}
}
- gettimeofday(&start, NULL);
+ start = time_now();
}
bool failtest_has_failed(void)