Blame t/process.t

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
}