summaryrefslogtreecommitdiff
path: root/bus/test-main.c
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2011-01-14 15:16:12 +0000
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2011-02-01 11:47:43 +0000
commit3a380137c0f342585b9259b5d005c89d89a2e8b5 (patch)
tree464f6da7dec1bbc5633e3e57db1adfc304f4e30b /bus/test-main.c
parent743e79d1dc7c1caaf5470b881dc5bb8db03572d1 (diff)
downloaddbus-3a380137c0f342585b9259b5d005c89d89a2e8b5.tar.gz
bus-test: add support for only running one test
This is much quicker when valgrinding. Reviewed-by: Colin Walters <walters@verbum.org>
Diffstat (limited to 'bus/test-main.c')
-rw-r--r--bus/test-main.c124
1 files changed, 77 insertions, 47 deletions
diff --git a/bus/test-main.c b/bus/test-main.c
index cb0ed008..cab75306 100644
--- a/bus/test-main.c
+++ b/bus/test-main.c
@@ -79,6 +79,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 +89,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 +104,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]);