test-runner: Add 'dispatch' command
This will only wait for events to be dispatched and processed by the server without waiting for client processing. Reuse the code for the wait command too. https://gitlab.gnome.org/GNOME/mutter/merge_requests/307
This commit is contained in:
parent
d08763c18c
commit
6022b23923
@ -86,6 +86,24 @@ test_case_loop_quit (gpointer data)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
test_case_dispatch (TestCase *test,
|
||||||
|
GError **error)
|
||||||
|
{
|
||||||
|
/* Wait until we've done any outstanding queued up work.
|
||||||
|
* Though we add this as BEFORE_REDRAW, the iteration that runs the
|
||||||
|
* BEFORE_REDRAW idles will proceed on and do the redraw, so we're
|
||||||
|
* waiting until after *all* frame processing.
|
||||||
|
*/
|
||||||
|
meta_later_add (META_LATER_BEFORE_REDRAW,
|
||||||
|
test_case_loop_quit,
|
||||||
|
test,
|
||||||
|
NULL);
|
||||||
|
g_main_loop_run (test->loop);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
test_case_wait (TestCase *test,
|
test_case_wait (TestCase *test,
|
||||||
GError **error)
|
GError **error)
|
||||||
@ -102,16 +120,8 @@ test_case_wait (TestCase *test,
|
|||||||
if (!test_client_wait (value, error))
|
if (!test_client_wait (value, error))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
/* Then wait until we've done any outstanding queued up work.
|
/* Then wait until we've done any outstanding queued up work. */
|
||||||
* Though we add this as BEFORE_REDRAW, the iteration that runs the
|
test_case_dispatch (test, error);
|
||||||
* BEFORE_REDRAW idles will proceed on and do the redraw, so we're
|
|
||||||
* waiting until after *all* frame processing.
|
|
||||||
*/
|
|
||||||
meta_later_add (META_LATER_BEFORE_REDRAW,
|
|
||||||
test_case_loop_quit,
|
|
||||||
test,
|
|
||||||
NULL);
|
|
||||||
g_main_loop_run (test->loop);
|
|
||||||
|
|
||||||
/* Then set an XSync counter ourselves and and wait until
|
/* Then set an XSync counter ourselves and and wait until
|
||||||
* we receive the resulting event - this makes sure that we've
|
* we receive the resulting event - this makes sure that we've
|
||||||
@ -560,6 +570,14 @@ 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], "dispatch") == 0)
|
||||||
|
{
|
||||||
|
if (argc != 1)
|
||||||
|
BAD_COMMAND("usage: %s", argv[0]);
|
||||||
|
|
||||||
|
if (!test_case_dispatch (test, error))
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
else if (strcmp (argv[0], "sleep") == 0)
|
else if (strcmp (argv[0], "sleep") == 0)
|
||||||
{
|
{
|
||||||
guint64 interval;
|
guint64 interval;
|
||||||
|
Loading…
Reference in New Issue
Block a user