Branch Coverage

lib/Rex/Commands/File.pm
Criterion Covered Total %
branch 130 214 60.7


line true false branch
199 3 16 if (ref $params[0] eq 'HASH') { }
206 19 0 unless (exists $param->{'server'})
211 16 3 if (ref $file and ref $file eq 'SCALAR') { }
217 1 2 unless ($file =~ m[^/]u or $file =~ /^\@/u)
234 0 3 if (-f "$file." . "Rex::Config"->get_environment)
238 1 2 if (-f $file) { }
2 0 elsif ($file =~ /^\@/u) { }
246 2 0 unless (-f $file_path)
248 0 2 if ($mod_name and -f "$file_path/$mod_name.pm") { }
0 2 elsif (-f "$file_path/__module__.pm") { }
0 2 elsif (-f "$file_path/Module.pm") { }
2 0 elsif (-f $caller[1]) { }
0 0 elsif ($caller[1] =~ m[^/loader/[^/]+/__Rexfile__.pm$]u) { }
277 13 6 if (not exists $param->{'__no_sys_info__'}) { }
288 25 1 unless (exists $template_vars{$key})
293 4 15 if (Rex::CMDB::cmdb_active() and "Rex::Config"->get_register_cmdb_template)
296 26 2 unless (exists $template_vars{$key})
308 0 13 unless $param
311 0 13 if (Rex::get_cache()->valid('system_information_info')) { }
436 0 53 if (ref $file eq "ARRAY")
452 2 51 if (exists $option->{'ensure'} and $option->{'ensure'} eq "directory")
456 3 50 if (exists $option->{'source'} and not $is_directory)
465 4 49 if ($option->{'ensure'} ne "absent" and $fs->is_symlink($file))
475 3 50 if (@new_args)
480 0 53 unless (eval { do { my(@new_args) = Rex::Hook::run_hook("file", "before", $file, %{$option;}); if (@new_args) { ($file, @options) = @new_args; $option = {@options}; } ; 1 } })
488 3 50 $option->{'on_change'} && !$is_directory ? :
496 0 53 if (exists $option->{'no_overwrite'} and $option->{'no_overwrite'} and $fs->is_file($file)) { }
42 22 elsif (exists $option->{'content'} || exists $option->{'source'} and not $is_directory) { }
520 39 3 if (exists $option->{'content'}) { }
3 0 elsif (exists $option->{'source'}) { }
539 4 38 if ($new_md5 and $old_md5 and $new_md5 eq $old_md5) { }
564 0 38 if (Rex::is_sudo())
569 0 0 if (exists $current_options->{'user'})
575 0 38 if Rex::is_sudo()
593 53 0 if (exists $option->{'ensure'})
594 49 4 if ($option->{'ensure'} eq 'present') { }
2 2 elsif ($option->{'ensure'} eq 'absent') { }
2 0 elsif ($option->{'ensure'} eq 'directory') { }
595 1 48 if (not $fs->is_file($file)) { }
10 38 elsif (not $__ret->{'changed'}) { }
631 2 0 if ($fs->is_file($file)) { }
0 0 elsif ($fs->is_dir($file)) { }
660 0 2 if (exists $option->{'owner'})
663 0 2 if (exists $option->{'group'})
666 0 2 if (exists $option->{'mode'})
674 9 44 if (not exists $option->{'content'} || exists $option->{'source'} and $option->{'ensure'} ne "absent")
680 0 2 unless ($fs->is_file($file) or $is_directory)
691 0 0 if (exists $option->{'ensure'} and $option->{'ensure'} eq "directory")
707 51 2 if ($option->{'ensure'} ne "absent")
709 2 49 if ($need_md5)
714 28 23 if (exists $option->{'mode'})
718 25 26 if (exists $option->{'group'})
722 25 26 if (exists $option->{'owner'})
728 15 36 if (%stat_old and %stat_new and $stat_old{'mode'} ne $stat_new{'mode'})
736 0 51 if (%stat_old and %stat_new and $stat_old{'uid'} ne $stat_new{'uid'})
743 0 51 if (%stat_old and %stat_new and $stat_old{'gid'} ne $stat_new{'gid'})
754 2 51 if ($need_md5)
755 0 0 unless ($old_md5 and $new_md5 and $old_md5 eq $new_md5)
776 39 14 if ($__ret->{'changed'} == 1 and $on_change_done == 0) { }
12 2 elsif ($__ret->{'changed'} == 0) { }
801 5 39 $dirname eq '.' ? :
838 0 42 unless ($fh->open(">", $file))
858 0 1 unless ($fh->open(">>", $file))
896 0 137 unless ($fh->open("<", $file))
917 0 86 unless ($fh)
944 1 0 if (ref $_ ne "Regexp")
953 0 1 unless ($fs->is_file($file))
958 0 1 unless ($fs->is_writable($file))
975 1 0 if ($line =~ /$match/u)
992 1 0 if ($new_md5 ne $old_md5) { }
1031 0 0 if ($on_change)
1037 0 0 if ($on_change or $on_no_change)
1040 0 0 if ($old_md5 ne $new_md5) { }
1041 0 0 if $on_change
1044 0 0 if $on_no_change
1123 4 15 unless (exists $option->{'line'})
1127 10 5 if (exists $option->{'regexp'} and ref $option->{'regexp'} eq 'Regexp') { }
2 3 elsif (ref $option->{'regexp'} eq 'ARRAY') { }
1136 4 15 unless (eval { do { no warnings; $option = {@_}; unless (exists $option->{'line'}) { die; } ; $new_line = $option->{'line'}; if (exists $option->{'regexp'} and ref $option->{'regexp'} eq "Regexp") { @m = $option->{'regexp'}; } elsif (ref $option->{'regexp'} eq "ARRAY") { @m = @{$option->{'regexp'};}; } ; $on_change = $option->{'on_change'} || undef; $on_no_change = $option->{'on_no_change'} || undef; 1 } })
1144 5 3 if ($m[$i] eq $option->[0] and ref $m[$i + 1] eq "CODE")
1153 0 19 unless (defined $new_line)
1171 0 19 unless (eval { do { $content = [split(/\n/u, cat($file), 0)]; 1 } })
1175 5 14 unless (@m)
1182 0 144 if (ref $match ne "Regexp")
1185 9 135 if ($content->[$line] =~ /$match/u)
1187 6 3 if $action eq "append_if_no_such_line"
1194 6 13 if ($action eq 'append_if_no_such_line' and $found) { }
1198 10 3 unless $found
1208 3 16 if ($on_change or $on_no_change)
1209 1 2 if ($old_md5 and $new_md5 and $old_md5 ne $new_md5) { }
2 0 elsif ($on_no_change) { }
1210 1 0 if ($on_change)
1230 13 6 if ($old_md5 and $new_md5 and $old_md5 ne $new_md5) { }
1273 0 0 if ($option{'chdir'})
1277 0 0 if ($option{'to'})
1282 0 0 if ($option{'type'})
1292 0 0 if ($type eq 'tgz' or $file =~ /\.tar\.gz$/u or $file =~ /\.tgz$/u or $file =~ /\.tar\.Z$/u) { }
0 0 elsif ($type eq 'tbz' or $file =~ /\.tar\.bz2/u or $file =~ /\.tbz2/u) { }
0 0 elsif ($type eq 'tar' or $file =~ /\.(tar|box)/u) { }
0 0 elsif ($type eq 'zip' or $file =~ /\.(zip|war|jar)$/u) { }
0 0 elsif ($type eq 'gz' or $file =~ /\.gz$/u) { }
0 0 elsif ($type eq 'bz2' or $file =~ /\.bz2$/u) { }
1322 0 0 if ($option{'owner'})
1326 0 0 if ($option{'group'})
1330 0 0 if ($option{'mode'})
1361 0 11 if (ref $option[0]) { }
1373 1 10 if (exists $options->{'multiline'}) { }