File: 06-async-utils.t

package info (click to toggle)
libcassandra-client-perl 0.21-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 716 kB
  • sloc: perl: 3,898; ansic: 1,767; makefile: 3
file content (52 lines) | stat: -rw-r--r-- 1,049 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!perl
use 5.010;
use strict;
use warnings;
use Test::More;
use Cassandra::Client::Util qw/parallel series/;

use if $ENV{BENCHMARK}, 'Benchmark', qw/timethese/;

my $run_test_parallel= sub {
    my $success= 1;
    my $ran;
    parallel([
        sub { $_[0]->(undef, "abc") },
        sub { $_[0]->(undef, "abc") },
        sub { $_[0]->(undef, "abc") },
    ], sub {
        $success &&= (!$_[0] && $_[1] eq 'abc' && $_[2] eq 'abc' && $_[3] eq 'abc');
        $ran= 1;
    });

    return ($success && $ran);
};

my $run_test_series= sub {
    my $success= 1;
    my $ran;
    my $str= 'abc';

    series([
        sub { $_[0]->(undef, "abc") },
        sub { $_[0]->(undef, $_[1]) },
        sub { $_[0]->(undef, $_[1]) },
    ], sub {
        $success &&= (!$_[0] && $_[1] eq 'abc');
        $ran= 1;
    });

    return ($success && $ran);
};

ok($run_test_parallel->());
ok($run_test_series->());

if ($ENV{BENCHMARK}) {
    timethese(-3, {
        parallel => $run_test_parallel,
        series => $run_test_series,
    });
}

done_testing;