diff options
Diffstat (limited to 'bus/test-main.c')
| -rw-r--r-- | bus/test-main.c | 54 | 
1 files changed, 35 insertions, 19 deletions
diff --git a/bus/test-main.c b/bus/test-main.c index d92e3fee..4043f6ed 100644 --- a/bus/test-main.c +++ b/bus/test-main.c @@ -52,6 +52,23 @@ check_memleaks (const char *name)  }  #endif /* DBUS_BUILD_TESTS */ +static void +test_pre_hook (void) +{ +   +  if (_dbus_getenv ("DBUS_TEST_SELINUX") && !bus_selinux_init ()) +    die ("could not init selinux support"); +} + +static char *progname = ""; +static void +test_post_hook (void) +{ +  if (_dbus_getenv ("DBUS_TEST_SELINUX")) +    bus_selinux_shutdown (); +  check_memleaks (progname); +} +  int  main (int argc, char **argv)  { @@ -59,6 +76,8 @@ main (int argc, char **argv)    const char *dir;    DBusString test_data_dir; +  progname = argv[0]; +    if (argc > 1)      dir = argv[1];    else @@ -70,9 +89,6 @@ main (int argc, char **argv)        return 1;      } -  if (!bus_selinux_init ()) -    die ("could not init selinux support"); -    _dbus_string_init_const (&test_data_dir, dir);  #if 0 @@ -81,50 +97,50 @@ main (int argc, char **argv)      die ("initializing debug threads");  #endif +  test_pre_hook ();    printf ("%s: Running expire list test\n", argv[0]);    if (!bus_expire_list_test (&test_data_dir))      die ("expire list"); -   -  check_memleaks (argv[0]); -   +  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"); -   -  check_memleaks (argv[0]);   -   +  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 (); -  check_memleaks (argv[0]); - +  test_pre_hook ();    printf ("%s: Running signals test\n", argv[0]);    if (!bus_signals_test (&test_data_dir))      die ("signals"); +  test_post_hook (); -  check_memleaks (argv[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 (); -  check_memleaks (argv[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 (); -  check_memleaks (argv[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 (); -  check_memleaks (argv[0]); -      printf ("%s: Success\n", argv[0]); -  bus_selinux_shutdown ();    return 0;  #else /* DBUS_BUILD_TESTS */  | 
