summaryrefslogtreecommitdiff
path: root/tests/test-strerror.c
diff options
context:
space:
mode:
authorManuel A. Fernandez Montecelo <manuel.montezelo@gmail.com>2016-05-27 14:35:40 +0100
committerManuel A. Fernandez Montecelo <manuel.montezelo@gmail.com>2016-05-27 14:35:40 +0100
commitb1de003dac299705a7f01c997d2b866bafe39926 (patch)
tree1cc16a3877e945116387a380f7f3023f81fa36e4 /tests/test-strerror.c
parent752fd7247bc223bcea35bd89cf56d1c08ead9ba6 (diff)
parent3590c846d4c2febbc05b4ad6b14a06edc549e453 (diff)
Merge tag 'upstream/0.9.6+really0.9.6'
Upstream version 0.9.6+really0.9.6
Diffstat (limited to 'tests/test-strerror.c')
-rw-r--r--tests/test-strerror.c26
1 files changed, 22 insertions, 4 deletions
diff --git a/tests/test-strerror.c b/tests/test-strerror.c
index 11ab7e39..755ffba6 100644
--- a/tests/test-strerror.c
+++ b/tests/test-strerror.c
@@ -1,5 +1,5 @@
/* Test of strerror() function.
- Copyright (C) 2007-2010 Free Software Foundation, Inc.
+ Copyright (C) 2007-2015 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,8 +12,7 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software Foundation,
- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+ along with this program; if not, see <http://www.gnu.org/licenses/>. */
/* Written by Eric Blake <ebb9@byu.net>, 2007. */
@@ -33,25 +32,44 @@ main (void)
{
char *str;
+ errno = 0;
str = strerror (EACCES);
ASSERT (str);
ASSERT (*str);
+ ASSERT (errno == 0);
+ errno = 0;
str = strerror (ETIMEDOUT);
ASSERT (str);
ASSERT (*str);
+ ASSERT (errno == 0);
+ errno = 0;
str = strerror (EOVERFLOW);
ASSERT (str);
ASSERT (*str);
+ ASSERT (errno == 0);
+ /* POSIX requires strerror (0) to succeed. Reject use of "Unknown
+ error", but allow "Success", "No error", or even Solaris' "Error
+ 0" which are distinct patterns from true out-of-range strings.
+ http://austingroupbugs.net/view.php?id=382 */
+ errno = 0;
str = strerror (0);
ASSERT (str);
ASSERT (*str);
-
+ ASSERT (errno == 0);
+ ASSERT (strstr (str, "nknown") == NULL);
+ ASSERT (strstr (str, "ndefined") == NULL);
+
+ /* POSIX requires strerror to produce a non-NULL result for all
+ inputs; as an extension, we also guarantee a non-empty result.
+ Reporting EINVAL is optional. */
+ errno = 0;
str = strerror (-3);
ASSERT (str);
ASSERT (*str);
+ ASSERT (errno == 0 || errno == EINVAL);
return 0;
}