summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJonas Ã…dahl <jadahl@gmail.com>2023-02-01 17:51:33 +0100
committerMarge Bot <marge-bot@gnome.org>2023-02-13 15:34:24 +0000
commit1282f4668fbbe1d1ad48a870b191e07fd9884dee (patch)
tree0708f304805e5a4f8325bc6eac40b01475f3912a /src
parentb8d0eb80d7be3811463d0b9e4c62a25a00c1d0a6 (diff)
downloadmutter-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.c23
-rw-r--r--src/tests/meta-test-utils.h4
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;