aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/check.c28
1 files changed, 25 insertions, 3 deletions
diff --git a/tests/check.c b/tests/check.c
index 294580b7..6cba4302 100644
--- a/tests/check.c
+++ b/tests/check.c
@@ -37,13 +37,35 @@ Suite *nick_suite(void);
/* From check_md5.c */
Suite *md5_suite(void);
-int main (void)
+int main (int argc, char **argv)
{
int nf;
- SRunner *sr = srunner_create(util_suite());
+ SRunner *sr;
+ GOptionContext *pc;
+ gboolean no_fork = FALSE;
+ gboolean verbose = FALSE;
+ GOptionEntry options[] = {
+ {"no-fork", 'n', 0, G_OPTION_ARG_NONE, &no_fork, "Don't fork" },
+ {"verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose, "Be verbose", NULL },
+ { NULL }
+ };
+ int i;
+
+ pc = g_option_context_new("");
+ g_option_context_add_main_entries(pc, options, NULL);
+
+ if(!g_option_context_parse(pc, &argc, &argv, NULL))
+ return 1;
+
+ g_option_context_free(pc);
+
+
+ sr = srunner_create(util_suite());
srunner_add_suite(sr, nick_suite());
srunner_add_suite(sr, md5_suite());
- srunner_run_all (sr, CK_NORMAL);
+ if (no_fork)
+ srunner_set_fork_status(sr, CK_NOFORK);
+ srunner_run_all (sr, verbose?CK_VERBOSE:CK_NORMAL);
nf = srunner_ntests_failed(sr);
srunner_free(sr);
return (nf == 0) ? EXIT_SUCCESS : EXIT_FAILURE;