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'
>


Reply via email to