diff options
author | Simon McVittie <smcv@collabora.com> | 2017-11-27 19:14:23 +0000 |
---|---|---|
committer | Simon McVittie <smcv@collabora.com> | 2018-02-06 19:14:27 +0000 |
commit | d4d6cdab994f99d4e9613a1ee0c8ec6bebec3f1c (patch) | |
tree | 072397e5ea878c37209749beb02ce6f8be6a7707 | |
parent | bd31f268e2531029ca3f3586b0a1a68b8e82171b (diff) | |
download | dbus-d4d6cdab994f99d4e9613a1ee0c8ec6bebec3f1c.tar.gz dbus-d4d6cdab994f99d4e9613a1ee0c8ec6bebec3f1c.tar.bz2 dbus-d4d6cdab994f99d4e9613a1ee0c8ec6bebec3f1c.zip |
tests: Add the ability to multiply up test timeouts
Tests that brute-force OOM code paths can be rather slow.
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=100317
Reviewed-by: Philip Withnall <withnall@endlessm.com>
Signed-off-by: Simon McVittie <smcv@collabora.com>
(cherry picked from commit 5c91d85f3ed462dac1e011aab216c9021e826773)
-rw-r--r-- | test/dbus-daemon.c | 2 | ||||
-rw-r--r-- | test/internals/refs.c | 2 | ||||
-rw-r--r-- | test/relay.c | 2 | ||||
-rw-r--r-- | test/test-utils-glib.c | 15 | ||||
-rw-r--r-- | test/test-utils-glib.h | 2 |
5 files changed, 12 insertions, 11 deletions
diff --git a/test/dbus-daemon.c b/test/dbus-daemon.c index f9d8f923..a783b593 100644 --- a/test/dbus-daemon.c +++ b/test/dbus-daemon.c @@ -159,7 +159,7 @@ setup (Fixture *f, const Config *config = context; /* Some tests are fairly slow, so make the test timeout per-test */ - test_timeout_reset (); + test_timeout_reset (1); f->ctx = test_main_context_get (); f->ge = NULL; diff --git a/test/internals/refs.c b/test/internals/refs.c index 3c6b438d..b6ad5fe0 100644 --- a/test/internals/refs.c +++ b/test/internals/refs.c @@ -202,7 +202,7 @@ setup (Fixture *f, g_error ("OOM"); /* This can be fairly slow, so make the test timeout per-test */ - test_timeout_reset (); + test_timeout_reset (1); f->n_threads = N_THREADS; f->n_refs = N_REFS; diff --git a/test/relay.c b/test/relay.c index d7c453ab..00e7966a 100644 --- a/test/relay.c +++ b/test/relay.c @@ -122,7 +122,7 @@ static void setup (Fixture *f, gconstpointer data G_GNUC_UNUSED) { - test_timeout_reset (); + test_timeout_reset (1); f->ctx = test_main_context_get (); dbus_error_init (&f->e); diff --git a/test/test-utils-glib.c b/test/test-utils-glib.c index 2fc1573d..adbe21c0 100644 --- a/test/test-utils-glib.c +++ b/test/test-utils-glib.c @@ -488,7 +488,7 @@ wrap_abort (int signal) #endif static void -set_timeout (void) +set_timeout (guint factor) { static guint timeout = 0; @@ -500,11 +500,11 @@ set_timeout (void) if (timeout != 0) g_source_remove (timeout); - timeout = g_timeout_add_seconds (TIMEOUT, time_out, NULL); + timeout = g_timeout_add_seconds (TIMEOUT * factor, time_out, NULL); #ifdef G_OS_UNIX /* The GLib main loop might not be running (we don't use it in every * test). Die with SIGALRM shortly after if necessary. */ - alarm (TIMEOUT + 10); + alarm ((TIMEOUT * factor) + 10); /* Get a log message and a core dump from the SIGALRM. */ { @@ -522,7 +522,7 @@ test_init (int *argcp, char ***argvp) { g_test_init (argcp, argvp, NULL); g_test_bug_base ("https://bugs.freedesktop.org/show_bug.cgi?id="); - set_timeout (); + set_timeout (1); } static void @@ -536,12 +536,13 @@ report_and_destroy (gpointer p) } void -test_timeout_reset (void) +test_timeout_reset (guint factor) { GTimer *timer = g_timer_new (); - g_test_message ("Resetting test timeout (reference: %p)", timer); - set_timeout (); + g_test_message ("Resetting test timeout (reference: %p; factor: %u)", + timer, factor); + set_timeout (factor); g_test_queue_destroy (report_and_destroy, timer); } diff --git a/test/test-utils-glib.h b/test/test-utils-glib.h index f2f167ca..3952309c 100644 --- a/test/test-utils-glib.h +++ b/test/test-utils-glib.h @@ -89,6 +89,6 @@ void test_rmdir_must_exist (const gchar *path); void test_rmdir_if_exists (const gchar *path); void test_mkdir (const gchar *path, gint mode); -void test_timeout_reset (void); +void test_timeout_reset (guint factor); #endif |