Subject: | make test fails on Win32 |
The test.pl fails on Win32 for the tests that employ a fork() call due to (two) segfaults. That's not all too surprising, as the fork() emulation most likely doesn't copy the static stuff properly. The "fix" would be to not do that then, that is, to skip these tests under Win32.
I have done some non-forking client/server testing in HTTP::LocalServer, and if you're interested, I can work up some test code from that.
Some code for skipping the offending test under Windows would be:
SKIP: {
if ($^O =~ /MSWin32/i) {
print "OK\n";
last SKIP;
};
unless ($pid = fork) {
print "\tSpawning a TCP test server on port 1211, pid=$$...\n" if $trace;
$redir = $trace<3 ? '>>tcpecho.log 2>&1' : '';
exec("@perl examples/tcpecho.pl 1211 $redir");
}
sleep 1; # if server is slow
$res = `@perl examples/tcpcat.pl 127.0.0.1 1211 ssleay-tcp-test`;
print $res if $trace>1;
print &test('5tcp', ($res =~ /SSLEAY-TCP-TEST/));
};
Below is the version of Perl I'm using. I linked the libraries statically against the latest OpenSSL files (0.9.7e), because I'm working on an all-inclusive distribution that includes the Perl and the OpenSSL libraries. I also experienced the same problems with Perl 5.8.4 and the precompiled OpenSSL DLL.
Have fun,
-max
C:\Projekte\Net-SSLeay-Compact>perl -V
Summary of my perl5 (revision 5 version 8 subversion 5) configuration:
Platform:
osname=MSWin32, osvers=4.0, archname=MSWin32-x86-multi-thread
uname=''
config_args='undef'
hint=recommended, useposix=true, d_sigaction=undef
usethreads=undef use5005threads=undef useithreads=define usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cl', ccflags ='-nologo -GF -W3 -MD -Zi -DNDEBUG -O1 -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DE
S_FCRYPT -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERL_MSVCRT_READFIX',
optimize='-MD -Zi -DNDEBUG -O1',
cppflags='-DWIN32'
ccversion='', gccversion='', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=undef, longlongsize=8, d_longdbl=define, longdblsize=10
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='__int64', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='link', ldflags ='-nologo -nodefaultlib -debug -opt:ref,icf -libpath:"c:\perl\5.8.5\lib\CORE
" -machine:x86'
libpth="C:\Programme\Microsoft Visual C++ Toolkit 2003\lib"
libs= oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib sh
ell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib version.lib o
dbc32.lib odbccp32.lib msvcrt.lib
perllibs= oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.li
b shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib version.l
ib odbc32.lib odbccp32.lib msvcrt.lib
libc=msvcrt.lib, so=dll, useshrplib=yes, libperl=perl58.lib
gnulibc_version='undef'
Dynamic Linking:
dlsrc=dl_win32.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
cccdlflags=' ', lddlflags='-dll -nologo -nodefaultlib -debug -opt:ref,icf -libpath:"c:\perl\5.8
.5\lib\CORE" -machine:x86'
Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT PERL_IMPLICI
T_SYS
Built under MSWin32
Compiled at Aug 6 2004 13:59:40
@INC:
c:/perl/5.8.5/lib
c:/perl/site/5.8.5/lib
.