AnyEvent-ForkObject
view release on metacpan or search on metacpan
#!/usr/bin/perl
use warnings;
use strict;
use utf8;
use open qw(:std :utf8);
use lib qw(lib ../lib);
use Test::More tests => 39;
use Encode qw(decode encode);
BEGIN {
my $builder = Test::More->builder;
binmode $builder->output, ":utf8";
binmode $builder->failure_output, ":utf8";
binmode $builder->todo_output, ":utf8";
use_ok 'AnyEvent';
use_ok 'AnyEvent::ForkObject';
}
{
my $cv = condvar AnyEvent;
my $obj = new AnyEvent::ForkObject;
ok $obj, "Constructor";
my $phase = 0;
$obj->do(require => 'Data::Dumper', cb => sub {
$phase++;
diag explain \@_ unless ok $_[0] eq 'ok', 'require Data::Dumper';
$obj->do(
module => 'Data::Dumper',
args => [ [ 1, 2, 3 ]],
cb => sub {
my ($s, $o) = @_;
diag explain \@_ unless ok $s eq 'ok', 'Data::Dumper created';
$phase++;
$o->Indent(0, sub { ok $_[0] eq 'ok', 'dumper->Indent(0)' });
$o->Terse(1, sub { ok $_[0] eq 'ok', 'dumper->Terse(1)' });
$o->Useqq(1, sub { ok $_[0] eq 'ok', 'dumper->Useqq(1)' });
$o->Deepcopy(1,
sub { ok $_[0] eq 'ok', 'dumper->Deepcopy(1)' }
);
$o->Dump(sub {
my ($st, $ob) = @_;
undef $o;
$phase++;
ok $st eq 'ok', 'Dump has done';
ok $ob eq '123', 'Result is right';
}, 0);
});
});
$obj->do(require => 'File::Spec', cb => sub {
diag explain \@_ unless ok $_[0] eq 'ok', 'require File::Spec';
$phase++;
$obj->do(
module => 'File::Spec',
method => 'catfile',
args => [ '/etc', 'passwd' ],
cb => sub {
my ($s, $o) = @_;
$phase++;
ok $s eq 'ok', 'File::Spec->catfile has done';
ok $o eq '/etc/passwd', 'File::Spec->catfile works properly';
}
);
});
( run in 1.717 second using v1.01-cache-2.11-cpan-39bf76dae61 )