|
Packit |
a6a12c |
#!/usr/bin/perl -w
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
use strict;
|
|
Packit |
a6a12c |
use warnings;
|
|
Packit |
a6a12c |
use lib 't/lib';
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
my $hires;
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
BEGIN {
|
|
Packit |
a6a12c |
$hires = eval 'use Time::HiRes qw(sleep); 1';
|
|
Packit |
a6a12c |
}
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
use Test::More (
|
|
Packit |
a6a12c |
$^O eq 'VMS' ? ( skip_all => 'VMS' )
|
|
Packit |
a6a12c |
: $hires ? ( tests => 9 * 3 )
|
|
Packit |
a6a12c |
: ( skip_all => 'Need Time::HiRes' )
|
|
Packit |
a6a12c |
);
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
use File::Spec;
|
|
Packit |
a6a12c |
use TAP::Parser::Iterator::Process;
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
my @expect = (
|
|
Packit |
a6a12c |
'1..5',
|
|
Packit |
a6a12c |
'ok 1 00000',
|
|
Packit |
a6a12c |
'ok 2',
|
|
Packit |
a6a12c |
'not ok 3',
|
|
Packit |
a6a12c |
'ok 4',
|
|
Packit |
a6a12c |
'ok 5 00000',
|
|
Packit |
a6a12c |
);
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
my $source = File::Spec->catfile(
|
|
Packit |
a6a12c |
't',
|
|
Packit |
a6a12c |
'sample-tests',
|
|
Packit |
a6a12c |
'delayed'
|
|
Packit |
a6a12c |
);
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
for my $chunk_size ( 1, 4, 65536 ) {
|
|
Packit |
a6a12c |
for my $where ( 0 .. 8 ) {
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
my $proc = TAP::Parser::Iterator::Process->new(
|
|
Packit |
a6a12c |
{ _chunk_size => $chunk_size,
|
|
Packit |
a6a12c |
command => [ $^X, $source, ( 1 << $where ) ]
|
|
Packit |
a6a12c |
}
|
|
Packit |
a6a12c |
);
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
my @got = ();
|
|
Packit |
a6a12c |
while ( defined( my $line = $proc->next_raw ) ) {
|
|
Packit |
a6a12c |
push @got, $line;
|
|
Packit |
a6a12c |
}
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
is_deeply \@got, \@expect,
|
|
Packit |
a6a12c |
"I/O ok with delay at position $where, chunk size $chunk_size";
|
|
Packit |
a6a12c |
}
|
|
Packit |
a6a12c |
}
|