diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2006-12-06 14:34:15 +0100 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2006-12-06 14:34:15 +0100 |
commit | 3b4cc8f0af7a4d9e1fae69e12a438b15f9206003 (patch) | |
tree | 983ca188f67e75b4fd4a77add88394fbb6ec823e | |
parent | 6a909671115ba5fac94c212c249264bf25ec8840 (diff) |
Support arguments passed to tests/check to enable verbose logging or
to disable forking (for debugging purposes).
-rw-r--r-- | tests/check.c | 28 |
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; |