BEGIN {
if
(
$ENV
{PERL_CORE}) {
chdir
't'
if
-d
't'
;
@INC
=
'../lib'
;
}
}
BEGIN { use_ok(
'threads'
) }
BEGIN { use_ok(
'threads::shared::queue::any'
) }
my
$q
= threads::shared::queue::any->new;
isa_ok(
$q
,
'threads::shared::queue::any'
,
'check object type'
);
$q
->enqueue(
qw(a b c)
);
$q
->enqueue( [
qw(a b c)
] );
$q
->enqueue( {
a
=> 1,
b
=> 2,
c
=> 3} );
is(
$q
->pending, 3,
'check number pending'
);
my
@l
=
$q
->dequeue;
is(
@l
, 3,
'check # elements simple list'
);
ok(
$l
[0] eq
'a'
and
$l
[1] eq
'b'
and
$l
[2] eq
'c'
,
'check simple list'
);
my
@lr
=
$q
->dequeue_nb;
cmp_ok(
@lr
,
'=='
, 1,
'check # elements list ref'
);
is(
ref
(
$lr
[0]),
'ARRAY'
,
'check type of list ref'
);
ok(
$lr
[0]->[0] eq
'a'
and
$lr
[0]->[1] eq
'b'
and
$lr
[0]->[2] eq
'c'
,
'check list ref'
);
my
@hr
=
$q
->dequeue;
cmp_ok(
@hr
,
'=='
, 1,
'check # elements hash ref'
);
is(
ref
(
$hr
[0]),
'HASH'
,
'check type of hash ref'
);
ok(
$hr
[0]->{a} == 1 and
$hr
[0]->{b} == 2 and
$hr
[0]->{c} == 3,
'check hash ref'
);
my
@e
=
$q
->dequeue_nb;
cmp_ok(
@e
,
'=='
, 0,
'check # elements non blocking'
);