mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-05-08 09:08:15 +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>
This commit is contained in:
parent
f59b4f9226
commit
5c91d85f3e
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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue