1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
package PPI::Test::pragmas;
=head1 NAME
PPI::Test::pragmas -- standard complier/runtime setup for PPI tests
PPI modules do not enable warnings, but this module enables warnings
in the tests, and it forces a test failure if any warnings occur.
This gives full warnings coverage during the test suite without
forcing PPI users to accept an unbounded number of warnings in code
they don't control. See L<https://github.com/adamkennedy/PPI/issues/142>
for a fuller explanation of this philosophy.
=cut
use 5.006;
use strict;
use warnings;
use Test::More 0.88;
use if $ENV{AUTHOR_TESTING}, 'Test::Warnings', ':no_end_test';
use vars qw{$VERSION};
BEGIN {
$VERSION = '1.236';
}
BEGIN {
select STDERR; ## no critic ( InputOutput::ProhibitOneArgSelect )
$| = 1;
select STDOUT; ## no critic ( InputOutput::ProhibitOneArgSelect )
$^W++; # throw -w at runtime to try and catch warnings in un-warning-ed modules
no warnings 'once'; ## no critic ( TestingAndDebugging::ProhibitNoWarnings )
$PPI::XS_DISABLE = 1;
$PPI::Lexer::X_TOKENIZER ||= $ENV{X_TOKENIZER};
}
sub import {
strict->import();
warnings->import();
return;
}
END {
Test::Warnings::had_no_warnings() if $ENV{AUTHOR_TESTING};
}
1;
|