[gnome-builder/wip/gtk4-port: 1563/1774] tests: test environment API
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/wip/gtk4-port: 1563/1774] tests: test environment API
- Date: Mon, 11 Jul 2022 22:31:50 +0000 (UTC)
commit 17aacbb6c512d91e7d74ca1382789e70e71ad8a5
Author: Christian Hergert <chergert redhat com>
Date: Fri Jun 17 01:33:18 2022 -0700
tests: test environment API
src/tests/test-run-context.c | 75 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 75 insertions(+)
---
diff --git a/src/tests/test-run-context.c b/src/tests/test-run-context.c
index d0d6b3d39..ae2f6ba66 100644
--- a/src/tests/test-run-context.c
+++ b/src/tests/test-run-context.c
@@ -24,6 +24,80 @@
#include <libide-foundry.h>
+static int
+sort_strv_strcmpptr (gconstpointer a,
+ gconstpointer b,
+ gpointer user_data)
+{
+ const char *stra = *(const char **)a;
+ const char *strb = *(const char **)b;
+
+ return g_strcmp0 (stra, strb);
+}
+
+static char **
+sort_strv (const char * const *strv)
+{
+ char **copy = g_strdupv ((char **)strv);
+ gsize n_elements = g_strv_length (copy);
+ g_qsort_with_data (copy, n_elements, sizeof (char *), sort_strv_strcmpptr, NULL);
+ return copy;
+}
+
+static void
+compare_strv_unordered (const gchar * const *strv,
+ const gchar * const *expected_strv)
+{
+ char **strv_sorted;
+ char **expected_strv_sorted;
+
+ if (expected_strv == NULL)
+ {
+ g_assert_true (strv == NULL || strv[0] == NULL);
+ return;
+ }
+
+ g_assert_nonnull (strv);
+
+ g_assert_cmpint (g_strv_length ((char **)strv), ==, g_strv_length ((char **)expected_strv));
+
+ strv_sorted = sort_strv (strv);
+ expected_strv_sorted = sort_strv (strv);
+
+ for (guint i = 0; strv_sorted[i]; i++)
+ g_assert_cmpstr (strv_sorted[i], ==, expected_strv_sorted[i]);
+
+ g_strfreev (strv_sorted);
+ g_strfreev (expected_strv_sorted);
+}
+
+static void
+test_run_context_environ (void)
+{
+ IdeRunContext *run_context;
+
+ run_context = ide_run_context_new ();
+
+ ide_run_context_setenv (run_context, "FOO", "BAR");
+ compare_strv_unordered (ide_run_context_get_environ (run_context),
+ IDE_STRV_INIT ("FOO=BAR"));
+ g_assert_cmpstr (ide_run_context_getenv (run_context, "FOO"), ==, "BAR");
+
+ ide_run_context_setenv (run_context, "FOO", "123");
+ compare_strv_unordered (ide_run_context_get_environ (run_context),
+ IDE_STRV_INIT ("FOO=123"));
+
+ ide_run_context_setenv (run_context, "ABC", "DEF");
+ compare_strv_unordered (ide_run_context_get_environ (run_context),
+ IDE_STRV_INIT ("FOO=123", "ABC=DEF"));
+
+ ide_run_context_unsetenv (run_context, "FOO");
+ compare_strv_unordered (ide_run_context_get_environ (run_context),
+ IDE_STRV_INIT ("ABC=DEF"));
+
+ g_assert_finalize_object (run_context);
+}
+
static void
test_run_context_default_handler (void)
{
@@ -61,6 +135,7 @@ main (int argc,
char *argv[])
{
g_test_init (&argc, &argv, NULL);
+ g_test_add_func ("/Ide/Foundry/RunContext/environ", test_run_context_environ);
g_test_add_func ("/Ide/Foundry/RunContext/default_handler", test_run_context_default_handler);
return g_test_run ();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]