Branch Coverage

blib/lib/CGI/Session.pm
Criterion Covered Total %
branch 116 170 68.2


line true false branch
20 23 6 unless @args
24 0 6 if ($arg eq '-ip_match')
35 1 37 if (ref $class) { }
62 6 31 unless (defined $self)
68 27 5 unless ($$dataref{'_SESSION_ID'})
81 0 27 unless (defined $id)
105 139 8 defined $_[0]->dataref ? :
108 6 0 defined $_[0]->dataref ? :
111 6 0 defined $_[0]->dataref ? :
115 22 36 if defined $$self{'_OBJECTS'}{'driver'}
117 0 36 unless defined($$self{'_OBJECTS'}{'driver'} = $pm->new($$self{'_DRIVER_ARGS'}))
124 10 34 if defined $$self{'_OBJECTS'}{'serializer'}
131 0 27 if defined $$self{'_OBJECTS'}{'id'}
146 0 31 unless $dsn_str
158 9 20 if ($$self{'_QUERY'})
172 52 3 if (ref $self)
173 52 0 unless (defined $name)
179 1 2 if defined $name
196 0 86 unless @_
203 0 35 unless @_
225 16 47 unless $self->id
228 11 36 if not defined $$self{'_STATUS'} or $$self{'_STATUS'} == 1
230 7 29 if ($self->_test_status(2) and $self->_test_status(8))
238 6 23 if ($self->_test_status(8))
239 0 6 unless defined $driver->remove($self->id)
246 22 1 if ($self->_test_status(6))
248 0 22 unless (defined $datastr)
251 0 22 unless defined $driver->store($self->id, $datastr)
264 0 102 if ($self->_test_status(8))
270 5 97 if (@args == 0) { }
70 27 elsif (@args == 1) { }
285 6 21 if (defined $name and defined $value)
286 0 6 if ($name =~ /^_SESSION_/)
297 4 17 if defined $args{'-name'}
302 17 0 if (@args % 2 == 0)
306 0 25 if ($name =~ /^_SESSION_/)
340 0 2 if ($self->is_expired) { }
0 2 elsif (my $t = $self->expire) { }
364 0 0 unless my(@values) = $query->param($p)
365 0 0 if (@values > 1) { }
393 0 0 if (defined $params) { }
394 0 0 unless ref $params
412 0 1 if (@_ == 1) { }
420 0 1 unless ($coderef and ref $coderef and ref $coderef eq 'CODE')
425 0 1 if ($dsn)
432 0 1 if (my $errmsg = $@)
437 0 1 unless ($driver_obj)
447 1 0 unless ($session)
453 0 1 unless defined $driver_obj->traverse($driver_coderef)
635 1 49 if ref $class
636 0 49 if @_ > 5
662 8 41 if (@_ == 1) { }
32 9 elsif (@_ > 1) { }
673 0 32 if (ref $read_only and ref $read_only eq 'HASH')
677 0 0 if ($$params{'name'})
684 1 31 if (defined $read_only and $read_only != '1')
688 27 4 if (defined $dsn)
695 31 0 if defined $dsn_args
702 1 47 if $class->errstr
704 25 22 unless (defined $$self{'_CLAIMED_ID'})
709 0 25 if (my $errmsg = $@)
715 23 24 unless $$self{'_CLAIMED_ID'}
720 0 24 unless (defined $raw_data)
725 9 15 unless $raw_data
729 8 7 unless (defined $$self{'_DATA'})
734 0 7 unless (defined $$self{'_DATA'} and ref $$self{'_DATA'} and ref $$self{'_DATA'} eq 'HASH' and defined $$self{'_DATA'}{'_SESSION_ID'})
741 3 4 if ($$self{'_DATA'}{'_SESSION_ETIME'})
742 1 2 if ($$self{'_DATA'}{'_SESSION_ATIME'} + $$self{'_DATA'}{'_SESSION_ETIME'} <= time)
752 0 6 if ($$self{'_DATA'}{'_SESSION_EXPIRE_LIST'})
754 0 0 if ($$self{'_DATA'}{'_SESSION_ATIME'} + $max_exp_interval <= time)
759 0 6 if @expired_params
763 6 0 unless (defined $read_only)
765 0 6 if ($CGI::Session::IP_MATCH)
766 0 0 unless ($self->ip_matches)
785 5 34 if (ref $query_or_sid) { }
806 99 45 unless (defined $mod_name)
809 144 0 if ($mod_name =~ /^(\w+)$/) { }
820 0 144 if ($@)
972 25 16 if (not @_) { }
14 2 elsif (@_ == 1) { }
979 1 13 if (defined $time and $time =~ /^\d$/ and $time == 0) { }
993 1 1 if ($time =~ /^\d$/ and $time == 0) { }
1019 0 23 unless defined $str
1020 4 19 if $str =~ /^[-+]?\d+$/
1033 0 19 unless (defined $koef and defined $d)