diff options
author | Matthias Clasen <mclasen@redhat.com> | 2011-10-15 16:28:07 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2011-10-15 16:28:07 -0400 |
commit | 94c246e8e3816d05971e9a825cf15769b04e8098 (patch) | |
tree | b341d2880f7b6a638c1a2a4c83b9c49c4ad98b74 /glib | |
parent | 7a9987d35d568707df2c7c12e851623b46e9e63d (diff) |
Add tests for new g_environ_ functions
Diffstat (limited to 'glib')
-rw-r--r-- | glib/tests/environment.c | 62 |
1 files changed, 60 insertions, 2 deletions
diff --git a/glib/tests/environment.c b/glib/tests/environment.c index 7b313d10a..1e4698ccc 100644 --- a/glib/tests/environment.c +++ b/glib/tests/environment.c @@ -1,7 +1,7 @@ #include <glib.h> static void -test_environment (void) +test_listenv (void) { GHashTable *table; gchar **list; @@ -40,12 +40,70 @@ test_environment (void) g_strfreev (list); } +static void +test_setenv (void) +{ + const gchar *var, *value; + + var = "NOSUCHENVVAR"; + value = "value1"; + + g_assert (g_getenv (var) == NULL); + g_setenv (var, value, FALSE); + g_assert_cmpstr (g_getenv (var), ==, value); + g_assert (g_setenv (var, "value2", FALSE)); + g_assert_cmpstr (g_getenv (var), ==, value); + g_assert (g_setenv (var, "value2", TRUE)); + g_assert_cmpstr (g_getenv (var), ==, "value2"); + g_unsetenv (var); + g_assert (g_getenv (var) == NULL); +} + +static void +test_environ_array (void) +{ + gchar **env; + const gchar *value; + + env = g_new (gchar *, 1); + env[0] = NULL; + + value = g_environ_getenv (env, "foo"); + g_assert (value == NULL); + + env = g_environ_setenv (env, "foo", "bar", TRUE); + value = g_environ_getenv (env, "foo"); + g_assert_cmpstr (value, ==, "bar"); + + env = g_environ_setenv (env, "foo2", "bar2", FALSE); + value = g_environ_getenv (env, "foo"); + g_assert_cmpstr (value, ==, "bar"); + value = g_environ_getenv (env, "foo2"); + g_assert_cmpstr (value, ==, "bar2"); + + env = g_environ_setenv (env, "foo", "x", FALSE); + value = g_environ_getenv (env, "foo"); + g_assert_cmpstr (value, ==, "bar"); + + env = g_environ_setenv (env, "foo", "x", TRUE); + value = g_environ_getenv (env, "foo"); + g_assert_cmpstr (value, ==, "x"); + + env = g_environ_unsetenv (env, "foo2"); + value = g_environ_getenv (env, "foo2"); + g_assert (value == NULL); + + g_strfreev (env); +} + int main (int argc, char **argv) { g_test_init (&argc, &argv, NULL); - g_test_add_func ("/glib/environment", test_environment); + g_test_add_func ("/environ/listenv", test_listenv); + g_test_add_func ("/environ/setenv", test_setenv); + g_test_add_func ("/environ/array", test_environ_array); return g_test_run (); } |