-
Notifications
You must be signed in to change notification settings - Fork 26
/
15_kernel_internal.t
88 lines (79 loc) · 2.36 KB
/
15_kernel_internal.t
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/usr/bin/perl -w
# This file contains tests for the _internal_ POE::Kernel interface
# i.e. the interface exposed to POE::Session, POE::Resources::* etc
use strict;
sub POE::Kernel::TRACE_FILENAME () { "./test-output.err" }
# Tests _trap_death and _release_death indirectly (as well as directly when we
# test _croak etc) by checking that POE doesn't leave $SIG{__WARN__}
# and $SIG{__DIE__} altered.
my ($initial__die__, $initial__warn__, $last_exception);
BEGIN {
*CORE::GLOBAL::die = sub {
$last_exception = "die: @_";
CORE::die(@_);
};
*CORE::GLOBAL::warn = sub {
$last_exception = "warn: @_";
CORE::warn(@_);
};
# reload Carp so it sees the CORE::GLOBAL overrides
delete $INC{"Carp.pm"};
require Symbol;
Symbol::delete_package("Carp");
require Carp;
}
use Test::More tests => 12;
BEGIN { use_ok("POE::Kernel"); }
# The expected size of the queue when the kernel is idle (without any
# user generated/requesed events)
{
my $base_size = $poe_kernel->_idle_queue_size();
$poe_kernel->_idle_queue_grow();
is( $poe_kernel->_idle_queue_size(), $base_size + 1,
"growing idle queue");
$poe_kernel->_idle_queue_grow();
is( $poe_kernel->_idle_queue_size(), $base_size + 2,
"growing idle queue (2)");
$poe_kernel->_idle_queue_shrink();
is( $poe_kernel->_idle_queue_size(), $base_size + 1,
"shrinking idle queue");
$poe_kernel->_idle_queue_shrink();
is( $poe_kernel->_idle_queue_size(), $base_size,
"shrinking idle queue (2)");
}
{
$last_exception = '';
eval { POE::Kernel::_trap("testing _trap") };
ok($last_exception =~ /^die:/, "_trap confessed");
}
{
$last_exception = '';
eval { POE::Kernel::_croak("testing _croak") };
ok($last_exception =~ /^die:/, "_croak croaked");
}
{
$last_exception = '';
eval { POE::Kernel::_confess("testing _confess") };
ok($last_exception =~ /^die:/, "_confess confessed");
}
{
$last_exception = '';
eval { POE::Kernel::_cluck("testing _cluck") };
ok($last_exception =~ /^warn:/, "_cluck clucked");
}
{
$last_exception = '';
eval { POE::Kernel::_carp("testing _carp") };
ok($last_exception =~ /^warn:/, "_carp carped");
}
{
$last_exception = '';
eval { POE::Kernel::_warn("testing _warn") };
ok($last_exception =~ /^warn:/, "_warn warned");
}
{
$last_exception = '';
eval { POE::Kernel::_die("testing _die") };
ok($last_exception =~ /^die:/, "_die died");
}
exit 0;