File Coverage

blib/lib/Ouroboros.pm
Criterion Covered Total %
statement 12 12 100.0
branch n/a
condition n/a
subroutine 4 4 100.0
pod n/a
total 16 16 100.0


line stmt bran cond sub pod time code
1             package Ouroboros;
2              
3 3     3   11626 use strict;
  3         5  
  3         72  
4 3     3   12 use warnings;
  3         4  
  3         54  
5 3     3   12 use Carp;
  3         5  
  3         135  
6              
7             require Exporter;
8 3     3   1145 use AutoLoader;
  3         3585  
  3         14  
9              
10             our @ISA = qw(Exporter);
11              
12             our @EXPORT_OK = qw(
13             ouroboros_stack_init_ptr
14             ouroboros_stack_items_ptr
15             ouroboros_stack_putback_ptr
16             ouroboros_stack_fetch_ptr
17             ouroboros_stack_store_ptr
18             ouroboros_stack_extend_ptr
19             ouroboros_stack_pushmark_ptr
20             ouroboros_stack_spagain_ptr
21             ouroboros_stack_xpush_sv_ptr
22             ouroboros_stack_xpush_sv_mortal_ptr
23             ouroboros_stack_xpush_iv_ptr
24             ouroboros_stack_xpush_uv_ptr
25             ouroboros_stack_xpush_nv_ptr
26             ouroboros_stack_xpush_pv_ptr
27             ouroboros_stack_xpush_mortal_ptr
28             ouroboros_stack_push_sv_ptr
29             ouroboros_stack_push_sv_mortal_ptr
30             ouroboros_stack_push_iv_ptr
31             ouroboros_stack_push_uv_ptr
32             ouroboros_stack_push_nv_ptr
33             ouroboros_stack_push_pv_ptr
34             ouroboros_stack_push_mortal_ptr
35             ouroboros_sv_upgrade_ptr
36             ouroboros_sv_niok_ptr
37             ouroboros_sv_niok_priv_ptr
38             ouroboros_sv_niok_off_ptr
39             ouroboros_sv_ok_ptr
40             ouroboros_sv_iok_priv_ptr
41             ouroboros_sv_nok_priv_ptr
42             ouroboros_sv_pok_priv_ptr
43             ouroboros_sv_iok_ptr
44             ouroboros_sv_iok_on_ptr
45             ouroboros_sv_iok_off_ptr
46             ouroboros_sv_iok_only_ptr
47             ouroboros_sv_iok_only_uv_ptr
48             ouroboros_sv_iok_uv_ptr
49             ouroboros_sv_uok_ptr
50             ouroboros_sv_iok_not_uv_ptr
51             ouroboros_sv_nok_ptr
52             ouroboros_sv_nok_on_ptr
53             ouroboros_sv_nok_off_ptr
54             ouroboros_sv_nok_only_ptr
55             ouroboros_sv_pok_ptr
56             ouroboros_sv_pok_on_ptr
57             ouroboros_sv_pok_off_ptr
58             ouroboros_sv_pok_only_ptr
59             ouroboros_sv_pok_only_utf8_ptr
60             ouroboros_sv_vok_ptr
61             ouroboros_sv_ook_ptr
62             ouroboros_sv_ook_offset_ptr
63             ouroboros_sv_rok_ptr
64             ouroboros_sv_rok_on_ptr
65             ouroboros_sv_rok_off_ptr
66             ouroboros_sv_iv_ptr
67             ouroboros_sv_iv_nomg_ptr
68             ouroboros_sv_iv_raw_ptr
69             ouroboros_sv_iv_set_ptr
70             ouroboros_sv_uv_ptr
71             ouroboros_sv_uv_nomg_ptr
72             ouroboros_sv_uv_raw_ptr
73             ouroboros_sv_uv_set_ptr
74             ouroboros_sv_nv_ptr
75             ouroboros_sv_nv_nomg_ptr
76             ouroboros_sv_nv_raw_ptr
77             ouroboros_sv_nv_set_ptr
78             ouroboros_sv_pv_ptr
79             ouroboros_sv_pv_nomg_ptr
80             ouroboros_sv_pv_nolen_ptr
81             ouroboros_sv_pv_nomg_nolen_ptr
82             ouroboros_sv_pv_raw_ptr
83             ouroboros_sv_pv_cur_ptr
84             ouroboros_sv_pv_cur_set_ptr
85             ouroboros_sv_pv_len_ptr
86             ouroboros_sv_pv_len_set_ptr
87             ouroboros_sv_pv_end_ptr
88             ouroboros_sv_rv_ptr
89             ouroboros_sv_rv_set_ptr
90             ouroboros_sv_true_ptr
91             ouroboros_sv_true_nomg_ptr
92             ouroboros_sv_type_ptr
93             ouroboros_sv_flags_ptr
94             ouroboros_sv_utf8_ptr
95             ouroboros_sv_utf8_on_ptr
96             ouroboros_sv_utf8_off_ptr
97             ouroboros_sv_is_cow_ptr
98             ouroboros_sv_is_cow_shared_hash_ptr
99             ouroboros_sv_tainted_ptr
100             ouroboros_sv_tainted_on_ptr
101             ouroboros_sv_tainted_off_ptr
102             ouroboros_sv_taint_ptr
103             ouroboros_sv_share_ptr
104             ouroboros_sv_lock_ptr
105             ouroboros_sv_unlock_ptr
106             ouroboros_sv_get_a_magic_ptr
107             ouroboros_sv_magic_set_ptr
108             ouroboros_sv_get_magic_ptr
109             ouroboros_sv_set_magic_ptr
110             ouroboros_gv_sv_ptr
111             ouroboros_gv_av_ptr
112             ouroboros_gv_hv_ptr
113             ouroboros_gv_cv_ptr
114             ouroboros_sv_stash_ptr
115             ouroboros_sv_stash_set_ptr
116             ouroboros_cv_stash_ptr
117             ouroboros_hv_name_ptr
118             ouroboros_hv_name_len_ptr
119             ouroboros_hv_name_utf8_ptr
120             ouroboros_hv_ename_ptr
121             ouroboros_hv_ename_len_ptr
122             ouroboros_hv_ename_utf8_ptr
123             ouroboros_he_pv_ptr
124             ouroboros_he_val_ptr
125             ouroboros_he_hash_ptr
126             ouroboros_he_svkey_ptr
127             ouroboros_he_svkey_force_ptr
128             ouroboros_he_svkey_set_ptr
129             ouroboros_perl_hash_ptr
130             ouroboros_sv_refcnt_ptr
131             ouroboros_sv_refcnt_inc_ptr
132             ouroboros_sv_refcnt_inc_nn_ptr
133             ouroboros_sv_refcnt_inc_void_ptr
134             ouroboros_sv_refcnt_inc_void_nn_ptr
135             ouroboros_sv_refcnt_dec_ptr
136             ouroboros_sv_refcnt_dec_nn_ptr
137             ouroboros_enter_ptr
138             ouroboros_leave_ptr
139             ouroboros_savetmps_ptr
140             ouroboros_freetmps_ptr
141             ouroboros_sys_init3_ptr
142             ouroboros_sys_term_ptr
143             ouroboros_sv_undef_ptr
144             ouroboros_sv_no_ptr
145             ouroboros_sv_yes_ptr
146             ouroboros_gimme_ptr
147             ouroboros_xcpt_try_ptr
148             ouroboros_xcpt_rethrow_ptr
149             );
150              
151             our @CONSTS;
152              
153             our %EXPORT_TAGS = (
154             all => \@EXPORT_OK,
155             const => \@CONSTS,
156             );
157              
158             our @EXPORT = qw();
159              
160             our $VERSION = "0.14";
161              
162             require XSLoader;
163             XSLoader::load('Ouroboros', $VERSION);
164              
165             # XS bootstrap pushes to @CONSTS, this must come after XSLoader::load(). While
166             # ExtUtils::Constant generates code to check if constant exists or not at
167             # compile time, it still pushes them into the array for some reason.
168             # Here, we only need constants that are actually available.
169             @CONSTS = grep defined eval "$_", @CONSTS;
170              
171             push @EXPORT_OK, @CONSTS;
172              
173             1;
174             __END__