The fail is due to the use of in-memory filehandles. I have inserted some
code to test for absence of them, falling back to IO::String or
eventually skipping the tests, but is seems that this "auto-detection" does
not work well. In particular:
sub out_memory_handle {
my $fh;
eval { open $fh, '>', \$_[0] or die; };
eval {
require IO::String;
$fh = IO::String->new($_[0]);
} if $EVAL_ERROR;
return $EVAL_ERROR ? undef: $fh;
} ## end sub out_memory_handle
In perl 5.6.x, I would expect the first open to die, triggering the
IO::String require and, if absent, the ruturn of undef. I'm using it like
this:
my $target;
my $fh = out_memory_handle($target);
skip('Need in-memory filehandles or IO::String for these tests', 7)
unless $fh;
I did some test in perl 5.8, forcing the usage of IO::String, and it seems
to work. It seems that IO::String is correctly required, and a $fh is
given back, but then it is unusable.
Due to the fact that I need some handles to make the tests work, do I need
to fall back to pipes? Or is there some hint for using in-memory
filehandles in a portable way in perl 5.6.x?
Thanks for this service and best regards,
Flavio Poletti.
> This distribution has been tested as part of the cpan-testers
> effort to test as many new uploads to CPAN as possible. See
> http://testers.cpan.org/
>
> Please cc any replies to [email protected] to keep other
> test volunteers informed and to prevent any duplicate effort.
>
> --
> Dear Flavio Poletti,
>
> This is a computer-generated test report for WWW-Slides-0.0.7, created
> automatically by CPAN::Reporter, version 0.43, and sent to the CPAN
> Testers mailing list. If you have received this email directly, it is
> because the person testing your distribution chose to send a copy to your
> CPAN email address; there may be a delay before the official report is
> received and processed by CPAN Testers.
>
> Thank you for uploading your work to CPAN. However, it appears that
> there were some problems testing your distribution.
>
> Sections of this report:
>
> * Tester comments
> * Prerequisites
> * Environment and other context
> * Test output
>
> ------------------------------
> TESTER COMMENTS
> ------------------------------
>
> Additional comments from tester:
>
> [none provided]
>
> ------------------------------
> PREREQUISITES
> ------------------------------
>
> Prerequisite modules loaded:
>
> requires:
>
> Module Need Have
> ----------------- ---- ----
> Carp 0 0
> Digest::MD5 0 2.36
> English 0 0
> File::Basename 0 2.6
> HTTP::Response 0 1.53
> IO::Handle 0 1.21
> IO::Select 0 1.14
> IO::Socket 0 1.26
> Object::InsideOut 0 3.14
> Socket 0 1.72
> Test::Exception 0 0.25
> Test::MockObject 0 1.07
> Test::More 0 0.67
> Test::Output 0 0.10
> version 0 0.70
>
> ------------------------------
> ENVIRONMENT AND OTHER CONTEXT
> ------------------------------
>
> Environment variables:
>
> LANG = en_GB
> LANGUAGE = en_GB:en_US:en_GB:en
> PATH = /usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin
> PERL5LIB =
> PERL5_CPANPLUS_IS_RUNNING = 1
> PERL5_CPAN_IS_RUNNING = 1
> SHELL = /bin/bash
> TERM = screen
>
> Perl special variables (and OS-specific diagnostics, for MSWin32):
>
> Perl: $^X = /home/david/cpantesting/perl-5.6.2/bin/perl
> UID: $< = 1000
> EUID: $> = 1000
> GID: $( = 1000 46 44 29 25 24 20 1000
> EGID: $) = 1000 46 44 29 25 24 20 1000
>
> Perl module toolchain versions installed:
>
> Module Have
> ------------------- -------
> CPAN 1.9101
> Cwd 2.04
> ExtUtils::CBuilder n/a
> ExtUtils::Command 1.09_01
> ExtUtils::Install 1.41
> ExtUtils::MakeMaker 6.31
> ExtUtils::Manifest 1.48
> ExtUtils::ParseXS n/a
> File::Spec 0.86
> Module::Build 0.2806
> Module::Signature n/a
> Test::Harness 2.64
> Test::More 0.67
> version 0.70
>
> ------------------------------
> TEST OUTPUT
> ------------------------------
>
> Output from '/usr/bin/make test':
>
> PERL_DL_NONLAZY=1 /home/david/cpantesting/perl-5.6.2/bin/perl
> "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')"
> t/00.load.t t/pod.t t/Attendee/00.load.t t/Attendee/01.create.t
> t/Attendee/02.transition.t t/Attendee/03.ping.t
> t/Attendee/04.handle_input.t t/BasicLogger/00.load.t
> t/BasicLogger/01.create.t t/BasicLogger/02.default.t
> t/BasicLogger/03.stdout.t t/BasicLogger/04.fake.t t/Client/00.load.t
> t/Client/01.create.t t/Client/02.traffic.t t/Client/03.get_commands.t
> t/Client/50.load-TCP.t t/Client/51.create.t t/Client/52.traffic.t
> t/SlideShow/00.load.t t/SlideShow/01.can.t t/SlideShow/02.read.t
> t/SlideShow/03.getstuff.t t/SlideShow/04.movement.t
> t/SlideTracker/00.load.t t/SlideTracker/01.create.t
> t/SlideTracker/02.transition.t
> t/00.load.......................# Testing inclusions
> # Loading WWW::Slides v0.0.7
> # Loading WWW::Slides::Talk v0.0.5
> # Loading WWW::Slides::Attendee v0.0.4
> # Loading WWW::Slides::SlideShow v0.0.7
> # Loading WWW::Slides::SlideTracker v0.0.3
> # Loading WWW::Slides::BasicLogger v0.0.5
> # Loading WWW::Slides::Controller::UDP v0.0.3
> # Loading WWW::Slides::Controller::TCP v0.0.4
> # Loading WWW::Slides::Controller::STDIO v0.0.3
> # Loading WWW::Slides::Controller::Multiple v0.0.3
> # Loading WWW::Slides::Controller::Single v0.0.5
> # Loading WWW::Slides::Client::TCP v0.0.3
> # Loading WWW::Slides::Client::Base v0.0.5
> ok
> t/Attendee/00.load..............# Testing WWW::Slides::Attendee v0.0.4
> ok
> t/Attendee/01.create............Use of uninitialized value in split at
> t/Attendee/01.create.t line 59.
> Use of uninitialized value in pattern match (m//) at
> t/Attendee/01.create.t line 60.
>
> # Failed test 'HTTP header incipit and status'
> # at t/Attendee/01.create.t line 60.
> # undef
> # doesn't match '(?msx-i:\AHTTP/1.1 \s+ 200 \s+ OK \r\n)'
> Use of uninitialized value in pattern match (m//) at
> t/Attendee/01.create.t line 65.
>
> # Failed test 'header has a date field'
> # at t/Attendee/01.create.t line 65.
> # undef
> # doesn't match '(?msx-i:^Date:)'
> Use of uninitialized value in pattern match (m//) at
> t/Attendee/01.create.t line 66.
>
> # Failed test 'header has a content-type field'
> # at t/Attendee/01.create.t line 66.
> # undef
> # doesn't match '(?msx-i:^Content-Type:)'
> Use of uninitialized value in pattern match (m//) at
> t/Attendee/01.create.t line 67.
>
> # Failed test 'answer body is correct'
> # at t/Attendee/01.create.t line 68.
> # got: undef
> # expected: 'this is the preamble
> # *** slide 1 ***
> # please show 1
> # '
> # Looks like you failed 4 tests of 9.
> dubious
> Test returned status 4 (wstat 1024, 0x400)
> DIED. FAILED tests 5-7, 9
> Failed 4/9 tests, 55.56% okay
> t/Attendee/02.transition........Use of uninitialized value in length at
> t/Attendee/02.transition.t line 71.
> Use of uninitialized value in substr at t/Attendee/02.transition.t line
> 73.
>
> # Failed test 'correctly sent absolute slide'
> # at t/Attendee/02.transition.t line 73.
> # got: ''
> # expected: 'please hide 1
> # *** slide 3 ***
> # please show 3
> # '
>
> # Failed test 'correctly returned to first slide'
> # at t/Attendee/02.transition.t line 82.
> # got: ''
> # expected: 'please hide 3
> # please show 1
> # '
>
> # Failed test 'correctly jumped to last slide'
> # at t/Attendee/02.transition.t line 91.
> # got: ''
> # expected: 'please hide 1
> # please show 3
> # '
>
> # Failed test 'correctly called previous slide'
> # at t/Attendee/02.transition.t line 100.
> # got: ''
> # expected: 'please hide 3
> # *** slide 2 ***
> # please show 2
> # '
>
> # Failed test 'correctly called next slide'
> # at t/Attendee/02.transition.t line 109.
> # got: ''
> # expected: 'please hide 2
> # please show 3
> # '
> # Looks like you failed 5 tests of 9.
> dubious
> Test returned status 5 (wstat 1280, 0x500)
> DIED. FAILED tests 5-9
> Failed 5/9 tests, 44.44% okay
> t/Attendee/03.ping..............Use of uninitialized value in length at
> t/Attendee/03.ping.t line 61.
> Use of uninitialized value in substr at t/Attendee/03.ping.t line 63.
>
> # Failed test 'ping correctly sent'
> # at t/Attendee/03.ping.t line 63.
> # got: ''
> # expected: 'ping!'
> # Looks like you failed 1 test of 5.
> dubious
> Test returned status 1 (wstat 256, 0x100)
> DIED. FAILED test 5
> Failed 1/5 tests, 80.00% okay
> t/Attendee/04.handle_input......ok
> t/BasicLogger/00.load...........# Testing WWW::Slides::BasicLogger v0.0.5
> ok
> t/BasicLogger/01.create.........ok
> t/BasicLogger/02.default........ok
> t/BasicLogger/03.stdout.........ok
> t/BasicLogger/04.fake...........ok
> t/Client/00.load................# Testing WWW::Slides::Client::Base v0.0.5
> ok
> t/Client/01.create..............ok
> t/Client/02.traffic.............ok
> t/Client/03.get_commands........ok
> t/Client/50.load-TCP............# Testing WWW::Slides::Client::TCP v0.0.3
> ok
> t/Client/51.create..............ok
> t/Client/52.traffic.............ok
> t/pod...........................ok
> t/SlideShow/00.load.............# Testing WWW::Slides::SlideShow v0.0.7
> ok
> t/SlideShow/01.can..............ok
> t/SlideShow/02.read.............ok
> t/SlideShow/03.getstuff.........ok
> t/SlideShow/04.movement.........ok
> t/SlideTracker/00.load..........# Testing WWW::Slides::SlideTracker v0.0.3
> ok
> t/SlideTracker/01.create........ok
> t/SlideTracker/02.transition....ok
> Failed Test Stat Wstat Total Fail List of Failed
> -------------------------------------------------------------------------------
> t/Attendee/01.create.t 4 1024 9 4 5-7 9
> t/Attendee/02.transition.t 5 1280 9 5 5-9
> t/Attendee/03.ping.t 1 256 5 1 5
> Failed 3/27 test scripts. 10/227 subtests failed.
> Files=27, Tests=227, 6 wallclock secs ( 2.14 cusr + 0.69 csys = 2.83
> CPU)
> Failed 3/27 test programs. 10/227 subtests failed.
> make: *** [test_dynamic] Error 11
>
>
> --
>
> Summary of my perl5 (revision 5.0 version 6 subversion 2) configuration:
> Platform:
> osname=linux, osvers=2.4.27-3-686, archname=i686-linux
> uname='linux pigsty 2.4.27-3-686 #1 tue dec 5 21:03:54 utc 2006 i686
> gnulinux '
> config_args='-Dprefix=/home/david/cpantesting/perl-5.6.2 -de'
> hint=recommended, useposix=true, d_sigaction=define
> usethreads=undef use5005threads=undef useithreads=undef
> usemultiplicity=undef
> useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
> use64bitint=undef use64bitall=undef uselongdouble=undef
> Compiler:
> cc='cc', ccflags ='-fno-strict-aliasing -D_LARGEFILE_SOURCE
> -D_FILE_OFFSET_BITS=64',
> optimize='-O3',
> cppflags='-fno-strict-aliasing'
> ccversion='', gccversion='3.3.5 (Debian 1:3.3.5-13)', gccosandvers=''
> intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
> d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
> ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
> lseeksize=8
> alignbytes=4, usemymalloc=n, prototype=define
> Linker and Libraries:
> ld='cc', ldflags =' -L/usr/local/lib'
> libpth=/usr/local/lib /lib /usr/lib
> libs=-lnsl -lgdbm -ldl -lm -lc -lcrypt -lutil
> perllibs=-lnsl -ldl -lm -lc -lcrypt -lutil
> libc=/lib/libc-2.3.2.so, so=so, useshrplib=false, libperl=libperl.a
> Dynamic Linking:
> dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
> cccdlflags='-fpic', lddlflags='-shared -L/usr/local/lib'
>