summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2020-09-06 08:51:32 +0200
committerRichard Levitte <levitte@openssl.org>2020-09-12 03:51:21 +0200
commitc88f6f0e408328e13e9ad61b9658114cddbaba92 (patch)
treea946758af31f48e8b64f5634671ec7a17dd4ac2d /test
parentc9352933fe3b383a0208430183b44a0d43f70a04 (diff)
TEST: skip POSIX errcode zero in tesst/recipes/02-test_errstr.t
On most systems, there is no E macro for errcode zero in <errno.h>, which means that it seldom comes up here. However, reports indicate that some platforms do have an E macro for errcode zero. With perl, errcode zero is a bit special. Perl consistently gives the empty string for that one, while the C strerror() may give back something else. The easiest way to deal with that possible mismatch is to skip this errcode. Fixes #12798 Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/12799)
Diffstat (limited to 'test')
-rw-r--r--test/recipes/02-test_errstr.t16
1 files changed, 15 insertions, 1 deletions
diff --git a/test/recipes/02-test_errstr.t b/test/recipes/02-test_errstr.t
index 7c382b4124..6bc07f6d65 100644
--- a/test/recipes/02-test_errstr.t
+++ b/test/recipes/02-test_errstr.t
@@ -57,7 +57,21 @@ plan tests => scalar @Errno::EXPORT_OK
foreach my $errname (@Errno::EXPORT_OK) {
# The error names are perl constants, which are implemented as functions
# returning the numeric value of that name.
- &ok(match_syserr_reason("Errno::$errname"->()))
+ my $errcode = "Errno::$errname"->();
+
+ SKIP: {
+ # On most systems, there is no E macro for errcode zero in <errno.h>,
+ # which means that it seldom comes up here. However, reports indicate
+ # that some platforms do have an E macro for errcode zero.
+ # With perl, errcode zero is a bit special. Perl consistently gives
+ # the empty string for that one, while the C strerror() may give back
+ # something else. The easiest way to deal with that possible mismatch
+ # is to skip this errcode.
+ skip "perl error strings and ssystem error strings for errcode 0 differ", 1
+ if $errcode == 0;
+
+ &ok(match_syserr_reason($errcode));
+ }
}
# OpenSSL library 1 is the "unknown" library