Condition Coverage

blib/lib/Safe/World.pm
Criterion Covered Total %
condition 24 351 6.8


and 3 conditions

line !l l&&!r l&&r condition
102 0 0 0 $Safe::World::NOW and ref $Safe::World::NOW eq 'Safe::World'
104 0 0 0 $$Safe::World::NOW{'ONEXIT'} and not $$Safe::World::NOW{'EXIT'}
133 0 0 0 $io ne '' and not $io =~ /::/
0 0 0 $io ne '' and not $io =~ /::/ and not $io =~ /^(?:STDOUT|STDERR|STDIN)$/
154 0 1 1 $sel eq 'main::STDOUT' and $SELECT_STDOUT_FIX
177 362 0 0 $class eq 'UNIVERSAL' and is_SvBlessed($ref)
225 23 0 0 not $outside || ref($ref) =~ /^(?:(?:main|(?:SAFEWORLD(?:_CACHE_)?\d+))::)?Safe::World(?:::(?:Compartment|select).*)?$/ and $] >= 5.007 || !(ref($ref) =~ /^(?:(?:main|(?:SAFEWORLD(?:_CACHE_)?\d+))::)?(?:Object::MultiType.*|XML::Smart)$/)
255 0 0 0 $ref and $ref ne 'SCALAR'
0 0 0 $ref and $ref ne 'SCALAR' and $ref ne 'ARRAY'
0 0 0 $ref and $ref ne 'SCALAR' and $ref ne 'ARRAY' and $ref ne 'HASH'
0 0 0 $ref and $ref ne 'SCALAR' and $ref ne 'ARRAY' and $ref ne 'HASH' and $ref ne 'CODE'
0 0 0 $ref and $ref ne 'SCALAR' and $ref ne 'ARRAY' and $ref ne 'HASH' and $ref ne 'CODE' and $ref ne 'GLOB'
0 0 0 $ref and $ref ne 'SCALAR' and $ref ne 'ARRAY' and $ref ne 'HASH' and $ref ne 'CODE' and $ref ne 'GLOB' and $ref ne 'FORMAT'
0 0 0 $ref and $ref ne 'SCALAR' and $ref ne 'ARRAY' and $ref ne 'HASH' and $ref ne 'CODE' and $ref ne 'GLOB' and $ref ne 'FORMAT' and $ref ne 'REF'
0 0 0 $ref and $ref ne 'SCALAR' and $ref ne 'ARRAY' and $ref ne 'HASH' and $ref ne 'CODE' and $ref ne 'GLOB' and $ref ne 'FORMAT' and $ref ne 'REF' and $ref ne 'UNKNOW'
0 0 0 $ref and $ref ne 'SCALAR' and $ref ne 'ARRAY' and $ref ne 'HASH' and $ref ne 'CODE' and $ref ne 'GLOB' and $ref ne 'FORMAT' and $ref ne 'REF' and $ref ne 'UNKNOW' and not $ref =~ /^(?:main|(?:SAFEWORLD(?:_CACHE_)?\d+)::)?Safe::World(?:[\w:]*)$/
369 0 0 0 $$this{'HEADOUT'} and not ref $$this{'HEADOUT'}
382 0 0 0 $$this{'HEADOUT'} and not exists $args{'autohead'}
402 0 1 0 $$this{'SHAREDPACK'} and ref $$this{'SHAREDPACK'} ne 'ARRAY'
448 0 0 0 $$this{'FLUSH'} and not $$this{'HEADOUT'}
0 0 0 $$this{'FLUSH'} and not $$this{'HEADOUT'} and not $$this{'AUTOHEAD'}
573 0 0 0 $$this{'STDOUT'} and not ref $$this{'STDOUT'}
574 0 0 0 $$this{'STDIN'} and not ref $$this{'STDIN'}
575 0 0 0 $$this{'STDERR'} and not ref $$this{'STDERR'}
576 0 0 0 $$this{'HEADOUT'} and not ref $$this{'HEADOUT'}
608 0 0 0 $$this{'FLUSH'} and not $$this{'HEADOUT'}
0 0 0 $$this{'FLUSH'} and not $$this{'HEADOUT'} and not $$this{'AUTOHEAD'}
654 0 0 0 $$this{'STDOUT'} and not ref $$this{'STDOUT'}
664 0 0 0 $$this{'STDERR'} and not ref $$this{'STDERR'}
674 0 0 0 $$this{'HEADOUT'} and not ref $$this{'HEADOUT'}
684 0 0 0 $$this{'STDIN'} and not ref $$this{'STDIN'}
698 0 0 0 not $SAFE_WORLD_SELECTED_STATIC and $Safe::World::NOW != $_[0]
710 0 0 0 $SAFE_WORLD_SELECTED_STATIC and $Safe::World::NOW == $_[0]
723 0 0 0 $_[0]{'WORLD_SHARED'} and not $_[0]{'DESTROIED'}
0 0 0 $_[0]{'WORLD_SHARED'} and not $_[0]{'DESTROIED'} and $Safe::World::NOW != $_[0]
0 0 0 $_[0]{'EXIT'} and not $_[0]{'DESTROIED'}
0 0 0 $_[0]{'EXIT'} and not $_[0]{'DESTROIED'} and $Safe::World::NOW != $_[0]
779 0 0 0 $_[0]{'WORLD_SHARED'} and not $_[0]{'DESTROIED'}
0 0 0 $_[0]{'WORLD_SHARED'} and not $_[0]{'DESTROIED'} and $Safe::World::NOW != $_[0]
0 0 0 $_[0]{'EXIT'} and not $_[0]{'DESTROIED'}
0 0 0 $_[0]{'EXIT'} and not $_[0]{'DESTROIED'} and $Safe::World::NOW != $_[0]
1014 1 0 2 not $no_parse_ref and ref $val eq 'SCALAR'
1018 0 0 0 not $no_parse_ref and ref $val eq 'ARRAY'
0 0 0 not $no_parse_ref and ref $val eq 'HASH'
1023 0 0 0 not $no_parse_ref and ref $val eq 'HASH'
0 0 0 not $no_parse_ref and ref $val eq 'ARRAY'
1156 0 0 0 $world && ref $_[0]
1181 0 0 0 $root eq $$this{'ROOT'} and $t ne '>'
0 0 0 $root eq $$this{'ROOT'} and $t ne '>' and $t ne '<'
0 0 0 $root eq $$this{'ROOT'} and $t ne '>' and $t ne '<' and $t ne '*'
1197 0 0 0 $set_defaults and !$$this{'TRACK_VARS_DEF'} || $world != $this
1224 0 0 0 $$this{'TRACK_ONLY_LINKED'}{$track_root} and $$this{'TRACK_ONLY_LINKED'}{$track_root} eq '1' && !$$this{'LINKED_WORLDS'}{$track_root} || $$this{'TRACK_ONLY_LINKED'}{$track_root} ne '1' && !$$this{'LINKED_WORLDS'}{$$this{'TRACK_ONLY_LINKED'}{$track_root}}
1282 0 0 0 $$this{'TRACK_ONLY_LINKED'}{$track_root} and $$this{'TRACK_ONLY_LINKED'}{$track_root} eq '1' && !$$this{'LINKED_WORLDS'}{$track_root} || $$this{'TRACK_ONLY_LINKED'}{$track_root} ne '1' && !$$this{'LINKED_WORLDS'}{$$this{'TRACK_ONLY_LINKED'}{$track_root}}
1516 0 0 0 @_ and join(' ', @_) =~ /\S/s
1526 0 0 0 not $inc_now{$Key} and $Key =~ /^\w.*?\.pm$/
1598 0 0 0 not $$this{'IS_CACHE'} and $$world{'WORLD_SHARED'}
1627 0 0 0 not $$this{'USE_SHARED_INC'}{$Key} || $$inc{$Key} and $Key =~ m[^(?:auto/)?\Q$base\E(?:/|\.)]
1641 0 0 0 not $shared_pack{$Key} and $$table{$Key} =~ /^\*(?:main|$world_root)::/
0 0 0 not $shared_pack{$Key} and $$table{$Key} =~ /^\*(?:main|$world_root)::/ and not $Key =~ /^(?:.*?::)$/
0 0 0 not $shared_pack{$Key} and $$table{$Key} =~ /^\*(?:main|$world_root)::/ and not $Key =~ /^(?:.*?::)$/ and not $Key =~ /[^\w:]/s
1711 0 0 0 not $$world_inc{$Key} and $$inc{$Key} ne '#shared#'
0 0 0 not $$world_inc{$Key} and $$inc{$Key} ne '#shared#' and $$world{'USE_SHARED_INC'}{$Key} != 2
0 0 0 not $$world_inc{$Key} and $$inc{$Key} ne '#shared#' and $$world{'USE_SHARED_INC'}{$Key} != 2 and $$world{'USE_SHARED_INC'}{"$base.pm"} != 2
1728 0 0 0 not $dont_touch_main and $track_this
1738 0 0 0 not $shared_pack{$Key} and $$table{$Key} =~ /^\*(?:main|$root)::(.*)/
0 0 0 not $shared_pack{$Key} and $$table{$Key} =~ /^\*(?:main|$root)::(.*)/ and not $Key =~ /^(?:.*?::)$/
0 0 0 not $shared_pack{$Key} and $$table{$Key} =~ /^\*(?:main|$root)::(.*)/ and not $Key =~ /^(?:.*?::)$/ and not $Key =~ /[^\w:]/s
1759 0 0 0 not $dont_touch_main || $$world{'TRACK_VARS_DEF'} and $$world{'SHAREDPACK'}
0 0 0 not $dont_touch_main || $$world{'TRACK_VARS_DEF'} and $$world{'SHAREDPACK'} and @{$$world{'SHAREDPACK'};}
1789 0 1 0 ref $_[0] and $_[0]{'INSIDE'} || $Safe::World::NOW == $_[0]
1800 0 0 0 ref $this and $$this{'INSIDE'} || $Safe::World::NOW == $this
1819 0 0 0 not $symb =~ /::$/ and !($symb =~ /[^\w:]/) || $symb =~ /^\W\w?$/
1825 0 0 0 *{$fullname;}{'IO'} and fileno $fullname
2187 8 0 0 $donot_clean and $$donot_clean{$symb}

