Blame t/parallel.t

Packit 258f23
#!/usr/bin/perl
Packit 258f23
Packit 258f23
=pod
Packit 258f23
Packit 258f23
=head1 NAME
Packit 258f23
Packit 258f23
parallel.t - Test suite for running multiple processes in parallel.
Packit 258f23
Packit 258f23
=cut
Packit 258f23
Packit 258f23
use strict;
Packit 258f23
Packit 258f23
BEGIN {
Packit 258f23
    $|  = 1;
Packit 258f23
    $^W = 1;
Packit 258f23
    if ( $ENV{PERL_CORE} ) {
Packit 258f23
        chdir '../lib/IPC/Run' if -d '../lib/IPC/Run';
Packit 258f23
        unshift @INC, 'lib', '../..';
Packit 258f23
        $^X = '../../../t/' . $^X;
Packit 258f23
    }
Packit 258f23
}
Packit 258f23
Packit 258f23
## Handy to have when our output is intermingled with debugging output sent
Packit 258f23
## to the debugging fd.
Packit 258f23
select STDERR;
Packit 258f23
select STDOUT;
Packit 258f23
Packit 258f23
BEGIN {
Packit 258f23
    use Test::More;
Packit 258f23
    if ( $^O eq 'MSWin32' ) {
Packit 258f23
        plan skip_all => 'Parallel tests are dangerous on MSWin32';
Packit 258f23
    }
Packit 258f23
    else {
Packit 258f23
        plan tests => 6;
Packit 258f23
    }
Packit 258f23
Packit 258f23
}
Packit 258f23
use IPC::Run qw( start pump finish );
Packit 258f23
Packit 258f23
my $text1 = "Hello world 1\n";
Packit 258f23
my $text2 = "Hello world 2\n";
Packit 258f23
Packit 258f23
my @perl = ($^X);
Packit 258f23
my @catter = ( @perl, '-pe1' );
Packit 258f23
Packit 258f23
my ( $h1,   $h2 );
Packit 258f23
my ( $out1, $out2 );
Packit 258f23
$h1 = start \@catter, "<", \$text1, ">", \$out1;
Packit 258f23
ok($h1);
Packit 258f23
$h2 = start \@catter, "<", \$text2, ">", \$out2;
Packit 258f23
ok($h2);
Packit 258f23
pump $h1;
Packit 258f23
ok(1);
Packit 258f23
pump $h2;
Packit 258f23
ok(1);
Packit 258f23
finish $h1;
Packit 258f23
ok(1);
Packit 258f23
finish $h2;
Packit 258f23
ok(1);