1package Test::NoWarnings::Warning; 2 3use 5.006; 4use strict; 5use warnings; 6use Carp (); 7 8use vars qw{$VERSION}; 9BEGIN { 10 $VERSION = '1.01'; 11} 12 13my $STACKTRACE = eval "require Devel::StackTrace" || 0; 14 15sub new { 16 my $class = shift; 17 bless { @_ }, $class; 18} 19 20sub getTrace { 21 my $self = shift; 22 return $self->{Trace}; 23} 24 25sub fillTrace { 26 my $self = shift; 27 $self->{Trace} = Devel::StackTrace->new( 28 ignore_class => [__PACKAGE__, @_], 29 ) if $STACKTRACE; 30} 31 32sub getCarp { 33 $_[0]->{Carp}; 34} 35 36sub fillCarp { 37 my $self = shift; 38 my $msg = shift; 39 $Carp::Internal{ __PACKAGE__ . "" }++; 40 local $Carp::CarpLevel = $Carp::CarpLevel + 1; 41 $self->{Carp} = Carp::longmess($msg); 42 $Carp::Internal{ __PACKAGE__ . "" }--; 43} 44 45sub getMessage { 46 $_[0]->{Message}; 47} 48 49sub setMessage { 50 $_[0]->{Message} = $_[1]; 51} 52 53sub fillTest { 54 my $self = shift; 55 my $builder = shift; 56 my $prev_test = $builder->current_test; 57 $self->{Test} = $prev_test; 58 my @tests = $builder->details; 59 my $prev_test_name = $prev_test ? $tests[$prev_test - 1]->{name} : ""; 60 $self->{TestName} = $prev_test_name; 61} 62 63sub getTest { 64 $_[0]->{Test}; 65} 66 67sub getTestName { 68 $_[0]->{TestName}; 69} 70 71sub toString { 72 my $self = shift; 73 return <<EOM; 74 Previous test $self->{Test} '$self->{TestName}' 75 $self->{Carp} 76EOM 77} 78 791; 80