mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-09-27 17:52:58 +02:00
Add tests for '=' in names and values.
2003-08-07 Matthias Clasen <maclas@gmx.de> * tests/env-test.c: Add tests for '=' in names and values. * glib/gutils.c (g_setenv, g_unsetenv): Check that the variable name doesn't contain '='. Add a declaration for environ. (#119338)
This commit is contained in:
committed by
Matthias Clasen
parent
4d2921959e
commit
96838a7a88
@@ -34,6 +34,7 @@
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <glib.h>
|
||||
@@ -42,6 +43,16 @@
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
static void
|
||||
log (const gchar *log_domain,
|
||||
GLogLevelFlags log_level,
|
||||
const gchar *message,
|
||||
gpointer user_data)
|
||||
{
|
||||
/* Silence g_assert () and friends.
|
||||
*/
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc, char *argv[])
|
||||
{
|
||||
@@ -51,6 +62,8 @@ main (int argc, char *argv[])
|
||||
gchar *value1 = "works";
|
||||
gchar *value2 = "again";
|
||||
|
||||
g_log_set_handler ("GLib", G_LOG_LEVEL_CRITICAL, log, NULL);
|
||||
|
||||
data = g_getenv (variable);
|
||||
g_assert (data == NULL && "TEST_G_SETENV already set");
|
||||
|
||||
@@ -81,5 +94,22 @@ main (int argc, char *argv[])
|
||||
data = g_getenv (variable);
|
||||
g_assert (data == NULL && "g_unsetenv() doesn't work");
|
||||
|
||||
result = g_setenv ("foo=bar", "baz", TRUE);
|
||||
g_assert (!result && "g_setenv() accepts '=' in names");
|
||||
|
||||
result = g_setenv ("foo", "bar=baz", TRUE);
|
||||
g_assert (result && "g_setenv() doesn't accept '=' in values");
|
||||
data = g_getenv ("foo=bar");
|
||||
g_assert (strcmp (data, "baz") == 0 && "g_getenv() doesn't support '=' in names");
|
||||
data = g_getenv ("foo");
|
||||
g_assert (strcmp (data, "bar=baz") == 0 && "g_getenv() doesn't support '=' in values");
|
||||
|
||||
g_unsetenv ("foo=bar");
|
||||
data = g_getenv ("foo");
|
||||
g_assert (data != NULL && "g_unsetenv() accepts '=' in names");
|
||||
g_unsetenv ("foo");
|
||||
data = g_getenv ("foo");
|
||||
g_assert (data == NULL && "g_unsetenv() doesn't support '=' in values");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user