mirror of
https://github.com/brl/mutter.git
synced 2024-11-23 16:40:41 -05:00
test-runner: Add 'sleep' command
This allows to sleep for a given timeout in milliseconds.
Rename test_case_before_redraw to test_case_loop_quit since it's a generic
function and use it for the timeout too.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/307
(cherry picked from commit d08763c18c
)
This commit is contained in:
parent
556d36baa8
commit
8dd564adff
@ -113,7 +113,7 @@ test_case_new (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
test_case_before_redraw (gpointer data)
|
test_case_loop_quit (gpointer data)
|
||||||
{
|
{
|
||||||
TestCase *test = data;
|
TestCase *test = data;
|
||||||
|
|
||||||
@ -144,7 +144,7 @@ test_case_wait (TestCase *test,
|
|||||||
* waiting until after *all* frame processing.
|
* waiting until after *all* frame processing.
|
||||||
*/
|
*/
|
||||||
meta_later_add (META_LATER_BEFORE_REDRAW,
|
meta_later_add (META_LATER_BEFORE_REDRAW,
|
||||||
test_case_before_redraw,
|
test_case_loop_quit,
|
||||||
test,
|
test,
|
||||||
NULL);
|
NULL);
|
||||||
g_main_loop_run (test->loop);
|
g_main_loop_run (test->loop);
|
||||||
@ -157,6 +157,17 @@ test_case_wait (TestCase *test,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
test_case_sleep (TestCase *test,
|
||||||
|
guint32 interval,
|
||||||
|
GError **error)
|
||||||
|
{
|
||||||
|
g_timeout_add_full (G_PRIORITY_LOW, interval, test_case_loop_quit, test, NULL);
|
||||||
|
g_main_loop_run (test->loop);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
#define BAD_COMMAND(...) \
|
#define BAD_COMMAND(...) \
|
||||||
G_STMT_START { \
|
G_STMT_START { \
|
||||||
g_set_error (error, \
|
g_set_error (error, \
|
||||||
@ -519,6 +530,20 @@ test_case_do (TestCase *test,
|
|||||||
if (!test_case_wait (test, error))
|
if (!test_case_wait (test, error))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
else if (strcmp (argv[0], "sleep") == 0)
|
||||||
|
{
|
||||||
|
guint64 interval;
|
||||||
|
|
||||||
|
if (argc != 2)
|
||||||
|
BAD_COMMAND("usage: %s <milliseconds>", argv[0]);
|
||||||
|
|
||||||
|
if (!g_ascii_string_to_unsigned (argv[1], 10, 0, G_MAXUINT32,
|
||||||
|
&interval, error))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
if (!test_case_sleep (test, (guint32) interval, error))
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
else if (strcmp (argv[0], "assert_stacking") == 0)
|
else if (strcmp (argv[0], "assert_stacking") == 0)
|
||||||
{
|
{
|
||||||
if (!test_case_assert_stacking (test, argv + 1, argc - 1, error))
|
if (!test_case_assert_stacking (test, argv + 1, argc - 1, error))
|
||||||
|
Loading…
Reference in New Issue
Block a user