File Coverage

blib/lib/Ref/Store/Common.pm
Criterion Covered Total %
statement 36 38 94.7
branch 1 2 50.0
condition n/a
subroutine 12 13 92.3
pod 0 1 0.0
total 49 54 90.7


line stmt bran cond sub pod time code
1             package Ref::Store::Common;
2 2     2   3334 use strict;
  2         4  
  2         51  
3 2     2   9 use warnings;
  2         4  
  2         52  
4 2     2   12 use base qw(Exporter);
  2         7  
  2         172  
5 2     2   15 use Carp qw(carp confess);
  2         3  
  2         263  
6             our (@EXPORT,%EXPORT_TAGS,@EXPORT_OK);
7              
8             my @logfuncs;
9              
10             sub log_dummy {
11 0     0 0   @_ = sprintf("".shift @_, @_);
12 0           goto &carp;
13             }
14              
15             $SIG{__DIE__} = \&confess;
16              
17             BEGIN {
18 2     2   7 @logfuncs = map { $_, $_ . 'f' } map { 'log_' . $_ }
  10         89  
  10         21  
19             qw(warn crit info debug err);
20             }
21              
22             use Module::Stubber
23             'Log::Fu' => [ { level => "debug" } ],
24 2     2   824 will_use => { map { $_ => \&log_dummy } @logfuncs };
  2         1869  
  2         9  
  20         46  
25              
26             #Keep these in sync with hrdefs.h HR_HKEY_LOOKUP_
27 2         13 use Constant::Generate [qw(
28             HR_TIDX_NULL
29             HR_TIDX_SLOOKUP
30             HR_TIDX_FLOOKUP
31             HR_TIDX_RLOOKUP
32             HR_TIDX_KEYTYPES
33             HR_TIDX_ALOOKUP
34             HR_TIDX_KEYFUNC
35             HR_TIDX_UNKEYFUNC
36             HR_TIDX_FLAGS
37             HR_TIDX_PRIVDATA
38             HR_TIDX_ITER
39 2     2   1688 )], export => 1;
  2         21324  
40              
41             #These map method names to lookup indicex
42             our %LookupNames = (
43             reverse => HR_TIDX_RLOOKUP,
44             scalar_lookup => HR_TIDX_SLOOKUP,
45             forward => HR_TIDX_FLOOKUP,
46             attr_lookup => HR_TIDX_ALOOKUP,
47             keyfunc => HR_TIDX_KEYFUNC,
48             unkeyfunc => HR_TIDX_UNKEYFUNC,
49             keytypes => HR_TIDX_KEYTYPES,
50             priv => HR_TIDX_PRIVDATA,
51             flags => HR_TIDX_FLAGS,
52             _iter => HR_TIDX_ITER
53             );
54              
55 2         9 use Constant::Generate [qw(
56             HR_KFLD_STRSCALAR
57             HR_KFLD_REFSCALAR
58             HR_KFLD_TABLEREF
59             HR_KFLD_ATTRHASH
60             HR_KFLD_AVAILABLE
61 2     2   892 )], export => 1;
  2         4  
62              
63 2         19 use Constant::Generate [qw(
64             HR_REVERSE_KEYS
65             HR_REVERSE_ATTRS
66 2     2   600 )], export => 1;
  2         5  
67              
68 2         11 use Constant::Generate [qw(
69             DUPIDX_RLOOKUP
70             DUPIDX_FLOOKUP
71             DUPIDX_ALOOKUP
72             DUPIDX_SLOOKUP
73 2     2   472 )], -tag => 'pp_constants' => -export_ok => 1;
  2         4  
74              
75             #Keep this in sync with C code
76             use Constant::Generate {
77 2         9 HR_PREFIX_DELIM => '#'
78 2     2   728 }, export => 1;
  2         4  
79              
80             BEGIN {
81 2 50   2   417 if(!$Module::Stubber::Status{'Log::Fu'}) {
82 2         53 push @EXPORT, @logfuncs;
83             }
84             }
85              
86             1;