]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
tests: Add the ability to multiply up test timeouts
authorSimon McVittie <smcv@collabora.com>
Mon, 27 Nov 2017 19:14:23 +0000 (19:14 +0000)
committerSimon McVittie <smcv@collabora.com>
Mon, 4 Dec 2017 11:52:55 +0000 (11:52 +0000)
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>
test/dbus-daemon.c
test/internals/refs.c
test/relay.c
test/test-utils-glib.c
test/test-utils-glib.h

index b3039c41053f2aa39f0c84f3bd9b03612edc1cb4..8cada03ed2f0593f91a6d2c4409e502f93183edb 100644 (file)
@@ -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;
index 15178772f4ff9fd8e1687facd264862c17975821..b749acc9883a6e73bccc6b0b4c72eabd72e22603 100644 (file)
@@ -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;
index d7c453abd2ff5c32940eebf606cae331f044c2bc..00e7966a75336c99859a43657476e02f8cd3d7b6 100644 (file)
@@ -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);
index 4920e250e3a5cbbbd08c21a16947290b2323fab1..48e3e8072dd7a4ac83300a75aad3747ddec946f6 100644 (file)
@@ -569,7 +569,7 @@ wrap_abort (int signal)
 #endif
 
 static void
-set_timeout (void)
+set_timeout (guint factor)
 {
   static guint timeout = 0;
 
@@ -581,11 +581,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. */
     {
@@ -603,7 +603,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
@@ -617,12 +617,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);
 }
index 2c0f9d699285f203d8d7f335a88bf6f4a954ff48..755e8c7ceac7407867fab0df128ff91998d47782 100644 (file)
@@ -97,7 +97,7 @@ 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);
 
 void test_oom (void) _DBUS_GNUC_NORETURN;