From 1282f4668fbbe1d1ad48a870b191e07fd9884dee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Wed, 1 Feb 2023 17:51:33 +0100 Subject: [PATCH] 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: --- src/tests/meta-test-utils.c | 23 +++++++++++++++++++++++ src/tests/meta-test-utils.h | 4 ++++ 2 files changed, 27 insertions(+) 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 @@ -74,6 +74,10 @@ gboolean meta_test_client_dov (MetaTestClient *client, GError **error, 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,