1#!/usr/bin/perl -w 2 3# What happens when a subtest dies? 4 5use lib 't/lib'; 6 7use strict; 8use Test::Builder; 9use Test::Builder::NoOutput; 10 11my $Test = Test::Builder->new; 12 13{ 14 my $tb = Test::Builder::NoOutput->create; 15 16 $tb->ok(1); 17 18 $Test->ok( !eval { 19 $tb->subtest("death" => sub { 20 die "Death in the subtest"; 21 }); 22 1; 23 }); 24 $Test->like( $@, qr/^Death in the subtest at \Q$0\E line /); 25 26 $Test->ok( !$tb->parent, "the parent object is restored after a die" ); 27} 28 29 30$Test->done_testing(); 31