LCOV - GNU Libidn - lib/gltests/test-setenv.c

LCOV - code coverage report
Current view: top level - lib/gltests - test-setenv.c (source / functions) Hit Total Coverage
Test: GNU Libidn Lines: 11 11 100.0 %
Date: 2020年07月22日 17:53:13 Functions: 1 1 100.0 %
Legend: Lines: hit not hit

 Line data Source code
 1  : /* Tests of setenv.
 2  : Copyright (C) 2009-2020 Free Software Foundation, Inc.
 3  : 
 4  : This program is free software: you can redistribute it and/or modify
 5  : it under the terms of the GNU General Public License as published by
 6  : the Free Software Foundation; either version 3 of the License, or
 7  : (at your option) any later version.
 8  : 
 9  : This program is distributed in the hope that it will be useful,
 10  : but WITHOUT ANY WARRANTY; without even the implied warranty of
 11  : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 12  : GNU General Public License for more details.
 13  : 
 14  : You should have received a copy of the GNU General Public License
 15  : along with this program. If not, see <https://www.gnu.org/licenses/>. */
 16  : 
 17  : /* Written by Eric Blake <ebb9@byu.net>, 2009. */
 18  : 
 19  : #include <config.h>
 20  : 
 21  : #include <stdlib.h>
 22  : 
 23  : #include "signature.h"
 24  : SIGNATURE_CHECK (setenv, int, (char const *, char const *, int));
 25  : 
 26  : #include <errno.h>
 27  : #include <string.h>
 28  : #include <unistd.h>
 29  : 
 30  : #include "macros.h"
 31  : 
 32  : int
 33  1 : main (void)
 34  : {
 35  : /* Test overwriting. */
 36  1 : ASSERT (setenv ("a", "==", -1) == 0);
 37  1 : ASSERT (setenv ("a", "2", 0) == 0);
 38  1 : ASSERT (strcmp (getenv ("a"), "==") == 0);
 39  : 
 40  : /* Required to fail with EINVAL. */
 41  1 : errno = 0;
 42  1 : ASSERT (setenv ("", "", 1) == -1);
 43  1 : ASSERT (errno == EINVAL);
 44  1 : errno = 0;
 45  1 : ASSERT (setenv ("a=b", "", 0) == -1);
 46  1 : ASSERT (errno == EINVAL);
 47  : #if 0
 48  : /* glibc and gnulib's implementation guarantee this, but POSIX no
 49  : longer requires it: http://austingroupbugs.net/view.php?id=185 */
 50  : errno = 0;
 51  : ASSERT (setenv (NULL, "", 0) == -1);
 52  : ASSERT (errno == EINVAL);
 53  : #endif
 54  : 
 55  1 : return 0;
 56  : }

Generated by: LCOV version 1.13

AltStyle によって変換されたページ (->オリジナル) /