LCOV - GNU Libidn - gltests/test-strerror.c

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

 Line data Source code
 1  : /* Test of strerror() function.
 2  : Copyright (C) 2007-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, or (at your option)
 7  : 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>, 2007. */
 18  : 
 19  : #include <config.h>
 20  : 
 21  : #include <string.h>
 22  : 
 23  : #include "signature.h"
 24  : SIGNATURE_CHECK (strerror, char *, (int));
 25  : 
 26  : #include <errno.h>
 27  : 
 28  : #include "macros.h"
 29  : 
 30  : int
 31  1 : main (void)
 32  : {
 33  : char *str;
 34  : 
 35  1 : errno = 0;
 36  1 : str = strerror (EACCES);
 37  1 : ASSERT (str);
 38  1 : ASSERT (*str);
 39  1 : ASSERT (errno == 0);
 40  : 
 41  1 : errno = 0;
 42  1 : str = strerror (ETIMEDOUT);
 43  1 : ASSERT (str);
 44  1 : ASSERT (*str);
 45  1 : ASSERT (errno == 0);
 46  : 
 47  1 : errno = 0;
 48  1 : str = strerror (EOVERFLOW);
 49  1 : ASSERT (str);
 50  1 : ASSERT (*str);
 51  1 : ASSERT (errno == 0);
 52  : 
 53  : /* POSIX requires strerror (0) to succeed. Reject use of "Unknown
 54  : error", but allow "Success", "No error", or even Solaris' "Error
 55  : 0" which are distinct patterns from true out-of-range strings.
 56  : http://austingroupbugs.net/view.php?id=382 */
 57  1 : errno = 0;
 58  1 : str = strerror (0);
 59  1 : ASSERT (str);
 60  1 : ASSERT (*str);
 61  1 : ASSERT (errno == 0);
 62  1 : ASSERT (strstr (str, "nknown") == NULL);
 63  1 : ASSERT (strstr (str, "ndefined") == NULL);
 64  : 
 65  : /* POSIX requires strerror to produce a non-NULL result for all
 66  : inputs; as an extension, we also guarantee a non-empty result.
 67  : Reporting EINVAL is optional. */
 68  1 : errno = 0;
 69  1 : str = strerror (-3);
 70  1 : ASSERT (str);
 71  1 : ASSERT (*str);
 72  1 : ASSERT (errno == 0 || errno == EINVAL);
 73  : 
 74  1 : return 0;
 75  : }

Generated by: LCOV version 1.13

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