/* Test of strerror() function.
- Copyright (C) 2007-2011 Free Software Foundation, Inc.
+ Copyright (C) 2007-2013 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
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. */
ASSERT (*str);
ASSERT (errno == 0);
- /* POSIX requires strerror (0) to succeed; use of "Unknown error" or
- "error 0" does not count as success, but "No error" works.
+ /* 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 (strchr (str, '0') == NULL);
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 reseult.
+ inputs; as an extension, we also guarantee a non-empty result.
Reporting EINVAL is optional. */
errno = 0;
str = strerror (-3);