Branch Coverage

blib/lib/FTN/Outbound/BSO.pm
Criterion Covered Total %
branch 31 204 15.2


line true false branch
128 0 2 if ref(my $class = shift())
131 0 2 unless @_
133 0 2 if @_ % 2
144 0 2 unless exists $option{'outbound_root'}
149 0 2 unless (-e $outbound_root_fs)
157 0 2 unless (-d _)
170 0 2 if (exists $option{'our_addr'} and $option{'our_addr'}) { }
173 0 0 if (ref $option{'our_addr'} and &Scalar::Util::blessed($option{'our_addr'}) and $option{'our_addr'}->isa('FTN::Addr')) { }
182 0 0 unless $self{'our_addr'} = 'FTN::Addr'->new($option{'our_addr'})
189 0 2 unless exists $option{'domain'} and $option{'domain'}
194 0 2 unless $option{'domain'} =~ /^[a-z\d_~-]{1,8}$/
198 0 2 unless exists $option{'zone'} and $option{'zone'}
205 0 2 unless $option{'zone'} =~ /^\d+$/ and 1 <= $option{'zone'} and $option{'zone'} <= 32767
212 2 0 if (exists $option{'domain_abbrev'} and defined $option{'domain_abbrev'} and ref $option{'domain_abbrev'} eq 'HASH') { }
219 0 2 unless exists $option{'domain_abbrev'}{$self{'domain'}}
227 0 2 if (exists $option{'reference_file_read_line_transform_sub'})
230 0 0 unless defined $option{'reference_file_read_line_transform_sub'} and 'CODE' eq ref $option{'reference_file_read_line_transform_sub'}
236 0 2 if (exists $option{'maximum_session_time'})
244 0 0 defined $option{'maximum_session_time'} ? :
0 0 unless defined $option{'maximum_session_time'} and $option{'maximum_session_time'} =~ /^\d+$/ and $option{'maximum_session_time'}
255 0 0 unless ref(my $self = shift())
271 0 0 if (exists $ext_netmail_flavour{$lc_ext}) { }
0 0 elsif (exists $ext_reference_file_flavour{$lc_ext}) { }
0 0 elsif (exists $ext_control_file{$lc_ext}) { }
277 0 0 if ($file_prop->{'size'} and exists $self->{'reference_file_read_line_transform_sub'})
292 0 0 $file_prop->{'mstat'} ? :
293 0 0 if ($ext_control_file{$lc_ext} eq 'busy' and exists $self->{'maximum_session_time'} and $self->{'maximum_session_time'} * 2 < $age) { }
305 0 0 unless unlink &Encode::encode('locale_fs', $file_prop->{'full_name'})
327 0 0 unless ref(my $self = shift())
332 0 0 unless -e $self->{'outbound_root_fs'}
338 0 0 unless -d _
347 0 0 unless opendir my $or_dh, $self->{'outbound_root_fs'}
354 0 0 if '.' eq substr($dz_out, 0, 1)
363 0 0 unless -d $dir_name_fs
369 0 0 unless $dz_out =~ /^($domain_abbr_re)(?:\.([1-7]?[0-9a-f]{3}))?$/i and $1 eq $self->{'domain_abbrev'}{$self->{'domain'}} || defined $2
375 0 0 defined $2 ? :
378 0 0 unless 1 <= $zone and $zone <= 32767
389 0 0 unless opendir my $dz_dh, $dir_name_fs
399 0 0 unless /^([0-9a-f]{4})([0-9a-f]{4})\.(.+)$/i
410 0 0 if (lc $ext eq 'pnt' and -d $full_name_fs) { }
0 0 elsif (-f $full_name_fs) { }
423 0 0 unless opendir my $p_dh, $full_name_fs
433 0 0 unless $file =~ /^([0-9a-f]{8})\.(.+)$/i
443 0 0 unless -f &Encode::encode('locale_fs', $full_name)
491 0 0 unless ref(my $self = shift())
494 0 0 unless exists $self->{'scanned'}
498 0 0 wantarray ? :
505 0 0 unless ref(my $self = shift())
509 0 0 unless defined $addr and ref $addr and &Scalar::Util::blessed($addr) and $addr->isa('FTN::Addr')
518 0 0 unless exists $self->{'domain_abbrev'}{$addr->domain}
532 0 0 unless ref(my $self = shift())
537 0 0 unless exists $self->{'scanned'}
545 0 0 if exists $self->{'scanned'}{$addr->domain} and exists $self->{'scanned'}{$addr->domain}{$addr->zone}
552 0 10 unless ref(my $self = shift())
560 0 10 unless exists $self->{'domain_abbrev'}{$domain}
566 4 6 unless $domain eq $self->{'domain'} and $zone == $self->{'zone'}
569 0 10 unless exists $self->{'scanned'}
571 10 0 if (exists $self->{'scanned'}{$domain} and exists $self->{'scanned'}{$domain}{$zone} and $domain ne $self->{'domain'} || $zone != $self->{'zone'} || grep((length $_ == length $best_match), keys %{$$self{'scanned'}{$domain}{$zone};})) { }
584 8 2 defined $t ? :
598 0 0 unless mkdir &Encode::encode('locale_fs', $dir_full_name)
614 0 6 unless ref(my $self = shift())
625 0 6 unless exists $self->{'domain_abbrev'}{$domain}
642 6 0 if (@dz_out_with_existing_points_dir) { }
644 5 1 unless (grep(($_ eq $dz_out), @dz_out_with_existing_points_dir))
650 5 0 defined $t ? :
655 1 5 unless exists $self->{'scanned'}{$domain}{$zone}{$dz_out}{$net}{$node}{'points_dir'}{$points_dir}
670 0 0 unless mkdir &Encode::encode('locale_fs', $dir_full_name)
700 0 0 unless ref(my $self = shift())
704 0 0 unless @_ and defined $_[0] and 'CODE' eq ref $_[0]
712 0 0 unless exists $self->{'scanned'}
723 0 0 if ($addr->point) { }
749 0 0 unless sysopen my $fh, $busy_name_fs, 193
755 0 0 unless flock $fh, 2
775 0 0 unless unlink $busy_name_fs
781 0 0 if ($@)
814 0 0 unless ref(my $self = shift())
822 0 0 unless @_
825 0 0 defined $_[0] ? :
0 0 unless defined $_[0] and grep(($_[0] eq $_), @flavoured, keys %control_file_extension)
835 0 0 $addr->point ? :
844 0 0 if ($flavoured) { }
845 0 0 unless @_
854 0 0 defined $flavour ? :
0 0 unless defined $flavour and exists $flavour_extension{$flavour}
858 0 0 $type eq $flavoured[0] ? :
865 0 0 if (@_)
866 0 0 unless defined $_[0] and 'CODE' eq ref $_[0]
875 0 0 unless exists $self->{'scanned'}
893 0 0 if (@dz_out_with_existing_file) { }
894 0 0 unless (grep(($dz_out eq $_), @dz_out_with_existing_file))
901 0 0 if $flavoured
908 0 0 $t ? :
914 0 0 if $flavoured
919 0 0 unless grep(($filename eq $_->{'name'}), @$r)
935 0 0 $addr->point ? :
939 0 0 if ($sub_ref)
944 0 0 if ($@)
955 0 0 if $flavoured
959 0 0 if defined $record_idx
965 0 0 if (-e &Encode::encode('locale_fs', $full_filename))
968 0 0 if $flavoured
986 0 0 if $type eq 'reference_file' and $file_prop{'size'} and exists $self->{'reference_file_read_line_transform_sub'}