mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-11 11:56:16 +01:00
tests: Allow mutex performance tests to be smoketested
As with the previous commit, allow them to be smoketested when run without `-m perf`. Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
This commit is contained in:
parent
419f882952
commit
e51c80591b
@ -157,7 +157,7 @@ test_mutex5 (void)
|
|||||||
g_assert (owners[i] == NULL);
|
g_assert (owners[i] == NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define COUNT_TO 100000000
|
static gint count_to = 0;
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
do_addition (gint *value)
|
do_addition (gint *value)
|
||||||
@ -167,7 +167,7 @@ do_addition (gint *value)
|
|||||||
|
|
||||||
/* test performance of "good" cases (ie: short critical sections) */
|
/* test performance of "good" cases (ie: short critical sections) */
|
||||||
g_mutex_lock (&lock);
|
g_mutex_lock (&lock);
|
||||||
if ((more = *value != COUNT_TO))
|
if ((more = *value != count_to))
|
||||||
if (*value != -1)
|
if (*value != -1)
|
||||||
(*value)++;
|
(*value)++;
|
||||||
g_mutex_unlock (&lock);
|
g_mutex_unlock (&lock);
|
||||||
@ -193,6 +193,8 @@ test_mutex_perf (gconstpointer data)
|
|||||||
gint x = -1;
|
gint x = -1;
|
||||||
guint i;
|
guint i;
|
||||||
|
|
||||||
|
count_to = g_test_perf () ? 100000000 : 1;
|
||||||
|
|
||||||
g_assert (n_threads <= G_N_ELEMENTS (threads));
|
g_assert (n_threads <= G_N_ELEMENTS (threads));
|
||||||
|
|
||||||
for (i = 0; n_threads > 0 && i < n_threads - 1; i++)
|
for (i = 0; n_threads > 0 && i < n_threads - 1; i++)
|
||||||
@ -202,7 +204,7 @@ test_mutex_perf (gconstpointer data)
|
|||||||
start_time = g_get_monotonic_time ();
|
start_time = g_get_monotonic_time ();
|
||||||
g_atomic_int_set (&x, 0);
|
g_atomic_int_set (&x, 0);
|
||||||
addition_thread (&x);
|
addition_thread (&x);
|
||||||
g_assert_cmpint (g_atomic_int_get (&x), ==, COUNT_TO);
|
g_assert_cmpint (g_atomic_int_get (&x), ==, count_to);
|
||||||
rate = g_get_monotonic_time () - start_time;
|
rate = g_get_monotonic_time () - start_time;
|
||||||
rate = x / rate;
|
rate = x / rate;
|
||||||
|
|
||||||
@ -223,7 +225,6 @@ main (int argc, char *argv[])
|
|||||||
g_test_add_func ("/thread/mutex4", test_mutex4);
|
g_test_add_func ("/thread/mutex4", test_mutex4);
|
||||||
g_test_add_func ("/thread/mutex5", test_mutex5);
|
g_test_add_func ("/thread/mutex5", test_mutex5);
|
||||||
|
|
||||||
if (g_test_perf ())
|
|
||||||
{
|
{
|
||||||
guint i;
|
guint i;
|
||||||
|
|
||||||
|
@ -157,8 +157,7 @@ test_rec_mutex4 (void)
|
|||||||
g_assert (owners[i] == NULL);
|
g_assert (owners[i] == NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define COUNT_TO 100000000
|
static gint count_to = 0;
|
||||||
|
|
||||||
static gint depth;
|
static gint depth;
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
@ -172,7 +171,7 @@ do_addition (gint *value)
|
|||||||
for (i = 0; i < depth; i++)
|
for (i = 0; i < depth; i++)
|
||||||
g_rec_mutex_lock (&lock);
|
g_rec_mutex_lock (&lock);
|
||||||
|
|
||||||
if ((more = *value != COUNT_TO))
|
if ((more = *value != count_to))
|
||||||
if (*value != -1)
|
if (*value != -1)
|
||||||
(*value)++;
|
(*value)++;
|
||||||
|
|
||||||
@ -203,6 +202,7 @@ test_mutex_perf (gconstpointer data)
|
|||||||
|
|
||||||
n_threads = c / 256;
|
n_threads = c / 256;
|
||||||
depth = c % 256;
|
depth = c % 256;
|
||||||
|
count_to = g_test_perf () ? 100000000 : 1;
|
||||||
|
|
||||||
for (i = 0; i < n_threads - 1; i++)
|
for (i = 0; i < n_threads - 1; i++)
|
||||||
threads[i] = g_thread_new ("test", addition_thread, &x);
|
threads[i] = g_thread_new ("test", addition_thread, &x);
|
||||||
@ -211,7 +211,7 @@ test_mutex_perf (gconstpointer data)
|
|||||||
start_time = g_get_monotonic_time ();
|
start_time = g_get_monotonic_time ();
|
||||||
g_atomic_int_set (&x, 0);
|
g_atomic_int_set (&x, 0);
|
||||||
addition_thread (&x);
|
addition_thread (&x);
|
||||||
g_assert_cmpint (g_atomic_int_get (&x), ==, COUNT_TO);
|
g_assert_cmpint (g_atomic_int_get (&x), ==, count_to);
|
||||||
rate = g_get_monotonic_time () - start_time;
|
rate = g_get_monotonic_time () - start_time;
|
||||||
rate = x / rate;
|
rate = x / rate;
|
||||||
|
|
||||||
@ -232,7 +232,6 @@ main (int argc, char *argv[])
|
|||||||
g_test_add_func ("/thread/rec-mutex3", test_rec_mutex3);
|
g_test_add_func ("/thread/rec-mutex3", test_rec_mutex3);
|
||||||
g_test_add_func ("/thread/rec-mutex4", test_rec_mutex4);
|
g_test_add_func ("/thread/rec-mutex4", test_rec_mutex4);
|
||||||
|
|
||||||
if (g_test_perf ())
|
|
||||||
{
|
{
|
||||||
gint i, j;
|
gint i, j;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user