|
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);
|