summaryrefslogtreecommitdiff
path: root/src/tc-time.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/tc-time.c')
-rw-r--r--src/tc-time.c31
1 files changed, 22 insertions, 9 deletions
diff --git a/src/tc-time.c b/src/tc-time.c
index 5097cde..e810233 100644
--- a/src/tc-time.c
+++ b/src/tc-time.c
@@ -207,7 +207,7 @@ static void print_op2(const struct timespec *r, const struct timespec *a,
printf(HX_TIMESPEC_FMT "\n", HX_TIMESPEC_EXP(r));
}
-static void test_add(void)
+static int test_add(void)
{
const struct timespec *a, *b;
struct timespec r, s;
@@ -220,13 +220,14 @@ static void test_add(void)
HX_timespec_add_DIVQ(&s, a, b);
print_op2(&r, a, "+Q", b);
if (r.tv_sec != s.tv_sec || r.tv_nsec != s.tv_nsec)
- abort();
+ return EXIT_FAILURE;
HX_timespec_sub(&r, a, b);
print_op2(&r, a, "- ", b);
printf("----------\n");
}
}
printf("\n");
+ return EXIT_SUCCESS;
}
static void test_adds_nz(time_t s, add_func_t fn)
@@ -303,7 +304,7 @@ static void test_adds(void)
printf("\n");
}
-static void test_mul(void)
+static int test_mul(void)
{
struct timespec r, s;
unsigned int i;
@@ -324,7 +325,7 @@ static void test_mul(void)
printf(HX_TIMESPEC_FMT "\n", HX_TIMESPEC_EXP(&s));
if (r.tv_sec != s.tv_sec || r.tv_nsec != s.tv_nsec)
- abort();
+ return EXIT_FAILURE;
}
for (k = -3; k <= 3; k += 0.1) {
@@ -341,6 +342,7 @@ static void test_mul(void)
}
printf("\n");
+ return EXIT_SUCCESS;
}
static void test_muls_1i(const char *text, mul_func_t fn)
@@ -386,18 +388,29 @@ static void test_muls(void)
printf("\n");
}
-int main(void)
+static int runner(void)
{
if (HX_init() <= 0)
- abort();
-
+ return EXIT_FAILURE;
test_basic();
test_same();
test_neg();
- test_add();
- test_mul();
+ int ret = test_add();
+ if (ret != EXIT_SUCCESS)
+ return ret;
+ ret = test_mul();
+ if (ret != EXIT_SUCCESS)
+ return ret;
test_adds();
test_muls();
HX_exit();
return EXIT_SUCCESS;
}
+
+int main(void)
+{
+ int ret = runner();
+ if (ret != EXIT_SUCCESS)
+ fprintf(stderr, "FAILED\n");
+ return ret;
+}