Add built local::lib
[catagits/Gitalist.git] / local-lib5 / lib / perl5 / Test / NoWarnings / Warning.pm
CommitLineData
3fea05b9 1use strict;
2
3package Test::NoWarnings::Warning;
4
5use Carp;
6
7my $has_st = eval "require Devel::StackTrace" || 0;
8
9sub new
10{
11 my $pkg = shift;
12
13 my %args = @_;
14
15 my $self = bless \%args, $pkg;
16
17 return $self;
18}
19
20sub getTrace
21{
22 my $self = shift;
23
24 return $self->{Trace};
25}
26
27sub fillTrace
28{
29 my $self = shift;
30 $self->{Trace} = Devel::StackTrace->new(
31 ignore_class => [__PACKAGE__, @_],
32 ) if $has_st;
33}
34
35sub getCarp
36{
37 my $self = shift;
38
39 return $self->{Carp};
40}
41
42sub fillCarp
43{
44 my $self = shift;
45
46 my $msg = shift;
47
48 $Carp::Internal{__PACKAGE__.""}++;
49 local $Carp::CarpLevel = $Carp::CarpLevel + 1;
50 $self->{Carp} = Carp::longmess($msg);
51 $Carp::Internal{__PACKAGE__.""}--;
52}
53
54sub getMessage
55{
56 my $self = shift;
57
58 return $self->{Message};
59}
60
61sub setMessage
62{
63 my $self = shift;
64
65 $self->{Message} = shift;
66}
67
68sub fillTest
69{
70 my $self = shift;
71
72 my $builder = shift;
73
74 my $prev_test = $builder->current_test;
75 $self->{Test} = $prev_test;
76
77 my @tests = $builder->details;
78 my $prev_test_name = $prev_test ? $tests[$prev_test - 1]->{name} : "";
79 $self->{TestName} = $prev_test_name;
80}
81
82sub getTest
83{
84 my $self = shift;
85
86 return $self->{Test};
87}
88
89sub getTestName
90{
91 my $self = shift;
92
93 return $self->{TestName};
94}
95
96sub toString
97{
98 my $self = shift;
99
100 return <<EOM;
101 Previous test $self->{Test} '$self->{TestName}'
102 $self->{Carp}
103EOM
104}
105
1061;