X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=bus%2Ftest-main.c;h=01d228704c1d52a5da06c18fe42b082a3383b5ef;hb=bd6d8d261df61ed8b396434e5a80285d43184d6c;hp=000bdd5a0fe225ee923b499075c8242bc78dbccb;hpb=7a4cd46284dd634c165b5c4eb23606b7c0ff4ade;p=platform%2Fupstream%2Fdbus.git diff --git a/bus/test-main.c b/bus/test-main.c index 000bdd5..01d2287 100644 --- a/bus/test-main.c +++ b/bus/test-main.c @@ -21,16 +21,17 @@ * */ +#include #include "test.h" #include #include #include #include #include -#include +#include #include "selinux.h" -#ifdef DBUS_BUILD_TESTS +#ifdef DBUS_ENABLE_EMBEDDED_TESTS static void die (const char *failure) { @@ -51,7 +52,9 @@ check_memleaks (const char *name) die ("memleaks"); } } -#endif /* DBUS_BUILD_TESTS */ +#endif /* DBUS_ENABLE_EMBEDDED_TESTS */ + +static DBusInitialFDs *initial_fds = NULL; static void test_pre_hook (void) @@ -61,23 +64,29 @@ 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 main (int argc, char **argv) { -#ifdef DBUS_BUILD_TESTS +#ifdef DBUS_ENABLE_EMBEDDED_TESTS const char *dir; + const char *only; DBusString test_data_dir; progname = argv[0]; @@ -87,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"); @@ -97,62 +111,77 @@ 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, "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]); return 0; -#else /* DBUS_BUILD_TESTS */ +#else /* DBUS_ENABLE_EMBEDDED_TESTS */ printf ("Not compiled with test support\n");