diff options
author | Richard Levitte <levitte@openssl.org> | 2020-09-06 08:51:32 +0200 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2020-09-12 03:51:21 +0200 |
commit | c88f6f0e408328e13e9ad61b9658114cddbaba92 (patch) | |
tree | a946758af31f48e8b64f5634671ec7a17dd4ac2d /test/recipes/02-test_errstr.t | |
parent | c9352933fe3b383a0208430183b44a0d43f70a04 (diff) | |
download | openssl-new-c88f6f0e408328e13e9ad61b9658114cddbaba92.tar.gz |
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/recipes/02-test_errstr.t')
-rw-r--r-- | test/recipes/02-test_errstr.t | 16 |
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 |