Condition Coverage

blib/lib/Sys/Export/Unix/WriteFS.pm
Criterion Covered Total %
condition 29 111 26.1


and 3 conditions

line !l l&&!r l&&r condition
18 5 0 0 @_ == 1 && &isa_hash($_[0])
76 0 0 0 $action eq "ignore_if_same" and $self->_croak_if_different($file, \%old)
111 0 0 0 defined $file->{'uid'} and $file->{'uid'} != $old->{'uid'}
0 0 0 defined $file->{'gid'} and $file->{'gid'} != $old->{'gid'}
127 0 0 0 defined $file->{'size'} and $file->{'size'} != $old->{'size'}
149 0 0 0 defined $file->{'rdev_major'} and defined $file->{'rdev_minor'}
153 0 0 0 $file->{'rdev_major'} == $maj && $file->{'rdev_minor'} == $min
174 2 0 3 defined $file->{'dev'} and defined $file->{'ino'}
213 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'}
256 5 15 0 defined $stat->{'uid'} && $stat->{'uid'} != $uid
257 5 15 0 defined $stat->{'gid'} && $stat->{'gid'} != $gid
260 0 0 0 $change_uid and $> == 0
261 0 0 0 $change_gid and $) == 0 || grep($stat->{'gid'}, split(/ /u, $), 0))
270 5 9 6 not S_ISLNK($mode) and ($mode & 4095) != ($stat->{'mode'} & 4095)
273 0 0 1 $stat->{'mode'} & 146 && $stat->{'mode'} & 73
5 1 0 S_ISDIR($mode) and not $stat->{'mode'} & 146 && $stat->{'mode'} & 73
282 5 15 0 not S_ISLNK($mode) and defined $stat->{'mtime'} || defined $stat->{'atime'}

or 2 conditions

line l !l condition
56 2 2 $self->{'link_map'} //= {}
72 0 0 $self->on_collision // "ignore_if_same"
103 0 0 $_mode_name{$mode & S_IFMT()} // "(unknown)"

or 3 conditions

line l !l&&r !l&&!r condition
29 0 5 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 }
66 21 0 0 $file->{'mode'} // croak("attribute 'mode' is required, for '$file->{'name'}'")
88 0 1 1 S_ISBLK($mode) || S_ISCHR($mode)
0 0 0 $file->{'src_path'} // $file->{'data_path'}
0 0 0 ($file->{'src_path'} // $file->{'data_path'}) // $file->{'name'}
111 0 0 0 defined $file->{'uid'} and $file->{'uid'} != $old->{'uid'} or defined $file->{'gid'} and $file->{'gid'} != $old->{'gid'}
123 0 0 0 S_ISBLK($file->{'mode'}) or S_ISCHR($file->{'mode'})
127 0 0 0 defined $file->{'size'} and $file->{'size'} != $old->{'size'} or not _contents_same($file, $dst_abs)
177 2 3 0 not defined $tmp or substr($tmp, 0, length $self->tmp) ne $self->tmp
196 8 0 0 mkdir $dst_abs or croak("mkdir($dst_abs): $!")
215 0 0 0 $file->{'rdev_major'} //= $major
216 0 0 0 $file->{'rdev_minor'} //= $minor
258 0 0 20 $change_uid or $change_gid
261 0 0 0 $) == 0 || grep($stat->{'gid'}, split(/ /u, $), 0))
263 0 0 0 POSIX::lchown($uid, $gid, $abs_path) or croak("lchown($uid, $gid, $abs_path): $!")
0 0 0 $uid >= 0 or $gid >= 0
282 10 0 5 defined $stat->{'mtime'} || defined $stat->{'atime'}