8 use File::Temp qw( tempdir );
9 use Test::More tests => 7;
10 use lib qw( lib t/lib );
11 use ExtUtils::ParseXS;
12 use ExtUtils::ParseXS::Utilities qw(
19 my $self = bless({} => 'ExtUtils::ParseXS');
21 $self->{line_no} = [];
30 $self->{line_no} = [ 17 .. 20 ];
31 $self->{filename} = 'myfile1';
33 my $message = 'Warning: Ignoring duplicate alias';
35 my $stderr = PrimitiveCapture::capture_stderr(sub {
36 Warn( $self, $message);
39 qr/$message in $self->{filename}, line 20/,
40 "Got expected Warn output",
52 $self->{line_no} = [ 17 .. 20 ];
53 $self->{filename} = 'myfile2';
55 my $message = 'Warning: Ignoring duplicate alias';
56 my $stderr = PrimitiveCapture::capture_stderr(sub {
57 Warn( $self, $message);
60 qr/$message in $self->{filename}, line 19/,
61 "Got expected Warn output",
72 $self->{line_no} = [ 17 .. 21 ];
73 $self->{filename} = 'myfile1';
75 my $message = 'Warning: Ignoring duplicate alias';
76 my $stderr = PrimitiveCapture::capture_stderr(sub {
77 Warn( $self, $message);
80 qr/$message in $self->{filename}, line 17/,
81 "Got expected Warn output",
92 $self->{line_no} = [ 17 .. 20 ];
93 $self->{filename} = 'myfile1';
97 my $message = 'Error: Cannot parse function definition';
98 my $stderr = PrimitiveCapture::capture_stderr(sub {
99 blurt( $self, $message);
102 qr/$message in $self->{filename}, line 20/,
103 "Got expected blurt output",
105 is( $self->{errors}, 1, "Error count incremented correctly" );
109 skip "death() not testable as long as it contains hard-coded 'exit'", 1;
117 $self->{line_no} = [ 17 .. 20 ];
118 $self->{filename} = 'myfile1';
120 my $message = "Code is not inside a function";
122 my $stderr = PrimitiveCapture::capture_stderr(sub {
123 death( $self, $message);
126 qr/$message in $self->{filename}, line 20/,
127 "Got expected death output",
132 pass("Passed all tests in $0");