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;
use Encode qw(decode encode);
use File::Temp qw(tempfile tempdir);
use File::Spec::Functions qw(catfile);
use File::Path qw(remove_tree);
BEGIN {
my $builder = Test::More->builder;
binmode $builder->output, ":utf8";
binmode $builder->failure_output, ":utf8";
binmode $builder->todo_output, ":utf8";
eval {
require DBI;
require DBD::SQLite;
};
if ($@) {
plan skip_all => "DBD::SQLite isn't installed properly";
} else {
plan tests => 12;
}
use_ok 'AnyEvent';
use_ok 'AnyEvent::ForkObject';
use_ok 'AnyEvent::Tools', 'async_repeat';
}
sub rand_str();
our $tmp_dir = tempdir;
END { remove_tree $tmp_dir if $tmp_dir and -d $tmp_dir };
my $cv = condvar AnyEvent;
my $fo = new AnyEvent::ForkObject;
my $db_file = catfile $tmp_dir, 'db.sqlite';
my $dbh;
$fo->do(
method => 'connect',
module => 'DBI',
args => [ "dbi:SQLite:dbname=$db_file", '', '', { RaiseError => 1 } ],
cb => sub {
my ($s, $db) = @_;
$dbh = $db;
ok $s eq 'ok', 'DBI connected';
$dbh->do(q{
CREATE TABLE tbl
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
txt TEXT NOT NULL
)
}, sub {
my ($s, $res) = @_;
diag explain \@_ unless ok $s eq 'ok', 'Table "tbl" was created';
my $count = 0;
( run in 0.579 second using v1.01-cache-2.11-cpan-39bf76dae61 )