diff options
author | Jonas Ã…dahl <jadahl@gmail.com> | 2023-02-01 17:51:33 +0100 |
---|---|---|
committer | Marge Bot <marge-bot@gnome.org> | 2023-02-13 15:34:24 +0000 |
commit | 1282f4668fbbe1d1ad48a870b191e07fd9884dee (patch) | |
tree | 0708f304805e5a4f8325bc6eac40b01475f3912a /src | |
parent | b8d0eb80d7be3811463d0b9e4c62a25a00c1d0a6 (diff) | |
download | mutter-1282f4668fbbe1d1ad48a870b191e07fd9884dee.tar.gz |
tests/test-client: Add helper to run 'script'
The script is a list of newline separated command lines that are sent to
the client one by one as if one would have used e.g.
meta_test_client_do().
It doesn't have error handling as it's expected to be used from tests,
and handling errors in tests that never expects to handle errors is
cumbersome.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2810>
Diffstat (limited to 'src')
-rw-r--r-- | src/tests/meta-test-utils.c | 23 | ||||
-rw-r--r-- | src/tests/meta-test-utils.h | 4 |
2 files changed, 27 insertions, 0 deletions
diff --git a/src/tests/meta-test-utils.c b/src/tests/meta-test-utils.c index 6c4283225..416dc0b64 100644 --- a/src/tests/meta-test-utils.c +++ b/src/tests/meta-test-utils.c @@ -353,6 +353,29 @@ meta_test_client_do (MetaTestClient *client, return retval; } +void +meta_test_client_run (MetaTestClient *client, + const char *script) +{ + g_auto (GStrv) lines = NULL; + int i; + + lines = g_strsplit (script, "\n", -1); + for (i = 0; lines[i]; i++) + { + g_autoptr (GError) error = NULL; + + if (strlen (lines[i]) > 1) + { + g_autofree char *line = NULL; + + line = g_strdup_printf ("%s\n", lines[i]); + if (!meta_test_client_do_line (client, line, &error)) + g_error ("Failed to do line '%s': %s", lines[i], error->message); + } + } +} + gboolean meta_test_client_wait (MetaTestClient *client, GError **error) diff --git a/src/tests/meta-test-utils.h b/src/tests/meta-test-utils.h index f4490be7d..0232276a7 100644 --- a/src/tests/meta-test-utils.h +++ b/src/tests/meta-test-utils.h @@ -75,6 +75,10 @@ gboolean meta_test_client_dov (MetaTestClient *client, va_list vap); META_EXPORT +void meta_test_client_run (MetaTestClient *client, + const char *script); + +META_EXPORT gboolean meta_test_client_do (MetaTestClient *client, GError **error, ...) G_GNUC_NULL_TERMINATED; |