File Coverage

lib/Rex/Test/Base/has_stat.pm
Criterion Covered Total %
statement 17 41 41.4
branch 0 14 0.0
condition 0 3 0.0
subroutine 6 8 75.0
pod 1 2 50.0
total 24 68 35.2


line stmt bran cond sub pod time code
1             #
2             # (c) Robert Abraham
3             #
4              
5             package Rex::Test::Base::has_stat;
6              
7 1     1   14 use v5.12.5;
  1         151  
8 1     1   6 use warnings;
  1         2  
  1         53  
9              
10             our $VERSION = '1.14.2.2'; # TRIAL VERSION
11              
12 1     1   8 use Rex -base;
  1         2  
  1         7  
13 1     1   9 use base qw(Rex::Test::Base);
  1         3  
  1         37  
14 1     1   6 use Rex::Commands::Fs;
  1         2  
  1         12  
15 1     1   10 use Rex::Commands::User;
  1         2  
  1         12  
16              
17             sub new {
18 0     0 1   my $that = shift;
19 0   0       my $proto = ref($that) || $that;
20 0           my $self = {@_};
21              
22 0           bless( $self, $proto );
23              
24 0           my ( $pkg, $file ) = caller(0);
25              
26 0           return $self;
27             }
28              
29             sub run_test {
30 0     0 0   my ( $self, $path, $stats ) = @_;
31              
32 0           my %stat;
33 0           eval { %stat = stat $path; };
  0            
34              
35 0 0         if ($@) {
36 0           $self->ok( 0, "has_stat: cannot stat $path." );
37 0           $self->diag($@);
38 0           return;
39             }
40              
41 0 0         if ( defined( $stats->{'owner'} ) ) {
42 0           my $uid = get_uid( $stats->{'owner'} );
43 0 0         my $result = defined $uid ? $uid == $stat{'uid'} : 0;
44              
45 0           $self->ok( $result, "Owner of $path is $stats->{'owner'}" );
46 0 0         $self->diag("has_stat: get_uid failed for $stats->{'owner'}.")
47             unless defined $uid;
48             }
49              
50 0 0         if ( defined( $stats->{'group'} ) ) {
51 0           my $gid = get_gid( $stats->{'group'} );
52 0 0         my $result = defined $gid ? $gid == $stat{'gid'} : 0;
53              
54 0           $self->ok( $result, "Group of $path is $stats->{'group'}" );
55 0 0         $self->diag("has_stat: get_gid failed for $stats->{'group'}.")
56             unless defined $gid;
57             }
58             }
59              
60             1;