clar: give the caller a chance to clean up when listing suites
diff --git a/tests/clar.c b/tests/clar.c
index 2caa871..d8cd8c3 100644
--- a/tests/clar.c
+++ b/tests/clar.c
@@ -308,7 +308,7 @@
exit(-1);
}
-static void
+static int
clar_parse_args(int argc, char **argv)
{
int i;
@@ -377,7 +377,7 @@
for (j = 0; j < _clar_suite_count; ++j)
printf(" %3d: %s\n", (int)j, _clar_suites[j].name);
- exit(0);
+ return 1;
}
case 'v':
@@ -388,6 +388,8 @@
clar_usage(argv[0]);
}
}
+
+ return 0;
}
void
@@ -411,8 +413,13 @@
int
clar_test_run()
{
+ int should_exit;
+
if (_clar.argc > 1)
- clar_parse_args(_clar.argc, _clar.argv);
+ should_exit = clar_parse_args(_clar.argc, _clar.argv);
+
+ if (should_exit)
+ return 0;
if (!_clar.suites_ran) {
size_t i;