test/recipes/02-err_errstr: skip errors that may not be loaded on Windows
Fixes #8091 Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/8094)
This commit is contained in:
parent
95f59d398c
commit
0e1b0e510d
1 changed files with 37 additions and 0 deletions
|
@ -38,6 +38,43 @@ plan skip_all => 'OpenSSL is configured "no-autoerrinit" or "no-err"'
|
|||
# (this is documented)
|
||||
my @posix_errors = @{$Errno::EXPORT_TAGS{POSIX}};
|
||||
|
||||
if ($^O eq 'MSWin32') {
|
||||
# On Windows, these errors have been observed to not always be loaded by
|
||||
# apps/openssl, while they are in perl, which causes a difference that we
|
||||
# consider a false alarm. So we skip checking these errors.
|
||||
# Because we can't know exactly what symbols exist in a perticular perl
|
||||
# version, we resort to discovering them directly in the Errno package
|
||||
# symbol table.
|
||||
my @error_skiplist = qw(
|
||||
ENETDOWN
|
||||
ENETUNREACH
|
||||
ENETRESET
|
||||
ECONNABORTED
|
||||
EISCONN
|
||||
ENOTCONN
|
||||
ESHUTDOWN
|
||||
ETOOMANYREFS
|
||||
ETIMEDOUT
|
||||
EHOSTDOWN
|
||||
EHOSTUNREACH
|
||||
EALREADY
|
||||
EINPROGRESS
|
||||
ESTALE
|
||||
EUCLEAN
|
||||
ENOTNAM
|
||||
ENAVAIL
|
||||
ENOMEDIUM
|
||||
ENOKEY
|
||||
);
|
||||
@posix_errors =
|
||||
grep {
|
||||
my $x = $_;
|
||||
! grep {
|
||||
exists $Errno::{$_} && $x == $Errno::{$_}
|
||||
} @error_skiplist
|
||||
} @posix_errors;
|
||||
}
|
||||
|
||||
plan tests => scalar @posix_errors
|
||||
+1 # Checking that error 128 gives 'reason(128)'
|
||||
+1 # Checking that error 0 gives the library name
|
||||
|
|
Loading…
Reference in a new issue