Condition Coverage

blib/lib/Net/OpenSSH.pm
Criterion Covered Total %
condition 80 433 18.4


and 2 conditions

line l !l condition
151 42 24 defined $_ and return $_

and 3 conditions

line !l l&&!r l&&r condition
126 3 0 0 $debug and $debug & 1
237 3 0 0 not defined $opts{'host'} and defined $external_master
281 3 0 0 $forward_agent and $passphrase
318 3 0 0 defined $default_ssh_opts and not ref $default_ssh_opts
3 0 0 defined $default_ssh_opts and not ref $default_ssh_opts and $default_ssh_opts =~ /^-\w\s+\S/
477 0 2 0 defined $sizeof_sun_path and length $ctl_path > $sizeof_sun_path
483 2 0 0 $debug and $debug & 2
485 2 0 0 $strict_mode and not $self->_is_secure_path($ctl_dir)
530 0 17 0 ref $self and $self->{'_expand_vars'}
554 0 0 0 $debug and $debug & 2
558 0 0 0 $debug and $debug & 2
559 0 0 0 $uid == $> || $uid == 0 and ($mode & 18) == 0 || $mode & 512
560 0 0 0 defined $home and $home eq $dir
568 0 0 0 $debug and $debug & 4
581 2 0 0 $debug and $debug & 4
586 0 0 0 $debug and $debug & 4
599 2 0 0 $debug and $debug & 8
621 0 0 0 $debug and $debug & 8
647 0 0 0 $debug and $debug & 8
670 0 0 0 $debug and $debug & 8
690 2 0 0 defined $h and $h ne "IGNORE"
697 0 0 0 $debug and $debug & 32
710 0 0 0 $debug and $debug & 32
714 0 0 0 $debug and $debug & 32
715 0 0 0 $deceased < 0 and $! == 10
718 0 0 0 $debug and $debug & 32
729 0 0 0 $debug and $debug & 32
776 3 0 1 $pid and $self->{'_perl_pid'} == $$
3 0 1 $pid and $self->{'_perl_pid'} == $$ and $self->{'_thread_generation'} == $thread_generation
785 0 0 0 not $async and $self->{'_master_state'} == "_STATE_RUNNING"
0 0 0 not $async and $self->{'_master_state'} == "_STATE_RUNNING" and $send_ctl || $self->_my_master_pid
790 0 0 0 $debug and $debug & 32
799 0 0 6 defined $fn and $fn >= 0
831 0 0 2 defined $timeout and $self->{'_kill_ssh_on_timeout'}
845 0 0 0 $debug and $debug & 16
853 0 0 0 $debug and $debug & 16
862 2 0 0 $debug and $debug & 16
983 1 0 0 $debug and $debug & 512
1049 2 0 0 $debug and $debug & 4
1050 2 0 0 $state == $self->{'_master_state'} and $state != "_STATE_KILLING"
2 0 0 $state == $self->{'_master_state'} and $state != "_STATE_KILLING" and $state != "_STATE_GONE"
1065 1 0 0 $deceased < 0 and $! == 10
1066 0 0 0 $debug and $debug & 4
1077 0 0 0 $debug and $debug & 4
1083 0 0 0 $self->_master_jump_state(4, $async) && $self->_master_check($async)
1117 1 0 0 $self->{'_master_setpgrp'} and not $async
1 0 0 $self->{'_master_setpgrp'} and not $async and not $self->{'_batch_mode'}
0 0 0 $self->{'_master_setpgrp'} and not $async and not $self->{'_batch_mode'} and not $self->{'_external_master'}
1132 1 0 0 $mpty and $self->{'_master_state'} == 2 || $self->{'_master_state'} == 3
1148 0 0 0 $debug and $debug & 4
1151 15 0 0 $debug and $debug & 4
1153 0 15 0 defined $timeout and time - $start_time > $timeout
1159 14 0 0 $deceased < 0 and $! == 10
1167 14 0 0 $self->{'_login_handler'} and $self->{'_master_state'} == "_STATE_LOGIN"
1209 0 0 0 length $passwd_prompt and $self->{'_wfm_bout'} =~ /^(.*$passwd_prompt)\s*$/s
1211 0 0 0 $debug and $debug & 4
1218 0 0 0 $debug and $debug & 4
1231 0 0 0 $debug and $debug & 4
1290 0 3 0 ref $self and !defined($remote_shell) || $remote_shell eq $self->{'_remote_shell'}
1315 0 0 0 ref $_ eq "REF" and ref $$_ eq "SCALAR"
1333 0 0 0 $opts->{'stdout_discard'} and $opts->{'stderr_discard'} || $opts->{'stderr_to_stdout'}
1400 0 0 0 $debug and $debug & 16
1405 0 0 0 $debug and $debug & 16
1489 0 3 0 not defined $opts{'quote_args_extended'} and $cmd eq "ssh"
1525 3 0 0 $stdout_pty and not $stdin_pty
1633 3 0 0 $debug and $debug & 16
1695 0 0 0 $debug and $debug & 16
1716 0 0 0 $debug and $debug & 16
1728 3 2 0 defined $encoding and $encoding ne "bytes"
1743 0 0 0 defined $enc and @_
1795 2 0 0 $cin and not $has_input
0 2 0 not $cin and $has_input
1804 2 0 0 $enc and @data
1816 2 0 0 $debug and $debug & 64
1840 4 0 0 $debug and $debug & 64
1846 0 0 4 $cout and vec $rv1, $fnoout, 1
1849 4 0 0 $debug and $debug & 64
1851 0 0 0 $read and $debug & 128
1859 4 0 0 $cerr and vec $rv1, $fnoerr, 1
1861 0 0 0 $debug and $debug & 64
1868 4 0 0 $cin and vec $wv1, $fnoin, 1
1870 0 0 0 $debug and $debug & 64
1872 0 0 0 $written and $debug & 128
1878 0 0 0 defined $data[0] and length $data[0]
1892 0 0 0 $n < 0 and grep(($! == $_), @retriable)
1900 2 0 0 $cin and not $keep_in_open
1909 2 0 0 $debug and $debug & 64
2049 0 0 0 $stdin_keep_open and not defined $stdin_data
2111 0 0 0 $stdin_keep_open and not defined $stdin_data
2144 0 0 0 $stdin_keep_open and not defined $stdin_data
2396 0 0 0 $self->{'_error'} == 5 and $?
2423 0 0 0 defined $fs_encoding and $fs_encoding eq "bytes"
2482 0 0 0 defined $hostname && length $hostname
2506 1 0 0 $debug and $debug & 2

