X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=bus%2Ftest-main.c;h=a8039d5129ee612f646ebb5a85182c42f8f829b2;hb=93385b733927bdcfd5c6e97f9684820aa9d3d4ae;hp=cb0ed008aad5f11b4a880fed0f8f0af14ac1e551;hpb=3ac6915e3cc214cb8115a38667a5b66dfbeef35f;p=platform%2Fupstream%2Fdbus.git diff --git a/bus/test-main.c b/bus/test-main.c index cb0ed00..a8039d5 100644 --- a/bus/test-main.c +++ b/bus/test-main.c @@ -54,6 +54,8 @@ check_memleaks (const char *name) } #endif /* DBUS_BUILD_TESTS */ +static DBusInitialFDs *initial_fds = NULL; + static void test_pre_hook (void) { @@ -62,16 +64,21 @@ test_pre_hook (void) && (!bus_selinux_pre_init () || !bus_selinux_full_init ())) die ("could not init selinux support"); + + initial_fds = _dbus_check_fdleaks_enter (); } static char *progname = ""; + static void test_post_hook (void) { if (_dbus_getenv ("DBUS_TEST_SELINUX")) bus_selinux_shutdown (); check_memleaks (progname); - _dbus_check_fdleaks(); + + _dbus_check_fdleaks_leave (initial_fds); + initial_fds = NULL; } int @@ -79,6 +86,7 @@ main (int argc, char **argv) { #ifdef DBUS_BUILD_TESTS const char *dir; + const char *only; DBusString test_data_dir; progname = argv[0]; @@ -88,6 +96,11 @@ main (int argc, char **argv) else dir = _dbus_getenv ("DBUS_TEST_DATA"); + if (argc > 2) + only = argv[2]; + else + only = NULL; + if (dir == NULL) { fprintf (stderr, "Must specify test data directory as argv[1] or in DBUS_TEST_DATA env variable\n"); @@ -98,55 +111,79 @@ main (int argc, char **argv) if (!_dbus_threads_init_debug ()) die ("initializing debug threads"); - - test_pre_hook (); - printf ("%s: Running expire list test\n", argv[0]); - if (!bus_expire_list_test (&test_data_dir)) - die ("expire list"); - test_post_hook (); - - test_pre_hook (); - printf ("%s: Running config file parser test\n", argv[0]); - if (!bus_config_parser_test (&test_data_dir)) - die ("parser"); - test_post_hook (); - - test_pre_hook (); - printf ("%s: Running policy test\n", argv[0]); - if (!bus_policy_test (&test_data_dir)) - die ("policy"); - test_post_hook (); - - test_pre_hook (); - printf ("%s: Running signals test\n", argv[0]); - if (!bus_signals_test (&test_data_dir)) - die ("signals"); - test_post_hook (); - - test_pre_hook (); - printf ("%s: Running SHA1 connection test\n", argv[0]); - if (!bus_dispatch_sha1_test (&test_data_dir)) - die ("sha1"); - test_post_hook (); - - test_pre_hook (); - printf ("%s: Running message dispatch test\n", argv[0]); - if (!bus_dispatch_test (&test_data_dir)) - die ("dispatch"); - test_post_hook (); - - test_pre_hook (); - printf ("%s: Running service files reloading test\n", argv[0]); - if (!bus_activation_service_reload_test (&test_data_dir)) - die ("service reload"); - test_post_hook (); + + if (only == NULL || strcmp (only, "expire-list") == 0) + { + test_pre_hook (); + printf ("%s: Running expire list test\n", argv[0]); + if (!bus_expire_list_test (&test_data_dir)) + die ("expire list"); + test_post_hook (); + } + + if (only == NULL || strcmp (only, "config-parser") == 0) + { + test_pre_hook (); + printf ("%s: Running config file parser test\n", argv[0]); + if (!bus_config_parser_test (&test_data_dir)) + die ("parser"); + test_post_hook (); + } + + if (only == NULL || strcmp (only, "policy") == 0) + { + test_pre_hook (); + printf ("%s: Running policy test\n", argv[0]); + if (!bus_policy_test (&test_data_dir)) + die ("policy"); + test_post_hook (); + } + + if (only == NULL || strcmp (only, "signals") == 0) + { + test_pre_hook (); + printf ("%s: Running signals test\n", argv[0]); + if (!bus_signals_test (&test_data_dir)) + die ("signals"); + test_post_hook (); + } + + if (only == NULL || strcmp (only, "dispatch-sha1") == 0) + { + test_pre_hook (); + printf ("%s: Running SHA1 connection test\n", argv[0]); + if (!bus_dispatch_sha1_test (&test_data_dir)) + die ("sha1"); + test_post_hook (); + } + + if (only == NULL || strcmp (only, "dispatch") == 0) + { + test_pre_hook (); + printf ("%s: Running message dispatch test\n", argv[0]); + if (!bus_dispatch_test (&test_data_dir)) + die ("dispatch"); + test_post_hook (); + } + + if (only == NULL || strcmp (only, "activation-service-reload") == 0) + { + test_pre_hook (); + printf ("%s: Running service files reloading test\n", argv[0]); + if (!bus_activation_service_reload_test (&test_data_dir)) + die ("service reload"); + test_post_hook (); + } #ifdef HAVE_UNIX_FD_PASSING - test_pre_hook (); - printf ("%s: Running unix fd passing test\n", argv[0]); - if (!bus_unix_fds_passing_test (&test_data_dir)) - die ("unix fd passing"); - test_post_hook (); + if (only == NULL || strcmp (only, "unix-fds-passing") == 0) + { + test_pre_hook (); + printf ("%s: Running unix fd passing test\n", argv[0]); + if (!bus_unix_fds_passing_test (&test_data_dir)) + die ("unix fd passing"); + test_post_hook (); + } #endif printf ("%s: Success\n", argv[0]);