view release on metacpan or search on metacpan
t/anyevent_open3_simple__mojo.t view on Meta::CPAN
use Mojo::Reactor;
use File::Temp qw( tempdir );
use File::Spec;
plan tests => 8;
$ENV{MOJO_REACTOR} = 'Mojo::Reactor::Poll';
isnt(Mojo::Reactor->detect, 'Mojo::Reactor::EV', "Mojo::Reactor->detect = @{[ Mojo::Reactor->detect ]}");
Mojo::IOLoop->timer( 7 => sub {
Mojo::IOLoop->stop;
fail 'called on_exit';
});
my $called_on_start = 0;
my $exit_value = 0;
my @out;
my @err;
my $ipc = AnyEvent::Open3::Simple->new(
t/anyevent_open3_simple__on_fail.t view on Meta::CPAN
my $ipc = AnyEvent::Open3::Simple->new(
on_fail => sub {
($proc, $exit_value1) = @_;
},
on_exit => sub {
($proc, $exit_value2, $signal) = @_;
$done->send;
},
);
my $timeout = AnyEvent->timer (
after => 5,
cb => sub { diag 'timeout!'; exit 2; },
);
do {
$done = AnyEvent->condvar;
my $ret = $ipc->run($^X, File::Spec->catfile($dir, 'child_normal.pl'));
isa_ok $ret, 'AnyEvent::Open3::Simple';
t/anyevent_open3_simple__on_out.t view on Meta::CPAN
my $ipc = AnyEvent::Open3::Simple->new(
on_stdout => sub { push @out, pop },
on_stderr => sub { push @err, pop },
on_exit => sub {
($proc, $exit_value, $signal) = @_;
$done->send;
},
);
my $timeout = AnyEvent->timer (
after => 5,
cb => sub { diag 'timeout!'; exit 2; },
);
my $ret = $ipc->run($^X, File::Spec->catfile($dir, 'child.pl'));
diag $@ if $@;
isa_ok $ret, 'AnyEvent::Open3::Simple';
$done->recv;
t/anyevent_open3_simple__on_out_array.t view on Meta::CPAN
my $ipc = AnyEvent::Open3::Simple->new(
on_stdout => \@out,
on_stderr => \@err,
on_exit => sub {
($proc, $exit_value, $signal) = @_;
$done->send;
},
);
my $timeout = AnyEvent->timer (
after => 5,
cb => sub { diag 'timeout!'; exit 2; },
);
my $ret = $ipc->run($^X, File::Spec->catfile($dir, 'child.pl'));
diag $@ if $@;
isa_ok $ret, 'AnyEvent::Open3::Simple';
$done->recv;
t/anyevent_open3_simple__on_signal.t view on Meta::CPAN
my $ipc = AnyEvent::Open3::Simple->new(
on_signal => sub {
($proc, $signal1) = @_;
},
on_exit => sub {
($proc, $exit_value, $signal2) = @_;
$done->send;
},
);
my $timeout = AnyEvent->timer (
after => 5,
cb => sub { diag 'timeout!'; exit 2 },
);
do {
$done = AnyEvent->condvar;
my $ret = $ipc->run($^X, File::Spec->catfile($dir, 'child_normal.pl'));
diag $@ if $@;
isa_ok $ret, 'AnyEvent::Open3::Simple';
t/anyevent_open3_simple__on_start.t view on Meta::CPAN
{
subtest "iteration $iteration" => sub {
plan tests => 6;
my $foo = 0;
my @cb_args;
my $ret = $ipc->run($^X, File::Spec->catfile($dir, 'child.pl'), 'arg1', 'arg2', sub { $foo = $iteration; @cb_args = @_ });
isa_ok $ret, 'AnyEvent::Open3::Simple';
my $timeout = AnyEvent->timer (
after => 5,
cb => sub { diag 'timeout!'; exit 2; },
);
$done->recv;
ok $on_start_called, 'on_start event fired';
is $prog, $^X, 'prog';
is_deeply \@args, [File::Spec->catfile($dir, 'child.pl'), 'arg1', 'arg2'], 'args';
t/anyevent_open3_simple__on_success.t view on Meta::CPAN
my $ipc = AnyEvent::Open3::Simple->new(
on_success => sub {
$exit_value1 = 0;
},
on_exit => sub {
($proc, $exit_value2, $signal) = @_;
$done->send;
},
);
my $timeout = AnyEvent->timer (
after => 5,
cb => sub { diag 'timeout!'; exit 2; },
);
do {
$done = AnyEvent->condvar;
my $ret = $ipc->run($^X, File::Spec->catfile($dir, 'child_normal.pl'));
isa_ok $ret, 'AnyEvent::Open3::Simple';
t/anyevent_open3_simple__print.t view on Meta::CPAN
my($proc) = @_;
eval { $proc->say('message1') };
diag $@ if $@;
eval { $proc->say('message2') };
diag $@ if $@;
eval { $proc->close };
diag $@ if $@;
},
);
my $timeout = AnyEvent->timer(
after => 5,
cb => sub { diag 'timeout!'; exit 2 },
);
my $proc = $ipc->run($^X, File::Spec->catfile($dir, 'child.pl'));
isa_ok $proc, 'AnyEvent::Open3::Simple';
$done->recv;
open($fh, '<', File::Spec->catfile($dir, 'child.out'));
t/anyevent_open3_simple__proc.t view on Meta::CPAN
$old_user = eval { $proc->user };
diag $@ if $@;
eval { $proc->user('some user data') };
diag $@ if $@;
},
);
my $ret = $ipc->run($^X, File::Spec->catfile($dir, 'child.pl'));
isa_ok $ret, 'AnyEvent::Open3::Simple';
my $timeout = AnyEvent->timer (
after => 5,
cb => sub { diag 'timeout!'; exit 2; },
);
$done->recv;
is eval { $proc->pid }, $child_pid, "both procs have same pid";
diag $@ if $@;
my $new_user = eval { $proc->user };
t/anyevent_open3_simple__stdin.t view on Meta::CPAN
plan tests => 4;
my $done = AnyEvent->condvar;
my $ipc = AnyEvent::Open3::Simple->new(
on_exit => sub {
$done->send(1);
},
);
my $timeout = AnyEvent->timer(
after => 5,
cb => sub { diag 'timeout!'; $done->send(0) },
);
my $proc = $ipc->run($^X, File::Spec->catfile($dir, 'child.pl'), ref $stdin ? $stdin : \$stdin);
isa_ok $proc, 'AnyEvent::Open3::Simple';
is $done->recv, 1, 'no timeout';
open($fh, '<', File::Spec->catfile($dir, 'child.out'));