From 2f0b4f5f84bd0a0d6c87912d3e0d6436f4c3f8ef Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Thu, 12 Feb 2009 21:27:58 +0000 Subject: [PATCH] Thu Feb 12 15:08:05 CST 2009 Pekka Pessi * check_nua.c: allow setting test case names from command line. usage. git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@11961 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- .../sofia-sip/libsofia-sip-ua/nua/check_nua.c | 43 +++++++++++++++---- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/libs/sofia-sip/libsofia-sip-ua/nua/check_nua.c b/libs/sofia-sip/libsofia-sip-ua/nua/check_nua.c index 03c492cc2e..26eda73296 100644 --- a/libs/sofia-sip/libsofia-sip-ua/nua/check_nua.c +++ b/libs/sofia-sip/libsofia-sip-ua/nua/check_nua.c @@ -45,21 +45,49 @@ #include "test_s2.h" +static void usage(int exitcode) +{ + fprintf(exitcode ? stderr : stdout, + "usage: %s [--xml=logfile] case,...\n", s2_tester); + exit(exitcode); +} + int main(int argc, char *argv[]) { - int failed = 0; + int i, failed = 0, selected = 0; int threading; - - SRunner *runner; - + char const *xml = NULL; Suite *suite = suite_create("Unit tests for Sofia-SIP UA Engine"); + SRunner *runner; s2_tester = "check_nua"; if (getenv("CHECK_NUA_VERBOSE")) s2_start_stop = strtoul(getenv("CHECK_NUA_VERBOSE"), NULL, 10); - s2_select_tests(getenv("CHECK_NUA_CASES")); + for (i = 1; argv[i]; i++) { + if (su_strnmatch(argv[i], "--xml=", strlen("--xml="))) { + xml = argv[i] + strlen("--xml="); + } + else if (su_strmatch(argv[i], "--xml")) { + if (!(xml = argv[++i])) + usage(2); + } + else if (su_strmatch(argv[i], "-v")) { + s2_start_stop = 1; + } + else if (su_strmatch(argv[i], "-?") || + su_strmatch(argv[i], "-h") || + su_strmatch(argv[i], "--help")) + usage(0); + else { + s2_select_tests(argv[i]); + selected = 1; + } + } + + if (!selected) + s2_select_tests(getenv("CHECK_NUA_CASES")); check_register_cases(suite, threading = 0); check_simple_cases(suite, threading = 0); @@ -73,11 +101,10 @@ int main(int argc, char *argv[]) runner = srunner_create(suite); - if (argv[1]) { + if (xml) srunner_set_xml(runner, argv[1]); - } - srunner_run_all(runner, CK_ENV); + srunner_run_all(runner, CK_ENV); failed = srunner_ntests_failed(runner); srunner_free(runner);