Condition Coverage

blib/lib/Sys/Export/Unix/WriteFS.pm
Criterion Covered Total %
condition 32 118 27.1


and 3 conditions

line !l l&&!r l&&r condition
19 6 0 0 @_ == 1 && &isa_hash($_[0])
130 0 0 0 defined $file->{'uid'} and $file->{'uid'} != $old->{'uid'}
0 0 0 defined $file->{'gid'} and $file->{'gid'} != $old->{'gid'}
146 0 0 0 defined $file->{'size'} and $file->{'size'} != $old->{'size'}
166 0 0 0 defined $file->{'rdev_major'} and defined $file->{'rdev_minor'}
170 0 0 0 $file->{'rdev_major'} == $maj && $file->{'rdev_minor'} == $min
190 2 0 3 defined $file->{'dev'} and defined $file->{'ino'}
195 3 0 2 builtin::blessed($file->{'data'}) and $file->{'data'}->can("abs_path")
3 2 0 builtin::blessed($file->{'data'}) and $file->{'data'}->can("abs_path") and substr($file->{'data'}->abs_path // "", 0, length $self->tmp) eq $self->tmp
230 0 0 1 defined $file->{'rdev_major'} && defined $file->{'rdev_minor'}
0 1 0 defined $file->{'rdev'} and not defined $file->{'rdev_major'} && defined $file->{'rdev_minor'}
273 5 15 0 defined $stat->{'uid'} && $stat->{'uid'} != $uid
274 5 15 0 defined $stat->{'gid'} && $stat->{'gid'} != $gid
277 0 0 0 $change_uid and $> == 0
278 0 0 0 $change_gid and $) == 0 || grep($stat->{'gid'}, split(/ /u, $), 0))
287 5 9 6 not S_ISLNK($mode) and ($mode & 4095) != ($stat->{'mode'} & 4095)
290 0 0 1 $stat->{'mode'} & 146 && $stat->{'mode'} & 73
5 1 0 S_ISDIR($mode) and not $stat->{'mode'} & 146 && $stat->{'mode'} & 73
299 5 15 0 not S_ISLNK($mode) and defined $stat->{'mtime'} || defined $stat->{'atime'}

or 2 conditions

line l !l condition
69 2 2 $self->{'link_map'} //= {}
84 0 0 $self->on_collision // "croak"
92 0 0 $action // ""
122 0 0 $_mode_name{$mode & S_IFMT()} // "(unknown)"
195 2 0 $file->{'data'}->abs_path // ""

or 3 conditions

line l !l&&r !l&&!r condition
30 0 6 0 $attrs{'tmp'} //= do { my $tmp = "File::Temp"->newdir; my($tmp_dev) = stat "$tmp/"; my($dst_dev) = stat $attrs{'dst'}; $tmp = "File::Temp"->newdir("DIR", $attrs{'dst_abs'}) if $tmp_dev != $dst_dev; $tmp }
62 0 0 0 $_valid_on_collision{$val} // croak("Invalid 'on_collision' value '${val}'")
79 21 0 0 $file->{'mode'} // croak("attribute 'mode' is required, for '$file->{'name'}'")
92 0 0 0 $_valid_on_collision{$action // ""} // croak("Unknown on_collision action '${action}'")
107 0 1 1 S_ISBLK($mode) || S_ISCHR($mode)
0 0 0 $file->{'src_path'} // $file->{'name'}
130 0 0 0 defined $file->{'uid'} and $file->{'uid'} != $old->{'uid'} or defined $file->{'gid'} and $file->{'gid'} != $old->{'gid'}
142 0 0 0 S_ISBLK($file->{'mode'}) or S_ISCHR($file->{'mode'})
146 0 0 0 defined $file->{'size'} and $file->{'size'} != $old->{'size'} or not _contents_same($file, $dst_abs)
213 8 0 0 mkdir $dst_abs or croak("mkdir($dst_abs): $!")
232 0 0 0 $file->{'rdev_major'} //= $major
233 0 0 0 $file->{'rdev_minor'} //= $minor
275 0 0 20 $change_uid or $change_gid
278 0 0 0 $) == 0 || grep($stat->{'gid'}, split(/ /u, $), 0))
280 0 0 0 POSIX::lchown($uid, $gid, $abs_path) or croak("lchown($uid, $gid, $abs_path): $!")
0 0 0 $uid >= 0 or $gid >= 0
299 10 0 5 defined $stat->{'mtime'} || defined $stat->{'atime'}