mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-05-06 12:48:03 +02:00
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 5c91d85f3e)
This commit is contained in:
parent
bd31f268e2
commit
d4d6cdab99
5 changed files with 12 additions and 11 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue