From 76cc9a77c676f6be64b1cc98cb5e6d31c549a669 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 28 Jul 2003 19:30:05 +0000 Subject: [PATCH] Add tests for g_{get,set,unset}env(). --- ChangeLog | 4 +++ ChangeLog.pre-2-10 | 4 +++ ChangeLog.pre-2-12 | 4 +++ ChangeLog.pre-2-4 | 4 +++ ChangeLog.pre-2-6 | 4 +++ ChangeLog.pre-2-8 | 4 +++ tests/Makefile.am | 2 ++ tests/env-test.c | 85 ++++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 111 insertions(+) create mode 100644 tests/env-test.c diff --git a/ChangeLog b/ChangeLog index ae6715334..b4fc25dfd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2003-07-28 Matthias Clasen + * tests/env-test.c: New test for g_{get,set,unset}env(). + + * tests/Makefile.am (test_programs): Add env-test. + * glib/gutils.h: * glib/gutils.c: New functions g_setenv() and g_unsetenv(). (#100763) diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index ae6715334..b4fc25dfd 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,5 +1,9 @@ 2003-07-28 Matthias Clasen + * tests/env-test.c: New test for g_{get,set,unset}env(). + + * tests/Makefile.am (test_programs): Add env-test. + * glib/gutils.h: * glib/gutils.c: New functions g_setenv() and g_unsetenv(). (#100763) diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index ae6715334..b4fc25dfd 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,5 +1,9 @@ 2003-07-28 Matthias Clasen + * tests/env-test.c: New test for g_{get,set,unset}env(). + + * tests/Makefile.am (test_programs): Add env-test. + * glib/gutils.h: * glib/gutils.c: New functions g_setenv() and g_unsetenv(). (#100763) diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index ae6715334..b4fc25dfd 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,5 +1,9 @@ 2003-07-28 Matthias Clasen + * tests/env-test.c: New test for g_{get,set,unset}env(). + + * tests/Makefile.am (test_programs): Add env-test. + * glib/gutils.h: * glib/gutils.c: New functions g_setenv() and g_unsetenv(). (#100763) diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index ae6715334..b4fc25dfd 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,5 +1,9 @@ 2003-07-28 Matthias Clasen + * tests/env-test.c: New test for g_{get,set,unset}env(). + + * tests/Makefile.am (test_programs): Add env-test. + * glib/gutils.h: * glib/gutils.c: New functions g_setenv() and g_unsetenv(). (#100763) diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index ae6715334..b4fc25dfd 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,5 +1,9 @@ 2003-07-28 Matthias Clasen + * tests/env-test.c: New test for g_{get,set,unset}env(). + + * tests/Makefile.am (test_programs): Add env-test. + * glib/gutils.h: * glib/gutils.c: New functions g_setenv() and g_unsetenv(). (#100763) diff --git a/tests/Makefile.am b/tests/Makefile.am index 1398390c9..8015c9d7b 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -67,6 +67,7 @@ test_programs = \ date-test \ dirname-test \ file-test \ + env-test \ gio-test \ hash-test \ iochannel-test \ @@ -113,6 +114,7 @@ array_test_LDADD = $(progs_ldadd) date_test_LDADD = $(progs_ldadd) dirname_test_LDADD = $(progs_ldadd) file_test_LDADD = $(progs_ldadd) +env_test_LDADD = $(progs_ldadd) gio_test_LDADD = $(progs_ldadd) hash_test_LDADD = $(progs_ldadd) iochannel_test_LDADD = $(progs_ldadd) diff --git a/tests/env-test.c b/tests/env-test.c new file mode 100644 index 000000000..178cf76cf --- /dev/null +++ b/tests/env-test.c @@ -0,0 +1,85 @@ +/* GLIB - Library of useful routines for C programming + * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Modified by the GLib Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GLib Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GLib at ftp://ftp.gtk.org/pub/gtk/. + */ + +#include "config.h" + +#undef G_DISABLE_ASSERT +#undef G_LOG_DOMAIN + +#ifdef GLIB_COMPILATION +#undef GLIB_COMPILATION +#endif + +#include +#include + +#include + +#ifdef HAVE_UNISTD_H +#include +#endif + +int +main (int argc, char *argv[]) +{ + gboolean result; + const gchar *data; + gchar *variable = "TEST_G_SETENV"; + gchar *value1 = "works"; + gchar *value2 = "again"; + + data = g_getenv (variable); + g_assert (data == NULL && "TEST_G_SETENV already set"); + + result = g_setenv (variable, value1, TRUE); + g_assert (result && "g_setenv() failed"); + + data = g_getenv (variable); + g_assert (data != NULL && "g_getenv() returns NULL"); + g_assert (strcmp (data, value1) == 0 && "g_getenv() returns wrong value"); + + result = g_setenv (variable, value2, FALSE); + g_assert (result && "g_setenv() failed"); + + data = g_getenv (variable); + g_assert (data != NULL && "g_getenv() returns NULL"); + g_assert (strcmp (data, value2) != 0 && "g_setenv() always overwrites"); + g_assert (strcmp (data, value1) == 0 && "g_getenv() returns wrong value"); + + result = g_setenv (variable, value2, TRUE); + g_assert (result && "g_setenv() failed"); + + data = g_getenv (variable); + g_assert (data != NULL && "g_getenv() returns NULL"); + g_assert (strcmp (data, value1) != 0 && "g_setenv() doesn't overwrite"); + g_assert (strcmp (data, value2) == 0 && "g_getenv() returns wrong value"); + + g_unsetenv (variable); + data = g_getenv (variable); + g_assert (data == NULL && "g_unsetenv() doesn't work"); + + return 0; +}