1b5975d6bSopenharmony_ciFrom 0831393dd08d5f9dcf2e0517dbb4ea546ff7156b Mon Sep 17 00:00:00 2001 2b5975d6bSopenharmony_ciFrom: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net> 3b5975d6bSopenharmony_ciDate: Wed, 7 Sep 2022 15:21:52 +0200 4b5975d6bSopenharmony_ciSubject: [PATCH] tests/regex: Make possible to test replacements with options 5b5975d6bSopenharmony_ci 6b5975d6bSopenharmony_ci--- 7b5975d6bSopenharmony_ci glib/tests/regex.c | 21 ++++++++++++++++++--- 8b5975d6bSopenharmony_ci 1 file changed, 18 insertions(+), 3 deletions(-) 9b5975d6bSopenharmony_ci 10b5975d6bSopenharmony_cidiff --git a/glib/tests/regex.c b/glib/tests/regex.c 11b5975d6bSopenharmony_ciindex 291c21b4c7..26844d63a7 100644 12b5975d6bSopenharmony_ci--- a/glib/tests/regex.c 13b5975d6bSopenharmony_ci+++ b/glib/tests/regex.c 14b5975d6bSopenharmony_ci@@ -1207,6 +1207,8 @@ typedef struct { 15b5975d6bSopenharmony_ci gint start_position; 16b5975d6bSopenharmony_ci const gchar *replacement; 17b5975d6bSopenharmony_ci const gchar *expected; 18b5975d6bSopenharmony_ci+ GRegexCompileFlags compile_flags; 19b5975d6bSopenharmony_ci+ GRegexMatchFlags match_flags; 20b5975d6bSopenharmony_ci } TestReplaceData; 21b5975d6bSopenharmony_ci 22b5975d6bSopenharmony_ci static void 23b5975d6bSopenharmony_ci@@ -1215,17 +1217,25 @@ test_replace (gconstpointer d) 24b5975d6bSopenharmony_ci const TestReplaceData *data = d; 25b5975d6bSopenharmony_ci GRegex *regex; 26b5975d6bSopenharmony_ci gchar *res; 27b5975d6bSopenharmony_ci+ GError *error = NULL; 28b5975d6bSopenharmony_ci 29b5975d6bSopenharmony_ci- regex = g_regex_new (data->pattern, G_REGEX_DEFAULT, G_REGEX_MATCH_DEFAULT, NULL); 30b5975d6bSopenharmony_ci- res = g_regex_replace (regex, data->string, -1, data->start_position, data->replacement, 0, NULL); 31b5975d6bSopenharmony_ci+ regex = g_regex_new (data->pattern, data->compile_flags, G_REGEX_MATCH_DEFAULT, &error); 32b5975d6bSopenharmony_ci+ g_assert_no_error (error); 33b5975d6bSopenharmony_ci+ 34b5975d6bSopenharmony_ci+ res = g_regex_replace (regex, data->string, -1, data->start_position, 35b5975d6bSopenharmony_ci+ data->replacement, data->match_flags, &error); 36b5975d6bSopenharmony_ci 37b5975d6bSopenharmony_ci g_assert_cmpstr (res, ==, data->expected); 38b5975d6bSopenharmony_ci 39b5975d6bSopenharmony_ci+ if (data->expected) 40b5975d6bSopenharmony_ci+ g_assert_no_error (error); 41b5975d6bSopenharmony_ci+ 42b5975d6bSopenharmony_ci g_free (res); 43b5975d6bSopenharmony_ci g_regex_unref (regex); 44b5975d6bSopenharmony_ci+ g_clear_error (&error); 45b5975d6bSopenharmony_ci } 46b5975d6bSopenharmony_ci 47b5975d6bSopenharmony_ci-#define TEST_REPLACE(_pattern, _string, _start_position, _replacement, _expected) { \ 48b5975d6bSopenharmony_ci+#define TEST_REPLACE_OPTIONS(_pattern, _string, _start_position, _replacement, _expected, _compile_flags, _match_flags) { \ 49b5975d6bSopenharmony_ci TestReplaceData *data; \ 50b5975d6bSopenharmony_ci gchar *path; \ 51b5975d6bSopenharmony_ci data = g_new0 (TestReplaceData, 1); \ 52b5975d6bSopenharmony_ci@@ -1234,11 +1244,16 @@ test_replace (gconstpointer d) 53b5975d6bSopenharmony_ci data->start_position = _start_position; \ 54b5975d6bSopenharmony_ci data->replacement = _replacement; \ 55b5975d6bSopenharmony_ci data->expected = _expected; \ 56b5975d6bSopenharmony_ci+ data->compile_flags = _compile_flags; \ 57b5975d6bSopenharmony_ci+ data->match_flags = _match_flags; \ 58b5975d6bSopenharmony_ci path = g_strdup_printf ("/regex/replace/%d", ++total); \ 59b5975d6bSopenharmony_ci g_test_add_data_func_full (path, data, test_replace, g_free); \ 60b5975d6bSopenharmony_ci g_free (path); \ 61b5975d6bSopenharmony_ci } 62b5975d6bSopenharmony_ci 63b5975d6bSopenharmony_ci+#define TEST_REPLACE(_pattern, _string, _start_position, _replacement, _expected) \ 64b5975d6bSopenharmony_ci+ TEST_REPLACE_OPTIONS (_pattern, _string, _start_position, _replacement, _expected, 0, 0) 65b5975d6bSopenharmony_ci+ 66b5975d6bSopenharmony_ci static void 67b5975d6bSopenharmony_ci test_replace_lit (gconstpointer d) 68b5975d6bSopenharmony_ci { 69b5975d6bSopenharmony_ci-- 70b5975d6bSopenharmony_ciGitLab 71b5975d6bSopenharmony_ci 72