or 2 conditions

line l !l condition
120 1 2 shift() || 0
702 0 0 $self->{'_master_kill_count'} ||= 0
914 2 0 $self->{'_timeout'} || 90
1487 3 0 delete $opts{'_cmd'} || 'ssh'
1816 0 0 $cin || 0
0 0 $cout || 0
0 0 $cerr || 0
1840 0 0 $cin || 0
0 0 $cout || 0
0 0 $cerr || 0
2236 0 0 delete $opts{'glob_flags'} || 0

or 3 conditions

line l !l&&r !l&&!r condition
314 0 0 3 $login_handler or defined $passwd
559 0 0 0 $uid == $> || $uid == 0
0 0 0 ($mode & 18) == 0 || $mode & 512
605 0 0 0 $self->{'_scp_cmd'} ||= do { my $scp = $self->{'_ssh_cmd'}; croak("scp command name not set") unless $scp =~ s/ssh$/scp/i; $scp }
700 0 0 0 $self->{'_master_kill_start'} ||= $now
701 0 0 0 $self->{'_master_kill_last'} ||= $now
704 0 0 0 $async or __has_sigchld_handle()
715 0 0 0 $deceased == $pid or $deceased < 0 and $! == 10
785 0 0 0 $send_ctl || $self->_my_master_pid
925 0 0 2 $self->{'_master_pty_force'} or defined $self->{'_login_handler'}
1022 0 0 0 not $pid or $1 == $pid
1065 0 0 1 $deceased == $pid or $deceased < 0 and $! == 10
1091 0 0 0 defined $self->{'_passwd'} or $self->{'_login_handler'}
1132 0 0 0 $self->{'_master_state'} == 2 || $self->{'_master_state'} == 3
1159 1 0 14 $deceased == $pid or $deceased < 0 and $! == 10
1290 3 0 0 !defined($remote_shell) || $remote_shell eq $self->{'_remote_shell'}
1291 0 3 0 $self->{'remote_quoter'} ||= "Net::OpenSSH::ShellQuoter"->quoter($self->{'_remote_shell'})
1333 0 0 0 $opts->{'stderr_discard'} || $opts->{'stderr_to_stdout'}
1508 3 0 0 $stdin_discard = delete $opts{'stdin_discard'} or $stdin_pipe = delete $opts{'stdin_pipe'}
3 0 0 $stdin_discard = delete $opts{'stdin_discard'} or $stdin_pipe = delete $opts{'stdin_pipe'} or $stdin_fh = delete $opts{'stdin_fh'}
0 0 0 $stdin_discard = delete $opts{'stdin_discard'} or $stdin_pipe = delete $opts{'stdin_pipe'} or $stdin_fh = delete $opts{'stdin_fh'} or $stdin_file = delete $opts{'stdin_file'}
1523 0 0 0 $tunnel or $stdout_pty = delete $opts{'stdout_pty'}
0 3 0 $stdout_discard = delete $opts{'stdout_discard'} or $stdout_pipe = delete $opts{'stdout_pipe'}
3 0 0 $stdout_discard = delete $opts{'stdout_discard'} or $stdout_pipe = delete $opts{'stdout_pipe'} or $stdout_fh = delete $opts{'stdout_fh'}
3 0 0 $stdout_discard = delete $opts{'stdout_discard'} or $stdout_pipe = delete $opts{'stdout_pipe'} or $stdout_fh = delete $opts{'stdout_fh'} or $stdout_file = delete $opts{'stdout_file'}
1533 0 0 3 $stderr_discard = delete $opts{'stderr_discard'} or $stderr_pipe = delete $opts{'stderr_pipe'}
0 0 3 $stderr_discard = delete $opts{'stderr_discard'} or $stderr_pipe = delete $opts{'stderr_pipe'} or $stderr_fh = delete $opts{'stderr_fh'}
0 3 0 $stderr_discard = delete $opts{'stderr_discard'} or $stderr_pipe = delete $opts{'stderr_pipe'} or $stderr_fh = delete $opts{'stderr_fh'} or $stderr_to_stdout = delete $opts{'stderr_to_stdout'}
1645 1 0 0 open $rin, "<", "/dev/null" or POSIX::_exit(255)
1646 0 0 0 open $wout, ">", "/dev/null" or POSIX::_exit(255)
1647 0 0 0 open $werr, ">", "/dev/null" or POSIX::_exit(255)
1665 0 1 0 $rin_fd == 0 or POSIX::dup2($rin_fd, 0)
1668 0 1 0 $wout_fd == 1 or POSIX::dup2($wout_fd, 1)
1671 0 0 0 $werr_fd == 2 or POSIX::dup2($werr_fd, 2)
1815 2 0 2 $cout or $cerr
2 0 2 $cout or $cerr or $cin
1820 2 0 0 $cout or $cerr
1853 2 0 2 $read or grep(($! == $_), @retriable)
1862 0 0 0 $read or grep(($! == $_), @retriable)
2359 0 0 0 defined $quiet or $verbose
2482 0 0 0 not defined $hostname && length $hostname or $hostname =~ /^localhost\b/

xor 4 conditions

line l&&r l&&!r !l&&r !l&&!r condition
1653 0 0 0 0 $pid1 xor $stdinout_dpipe_make_parent