unicode-encoding: Fix leaks in test
[platform/upstream/glib.git] / tests / env-test.c
index 178cf76..5fd75df 100644 (file)
@@ -34,6 +34,7 @@
 #endif
 
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
 
 #include <glib.h>
@@ -81,5 +82,36 @@ main (int argc, char *argv[])
   data = g_getenv (variable);
   g_assert (data == NULL && "g_unsetenv() doesn't work");
 
+#if 0
+  /* We can't test this, because it's an illegal argument that
+   * we g_return_if_fail for.
+   */
+  result = g_setenv ("foo=bar", "baz", TRUE);
+  g_assert (!result && "g_setenv() accepts '=' in names");
+#endif  
+
+  result = g_setenv ("foo", "bar=baz", TRUE);
+  g_assert (result && "g_setenv() doesn't accept '=' in values");
+#if 0
+  /* While glibc supports '=' in names in getenv(), SUS doesn't say anything about it,
+   * and Solaris doesn't support it.
+   */
+  data = g_getenv ("foo=bar");
+  g_assert (strcmp (data, "baz") == 0 && "g_getenv() doesn't support '=' in names");
+#endif
+  data = g_getenv ("foo");
+  g_assert (strcmp (data, "bar=baz") == 0 && "g_getenv() doesn't support '=' in values");
+
+#if 0  
+  /* We can't test this, because it's an illegal argument that
+   * we g_return_if_fail for. Plus how would we check for failure,
+   * since we can't set the value...
+   */
+  g_unsetenv ("foo=bar");
+#endif  
+  g_unsetenv ("foo");
+  data = g_getenv ("foo");
+  g_assert (data == NULL && "g_unsetenv() doesn't support '=' in values");
+
   return 0;
 }