or 2 conditions

line l !l condition
139 1 0 $1 || 'main'
152 0 2 $1 || 'main'
266 0 0 $1 || 'main'
361 0 0 $args{'stdout'} || \*STDOUT
362 0 0 $args{'stdin'} || \*STDIN
363 0 0 $args{'stderr'} || \*STDERR

or 3 conditions

line l !l&&r !l&&!r condition
148 1 1 0 $io_ref || $io
183 0 0 0 &$UNIVERSAL_ISA($ref, $class) || &$UNIVERSAL_ISA($ref, $class1) || ($class2 ? &$UNIVERSAL_ISA($ref, $class2) : undef)
225 22 1 0 $outside || ref($ref) =~ /^(?:(?:main|(?:SAFEWORLD(?:_CACHE_)?\d+))::)?Safe::World(?:::(?:Compartment|select).*)?$/
0 0 0 $] >= 5.007 || !(ref($ref) =~ /^(?:(?:main|(?:SAFEWORLD(?:_CACHE_)?\d+))::)?(?:Object::MultiType.*|XML::Smart)$/)
384 0 0 0 $args{'headsplitter'} || $args{'headspliter'} || qr/(?:\r\n\r\n|\012\015\012\015|\n\n|\015\015|\r\r|\012\012)/s
419 0 0 1 $args{'env'} || $args{'ENV'}
585 0 0 0 $args{'env'} || $args{'ENV'}
1101 0 0 0 $var eq '$_' or $var eq '$|'
0 0 0 $var eq '$_' or $var eq '$|' or $var eq '$@'
0 0 0 $var eq '$_' or $var eq '$|' or $var eq '$@' or $var eq '$!'
1157 0 0 0 $world ||= $this
1197 0 0 0 !$$this{'TRACK_VARS_DEF'} || $world != $this
1218 0 0 0 $pack_root ||= $$this{'ROOT'}
1224 0 0 0 $$this{'TRACK_ONLY_LINKED'}{$track_root} eq '1' && !$$this{'LINKED_WORLDS'}{$track_root} || $$this{'TRACK_ONLY_LINKED'}{$track_root} ne '1' && !$$this{'LINKED_WORLDS'}{$$this{'TRACK_ONLY_LINKED'}{$track_root}}
1282 0 0 0 $$this{'TRACK_ONLY_LINKED'}{$track_root} eq '1' && !$$this{'LINKED_WORLDS'}{$track_root} || $$this{'TRACK_ONLY_LINKED'}{$track_root} ne '1' && !$$this{'LINKED_WORLDS'}{$$this{'TRACK_ONLY_LINKED'}{$track_root}}
1324 0 0 0 $$this{'TRACK_DEPENDENCIES'}{$track_root} or $track_root =~ /CACHE/
1325 0 0 0 $$this{'TRACK_DEPENDENCIES'}{$track_root} || $track_root
1349 0 0 0 $$this{'TRACK_DEPENDENCIES'}{$track_root} or $track_root =~ /CACHE/
1350 0 0 0 $$this{'TRACK_DEPENDENCIES'}{$track_root} || $track_root
1454 0 0 0 $shared_pack{$packs_i} or $packs_i eq ''
1598 0 0 0 $$this{'INSIDE'} or ref $world ne 'Safe::World'
0 0 0 $$this{'INSIDE'} or ref $world ne 'Safe::World' or not $$this{'IS_CACHE'} and $$world{'WORLD_SHARED'}
0 0 0 $$this{'INSIDE'} or ref $world ne 'Safe::World' or not $$this{'IS_CACHE'} and $$world{'WORLD_SHARED'} or $$world{'INSIDE'}
1603 0 0 0 $dont_touch_main or $$world{'TRACK_VARS_DEF'}
1627 0 0 0 $$this{'USE_SHARED_INC'}{$Key} || $$inc{$Key}
1684 0 0 0 $$this{'INSIDE'} or ref $world ne 'Safe::World'
0 0 0 $$this{'INSIDE'} or ref $world ne 'Safe::World' or not $$world{'WORLD_SHARED'}
0 0 0 $$this{'INSIDE'} or ref $world ne 'Safe::World' or not $$world{'WORLD_SHARED'} or $$world{'INSIDE'}
1759 0 0 0 $dont_touch_main || $$world{'TRACK_VARS_DEF'}
1770 0 1 0 $$this{'INSIDE'} or not $WORLDS_LINKS{$this}
1789 0 0 1 $_[0]{'INSIDE'} || $Safe::World::NOW == $_[0]
1800 0 0 0 $$this{'INSIDE'} || $Safe::World::NOW == $this
1819 0 0 0 !($symb =~ /[^\w:]/) || $symb =~ /^\W\w?$/
1843 0 0 0 $$this{'TIESTDERR'}{'LAST_ERROR'} eq $_[0] or $_[0] =~ /#CORE::GLOBAL::exit#/
2102 0 0 1 $$this{'CLEANNED'} or $$this{'NO_CLEAN'}
0 0 1 $$this{'CLEANNED'} or $$this{'NO_CLEAN'} or $Safe::World::NOW == $this
2187 5 0 8 $symb =~ /::$/ or $symb =~ /[^\w:]/
0 0 8 $symb =~ /::$/ or $symb =~ /[^\w:]/ or $symb =~ /^[1-9\.]/
0 0 8 $symb =~ /::$/ or $symb =~ /[^\w:]/ or $symb =~ /^[1-9\.]/ or $donot_clean and $$donot_clean{$symb}