summaryrefslogtreecommitdiffstats
path: root/test/recipes/02-test_errstr.t
diff options
context:
space:
mode:
Diffstat (limited to 'test/recipes/02-test_errstr.t')
-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