File Coverage

blib/lib/Test/Exec.pm
Criterion Covered Total %
statement 21 21 100.0
branch n/a
condition n/a
subroutine 8 8 100.0
pod 1 1 100.0
total 30 30 100.0


line stmt bran cond sub pod time code
1             package Test::Exec;
2              
3 4     4   355179 use strict;
  4         6  
  4         95  
4 4     4   13 use warnings;
  4         7  
  4         92  
5 4     4   1562 use Return::MultiLevel qw( with_return );
  4         11286  
  4         180  
6 4     4   21 use base 'Exporter';
  4         3  
  4         424  
7              
8             # ABSTRACT: Test that some code calls exec without terminating testing
9             our $VERSION = '0.03'; # VERSION
10              
11              
12             our @EXPORT = qw( exec_arrayref );
13              
14             our $exec_handler = sub {
15             CORE::exec(@_);
16             };
17             BEGIN {
18 4     4   390 *CORE::GLOBAL::exec = sub { $exec_handler->(@_) };
  6     6   25  
19             }
20              
21              
22             sub exec_arrayref(&)
23             {
24 8     8 1 6338 my($code) = @_;
25             return with_return {
26 8     8   353 my($return) = @_;
27 8         17 local $exec_handler = sub { $return->([@_]) };
  6         17  
28 8         18 $code->();
29 2         16 undef;
30 8         35 };
31             }
32              
33             1;
34              
35             __END__