Decrease the runtime of test refs under Windows by default

If the environment variable DBUS_TEST_SLOW is not set or is 0
fewer iterations are performed in test-refs enough to demonstrate
that it works, rather than seriously trying to reproduce race
conditions.

This solves the long runtime that Wine 3.x (4 times longer than
native Windows 7) or Windows 7 as a VirtualBox 5.22 guest (10
times longer) is to be seen.

Fixes #244
This commit is contained in:
Ralf Habacker 2018-12-07 17:52:58 +01:00
parent e80ff14c2d
commit 95171f4f1a

View file

@ -198,6 +198,9 @@ static void
setup (Fixture *f,
gconstpointer data)
{
#ifdef DBUS_WIN
const char *dbus_test_slow = NULL;
#endif
if (!dbus_threads_init_default ())
g_error ("OOM");
@ -207,17 +210,20 @@ setup (Fixture *f,
f->n_threads = N_THREADS;
f->n_refs = N_REFS;
// wine sets WINESERVERSOCKET for its child processes automatically
if (g_getenv ("WINESERVERSOCKET") != NULL)
#ifdef DBUS_WIN
dbus_test_slow = g_getenv ("DBUS_TEST_SLOW");
if (dbus_test_slow == NULL || atoi (dbus_test_slow) < 1)
{
/* Our reference-counting is really slow under Wine (it involves
* IPC to wineserver). Do fewer iterations: enough to demonstrate
* that it works, rather than a performance test.
* IPC to wineserver) or Windows 7 guest on VirtualBox (5.22).
* Do fewer iterations: enough to demonstrate that it works,
* rather than seriously trying to reproduce race conditions.
*/
f->n_threads = 10;
f->n_refs = 10;
}
#endif
f->loop = _dbus_loop_new ();
g_assert (f->loop != NULL);