From befb53592411375e6f3fb664447f4f80067211e1 Mon Sep 17 00:00:00 2001 From: Steve Hay Date: Fri, 11 Oct 2013 11:21:27 +0100 Subject: [PATCH] Upgrade Test::Harness from version 3.28 to 3.29 This includes the blead CUSTOMIZATION of t/source.t. --- MANIFEST | 3 +- Porting/Maintainers.pl | 6 +- cpan/Test-Harness/Changes | 14 ++ cpan/Test-Harness/MANIFEST | 3 +- cpan/Test-Harness/bin/prove | 5 +- cpan/Test-Harness/lib/App/Prove.pm | 15 +-- cpan/Test-Harness/lib/App/Prove/State.pm | 9 +- cpan/Test-Harness/lib/App/Prove/State/Result.pm | 6 +- .../lib/App/Prove/State/Result/Test.pm | 7 +- cpan/Test-Harness/lib/TAP/Base.pm | 15 +-- cpan/Test-Harness/lib/TAP/Formatter/Base.pm | 11 +- cpan/Test-Harness/lib/TAP/Formatter/Color.pm | 8 +- cpan/Test-Harness/lib/TAP/Formatter/Console.pm | 27 ++-- .../lib/TAP/Formatter/Console/ParallelSession.pm | 11 +- .../lib/TAP/Formatter/Console/Session.pm | 10 +- cpan/Test-Harness/lib/TAP/Formatter/File.pm | 10 +- .../Test-Harness/lib/TAP/Formatter/File/Session.pm | 11 +- cpan/Test-Harness/lib/TAP/Formatter/Session.pm | 10 +- cpan/Test-Harness/lib/TAP/Harness.pm | 13 +- cpan/Test-Harness/lib/TAP/Harness/Beyond.pod | 7 +- cpan/Test-Harness/lib/TAP/Harness/Env.pm | 149 +++++++++++++++++++++ cpan/Test-Harness/lib/TAP/Object.pm | 13 +- cpan/Test-Harness/lib/TAP/Parser.pm | 19 +-- cpan/Test-Harness/lib/TAP/Parser/Aggregator.pm | 10 +- cpan/Test-Harness/lib/TAP/Parser/Grammar.pm | 9 +- cpan/Test-Harness/lib/TAP/Parser/Iterator.pm | 13 +- cpan/Test-Harness/lib/TAP/Parser/Iterator/Array.pm | 10 +- .../lib/TAP/Parser/Iterator/Process.pm | 13 +- .../Test-Harness/lib/TAP/Parser/Iterator/Stream.pm | 10 +- .../Test-Harness/lib/TAP/Parser/IteratorFactory.pm | 15 +-- cpan/Test-Harness/lib/TAP/Parser/Multiplexer.pm | 11 +- cpan/Test-Harness/lib/TAP/Parser/Result.pm | 13 +- cpan/Test-Harness/lib/TAP/Parser/Result/Bailout.pm | 9 +- cpan/Test-Harness/lib/TAP/Parser/Result/Comment.pm | 9 +- cpan/Test-Harness/lib/TAP/Parser/Result/Plan.pm | 9 +- cpan/Test-Harness/lib/TAP/Parser/Result/Pragma.pm | 9 +- cpan/Test-Harness/lib/TAP/Parser/Result/Test.pm | 11 +- cpan/Test-Harness/lib/TAP/Parser/Result/Unknown.pm | 11 +- cpan/Test-Harness/lib/TAP/Parser/Result/Version.pm | 9 +- cpan/Test-Harness/lib/TAP/Parser/Result/YAML.pm | 9 +- cpan/Test-Harness/lib/TAP/Parser/ResultFactory.pm | 38 +++--- cpan/Test-Harness/lib/TAP/Parser/Scheduler.pm | 7 +- cpan/Test-Harness/lib/TAP/Parser/Scheduler/Job.pm | 6 +- .../lib/TAP/Parser/Scheduler/Spinner.pm | 6 +- cpan/Test-Harness/lib/TAP/Parser/Source.pm | 10 +- cpan/Test-Harness/lib/TAP/Parser/SourceHandler.pm | 17 +-- .../lib/TAP/Parser/SourceHandler/Executable.pm | 12 +- .../lib/TAP/Parser/SourceHandler/File.pm | 9 +- .../lib/TAP/Parser/SourceHandler/Handle.pm | 9 +- .../lib/TAP/Parser/SourceHandler/Perl.pm | 18 ++- .../lib/TAP/Parser/SourceHandler/RawTAP.pm | 9 +- cpan/Test-Harness/lib/TAP/Parser/Utils.pm | 72 ---------- cpan/Test-Harness/lib/TAP/Parser/YAMLish/Reader.pm | 9 +- cpan/Test-Harness/lib/TAP/Parser/YAMLish/Writer.pm | 9 +- cpan/Test-Harness/lib/Test/Harness.pm | 62 ++++----- cpan/Test-Harness/t/000-load.t | 1 + cpan/Test-Harness/t/aggregator.t | 1 + cpan/Test-Harness/t/bailout.t | 1 + cpan/Test-Harness/t/base.t | 4 +- cpan/Test-Harness/t/callbacks.t | 1 + cpan/Test-Harness/t/compat/env.t | 1 + cpan/Test-Harness/t/compat/env_opts.t | 1 + cpan/Test-Harness/t/compat/failure.t | 1 + cpan/Test-Harness/t/compat/inc-propagation.t | 1 + cpan/Test-Harness/t/compat/inc_taint.t | 1 + cpan/Test-Harness/t/compat/regression.t | 1 + cpan/Test-Harness/t/compat/subclass.t | 1 + cpan/Test-Harness/t/compat/switches.t | 1 + cpan/Test-Harness/t/compat/test-harness-compat.t | 1 + cpan/Test-Harness/t/compat/version.t | 1 + cpan/Test-Harness/t/console.t | 1 + cpan/Test-Harness/t/errors.t | 1 + cpan/Test-Harness/t/file.t | 3 +- cpan/Test-Harness/t/glob-to-regexp.t | 1 + cpan/Test-Harness/t/grammar.t | 1 + cpan/Test-Harness/t/harness-bailout.t | 1 + cpan/Test-Harness/t/harness-subclass.t | 1 + cpan/Test-Harness/t/harness.t | 9 +- cpan/Test-Harness/t/iterator_factory.t | 1 + cpan/Test-Harness/t/iterators.t | 4 +- cpan/Test-Harness/t/lib/App/Prove/Plugin/Dummy.pm | 1 + cpan/Test-Harness/t/lib/App/Prove/Plugin/Dummy2.pm | 1 + cpan/Test-Harness/t/lib/EmptyParser.pm | 6 +- cpan/Test-Harness/t/lib/MyCustom.pm | 1 + cpan/Test-Harness/t/lib/MyFileSourceHandler.pm | 7 +- cpan/Test-Harness/t/lib/MyGrammar.pm | 7 +- cpan/Test-Harness/t/lib/MyIterator.pm | 7 +- cpan/Test-Harness/t/lib/MyPerlSourceHandler.pm | 6 +- cpan/Test-Harness/t/lib/MyResult.pm | 7 +- cpan/Test-Harness/t/lib/MyResultFactory.pm | 6 +- cpan/Test-Harness/t/lib/MySourceHandler.pm | 7 +- .../Test-Harness/t/lib/TAP/Harness/TestSubclass.pm | 1 + cpan/Test-Harness/t/lib/TAP/Parser/SubclassTest.pm | 7 +- cpan/Test-Harness/t/multiplexer.t | 1 + cpan/Test-Harness/t/nested.t | 1 + cpan/Test-Harness/t/nofork-mux.t | 1 + cpan/Test-Harness/t/nofork.t | 1 + cpan/Test-Harness/t/object.t | 4 +- cpan/Test-Harness/t/parse.t | 10 +- cpan/Test-Harness/t/parser-config.t | 3 +- cpan/Test-Harness/t/parser-subclass.t | 3 +- cpan/Test-Harness/t/perl5lib.t | 1 + cpan/Test-Harness/t/premature-bailout.t | 1 + cpan/Test-Harness/t/process.t | 1 + cpan/Test-Harness/t/prove.t | 8 +- cpan/Test-Harness/t/proveenv.t | 1 + cpan/Test-Harness/t/proverc.t | 1 + cpan/Test-Harness/t/proverun.t | 14 +- cpan/Test-Harness/t/proveversion.t | 1 + cpan/Test-Harness/t/regression.t | 11 +- cpan/Test-Harness/t/results.t | 6 +- cpan/Test-Harness/t/scheduler.t | 1 + cpan/Test-Harness/t/source.t | 1 + cpan/Test-Harness/t/source_handler.t | 1 + cpan/Test-Harness/t/spool.t | 1 + cpan/Test-Harness/t/state.t | 1 + cpan/Test-Harness/t/state_results.t | 1 + cpan/Test-Harness/t/streams.t | 1 + cpan/Test-Harness/t/taint.t | 1 + cpan/Test-Harness/t/testargs.t | 4 +- cpan/Test-Harness/t/unicode.t | 1 + cpan/Test-Harness/t/utils.t | 61 --------- cpan/Test-Harness/t/yamlish-output.t | 1 + cpan/Test-Harness/t/yamlish-writer.t | 1 + cpan/Test-Harness/t/yamlish.t | 1 + pod/perldelta.pod | 7 + 126 files changed, 556 insertions(+), 557 deletions(-) create mode 100644 cpan/Test-Harness/lib/TAP/Harness/Env.pm delete mode 100644 cpan/Test-Harness/lib/TAP/Parser/Utils.pm delete mode 100644 cpan/Test-Harness/t/utils.t diff --git a/MANIFEST b/MANIFEST index 9210d72..741b08b 100644 --- a/MANIFEST +++ b/MANIFEST @@ -2197,6 +2197,7 @@ cpan/Test-Harness/lib/TAP/Formatter/File.pm A parser for Test Anything Protocol cpan/Test-Harness/lib/TAP/Formatter/File/Session.pm A parser for Test Anything Protocol cpan/Test-Harness/lib/TAP/Formatter/Session.pm A parser for Test Anything Protocol cpan/Test-Harness/lib/TAP/Harness/Beyond.pod +cpan/Test-Harness/lib/TAP/Harness/Env.pm A parser for Test Anything Protocol cpan/Test-Harness/lib/TAP/Harness.pm A parser for Test Anything Protocol cpan/Test-Harness/lib/TAP/Object.pm A parser for Test Anything Protocol cpan/Test-Harness/lib/TAP/Parser/Aggregator.pm A parser for Test Anything Protocol @@ -2228,7 +2229,6 @@ cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Perl.pm cpan/Test-Harness/lib/TAP/Parser/SourceHandler.pm A parser for Test Anything Protocol cpan/Test-Harness/lib/TAP/Parser/SourceHandler/RawTAP.pm cpan/Test-Harness/lib/TAP/Parser/Source.pm A parser for Test Anything Protocol -cpan/Test-Harness/lib/TAP/Parser/Utils.pm A parser for Test Anything Protocol cpan/Test-Harness/lib/TAP/Parser/YAMLish/Reader.pm A parser for Test Anything Protocol cpan/Test-Harness/lib/TAP/Parser/YAMLish/Writer.pm A parser for Test Anything Protocol cpan/Test-Harness/lib/Test/Harness.pm A test harness @@ -2382,7 +2382,6 @@ cpan/Test-Harness/t/subclass_tests/perl_source Test data for Test::Harness cpan/Test-Harness/t/taint.t Test::Harness test cpan/Test-Harness/t/testargs.t Test::Harness test cpan/Test-Harness/t/unicode.t Test::Harness test -cpan/Test-Harness/t/utils.t Test::Harness test cpan/Test-Harness/t/yamlish-output.t Test::Harness test cpan/Test-Harness/t/yamlish.t Test::Harness test cpan/Test-Harness/t/yamlish-writer.t Test::Harness test diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl index 4e392a7..60081f9 100755 --- a/Porting/Maintainers.pl +++ b/Porting/Maintainers.pl @@ -1494,7 +1494,7 @@ use File::Glob qw(:case); }, 'Test::Harness' => { - 'DISTRIBUTION' => 'OVID/Test-Harness-3.28.tar.gz', + 'DISTRIBUTION' => 'OVID/Test-Harness-3.29.tar.gz', 'FILES' => q[cpan/Test-Harness], 'EXCLUDED' => [ qr{^examples/}, @@ -1508,10 +1508,6 @@ use File::Glob qw(:case); t/lib/if.pm ), ], - - # Waiting to be merged upstream: see CPAN RT#64353 - 'CUSTOMIZED' => [ 't/source.t' ], - 'UPSTREAM' => 'cpan', }, diff --git a/cpan/Test-Harness/Changes b/cpan/Test-Harness/Changes index f0c9cf0..830fa21 100644 --- a/cpan/Test-Harness/Changes +++ b/cpan/Test-Harness/Changes @@ -1,5 +1,16 @@ Revision history for Test-Harness +3.29 2013-08-10 + - Get rid of use vars in favor of our in all modules (Leon Timmermans) + and tests (Karen Etheridge) + - Added use warnings to all modules (Leon Timmermans) and tests (Karen + Etheridge) + - Use parent instead of @ISA in all modules (Leon Timmermans) and + tests (Karen Etheridge) + - Fix failing test on VMS (Craig Berry) + - Improve error message on loading failure (Leon Timmermans, #77730) + - Use Text::ParseWords, deprecate TAP::Parser::Utils + 3.28 2013-05-02 - Bugfix: Fix taint failures on Windows (Jan Dubois) @@ -9,6 +20,7 @@ Revision history for Test-Harness Reduces memory usage (Nick Clark, RT #84939) - PERL5LIB is always propogated to a test's @INC, even with taint more (Schwern, RT #84377) + - restore "always add -w to switches" behavior 3.26 2013-01-16 - Renamed env.opts.t to env_opts.t (for VMS) @@ -28,6 +40,7 @@ Revision history for Test-Harness test more gracefully. - Make the test summary 'ok' line overrideable so that it can be changed to a plugin to make the output of prove idempotent. + - Stop adding '-w' to perl switches by default - Apply upstream patch: http://perl5.git.perl.org/perl.git/commit \ @@ -42,6 +55,7 @@ Revision history for Test-Harness as process IDs, as there's a race condition to break into the account running perl's tests. + 3.23 2011-02-20 - Merge in changes from core. Thanks BinGOs. - Made SourceHandler understand that an executable binary file diff --git a/cpan/Test-Harness/MANIFEST b/cpan/Test-Harness/MANIFEST index 53f9521..2ca767c 100644 --- a/cpan/Test-Harness/MANIFEST +++ b/cpan/Test-Harness/MANIFEST @@ -30,6 +30,7 @@ lib/TAP/Formatter/File/Session.pm lib/TAP/Formatter/Session.pm lib/TAP/Harness.pm lib/TAP/Harness/Beyond.pod +lib/TAP/Harness/Env.pm lib/TAP/Object.pm lib/TAP/Parser.pm lib/TAP/Parser/Aggregator.pm @@ -60,7 +61,6 @@ lib/TAP/Parser/SourceHandler/File.pm lib/TAP/Parser/SourceHandler/Handle.pm lib/TAP/Parser/SourceHandler/Perl.pm lib/TAP/Parser/SourceHandler/RawTAP.pm -lib/TAP/Parser/Utils.pm lib/TAP/Parser/YAMLish/Reader.pm lib/TAP/Parser/YAMLish/Writer.pm lib/Test/Harness.pm @@ -224,7 +224,6 @@ t/subclass_tests/perl_source t/taint.t t/testargs.t t/unicode.t -t/utils.t t/yamlish-output.t t/yamlish-writer.t t/yamlish.t diff --git a/cpan/Test-Harness/bin/prove b/cpan/Test-Harness/bin/prove index 4f46ed6..46b0453 100644 --- a/cpan/Test-Harness/bin/prove +++ b/cpan/Test-Harness/bin/prove @@ -1,6 +1,7 @@ #!/usr/bin/perl -w use strict; +use warnings; use App::Prove; my $app = App::Prove->new; @@ -272,7 +273,7 @@ which are run in parallel, if the C<--jobs> option is specified. The option may be specified multiple times, and the order matters. The most practical use is likely to specify that some tests are not -"parallel-ready". Since mentioning a file with --rules doens't cause it to +"parallel-ready". Since mentioning a file with --rules doesn't cause it to selected to run as a test, you can "set and forget" some rules preferences in your .proverc file. Then you'll be able to take maximum advantage of the performance benefits of parallel testing, while some exceptions are still run @@ -288,7 +289,7 @@ in parallel. =head3 --rules resolution -=over4 +=over 4 =item * By default, all tests are eligible to be run in parallel. Specifying any of your own rules removes this one. diff --git a/cpan/Test-Harness/lib/App/Prove.pm b/cpan/Test-Harness/lib/App/Prove.pm index 5b2b98b..c149f69 100644 --- a/cpan/Test-Harness/lib/App/Prove.pm +++ b/cpan/Test-Harness/lib/App/Prove.pm @@ -1,27 +1,28 @@ package App::Prove; use strict; -use vars qw($VERSION @ISA); +use warnings; -use TAP::Object (); use TAP::Harness; -use TAP::Parser::Utils qw( split_shell ); +use Text::ParseWords qw(shellwords); use File::Spec; use Getopt::Long; use App::Prove::State; use Carp; +use parent 'TAP::Object'; + =head1 NAME App::Prove - Implements the C command. =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 DESCRIPTION @@ -51,8 +52,6 @@ use constant PLUGINS => 'App::Prove::Plugin'; my @ATTR; BEGIN { - @ISA = qw(TAP::Object); - @ATTR = qw( archive argv blib show_count color directives exec failures comments formatter harness includes modules plugins jobs lib merge parse quiet @@ -574,7 +573,7 @@ sub _get_switches { push @switches, '-w'; } - push @switches, split_shell( $ENV{HARNESS_PERL_SWITCHES} ); + push @switches, shellwords( $ENV{HARNESS_PERL_SWITCHES} ) if defined $ENV{HARNESS_PERL_SWITCHES}; return @switches ? \@switches : (); } diff --git a/cpan/Test-Harness/lib/App/Prove/State.pm b/cpan/Test-Harness/lib/App/Prove/State.pm index 5e9a13e..b5807ff 100644 --- a/cpan/Test-Harness/lib/App/Prove/State.pm +++ b/cpan/Test-Harness/lib/App/Prove/State.pm @@ -1,7 +1,7 @@ package App::Prove::State; use strict; -use vars qw($VERSION @ISA); +use warnings; use File::Find; use File::Spec; @@ -10,10 +10,9 @@ use Carp; use App::Prove::State::Result; use TAP::Parser::YAMLish::Reader (); use TAP::Parser::YAMLish::Writer (); -use TAP::Base; +use parent 'TAP::Base'; BEGIN { - @ISA = qw( TAP::Base ); __PACKAGE__->mk_methods('result_class'); } @@ -26,11 +25,11 @@ App::Prove::State - State storage for the C command. =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/App/Prove/State/Result.pm b/cpan/Test-Harness/lib/App/Prove/State/Result.pm index 4e89d5a..93a82b1 100644 --- a/cpan/Test-Harness/lib/App/Prove/State/Result.pm +++ b/cpan/Test-Harness/lib/App/Prove/State/Result.pm @@ -1,10 +1,10 @@ package App::Prove::State::Result; use strict; +use warnings; use Carp 'croak'; use App::Prove::State::Result::Test; -use vars qw($VERSION); use constant STATE_VERSION => 1; @@ -14,11 +14,11 @@ App::Prove::State::Result - Individual test suite results. =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/App/Prove/State/Result/Test.pm b/cpan/Test-Harness/lib/App/Prove/State/Result/Test.pm index 351c696..3aab1f6 100644 --- a/cpan/Test-Harness/lib/App/Prove/State/Result/Test.pm +++ b/cpan/Test-Harness/lib/App/Prove/State/Result/Test.pm @@ -1,8 +1,7 @@ package App::Prove::State::Result::Test; use strict; - -use vars qw($VERSION); +use warnings; =head1 NAME @@ -10,11 +9,11 @@ App::Prove::State::Result::Test - Individual test results. =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Base.pm b/cpan/Test-Harness/lib/TAP/Base.pm index e13c6b0..5a5ea77 100644 --- a/cpan/Test-Harness/lib/TAP/Base.pm +++ b/cpan/Test-Harness/lib/TAP/Base.pm @@ -1,11 +1,9 @@ package TAP::Base; use strict; -use vars qw($VERSION @ISA); +use warnings; -use TAP::Object; - -@ISA = qw(TAP::Object); +use parent 'TAP::Object'; =head1 NAME @@ -14,11 +12,11 @@ and L =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; use constant GOT_TIME_HIRES => do { eval 'use Time::HiRes qw(time);'; @@ -29,10 +27,7 @@ use constant GOT_TIME_HIRES => do { package TAP::Whatever; - use TAP::Base; - - use vars qw($VERSION @ISA); - @ISA = qw(TAP::Base); + use parent 'TAP::Base'; # ... later ... diff --git a/cpan/Test-Harness/lib/TAP/Formatter/Base.pm b/cpan/Test-Harness/lib/TAP/Formatter/Base.pm index 5755cb3..ed6e848 100644 --- a/cpan/Test-Harness/lib/TAP/Formatter/Base.pm +++ b/cpan/Test-Harness/lib/TAP/Formatter/Base.pm @@ -1,17 +1,14 @@ package TAP::Formatter::Base; use strict; -use TAP::Base (); +use warnings; +use parent 'TAP::Base'; use POSIX qw(strftime); -use vars qw($VERSION @ISA); - my $MAX_ERRORS = 5; my %VALIDATION_FOR; BEGIN { - @ISA = qw(TAP::Base); - %VALIDATION_FOR = ( directives => sub { shift; shift }, verbosity => sub { shift; shift }, @@ -61,11 +58,11 @@ TAP::Formatter::Base - Base class for harness output delegates =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Formatter/Color.pm b/cpan/Test-Harness/lib/TAP/Formatter/Color.pm index d7c8e98..b3845e6 100644 --- a/cpan/Test-Harness/lib/TAP/Formatter/Color.pm +++ b/cpan/Test-Harness/lib/TAP/Formatter/Color.pm @@ -1,11 +1,11 @@ package TAP::Formatter::Color; use strict; -use vars qw($VERSION @ISA); +use warnings; use constant IS_WIN32 => ( $^O =~ /^(MS)?Win32$/ ); -@ISA = qw(TAP::Object); +use parent 'TAP::Object'; my $NO_COLOR; @@ -71,11 +71,11 @@ TAP::Formatter::Color - Run Perl test scripts with color =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Formatter/Console.pm b/cpan/Test-Harness/lib/TAP/Formatter/Console.pm index 14121d5..975b91b 100644 --- a/cpan/Test-Harness/lib/TAP/Formatter/Console.pm +++ b/cpan/Test-Harness/lib/TAP/Formatter/Console.pm @@ -1,24 +1,21 @@ package TAP::Formatter::Console; use strict; -use TAP::Formatter::Base (); +use warnings; +use parent 'TAP::Formatter::Base'; use POSIX qw(strftime); -use vars qw($VERSION @ISA); - -@ISA = qw(TAP::Formatter::Base); - =head1 NAME TAP::Formatter::Console - Harness output delegate for default console output =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 DESCRIPTION @@ -70,16 +67,28 @@ sub _set_colors { } } +sub _failure_color { + my ($self) = @_; + + return $ENV{'HARNESS_SUMMARY_COLOR_FAIL'} || 'red'; +} + +sub _success_color { + my ($self) = @_; + + return $ENV{'HARNESS_SUMMARY_COLOR_SUCCESS'} || 'green'; +} + sub _output_success { my ( $self, $msg ) = @_; - $self->_set_colors('green'); + $self->_set_colors( $self->_success_color() ); $self->_output($msg); $self->_set_colors('reset'); } sub _failure_output { my $self = shift; - $self->_set_colors('red'); + $self->_set_colors( $self->_failure_color() ); my $out = join '', @_; my $has_newline = chomp $out; $self->_output($out); diff --git a/cpan/Test-Harness/lib/TAP/Formatter/Console/ParallelSession.pm b/cpan/Test-Harness/lib/TAP/Formatter/Console/ParallelSession.pm index 204d4b9..1c92403 100644 --- a/cpan/Test-Harness/lib/TAP/Formatter/Console/ParallelSession.pm +++ b/cpan/Test-Harness/lib/TAP/Formatter/Console/ParallelSession.pm @@ -1,15 +1,14 @@ package TAP::Formatter::Console::ParallelSession; use strict; +use warnings; use File::Spec; use File::Path; -use TAP::Formatter::Console::Session; use Carp; -use constant WIDTH => 72; # Because Eric says -use vars qw($VERSION @ISA); +use parent 'TAP::Formatter::Console::Session'; -@ISA = qw(TAP::Formatter::Console::Session); +use constant WIDTH => 72; # Because Eric says my %shared; @@ -42,11 +41,11 @@ TAP::Formatter::Console::ParallelSession - Harness output delegate for parallel =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Formatter/Console/Session.pm b/cpan/Test-Harness/lib/TAP/Formatter/Console/Session.pm index 6578150..bb3a641 100644 --- a/cpan/Test-Harness/lib/TAP/Formatter/Console/Session.pm +++ b/cpan/Test-Harness/lib/TAP/Formatter/Console/Session.pm @@ -1,11 +1,9 @@ package TAP::Formatter::Console::Session; use strict; -use TAP::Formatter::Session; +use warnings; -use vars qw($VERSION @ISA); - -@ISA = qw(TAP::Formatter::Session); +use parent 'TAP::Formatter::Session'; my @ACCESSOR; @@ -28,11 +26,11 @@ TAP::Formatter::Console::Session - Harness output delegate for default console o =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Formatter/File.pm b/cpan/Test-Harness/lib/TAP/Formatter/File.pm index e10ecfd..cc312fe 100644 --- a/cpan/Test-Harness/lib/TAP/Formatter/File.pm +++ b/cpan/Test-Harness/lib/TAP/Formatter/File.pm @@ -1,13 +1,11 @@ package TAP::Formatter::File; use strict; -use TAP::Formatter::Base (); +use warnings; use TAP::Formatter::File::Session; use POSIX qw(strftime); -use vars qw($VERSION @ISA); - -@ISA = qw(TAP::Formatter::Base); +use parent 'TAP::Formatter::Base'; =head1 NAME @@ -15,11 +13,11 @@ TAP::Formatter::File - Harness output delegate for file output =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Formatter/File/Session.pm b/cpan/Test-Harness/lib/TAP/Formatter/File/Session.pm index eb19222..5ec4ede 100644 --- a/cpan/Test-Harness/lib/TAP/Formatter/File/Session.pm +++ b/cpan/Test-Harness/lib/TAP/Formatter/File/Session.pm @@ -1,11 +1,8 @@ package TAP::Formatter::File::Session; use strict; -use TAP::Formatter::Session; - -use vars qw($VERSION @ISA); - -@ISA = qw(TAP::Formatter::Session); +use warnings; +use parent 'TAP::Formatter::Session'; =head1 NAME @@ -13,11 +10,11 @@ TAP::Formatter::File::Session - Harness output delegate for file output =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Formatter/Session.pm b/cpan/Test-Harness/lib/TAP/Formatter/Session.pm index c56b2bd..478e498 100644 --- a/cpan/Test-Harness/lib/TAP/Formatter/Session.pm +++ b/cpan/Test-Harness/lib/TAP/Formatter/Session.pm @@ -1,11 +1,9 @@ package TAP::Formatter::Session; use strict; -use TAP::Base; +use warnings; -use vars qw($VERSION @ISA); - -@ISA = qw(TAP::Base); +use parent 'TAP::Base'; my @ACCESSOR; @@ -25,11 +23,11 @@ TAP::Formatter::Session - Abstract base class for harness output delegate =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 METHODS diff --git a/cpan/Test-Harness/lib/TAP/Harness.pm b/cpan/Test-Harness/lib/TAP/Harness.pm index 9564630..72b4d0e 100644 --- a/cpan/Test-Harness/lib/TAP/Harness.pm +++ b/cpan/Test-Harness/lib/TAP/Harness.pm @@ -1,17 +1,14 @@ package TAP::Harness; use strict; +use warnings; use Carp; use File::Spec; use File::Path; use IO::Handle; -use TAP::Base; - -use vars qw($VERSION @ISA); - -@ISA = qw(TAP::Base); +use parent 'TAP::Base'; =head1 NAME @@ -19,11 +16,11 @@ TAP::Harness - Run test scripts with statistics =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; $ENV{HARNESS_ACTIVE} = 1; $ENV{HARNESS_VERSION} = $VERSION; @@ -248,7 +245,7 @@ I. If set, C must be a hashref containing the names of the Ls to load and/or configure. The values are a -hash of configuration that will be accessible to to the source handlers via +hash of configuration that will be accessible to the source handlers via L. For example: diff --git a/cpan/Test-Harness/lib/TAP/Harness/Beyond.pod b/cpan/Test-Harness/lib/TAP/Harness/Beyond.pod index ed77e13..1537be3 100644 --- a/cpan/Test-Harness/lib/TAP/Harness/Beyond.pod +++ b/cpan/Test-Harness/lib/TAP/Harness/Beyond.pod @@ -1,3 +1,7 @@ +=head1 NAME + +Test::Harness - Beyond make test + =head1 Beyond make test Test::Harness is responsible for running test scripts, analysing @@ -223,7 +227,8 @@ document: package My::TAP::Harness; - use base qw( TAP::Harness ); use YAML; + use parent 'TAP::Harness'; + use YAML; sub summary { my ( $self, $aggregate ) = @_; diff --git a/cpan/Test-Harness/lib/TAP/Harness/Env.pm b/cpan/Test-Harness/lib/TAP/Harness/Env.pm new file mode 100644 index 0000000..92e7d3b --- /dev/null +++ b/cpan/Test-Harness/lib/TAP/Harness/Env.pm @@ -0,0 +1,149 @@ +package TAP::Harness::Env; + +use strict; +use warnings; + +use constant IS_VMS => ( $^O eq 'VMS' ); +use TAP::Object; +use Text::ParseWords qw/shellwords/; + +our $VERSION = '3.29'; + +# Get the parts of @INC which are changed from the stock list AND +# preserve reordering of stock directories. +sub _filtered_inc_vms { + my @inc = grep { !ref } @INC; #28567 + + # VMS has a 255-byte limit on the length of %ENV entries, so + # toss the ones that involve perl_root, the install location + @inc = grep { !/perl_root/i } @inc; + + my @default_inc = _default_inc(); + + my @new_inc; + my %seen; + for my $dir (@inc) { + next if $seen{$dir}++; + + if ( $dir eq ( $default_inc[0] || '' ) ) { + shift @default_inc; + } + else { + push @new_inc, $dir; + } + + shift @default_inc while @default_inc and $seen{ $default_inc[0] }; + } + return @new_inc; +} + +# Cache this to avoid repeatedly shelling out to Perl. +my @inc; + +sub _default_inc { + return @inc if @inc; + + local $ENV{PERL5LIB}; + local $ENV{PERLLIB}; + + my $perl = $ENV{HARNESS_PERL} || $^X; + + # Avoid using -l for the benefit of Perl 6 + chomp( @inc = `"$perl" -e "print join qq[\\n], \@INC, q[]"` ); + return @inc; +} + +sub create { + my $package = shift; + my %input = %{ shift || {} }; + + my @libs = @{ delete $input{libs} || [] }; + my @raw_switches = @{ delete $input{switches} || [] }; + my @opt + = ( @raw_switches, shellwords( $ENV{HARNESS_PERL_SWITCHES} || '' ) ); + my @switches; + while ( my $opt = shift @opt ) { + if ( $opt =~ /^ -I (.*) $ /x ) { + push @libs, length($1) ? $1 : shift @opt; + } + else { + push @switches, $opt; + } + } + + # Do things the old way on VMS... + push @libs, _filtered_inc_vms() if IS_VMS; + + # If $Verbose isn't numeric default to 1. This helps core. + my $verbose + = $ENV{HARNESS_VERBOSE} + ? $ENV{HARNESS_VERBOSE} !~ /\d/ + ? 1 + : $ENV{HARNESS_VERBOSE} + : 0; + + my %args = ( + lib => \@libs, + timer => $ENV{HARNESS_TIMER} || 0, + switches => \@switches, + color => $ENV{HARNESS_COLOR} || 0, + verbosity => $verbose, + ignore_exit => $ENV{HARNESS_IGNORE_EXIT} || 0, + ); + + my $class = $ENV{HARNESS_SUBCLASS} || 'TAP::Harness'; + if ( defined( my $env_opt = $ENV{HARNESS_OPTIONS} ) ) { + for my $opt ( split /:/, $env_opt ) { + if ( $opt =~ /^j(\d*)$/ ) { + $args{jobs} = $1 || 9; + } + elsif ( $opt eq 'c' ) { + $args{color} = 1; + } + elsif ( $opt =~ m/^f(.*)$/ ) { + my $fmt = $1; + $fmt =~ s/-/::/g; + $args{formatter_class} = $fmt; + } + elsif ( $opt =~ m/^a(.*)$/ ) { + my $archive = $1; + $class = 'TAP::Harness::Archive'; + $args{archive} = $archive; + } + else { + die "Unknown HARNESS_OPTIONS item: $opt\n"; + } + } + } + return TAP::Object->_construct($class, { %args, %input }); +} + +1; + +=head1 NAME + +TAP::Harness::Env - Parsing harness related environmental variables where appropriate + +=head1 VERSION + +Version 3.29 + +=head1 SYNOPSIS + + my ($class, $args) = get_test_arguments(); + require_module($class); + $class->new($args); + +=head1 DESCRIPTION + +This module implements the environmental variables that L for use with TAP::Harness. + +=head1 FUNCTIONS + +=over 4 + +=item * get_test_options( \%args ) + +This function reads the environment and generates an appropriate argument hash from it. If given any arguments, there will override the environmental defaults. It will return of C<$class> and C<$args>. + +=back diff --git a/cpan/Test-Harness/lib/TAP/Object.pm b/cpan/Test-Harness/lib/TAP/Object.pm index b2a60b4..cb2923e 100644 --- a/cpan/Test-Harness/lib/TAP/Object.pm +++ b/cpan/Test-Harness/lib/TAP/Object.pm @@ -1,7 +1,7 @@ package TAP::Object; use strict; -use vars qw($VERSION); +use warnings; =head1 NAME @@ -9,22 +9,19 @@ TAP::Object - Base class that provides common functionality to all C mod =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 SYNOPSIS package TAP::Whatever; use strict; - use vars qw(@ISA); - use TAP::Object; - - @ISA = qw(TAP::Object); + use parent 'TAP::Object'; # new() implementation by TAP::Object sub _initialize { @@ -127,7 +124,7 @@ sub _construct { unless ( $class->can('new') ) { local $@; eval "require $class"; - $self->_croak("Can't load $class") if $@; + $self->_croak("Can't load $class: $@") if $@; } return $class->new(@args); diff --git a/cpan/Test-Harness/lib/TAP/Parser.pm b/cpan/Test-Harness/lib/TAP/Parser.pm index f869e2d..3fb2496 100644 --- a/cpan/Test-Harness/lib/TAP/Parser.pm +++ b/cpan/Test-Harness/lib/TAP/Parser.pm @@ -1,9 +1,8 @@ package TAP::Parser; use strict; -use vars qw($VERSION @ISA); +use warnings; -use TAP::Base (); use TAP::Parser::Grammar (); use TAP::Parser::Result (); use TAP::Parser::ResultFactory (); @@ -18,17 +17,21 @@ use TAP::Parser::SourceHandler::Handle (); use Carp qw( confess ); +use parent 'TAP::Base'; + +=encoding utf8 + =head1 NAME TAP::Parser - Parse L output =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; my $DEFAULT_TAP_VERSION = 12; my $MAX_TAP_VERSION = 13; @@ -42,8 +45,6 @@ END { } BEGIN { # making accessors - @ISA = qw(TAP::Base); - __PACKAGE__->mk_methods( qw( _iterator @@ -174,7 +175,7 @@ I. If set, C must be a hashref containing the names of the Ls to load and/or configure. The values are a -hash of configuration that will be accessible to to the source handlers via +hash of configuration that will be accessible to the source handlers via L. For example: @@ -638,7 +639,7 @@ C<$result> object. Returns a list of pragmas each of which is a + or - followed by the pragma name. - + =head2 C methods if ( $result->is_comment ) { ... } @@ -1764,7 +1765,7 @@ so without sub-classing C by setting L. If you just need to customize the objects on creation, subclass L and override L. -Note that L & L have been I and +Note that C & C have been I and are now removed. =head3 Iterators diff --git a/cpan/Test-Harness/lib/TAP/Parser/Aggregator.pm b/cpan/Test-Harness/lib/TAP/Parser/Aggregator.pm index ad51ba3..a887abe 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Aggregator.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Aggregator.pm @@ -1,12 +1,10 @@ package TAP::Parser::Aggregator; use strict; +use warnings; use Benchmark; -use vars qw($VERSION @ISA); -use TAP::Object (); - -@ISA = qw(TAP::Object); +use parent 'TAP::Object'; =head1 NAME @@ -14,11 +12,11 @@ TAP::Parser::Aggregator - Aggregate TAP::Parser results =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/Grammar.pm b/cpan/Test-Harness/lib/TAP/Parser/Grammar.pm index b3b16de..63b52cb 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Grammar.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Grammar.pm @@ -1,13 +1,12 @@ package TAP::Parser::Grammar; use strict; -use vars qw($VERSION @ISA); +use warnings; -use TAP::Object (); use TAP::Parser::ResultFactory (); use TAP::Parser::YAMLish::Reader (); -@ISA = qw(TAP::Object); +use parent 'TAP::Object'; =head1 NAME @@ -15,11 +14,11 @@ TAP::Parser::Grammar - A grammar for the Test Anything Protocol. =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/Iterator.pm b/cpan/Test-Harness/lib/TAP/Parser/Iterator.pm index 1385aea..6fb232b 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Iterator.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Iterator.pm @@ -1,11 +1,9 @@ package TAP::Parser::Iterator; use strict; -use vars qw($VERSION @ISA); +use warnings; -use TAP::Object (); - -@ISA = qw(TAP::Object); +use parent 'TAP::Object'; =head1 NAME @@ -13,18 +11,17 @@ TAP::Parser::Iterator - Base class for TAP source iterators =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 SYNOPSIS # to subclass: - use vars qw(@ISA); use TAP::Parser::Iterator (); - @ISA = qw(TAP::Parser::Iterator); + use parent 'TAP::Parser::Iterator'; sub _initialize { # see TAP::Object... } diff --git a/cpan/Test-Harness/lib/TAP/Parser/Iterator/Array.pm b/cpan/Test-Harness/lib/TAP/Parser/Iterator/Array.pm index 34daa15..c1bb576 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Iterator/Array.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Iterator/Array.pm @@ -1,11 +1,9 @@ package TAP::Parser::Iterator::Array; use strict; -use vars qw($VERSION @ISA); +use warnings; -use TAP::Parser::Iterator (); - -@ISA = 'TAP::Parser::Iterator'; +use parent 'TAP::Parser::Iterator'; =head1 NAME @@ -13,11 +11,11 @@ TAP::Parser::Iterator::Array - Iterator for array-based TAP sources =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/Iterator/Process.pm b/cpan/Test-Harness/lib/TAP/Parser/Iterator/Process.pm index 8a0fb11..d506a65 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Iterator/Process.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Iterator/Process.pm @@ -1,13 +1,12 @@ package TAP::Parser::Iterator::Process; use strict; -use vars qw($VERSION @ISA); +use warnings; -use TAP::Parser::Iterator (); use Config; use IO::Handle; -@ISA = 'TAP::Parser::Iterator'; +use parent 'TAP::Parser::Iterator'; my $IS_WIN32 = ( $^O =~ /^(MS)?Win32$/ ); @@ -17,11 +16,11 @@ TAP::Parser::Iterator::Process - Iterator for process-based TAP sources =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 SYNOPSIS @@ -79,7 +78,7 @@ Get the exit status for this iterator's process. { - local $^W; # no warnings + no warnings 'uninitialized'; # get around a catch22 in the test suite that causes failures on Win32: local $SIG{__DIE__} = undef; eval { require POSIX; &POSIX::WEXITSTATUS(0) }; @@ -138,7 +137,7 @@ sub _initialize { # HOTPATCH {{{ my $xclose = \&IPC::Open3::xclose; - local $^W; # no warnings + no warnings; local *IPC::Open3::xclose = sub { my $fh = shift; no strict 'refs'; diff --git a/cpan/Test-Harness/lib/TAP/Parser/Iterator/Stream.pm b/cpan/Test-Harness/lib/TAP/Parser/Iterator/Stream.pm index e249e27..b3abad6 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Iterator/Stream.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Iterator/Stream.pm @@ -1,11 +1,9 @@ package TAP::Parser::Iterator::Stream; use strict; -use vars qw($VERSION @ISA); +use warnings; -use TAP::Parser::Iterator (); - -@ISA = 'TAP::Parser::Iterator'; +use parent 'TAP::Parser::Iterator'; =head1 NAME @@ -13,11 +11,11 @@ TAP::Parser::Iterator::Stream - Iterator for filehandle-based TAP sources =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/IteratorFactory.pm b/cpan/Test-Harness/lib/TAP/Parser/IteratorFactory.pm index fe31f71..94a605c 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/IteratorFactory.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/IteratorFactory.pm @@ -1,14 +1,12 @@ package TAP::Parser::IteratorFactory; use strict; -use vars qw($VERSION @ISA); - -use TAP::Object (); +use warnings; use Carp qw( confess ); use File::Basename qw( fileparse ); -@ISA = qw(TAP::Object); +use parent 'TAP::Object'; use constant handlers => []; @@ -18,11 +16,11 @@ TAP::Parser::IteratorFactory - Figures out which SourceHandler objects to use fo =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 SYNOPSIS @@ -302,11 +300,8 @@ But in case you find the need to... package MyIteratorFactory; use strict; - use vars '@ISA'; - - use TAP::Parser::IteratorFactory; - @ISA = qw( TAP::Parser::IteratorFactory ); + use parent 'TAP::Parser::IteratorFactory'; # override source detection algorithm sub detect_source { diff --git a/cpan/Test-Harness/lib/TAP/Parser/Multiplexer.pm b/cpan/Test-Harness/lib/TAP/Parser/Multiplexer.pm index 913aa92..68457a8 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Multiplexer.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Multiplexer.pm @@ -1,28 +1,27 @@ package TAP::Parser::Multiplexer; use strict; -use vars qw($VERSION @ISA); +use warnings; use IO::Select; -use TAP::Object (); + +use parent 'TAP::Object'; use constant IS_WIN32 => $^O =~ /^(MS)?Win32$/; use constant IS_VMS => $^O eq 'VMS'; use constant SELECT_OK => !( IS_VMS || IS_WIN32 ); -@ISA = 'TAP::Object'; - =head1 NAME TAP::Parser::Multiplexer - Multiplex multiple TAP::Parsers =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/Result.pm b/cpan/Test-Harness/lib/TAP/Parser/Result.pm index 144a081..b29e155 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Result.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Result.pm @@ -1,11 +1,9 @@ package TAP::Parser::Result; use strict; -use vars qw($VERSION @ISA); +use warnings; -use TAP::Object (); - -@ISA = 'TAP::Object'; +use parent 'TAP::Object'; BEGIN { @@ -26,11 +24,11 @@ TAP::Parser::Result - Base class for TAP::Parser output objects =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 SYNOPSIS @@ -274,9 +272,8 @@ subclass L too, or else it'll never get used. package MyResult; use strict; - use vars '@ISA'; - @ISA = 'TAP::Parser::Result'; + use parent 'TAP::Parser::Result'; # register with the factory: TAP::Parser::ResultFactory->register_type( 'my_type' => __PACKAGE__ ); diff --git a/cpan/Test-Harness/lib/TAP/Parser/Result/Bailout.pm b/cpan/Test-Harness/lib/TAP/Parser/Result/Bailout.pm index 437d8f5..a80b6ee 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Result/Bailout.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Result/Bailout.pm @@ -1,10 +1,9 @@ package TAP::Parser::Result::Bailout; use strict; +use warnings; -use vars qw($VERSION @ISA); -use TAP::Parser::Result; -@ISA = 'TAP::Parser::Result'; +use parent 'TAP::Parser::Result'; =head1 NAME @@ -12,11 +11,11 @@ TAP::Parser::Result::Bailout - Bailout result token. =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Parser/Result/Comment.pm b/cpan/Test-Harness/lib/TAP/Parser/Result/Comment.pm index 678a6d0..1c327b0 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Result/Comment.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Result/Comment.pm @@ -1,10 +1,9 @@ package TAP::Parser::Result::Comment; use strict; +use warnings; -use vars qw($VERSION @ISA); -use TAP::Parser::Result; -@ISA = 'TAP::Parser::Result'; +use parent 'TAP::Parser::Result'; =head1 NAME @@ -12,11 +11,11 @@ TAP::Parser::Result::Comment - Comment result token. =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Parser/Result/Plan.pm b/cpan/Test-Harness/lib/TAP/Parser/Result/Plan.pm index ef85b82..9b10c6f 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Result/Plan.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Result/Plan.pm @@ -1,10 +1,9 @@ package TAP::Parser::Result::Plan; use strict; +use warnings; -use vars qw($VERSION @ISA); -use TAP::Parser::Result; -@ISA = 'TAP::Parser::Result'; +use parent 'TAP::Parser::Result'; =head1 NAME @@ -12,11 +11,11 @@ TAP::Parser::Result::Plan - Plan result token. =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Parser/Result/Pragma.pm b/cpan/Test-Harness/lib/TAP/Parser/Result/Pragma.pm index bf17fc6..528d0ca 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Result/Pragma.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Result/Pragma.pm @@ -1,10 +1,9 @@ package TAP::Parser::Result::Pragma; use strict; +use warnings; -use vars qw($VERSION @ISA); -use TAP::Parser::Result; -@ISA = 'TAP::Parser::Result'; +use parent 'TAP::Parser::Result'; =head1 NAME @@ -12,11 +11,11 @@ TAP::Parser::Result::Pragma - TAP pragma token. =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Parser/Result/Test.pm b/cpan/Test-Harness/lib/TAP/Parser/Result/Test.pm index eff9b9b..7366048 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Result/Test.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Result/Test.pm @@ -1,12 +1,9 @@ package TAP::Parser::Result::Test; use strict; +use warnings; -use vars qw($VERSION @ISA); -use TAP::Parser::Result; -@ISA = 'TAP::Parser::Result'; - -use vars qw($VERSION); +use parent 'TAP::Parser::Result'; =head1 NAME @@ -14,11 +11,11 @@ TAP::Parser::Result::Test - Test result token. =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Parser/Result/Unknown.pm b/cpan/Test-Harness/lib/TAP/Parser/Result/Unknown.pm index 61f441a..fa2f7cc 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Result/Unknown.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Result/Unknown.pm @@ -1,12 +1,9 @@ package TAP::Parser::Result::Unknown; use strict; +use warnings; -use vars qw($VERSION @ISA); -use TAP::Parser::Result; -@ISA = 'TAP::Parser::Result'; - -use vars qw($VERSION); +use parent 'TAP::Parser::Result'; =head1 NAME @@ -14,11 +11,11 @@ TAP::Parser::Result::Unknown - Unknown result token. =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Parser/Result/Version.pm b/cpan/Test-Harness/lib/TAP/Parser/Result/Version.pm index db8e1bc..8c7f24c 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Result/Version.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Result/Version.pm @@ -1,10 +1,9 @@ package TAP::Parser::Result::Version; use strict; +use warnings; -use vars qw($VERSION @ISA); -use TAP::Parser::Result; -@ISA = 'TAP::Parser::Result'; +use parent 'TAP::Parser::Result'; =head1 NAME @@ -12,11 +11,11 @@ TAP::Parser::Result::Version - TAP syntax version token. =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Parser/Result/YAML.pm b/cpan/Test-Harness/lib/TAP/Parser/Result/YAML.pm index 9e0cbad..ad0547e 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Result/YAML.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Result/YAML.pm @@ -1,10 +1,9 @@ package TAP::Parser::Result::YAML; use strict; +use warnings; -use vars qw($VERSION @ISA); -use TAP::Parser::Result; -@ISA = 'TAP::Parser::Result'; +use parent 'TAP::Parser::Result'; =head1 NAME @@ -12,11 +11,11 @@ TAP::Parser::Result::YAML - YAML result token. =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 DESCRIPTION diff --git a/cpan/Test-Harness/lib/TAP/Parser/ResultFactory.pm b/cpan/Test-Harness/lib/TAP/Parser/ResultFactory.pm index fe95045..cf6dddd 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/ResultFactory.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/ResultFactory.pm @@ -1,9 +1,8 @@ package TAP::Parser::ResultFactory; use strict; -use vars qw($VERSION @ISA %CLASS_FOR); +use warnings; -use TAP::Object (); use TAP::Parser::Result::Bailout (); use TAP::Parser::Result::Comment (); use TAP::Parser::Result::Plan (); @@ -13,7 +12,7 @@ use TAP::Parser::Result::Unknown (); use TAP::Parser::Result::Version (); use TAP::Parser::Result::YAML (); -@ISA = 'TAP::Object'; +use parent 'TAP::Object'; ############################################################################## @@ -30,11 +29,11 @@ TAP::Parser::ResultFactory - Factory for creating TAP::Parser output objects =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head2 DESCRIPTION @@ -83,8 +82,7 @@ a completely new type, eg: # create a custom result type: package MyResult; use strict; - use vars qw(@ISA); - @ISA = 'TAP::Parser::Result'; + use parent 'TAP::Parser::Result'; # register with the factory: TAP::Parser::ResultFactory->register_type( 'my_type' => __PACKAGE__ ); @@ -96,18 +94,16 @@ Your custom type should then be picked up automatically by the L. =cut -BEGIN { - %CLASS_FOR = ( - plan => 'TAP::Parser::Result::Plan', - pragma => 'TAP::Parser::Result::Pragma', - test => 'TAP::Parser::Result::Test', - comment => 'TAP::Parser::Result::Comment', - bailout => 'TAP::Parser::Result::Bailout', - version => 'TAP::Parser::Result::Version', - unknown => 'TAP::Parser::Result::Unknown', - yaml => 'TAP::Parser::Result::YAML', - ); -} +our %CLASS_FOR = ( + plan => 'TAP::Parser::Result::Plan', + pragma => 'TAP::Parser::Result::Pragma', + test => 'TAP::Parser::Result::Test', + comment => 'TAP::Parser::Result::Comment', + bailout => 'TAP::Parser::Result::Bailout', + version => 'TAP::Parser::Result::Version', + unknown => 'TAP::Parser::Result::Unknown', + yaml => 'TAP::Parser::Result::YAML', +); sub class_for { my ( $class, $type ) = @_; @@ -166,12 +162,10 @@ Of course, it's up to you to decide whether or not to ignore them. package MyResultFactory; use strict; - use vars '@ISA'; use MyResult; - use TAP::Parser::ResultFactory; - @ISA = qw( TAP::Parser::ResultFactory ); + use parent 'TAP::Parser::ResultFactory'; # force all results to be 'MyResult' sub class_for { diff --git a/cpan/Test-Harness/lib/TAP/Parser/Scheduler.pm b/cpan/Test-Harness/lib/TAP/Parser/Scheduler.pm index 144b38e..eef1a3b 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Scheduler.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Scheduler.pm @@ -1,7 +1,8 @@ package TAP::Parser::Scheduler; use strict; -use vars qw($VERSION); +use warnings; + use Carp; use TAP::Parser::Scheduler::Job; use TAP::Parser::Scheduler::Spinner; @@ -12,11 +13,11 @@ TAP::Parser::Scheduler - Schedule tests during parallel testing =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Job.pm b/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Job.pm index 961a695..30e2bbb 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Job.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Job.pm @@ -1,7 +1,7 @@ package TAP::Parser::Scheduler::Job; use strict; -use vars qw($VERSION); +use warnings; use Carp; =head1 NAME @@ -10,11 +10,11 @@ TAP::Parser::Scheduler::Job - A single testing job. =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Spinner.pm b/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Spinner.pm index fde39ae..4792e04 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Spinner.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Scheduler/Spinner.pm @@ -1,7 +1,7 @@ package TAP::Parser::Scheduler::Spinner; use strict; -use vars qw($VERSION); +use warnings; use Carp; =head1 NAME @@ -10,11 +10,11 @@ TAP::Parser::Scheduler::Spinner - A no-op job. =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/Source.pm b/cpan/Test-Harness/lib/TAP/Parser/Source.pm index e59e9fb..0de4407 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/Source.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/Source.pm @@ -1,26 +1,24 @@ package TAP::Parser::Source; use strict; -use vars qw($VERSION @ISA); +use warnings; -use TAP::Object (); use File::Basename qw( fileparse ); +use parent 'TAP::Object'; use constant BLK_SIZE => 512; -@ISA = qw(TAP::Object); - =head1 NAME TAP::Parser::Source - a TAP source & meta data about it =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler.pm b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler.pm index 740a60e..3b4f327 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler.pm @@ -1,12 +1,10 @@ package TAP::Parser::SourceHandler; use strict; -use vars qw($VERSION @ISA); +use warnings; -use TAP::Object (); use TAP::Parser::Iterator (); - -@ISA = qw(TAP::Object); +use parent 'TAP::Object'; =head1 NAME @@ -14,11 +12,11 @@ TAP::Parser::SourceHandler - Base class for different TAP source handlers =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 SYNOPSIS @@ -27,7 +25,7 @@ $VERSION = '3.28'; # must be sub-classed for use package MySourceHandler; - use base qw( TAP::Parser::SourceHandler ); + use parent 'TAP::Parser::SourceHandler'; sub can_handle { return $confidence_level } sub make_iterator { return $iterator } @@ -105,7 +103,7 @@ a quick overview. Start by familiarizing yourself with L and L. L is -the easiest sub-class to use an an example. +the easiest sub-class to use as an example. It's important to point out that if you want your subclass to be automatically used by L you'll have to and make sure it gets loaded somehow. @@ -123,12 +121,11 @@ L. package MySourceHandler; use strict; - use vars '@ISA'; # compat with older perls use MySourceHandler; # see TAP::Parser::SourceHandler use TAP::Parser::IteratorFactory; - @ISA = qw( TAP::Parser::SourceHandler ); + use parent 'TAP::Parser::SourceHandler'; TAP::Parser::IteratorFactory->register_handler( __PACKAGE__ ); diff --git a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Executable.pm b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Executable.pm index bffff4c..def5e0a 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Executable.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Executable.pm @@ -1,13 +1,12 @@ package TAP::Parser::SourceHandler::Executable; use strict; -use vars qw($VERSION @ISA); +use warnings; -use TAP::Parser::SourceHandler (); use TAP::Parser::IteratorFactory (); use TAP::Parser::Iterator::Process (); -@ISA = qw(TAP::Parser::SourceHandler); +use parent 'TAP::Parser::SourceHandler'; TAP::Parser::IteratorFactory->register_handler(__PACKAGE__); @@ -17,11 +16,11 @@ TAP::Parser::SourceHandler::Executable - Stream output from an executable TAP so =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 SYNOPSIS @@ -156,12 +155,11 @@ Please see L for a subclassing overview. package MyRubySourceHandler; use strict; - use vars '@ISA'; use Carp qw( croak ); use TAP::Parser::SourceHandler::Executable; - @ISA = qw( TAP::Parser::SourceHandler::Executable ); + use parent 'TAP::Parser::SourceHandler::Executable'; # expect $handler->(['mytest.rb', 'cmdline', 'args']); sub make_iterator { diff --git a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/File.pm b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/File.pm index b3c5b1a..e2a4b08 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/File.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/File.pm @@ -1,13 +1,12 @@ package TAP::Parser::SourceHandler::File; use strict; -use vars qw($VERSION @ISA); +use warnings; -use TAP::Parser::SourceHandler (); use TAP::Parser::IteratorFactory (); use TAP::Parser::Iterator::Stream (); -@ISA = qw(TAP::Parser::SourceHandler); +use parent 'TAP::Parser::SourceHandler'; TAP::Parser::IteratorFactory->register_handler(__PACKAGE__); @@ -17,11 +16,11 @@ TAP::Parser::SourceHandler::File - Stream TAP from a text file. =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Handle.pm b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Handle.pm index af7de82..f4ad338 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Handle.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Handle.pm @@ -1,13 +1,12 @@ package TAP::Parser::SourceHandler::Handle; use strict; -use vars qw($VERSION @ISA); +use warnings; -use TAP::Parser::SourceHandler (); use TAP::Parser::IteratorFactory (); use TAP::Parser::Iterator::Stream (); -@ISA = qw(TAP::Parser::SourceHandler); +use parent 'TAP::Parser::SourceHandler'; TAP::Parser::IteratorFactory->register_handler(__PACKAGE__); @@ -17,11 +16,11 @@ TAP::Parser::SourceHandler::Handle - Stream TAP from an IO::Handle or a GLOB. =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Perl.pm b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Perl.pm index 9257f6a..f371673 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Perl.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/Perl.pm @@ -1,18 +1,17 @@ package TAP::Parser::SourceHandler::Perl; use strict; +use warnings; use Config; -use vars qw($VERSION @ISA); use constant IS_WIN32 => ( $^O =~ /^(MS)?Win32$/ ); use constant IS_VMS => ( $^O eq 'VMS' ); -use TAP::Parser::SourceHandler::Executable (); use TAP::Parser::IteratorFactory (); use TAP::Parser::Iterator::Process (); -use TAP::Parser::Utils qw( split_shell ); +use Text::ParseWords qw(shellwords); -@ISA = 'TAP::Parser::SourceHandler::Executable'; +use parent 'TAP::Parser::SourceHandler::Executable'; TAP::Parser::IteratorFactory->register_handler(__PACKAGE__); @@ -22,11 +21,11 @@ TAP::Parser::SourceHandler::Perl - Stream TAP from a Perl executable =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 SYNOPSIS @@ -167,12 +166,12 @@ sub _mangle_switches { # PERL5LIB as -I switches and place PERL5OPT on the command line # in order that it be seen. if ( $class->_has_taint_switch($switches) ) { - my @perl5lib = split /$Config{path_sep}/, $ENV{PERL5LIB}; + my @perl5lib = defined $ENV{PERL5LIB} ? split /$Config{path_sep}/, $ENV{PERL5LIB} : (); return ( $libs, [ @{$switches}, $class->_libs2switches([@$libs, @perl5lib]), - split_shell( $ENV{PERL5OPT} ) + defined $ENV{PERL5OPT} ? shellwords( $ENV{PERL5OPT} ) : () ], ); } @@ -342,11 +341,10 @@ Please see L for a subclassing overview. package MyPerlSourceHandler; use strict; - use vars '@ISA'; use TAP::Parser::SourceHandler::Perl; - @ISA = qw( TAP::Parser::SourceHandler::Perl ); + use parent 'TAP::Parser::SourceHandler::Perl'; # use the version of perl from the shebang line in the test file sub get_perl { diff --git a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/RawTAP.pm b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/RawTAP.pm index 84d320d..c72d5ad 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/RawTAP.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/SourceHandler/RawTAP.pm @@ -1,13 +1,12 @@ package TAP::Parser::SourceHandler::RawTAP; use strict; -use vars qw($VERSION @ISA); +use warnings; -use TAP::Parser::SourceHandler (); use TAP::Parser::IteratorFactory (); use TAP::Parser::Iterator::Array (); -@ISA = qw(TAP::Parser::SourceHandler); +use parent 'TAP::Parser::SourceHandler'; TAP::Parser::IteratorFactory->register_handler(__PACKAGE__); @@ -17,11 +16,11 @@ TAP::Parser::SourceHandler::RawTAP - Stream output from raw TAP in a scalar/arra =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/Utils.pm b/cpan/Test-Harness/lib/TAP/Parser/Utils.pm deleted file mode 100644 index e9735b0..0000000 --- a/cpan/Test-Harness/lib/TAP/Parser/Utils.pm +++ /dev/null @@ -1,72 +0,0 @@ -package TAP::Parser::Utils; - -use strict; -use Exporter; -use vars qw($VERSION @ISA @EXPORT_OK); - -@ISA = qw( Exporter ); -@EXPORT_OK = qw( split_shell ); - -=head1 NAME - -TAP::Parser::Utils - Internal TAP::Parser utilities - -=head1 VERSION - -Version 3.28 - -=cut - -$VERSION = '3.28'; - -=head1 SYNOPSIS - - use TAP::Parser::Utils qw( split_shell ) - my @switches = split_shell( $arg ); - -=head1 DESCRIPTION - -B - -=head2 INTERFACE - -=head3 C - -Shell style argument parsing. Handles backslash escaping, single and -double quoted strings but not shell substitutions. - -Pass one or more strings containing shell escaped arguments. The return -value is an array of arguments parsed from the input strings according -to (approximate) shell parsing rules. It's legal to pass C in -which case an empty array will be returned. That makes it possible to - - my @args = split_shell( $ENV{SOME_ENV_VAR} ); - -without worrying about whether the environment variable exists. - -This is used to split HARNESS_PERL_ARGS into individual switches. - -=cut - -sub split_shell { - my @parts = (); - - for my $switch ( grep defined && length, @_ ) { - push @parts, $1 while $switch =~ / - ( - (?: [^\\"'\s]+ - | \\. - | " (?: \\. | [^"] )* " - | ' (?: \\. | [^'] )* ' - )+ - ) /xg; - } - - for (@parts) { - s/ \\(.) | ['"] /defined $1 ? $1 : ''/exg; - } - - return @parts; -} - -1; diff --git a/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Reader.pm b/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Reader.pm index 855485c..200fc22 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Reader.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Reader.pm @@ -1,12 +1,11 @@ package TAP::Parser::YAMLish::Reader; use strict; -use vars qw($VERSION @ISA); +use warnings; -use TAP::Object (); +use parent 'TAP::Object'; -@ISA = 'TAP::Object'; -$VERSION = '3.28'; +our $VERSION = '3.29'; # TODO: # Handle blessed object syntax @@ -270,7 +269,7 @@ TAP::Parser::YAMLish::Reader - Read YAMLish data from iterator =head1 VERSION -Version 3.28 +Version 3.29 =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Writer.pm b/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Writer.pm index f5308b0..ff90f42 100644 --- a/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Writer.pm +++ b/cpan/Test-Harness/lib/TAP/Parser/YAMLish/Writer.pm @@ -1,12 +1,11 @@ package TAP::Parser::YAMLish::Writer; use strict; -use vars qw($VERSION @ISA); +use warnings; -use TAP::Object (); +use parent 'TAP::Object'; -@ISA = 'TAP::Object'; -$VERSION = '3.28'; +our $VERSION = '3.29'; my $ESCAPE_CHAR = qr{ [ \x00-\x1f \" ] }x; my $ESCAPE_KEY = qr{ (?: ^\W ) | $ESCAPE_CHAR }x; @@ -147,7 +146,7 @@ TAP::Parser::YAMLish::Writer - Write YAMLish data =head1 VERSION -Version 3.28 +Version 3.29 =head1 SYNOPSIS diff --git a/cpan/Test-Harness/lib/Test/Harness.pm b/cpan/Test-Harness/lib/Test/Harness.pm index 8c82199..a3b8de7 100644 --- a/cpan/Test-Harness/lib/Test/Harness.pm +++ b/cpan/Test-Harness/lib/Test/Harness.pm @@ -1,8 +1,9 @@ package Test::Harness; -require 5.00405; +use 5.006; use strict; +use warnings; use constant IS_WIN32 => ( $^O =~ /^(MS)?Win32$/ ); use constant IS_VMS => ( $^O eq 'VMS' ); @@ -12,32 +13,16 @@ use TAP::Parser::Aggregator (); use TAP::Parser::Source (); use TAP::Parser::SourceHandler::Perl (); -use TAP::Parser::Utils qw( split_shell ); +use Text::ParseWords qw(shellwords); use Config; -use Exporter; - -# TODO: Emulate at least some of these -use vars qw( - $VERSION - @ISA @EXPORT @EXPORT_OK - $Verbose $Switches $Debug - $verbose $switches $debug - $Columns - $Color - $Directives - $Timer - $Strap - $HarnessSubclass - $has_time_hires - $IgnoreExit -); +use parent 'Exporter'; # $ML $Last_ML_Print BEGIN { eval q{use Time::HiRes 'time'}; - $has_time_hires = !$@; + our $has_time_hires = !$@; } =head1 NAME @@ -46,11 +31,11 @@ Test::Harness - Run Perl standard test scripts with statistics =head1 VERSION -Version 3.28 +Version 3.29 =cut -$VERSION = '3.28'; +our $VERSION = '3.29'; # Backwards compatibility for exportable variable names. *verbose = *Verbose; @@ -67,18 +52,17 @@ END { delete $ENV{HARNESS_VERSION}; } -@ISA = ('Exporter'); -@EXPORT = qw(&runtests); -@EXPORT_OK = qw(&execute_tests $verbose $switches); +our @EXPORT = qw(&runtests); +our @EXPORT_OK = qw(&execute_tests $verbose $switches); -$Verbose = $ENV{HARNESS_VERBOSE} || 0; -$Debug = $ENV{HARNESS_DEBUG} || 0; -$Switches = '-w'; -$Columns = $ENV{HARNESS_COLUMNS} || $ENV{COLUMNS} || 80; +our $Verbose = $ENV{HARNESS_VERBOSE} || 0; +our $Debug = $ENV{HARNESS_DEBUG} || 0; +our $Switches = '-w'; +our $Columns = $ENV{HARNESS_COLUMNS} || $ENV{COLUMNS} || 80; $Columns--; # Some shells have trouble with a full line of text. -$Timer = $ENV{HARNESS_TIMER} || 0; -$Color = $ENV{HARNESS_COLOR} || 0; -$IgnoreExit = $ENV{HARNESS_IGNORE_EXIT} || 0; +our $Timer = $ENV{HARNESS_TIMER} || 0; +our $Color = $ENV{HARNESS_COLOR} || 0; +our $IgnoreExit = $ENV{HARNESS_IGNORE_EXIT} || 0; =head1 SYNOPSIS @@ -209,7 +193,7 @@ sub _new_harness { my $sub_args = shift || {}; my ( @lib, @switches ); - my @opt = split_shell( $Switches, $ENV{HARNESS_PERL_SWITCHES} ); + my @opt = map { shellwords($_) } grep { defined } $Switches, $ENV{HARNESS_PERL_SWITCHES}; while ( my $opt = shift @opt ) { if ( $opt =~ /^ -I (.*) $ /x ) { push @lib, length($1) ? $1 : shift @opt; @@ -227,7 +211,7 @@ sub _new_harness { my $args = { timer => $Timer, - directives => $Directives, + directives => our $Directives, lib => \@lib, switches => \@switches, color => $Color, @@ -576,6 +560,16 @@ Multiple options may be separated by colons: Specifies a TAP::Harness subclass to be used in place of TAP::Harness. +=item C + +Determines the L for the summary in case it is successful. +This color defaults to C<'green'>. + +=item C + +Determines the L for the failure in case it is successful. +This color defaults to C<'red'>. + =back =head1 Taint Mode diff --git a/cpan/Test-Harness/t/000-load.t b/cpan/Test-Harness/t/000-load.t index 24adddd..07ebce2 100644 --- a/cpan/Test-Harness/t/000-load.t +++ b/cpan/Test-Harness/t/000-load.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -w use strict; +use warnings; use lib 't/lib'; use Test::More; diff --git a/cpan/Test-Harness/t/aggregator.t b/cpan/Test-Harness/t/aggregator.t index 3656208..a0d55c1 100644 --- a/cpan/Test-Harness/t/aggregator.t +++ b/cpan/Test-Harness/t/aggregator.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -wT use strict; +use warnings; use lib 't/lib'; use Test::More tests => 81; diff --git a/cpan/Test-Harness/t/bailout.t b/cpan/Test-Harness/t/bailout.t index e10b133..02feacb 100644 --- a/cpan/Test-Harness/t/bailout.t +++ b/cpan/Test-Harness/t/bailout.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -wT use strict; +use warnings; use lib 't/lib'; use Test::More tests => 33; diff --git a/cpan/Test-Harness/t/base.t b/cpan/Test-Harness/t/base.t index dd71a0c..f348da3 100644 --- a/cpan/Test-Harness/t/base.t +++ b/cpan/Test-Harness/t/base.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -wT use strict; +use warnings; use lib 't/lib'; use Test::More tests => 38; @@ -53,8 +54,7 @@ use TAP::Base; package CallbackOK; use TAP::Base; -use vars qw(@ISA); -@ISA = 'TAP::Base'; +use parent 'TAP::Base'; sub _initialize { my $self = shift; diff --git a/cpan/Test-Harness/t/callbacks.t b/cpan/Test-Harness/t/callbacks.t index ee52092..b6d21db 100644 --- a/cpan/Test-Harness/t/callbacks.t +++ b/cpan/Test-Harness/t/callbacks.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -wT use strict; +use warnings; use lib 't/lib'; use Test::More tests => 10; diff --git a/cpan/Test-Harness/t/compat/env.t b/cpan/Test-Harness/t/compat/env.t index ac5c096..8110ab5 100644 --- a/cpan/Test-Harness/t/compat/env.t +++ b/cpan/Test-Harness/t/compat/env.t @@ -3,6 +3,7 @@ # Test that env vars are honoured. use strict; +use warnings; use lib 't/lib'; use Test::More ( diff --git a/cpan/Test-Harness/t/compat/env_opts.t b/cpan/Test-Harness/t/compat/env_opts.t index 62770db..6acd1fa 100644 --- a/cpan/Test-Harness/t/compat/env_opts.t +++ b/cpan/Test-Harness/t/compat/env_opts.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -w use strict; +use warnings; use Test::More tests => 12; use Test::Harness; diff --git a/cpan/Test-Harness/t/compat/failure.t b/cpan/Test-Harness/t/compat/failure.t index 2f80e57..f3790dc 100644 --- a/cpan/Test-Harness/t/compat/failure.t +++ b/cpan/Test-Harness/t/compat/failure.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -w use strict; +use warnings; use lib 't/lib'; use Test::More tests => 5; diff --git a/cpan/Test-Harness/t/compat/inc-propagation.t b/cpan/Test-Harness/t/compat/inc-propagation.t index 876f031..139dd8b 100644 --- a/cpan/Test-Harness/t/compat/inc-propagation.t +++ b/cpan/Test-Harness/t/compat/inc-propagation.t @@ -4,6 +4,7 @@ # process. use strict; +use warnings; use lib 't/lib'; use Config; diff --git a/cpan/Test-Harness/t/compat/inc_taint.t b/cpan/Test-Harness/t/compat/inc_taint.t index 05e8283..eb6f97b 100644 --- a/cpan/Test-Harness/t/compat/inc_taint.t +++ b/cpan/Test-Harness/t/compat/inc_taint.t @@ -5,6 +5,7 @@ BEGIN { } use strict; +use warnings; use Test::More tests => 1; diff --git a/cpan/Test-Harness/t/compat/regression.t b/cpan/Test-Harness/t/compat/regression.t index 50a4d51..2e5ac9a 100644 --- a/cpan/Test-Harness/t/compat/regression.t +++ b/cpan/Test-Harness/t/compat/regression.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -w use strict; +use warnings; use lib 't/lib'; use Test::More tests => 1; diff --git a/cpan/Test-Harness/t/compat/subclass.t b/cpan/Test-Harness/t/compat/subclass.t index 0b66b5a..ec62761 100644 --- a/cpan/Test-Harness/t/compat/subclass.t +++ b/cpan/Test-Harness/t/compat/subclass.t @@ -3,6 +3,7 @@ # Test that HARNESS_SUBCLASS env var is honoured. use strict; +use warnings; use lib 't/lib'; use Test::More ( diff --git a/cpan/Test-Harness/t/compat/switches.t b/cpan/Test-Harness/t/compat/switches.t index 42b16c8..4974c97 100644 --- a/cpan/Test-Harness/t/compat/switches.t +++ b/cpan/Test-Harness/t/compat/switches.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -w use strict; +use warnings; use Test::More ( $^O eq 'VMS' ? ( skip_all => 'VMS' ) diff --git a/cpan/Test-Harness/t/compat/test-harness-compat.t b/cpan/Test-Harness/t/compat/test-harness-compat.t index cae9a54..e4d369a 100644 --- a/cpan/Test-Harness/t/compat/test-harness-compat.t +++ b/cpan/Test-Harness/t/compat/test-harness-compat.t @@ -5,6 +5,7 @@ BEGIN { } use strict; +use warnings; # use lib 't/lib'; diff --git a/cpan/Test-Harness/t/compat/version.t b/cpan/Test-Harness/t/compat/version.t index 08344cb..10b5ced 100644 --- a/cpan/Test-Harness/t/compat/version.t +++ b/cpan/Test-Harness/t/compat/version.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -Tw use strict; +use warnings; use lib 't/lib'; use Test::More tests => 2; diff --git a/cpan/Test-Harness/t/console.t b/cpan/Test-Harness/t/console.t index 32f5db6..b92b679 100644 --- a/cpan/Test-Harness/t/console.t +++ b/cpan/Test-Harness/t/console.t @@ -1,4 +1,5 @@ use strict; +use warnings; use lib 't/lib'; use Test::More; use TAP::Formatter::Console; diff --git a/cpan/Test-Harness/t/errors.t b/cpan/Test-Harness/t/errors.t index 3a54cbe..38d0f29 100644 --- a/cpan/Test-Harness/t/errors.t +++ b/cpan/Test-Harness/t/errors.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -wT use strict; +use warnings; use lib 't/lib'; use Test::More tests => 23; diff --git a/cpan/Test-Harness/t/file.t b/cpan/Test-Harness/t/file.t index 1eeb68d..2b18548 100644 --- a/cpan/Test-Harness/t/file.t +++ b/cpan/Test-Harness/t/file.t @@ -5,6 +5,7 @@ BEGIN { } use strict; +use warnings; use Test::More; @@ -23,7 +24,7 @@ ok $ENV{HARNESS_VERSION}, 'HARNESS_VERSION env variable should be set'; { my @output; - local $^W; + no warnings 'redefine'; require TAP::Formatter::Base; local *TAP::Formatter::Base::_output = sub { my $self = shift; diff --git a/cpan/Test-Harness/t/glob-to-regexp.t b/cpan/Test-Harness/t/glob-to-regexp.t index 54b7e26..d8447e0 100644 --- a/cpan/Test-Harness/t/glob-to-regexp.t +++ b/cpan/Test-Harness/t/glob-to-regexp.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -w use strict; +use warnings; use Test::More; diff --git a/cpan/Test-Harness/t/grammar.t b/cpan/Test-Harness/t/grammar.t index d145c13..7e74044 100644 --- a/cpan/Test-Harness/t/grammar.t +++ b/cpan/Test-Harness/t/grammar.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -w use strict; +use warnings; BEGIN { unshift @INC, 't/lib'; diff --git a/cpan/Test-Harness/t/harness-bailout.t b/cpan/Test-Harness/t/harness-bailout.t index fd1dc35..181e1eb 100644 --- a/cpan/Test-Harness/t/harness-bailout.t +++ b/cpan/Test-Harness/t/harness-bailout.t @@ -1,6 +1,7 @@ #!perl use strict; +use warnings; use File::Spec; BEGIN { diff --git a/cpan/Test-Harness/t/harness-subclass.t b/cpan/Test-Harness/t/harness-subclass.t index c6b46da..a67b7d1 100644 --- a/cpan/Test-Harness/t/harness-subclass.t +++ b/cpan/Test-Harness/t/harness-subclass.t @@ -5,6 +5,7 @@ BEGIN { } use strict; +use warnings; use TAP::Harness; use Test::More tests => 13; diff --git a/cpan/Test-Harness/t/harness.t b/cpan/Test-Harness/t/harness.t index 774f49b5..63ea841 100644 --- a/cpan/Test-Harness/t/harness.t +++ b/cpan/Test-Harness/t/harness.t @@ -5,12 +5,19 @@ BEGIN { } use strict; +use warnings; use Test::More; use IO::c55Capture; use TAP::Harness; +# This is done to prevent the colors environment variables from +# interfering. +local %ENV = %ENV; +delete $ENV{HARNESS_SUMMARY_COLOR_FAIL}; +delete $ENV{HARNESS_SUMMARY_COLOR_SUCCESS}; + my $HARNESS = 'TAP::Harness'; my $source_tests = 't/source_tests'; @@ -74,7 +81,7 @@ for my $test_args ( get_arg_sets() ) { { my @output; - local $^W; + no warnings 'redefine'; local *TAP::Formatter::Base::_output = sub { my $self = shift; push @output => grep { $_ ne '' } diff --git a/cpan/Test-Harness/t/iterator_factory.t b/cpan/Test-Harness/t/iterator_factory.t index 36abdff..4e16201 100644 --- a/cpan/Test-Harness/t/iterator_factory.t +++ b/cpan/Test-Harness/t/iterator_factory.t @@ -8,6 +8,7 @@ BEGIN { } use strict; +use warnings; use Test::More tests => 42; diff --git a/cpan/Test-Harness/t/iterators.t b/cpan/Test-Harness/t/iterators.t index 0321772..4fa92f3 100644 --- a/cpan/Test-Harness/t/iterators.t +++ b/cpan/Test-Harness/t/iterators.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -w use strict; +use warnings; use lib 't/lib'; use Test::More tests => 76; @@ -28,8 +29,7 @@ my $setup = sub { $did_setup++ }; my $teardown = sub { $did_teardown++ }; package NoForkProcess; -use vars qw( @ISA ); -@ISA = qw( TAP::Parser::Iterator::Process ); +use parent qw( TAP::Parser::Iterator::Process ); sub _use_open3 {return} diff --git a/cpan/Test-Harness/t/lib/App/Prove/Plugin/Dummy.pm b/cpan/Test-Harness/t/lib/App/Prove/Plugin/Dummy.pm index 81f79ea..a7a70b6 100644 --- a/cpan/Test-Harness/t/lib/App/Prove/Plugin/Dummy.pm +++ b/cpan/Test-Harness/t/lib/App/Prove/Plugin/Dummy.pm @@ -1,6 +1,7 @@ package App::Prove::Plugin::Dummy; use strict; +use warnings; sub import { main::test_log_import(@_); diff --git a/cpan/Test-Harness/t/lib/App/Prove/Plugin/Dummy2.pm b/cpan/Test-Harness/t/lib/App/Prove/Plugin/Dummy2.pm index ae80003..af901d1 100644 --- a/cpan/Test-Harness/t/lib/App/Prove/Plugin/Dummy2.pm +++ b/cpan/Test-Harness/t/lib/App/Prove/Plugin/Dummy2.pm @@ -1,6 +1,7 @@ package App::Prove::Plugin::Dummy2; use strict; +use warnings; sub import { main::test_log_import(@_); diff --git a/cpan/Test-Harness/t/lib/EmptyParser.pm b/cpan/Test-Harness/t/lib/EmptyParser.pm index 76f9a7d..0e4c29f 100644 --- a/cpan/Test-Harness/t/lib/EmptyParser.pm +++ b/cpan/Test-Harness/t/lib/EmptyParser.pm @@ -1,11 +1,9 @@ package EmptyParser; use strict; -use vars qw(@ISA); +use warnings; -use TAP::Parser (); - -@ISA = qw(TAP::Parser); +use parent qw(TAP::Parser); sub _initialize { shift->_set_defaults; diff --git a/cpan/Test-Harness/t/lib/MyCustom.pm b/cpan/Test-Harness/t/lib/MyCustom.pm index c24013d..d6bacdb 100644 --- a/cpan/Test-Harness/t/lib/MyCustom.pm +++ b/cpan/Test-Harness/t/lib/MyCustom.pm @@ -2,6 +2,7 @@ package MyCustom; use strict; +use warnings; sub custom { my $self = shift; diff --git a/cpan/Test-Harness/t/lib/MyFileSourceHandler.pm b/cpan/Test-Harness/t/lib/MyFileSourceHandler.pm index d9b66c6..14032f5 100644 --- a/cpan/Test-Harness/t/lib/MyFileSourceHandler.pm +++ b/cpan/Test-Harness/t/lib/MyFileSourceHandler.pm @@ -3,13 +3,12 @@ package MyFileSourceHandler; use strict; -use vars qw( @ISA $LAST_OBJ $CAN_HANDLE $MAKE_ITER $LAST_SOURCE ); +use warnings; +our ($LAST_OBJ, $CAN_HANDLE, $MAKE_ITER, $LAST_SOURCE); -use MyCustom; use TAP::Parser::IteratorFactory; -use TAP::Parser::SourceHandler::File; -@ISA = qw( TAP::Parser::SourceHandler::File MyCustom ); +use parent qw( TAP::Parser::SourceHandler::File MyCustom ); $LAST_OBJ = undef; $CAN_HANDLE = undef; $MAKE_ITER = undef; diff --git a/cpan/Test-Harness/t/lib/MyGrammar.pm b/cpan/Test-Harness/t/lib/MyGrammar.pm index ef93f9d..5e1c934 100644 --- a/cpan/Test-Harness/t/lib/MyGrammar.pm +++ b/cpan/Test-Harness/t/lib/MyGrammar.pm @@ -3,12 +3,9 @@ package MyGrammar; use strict; -use vars '@ISA'; +use warnings; -use MyCustom; -use TAP::Parser::Grammar; - -@ISA = qw( TAP::Parser::Grammar MyCustom ); +use parent qw( TAP::Parser::Grammar MyCustom ); sub _initialize { my $self = shift; diff --git a/cpan/Test-Harness/t/lib/MyIterator.pm b/cpan/Test-Harness/t/lib/MyIterator.pm index 561f6e2..7898006 100644 --- a/cpan/Test-Harness/t/lib/MyIterator.pm +++ b/cpan/Test-Harness/t/lib/MyIterator.pm @@ -3,12 +3,9 @@ package MyIterator; use strict; -use vars '@ISA'; +use warnings; -use MyCustom; -use TAP::Parser::Iterator; - -@ISA = qw( TAP::Parser::Iterator MyCustom ); +use parent qw( TAP::Parser::Iterator MyCustom ); sub _initialize { my $self = shift; diff --git a/cpan/Test-Harness/t/lib/MyPerlSourceHandler.pm b/cpan/Test-Harness/t/lib/MyPerlSourceHandler.pm index e5a34be..7ba3727 100644 --- a/cpan/Test-Harness/t/lib/MyPerlSourceHandler.pm +++ b/cpan/Test-Harness/t/lib/MyPerlSourceHandler.pm @@ -3,13 +3,11 @@ package MyPerlSourceHandler; use strict; -use vars '@ISA'; +use warnings; -use MyCustom; use TAP::Parser::IteratorFactory; -use TAP::Parser::SourceHandler::Perl; -@ISA = qw( TAP::Parser::SourceHandler::Perl MyCustom ); +use parent qw( TAP::Parser::SourceHandler::Perl MyCustom ); TAP::Parser::IteratorFactory->register_handler(__PACKAGE__); diff --git a/cpan/Test-Harness/t/lib/MyResult.pm b/cpan/Test-Harness/t/lib/MyResult.pm index ab4845d..7b35ead 100644 --- a/cpan/Test-Harness/t/lib/MyResult.pm +++ b/cpan/Test-Harness/t/lib/MyResult.pm @@ -3,12 +3,9 @@ package MyResult; use strict; -use vars '@ISA'; +use warnings; -use MyCustom; -use TAP::Parser::Result; - -@ISA = qw( TAP::Parser::Result MyCustom ); +use parent qw( TAP::Parser::Result MyCustom ); sub _initialize { my $self = shift; diff --git a/cpan/Test-Harness/t/lib/MyResultFactory.pm b/cpan/Test-Harness/t/lib/MyResultFactory.pm index 371bba6..a6a2f5d 100644 --- a/cpan/Test-Harness/t/lib/MyResultFactory.pm +++ b/cpan/Test-Harness/t/lib/MyResultFactory.pm @@ -3,13 +3,11 @@ package MyResultFactory; use strict; -use vars '@ISA'; +use warnings; -use MyCustom; use MyResult; -use TAP::Parser::ResultFactory; -@ISA = qw( TAP::Parser::ResultFactory MyCustom ); +use parent qw( TAP::Parser::ResultFactory MyCustom ); sub make_result { my $class = shift; diff --git a/cpan/Test-Harness/t/lib/MySourceHandler.pm b/cpan/Test-Harness/t/lib/MySourceHandler.pm index 67cbee0..9c0fc69 100644 --- a/cpan/Test-Harness/t/lib/MySourceHandler.pm +++ b/cpan/Test-Harness/t/lib/MySourceHandler.pm @@ -3,15 +3,14 @@ package MySourceHandler; use strict; -use vars '@ISA'; +use warnings; -use MyCustom; use MyIterator; use TAP::Parser::SourceHandler; use TAP::Parser::IteratorFactory; -#@ISA = qw( TAP::Parser::SourceHandler MyCustom ); -@ISA = qw( MyCustom ); +#use parent qw( TAP::Parser::SourceHandler MyCustom ); +use parent qw( MyCustom ); TAP::Parser::IteratorFactory->register_handler(__PACKAGE__); diff --git a/cpan/Test-Harness/t/lib/TAP/Harness/TestSubclass.pm b/cpan/Test-Harness/t/lib/TAP/Harness/TestSubclass.pm index 5a44922..bb9a7f3 100644 --- a/cpan/Test-Harness/t/lib/TAP/Harness/TestSubclass.pm +++ b/cpan/Test-Harness/t/lib/TAP/Harness/TestSubclass.pm @@ -1,5 +1,6 @@ package TAP::Harness::TestSubclass; use strict; +use warnings; use base 'TAP::Harness'; sub aggregate_tests { diff --git a/cpan/Test-Harness/t/lib/TAP/Parser/SubclassTest.pm b/cpan/Test-Harness/t/lib/TAP/Parser/SubclassTest.pm index 8772dfd..79487d2 100644 --- a/cpan/Test-Harness/t/lib/TAP/Parser/SubclassTest.pm +++ b/cpan/Test-Harness/t/lib/TAP/Parser/SubclassTest.pm @@ -3,17 +3,14 @@ package TAP::Parser::SubclassTest; use strict; -use vars qw(@ISA); +use warnings; -use TAP::Parser; - -use MyCustom; use MySourceHandler; use MyPerlSourceHandler; use MyGrammar; use MyResultFactory; -@ISA = qw( TAP::Parser MyCustom ); +use parent qw( TAP::Parser MyCustom ); sub _default_source_class {'MySourceHandler'} # deprecated sub _default_perl_source_class {'MyPerlSourceHandler'} # deprecated diff --git a/cpan/Test-Harness/t/multiplexer.t b/cpan/Test-Harness/t/multiplexer.t index 649d5d1..2e55b12 100644 --- a/cpan/Test-Harness/t/multiplexer.t +++ b/cpan/Test-Harness/t/multiplexer.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -w use strict; +use warnings; use lib 't/lib'; use Test::More qw( no_plan ); diff --git a/cpan/Test-Harness/t/nested.t b/cpan/Test-Harness/t/nested.t index 473e676..9fc39a3 100644 --- a/cpan/Test-Harness/t/nested.t +++ b/cpan/Test-Harness/t/nested.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -wT use strict; +use warnings; use lib 't/lib'; use Test::More tests => 5; diff --git a/cpan/Test-Harness/t/nofork-mux.t b/cpan/Test-Harness/t/nofork-mux.t index 3b702a2..6712eb9 100644 --- a/cpan/Test-Harness/t/nofork-mux.t +++ b/cpan/Test-Harness/t/nofork-mux.t @@ -5,6 +5,7 @@ BEGIN { } use strict; +use warnings; use NoFork; require('t/multiplexer.t'); diff --git a/cpan/Test-Harness/t/nofork.t b/cpan/Test-Harness/t/nofork.t index 88c2e98..a062792 100644 --- a/cpan/Test-Harness/t/nofork.t +++ b/cpan/Test-Harness/t/nofork.t @@ -8,6 +8,7 @@ BEGIN { } use strict; +use warnings; use Config; use Test::More ( diff --git a/cpan/Test-Harness/t/object.t b/cpan/Test-Harness/t/object.t index b1a4dd0..7309224 100644 --- a/cpan/Test-Harness/t/object.t +++ b/cpan/Test-Harness/t/object.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -wT use strict; +use warnings; use lib 't/lib'; use Test::More tests => 7; @@ -14,8 +15,7 @@ can_ok( 'TAP::Object', '_croak' ); { package TAP::TestObj; - use vars qw(@ISA); - @ISA = qw(TAP::Object); + use parent qw(TAP::Object); sub _initialize { my $self = shift; diff --git a/cpan/Test-Harness/t/parse.t b/cpan/Test-Harness/t/parse.t index 9cf5913..8556ce7 100644 --- a/cpan/Test-Harness/t/parse.t +++ b/cpan/Test-Harness/t/parse.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -w use strict; +use warnings; BEGIN { use lib 't/lib'; @@ -802,9 +803,8 @@ END_TAP package TAP::Parser::Iterator::Dies; use strict; - use vars qw(@ISA); - @ISA = qw(TAP::Parser::Iterator); + use parent qw(TAP::Parser::Iterator); sub next_raw { die 'this is the dying iterator'; @@ -898,9 +898,8 @@ END_TAP # coverage testing of TAP::Parser::_next_state package TAP::Parser::WithBrokenState; - use vars qw(@ISA); - @ISA = qw( TAP::Parser ); + use parent qw( TAP::Parser ); sub _make_state_table { return { INIT => { plan => { goto => 'FOO' } } }; @@ -936,9 +935,8 @@ END_TAP # coverage testing of TAP::Parser::_iter package TAP::Parser::WithBrokenIter; - use vars qw(@ISA); - @ISA = qw( TAP::Parser ); + use parent qw( TAP::Parser ); sub _iter {return} diff --git a/cpan/Test-Harness/t/parser-config.t b/cpan/Test-Harness/t/parser-config.t index 4fdd7cc..5f1e636 100644 --- a/cpan/Test-Harness/t/parser-config.t +++ b/cpan/Test-Harness/t/parser-config.t @@ -5,7 +5,8 @@ BEGIN { } use strict; -use vars qw(%INIT %CUSTOM); +use warnings; +our (%INIT, %CUSTOM); use Test::More tests => 5; use File::Spec::Functions qw( catfile updir ); diff --git a/cpan/Test-Harness/t/parser-subclass.t b/cpan/Test-Harness/t/parser-subclass.t index 4e8a2a7..abd7ff3 100644 --- a/cpan/Test-Harness/t/parser-subclass.t +++ b/cpan/Test-Harness/t/parser-subclass.t @@ -5,7 +5,8 @@ BEGIN { } use strict; -use vars qw(%INIT %CUSTOM); +use warnings; +our (%INIT, %CUSTOM); use Test::More tests => 14; use File::Spec::Functions qw( catfile updir ); diff --git a/cpan/Test-Harness/t/perl5lib.t b/cpan/Test-Harness/t/perl5lib.t index 3947aa6..2ced6f5 100644 --- a/cpan/Test-Harness/t/perl5lib.t +++ b/cpan/Test-Harness/t/perl5lib.t @@ -4,6 +4,7 @@ # process. use strict; +use warnings; use lib 't/lib'; use Config; diff --git a/cpan/Test-Harness/t/premature-bailout.t b/cpan/Test-Harness/t/premature-bailout.t index 537e2e4..bcaa1e6 100644 --- a/cpan/Test-Harness/t/premature-bailout.t +++ b/cpan/Test-Harness/t/premature-bailout.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -wT use strict; +use warnings; use lib 't/lib'; use Test::More tests => 14; diff --git a/cpan/Test-Harness/t/process.t b/cpan/Test-Harness/t/process.t index 5135d67..45c04b7 100644 --- a/cpan/Test-Harness/t/process.t +++ b/cpan/Test-Harness/t/process.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -w use strict; +use warnings; use lib 't/lib'; my $hires; diff --git a/cpan/Test-Harness/t/prove.t b/cpan/Test-Harness/t/prove.t index 429aabc..72a8994 100644 --- a/cpan/Test-Harness/t/prove.t +++ b/cpan/Test-Harness/t/prove.t @@ -5,6 +5,7 @@ BEGIN { } use strict; +use warnings; use Test::More; use File::Spec; @@ -12,12 +13,11 @@ use File::Spec; use App::Prove; use Getopt::Long; -use TAP::Parser::Utils qw( split_shell ); +use Text::ParseWords qw(shellwords); package FakeProve; -use vars qw( @ISA ); -@ISA = qw( App::Prove ); +use parent qw( App::Prove ); sub new { my $class = shift; @@ -1627,7 +1627,7 @@ for my $test (@SCHEDULE) { # adapt our expectations if HARNESS_PERL_SWITCHES is set push @{ $runlog->[0][1]{switches} }, - split_shell( $ENV{HARNESS_PERL_SWITCHES} ) + shellwords( $ENV{HARNESS_PERL_SWITCHES} ) if $ENV{HARNESS_PERL_SWITCHES}; unless ( diff --git a/cpan/Test-Harness/t/proveenv.t b/cpan/Test-Harness/t/proveenv.t index be9942a..1af22a0 100644 --- a/cpan/Test-Harness/t/proveenv.t +++ b/cpan/Test-Harness/t/proveenv.t @@ -1,5 +1,6 @@ #!perl use strict; +use warnings; use lib 't/lib'; use Test::More tests => 2; use App::Prove; diff --git a/cpan/Test-Harness/t/proverc.t b/cpan/Test-Harness/t/proverc.t index e3febcf..1a94196 100644 --- a/cpan/Test-Harness/t/proverc.t +++ b/cpan/Test-Harness/t/proverc.t @@ -5,6 +5,7 @@ BEGIN { } use strict; +use warnings; use lib 't/lib'; use Test::More tests => 1; use File::Spec; diff --git a/cpan/Test-Harness/t/proverun.t b/cpan/Test-Harness/t/proverun.t index 736eb2e..0cd73e7 100644 --- a/cpan/Test-Harness/t/proverun.t +++ b/cpan/Test-Harness/t/proverun.t @@ -5,10 +5,11 @@ BEGIN { } use strict; +use warnings; use Test::More; use File::Spec; use App::Prove; -use TAP::Parser::Utils qw( split_shell ); +use Text::ParseWords qw(shellwords); my @SCHEDULE; @@ -47,7 +48,7 @@ BEGIN { command => [ 'PERL', $ENV{HARNESS_PERL_SWITCHES} - ? split_shell( $ENV{HARNESS_PERL_SWITCHES} ) + ? shellwords( $ENV{HARNESS_PERL_SWITCHES} ) : (), $_->{file}, ], @@ -67,9 +68,8 @@ BEGIN { # Waaaaay too much boilerplate package FakeProve; -use vars qw( @ISA ); -@ISA = qw( App::Prove ); +use parent qw( App::Prove ); sub new { my $class = shift; @@ -94,13 +94,11 @@ package main; # Patch TAP::Parser::Iterator::Process my @call_log = (); - local $^W; # no warnings + no warnings qw(redefine once); my $orig_new = TAP::Parser::Iterator::Process->can('new'); - # Avoid "used only once" warning - *TAP::Parser::Iterator::Process::new - = *TAP::Parser::Iterator::Process::new = sub { + *TAP::Parser::Iterator::Process::new = sub { push @call_log, [ 'new', @_ ]; # And then new turns round and tramples on our args... diff --git a/cpan/Test-Harness/t/proveversion.t b/cpan/Test-Harness/t/proveversion.t index 4b504c5..07b6f66 100644 --- a/cpan/Test-Harness/t/proveversion.t +++ b/cpan/Test-Harness/t/proveversion.t @@ -10,6 +10,7 @@ sub _has_TAP_Formatter_HTML { } use strict; +use warnings; use Test::More tests => 1; use IO::c55Capture; # for util diff --git a/cpan/Test-Harness/t/regression.t b/cpan/Test-Harness/t/regression.t index aa3a194..7e1388e 100644 --- a/cpan/Test-Harness/t/regression.t +++ b/cpan/Test-Harness/t/regression.t @@ -5,6 +5,7 @@ BEGIN { } use strict; +use warnings; use Test::More 'no_plan'; @@ -3190,9 +3191,9 @@ my %samples = ( ); my %HANDLER_FOR = ( - NOT_ZERO, sub { local $^W; 0 != shift }, - TRUE, sub { local $^W; !!shift }, - FALSE, sub { local $^W; !shift }, + NOT_ZERO, sub { no warnings; 0 != shift }, + TRUE, sub { no warnings; !!shift }, + FALSE, sub { no warnings; !shift }, ); my $can_open3 = ( $Config{d_fork} || $IsWin32 ) ? 1 : 0; @@ -3200,7 +3201,7 @@ my $can_open3 = ( $Config{d_fork} || $IsWin32 ) ? 1 : 0; for my $hide_fork ( 0 .. $can_open3 ) { if ($hide_fork) { no strict 'refs'; - local $^W = 0; + no warnings 'redefine'; *{'TAP::Parser::Iterator::Process::_use_open3'} = sub {return}; } @@ -3251,7 +3252,7 @@ for my $hide_fork ( 0 .. $can_open3 ) { "... and $method should return a reasonable value ($test)"; } elsif ( !ref $answer ) { - local $^W; # uninit warnings + no warnings 'uninitialized'; $answer = _vmsify_answer( $method, $answer ); diff --git a/cpan/Test-Harness/t/results.t b/cpan/Test-Harness/t/results.t index 0522dd6..f772332 100644 --- a/cpan/Test-Harness/t/results.t +++ b/cpan/Test-Harness/t/results.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -wT use strict; +use warnings; use lib 't/lib'; use Test::More tests => 227; @@ -62,8 +63,9 @@ can_ok $factory, 'register_type'; package MyResult; use strict; - use vars qw($VERSION @ISA); - @ISA = 'TAP::Parser::Result'; + use warnings; + our $VERSION; + use parent 'TAP::Parser::Result'; TAP::Parser::ResultFactory->register_type( 'my_type' => __PACKAGE__ ); } diff --git a/cpan/Test-Harness/t/scheduler.t b/cpan/Test-Harness/t/scheduler.t index b274207..81c92f3 100644 --- a/cpan/Test-Harness/t/scheduler.t +++ b/cpan/Test-Harness/t/scheduler.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -w use strict; +use warnings; use lib 't/lib'; use Test::More; diff --git a/cpan/Test-Harness/t/source.t b/cpan/Test-Harness/t/source.t index cdfd9e5..767892c 100644 --- a/cpan/Test-Harness/t/source.t +++ b/cpan/Test-Harness/t/source.t @@ -5,6 +5,7 @@ BEGIN { } use strict; +use warnings; use Test::More tests => 45; use File::Spec; diff --git a/cpan/Test-Harness/t/source_handler.t b/cpan/Test-Harness/t/source_handler.t index 4c9e70d..c06b342 100644 --- a/cpan/Test-Harness/t/source_handler.t +++ b/cpan/Test-Harness/t/source_handler.t @@ -5,6 +5,7 @@ BEGIN { } use strict; +use warnings; use Test::More tests => 79; diff --git a/cpan/Test-Harness/t/spool.t b/cpan/Test-Harness/t/spool.t index 38afc46..f585b39 100644 --- a/cpan/Test-Harness/t/spool.t +++ b/cpan/Test-Harness/t/spool.t @@ -9,6 +9,7 @@ BEGIN { # nearly everything use strict; +use warnings; use Test::More; my $useOrigOpen; diff --git a/cpan/Test-Harness/t/state.t b/cpan/Test-Harness/t/state.t index 9d9f031..e6e7a8a 100644 --- a/cpan/Test-Harness/t/state.t +++ b/cpan/Test-Harness/t/state.t @@ -5,6 +5,7 @@ BEGIN { } use strict; +use warnings; use Test::More; use App::Prove::State; use App::Prove::State::Result; diff --git a/cpan/Test-Harness/t/state_results.t b/cpan/Test-Harness/t/state_results.t index fe0b944..1a4bcc7 100644 --- a/cpan/Test-Harness/t/state_results.t +++ b/cpan/Test-Harness/t/state_results.t @@ -5,6 +5,7 @@ BEGIN { } use strict; +use warnings; use Test::More tests => 25; use App::Prove::State; diff --git a/cpan/Test-Harness/t/streams.t b/cpan/Test-Harness/t/streams.t index f4e9767..bd72ce9 100644 --- a/cpan/Test-Harness/t/streams.t +++ b/cpan/Test-Harness/t/streams.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -wT use strict; +use warnings; use lib 't/lib'; use Test::More tests => 49; diff --git a/cpan/Test-Harness/t/taint.t b/cpan/Test-Harness/t/taint.t index ceed7a4..42efc18 100644 --- a/cpan/Test-Harness/t/taint.t +++ b/cpan/Test-Harness/t/taint.t @@ -7,6 +7,7 @@ BEGIN { # Test that environment options are propagated to tainted tests use strict; +use warnings; use Test::More ( $^O eq 'VMS' ? ( skip_all => 'VMS' ) : ( tests => 2 ) ); use Config; diff --git a/cpan/Test-Harness/t/testargs.t b/cpan/Test-Harness/t/testargs.t index 4fba591..3e85003 100644 --- a/cpan/Test-Harness/t/testargs.t +++ b/cpan/Test-Harness/t/testargs.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -w use strict; +use warnings; use lib 't/lib'; use Test::More; @@ -81,8 +82,7 @@ sub make_shell_test { package Test::Prove; -use vars qw(@ISA); -@ISA = 'App::Prove'; +use parent 'App::Prove'; sub _runtests { my $self = shift; diff --git a/cpan/Test-Harness/t/unicode.t b/cpan/Test-Harness/t/unicode.t index 88d3208..dc01458 100644 --- a/cpan/Test-Harness/t/unicode.t +++ b/cpan/Test-Harness/t/unicode.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -w use strict; +use warnings; use lib 't/lib'; use Test::More; use TAP::Parser; diff --git a/cpan/Test-Harness/t/utils.t b/cpan/Test-Harness/t/utils.t deleted file mode 100644 index 4851ac1..0000000 --- a/cpan/Test-Harness/t/utils.t +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/perl -w - -use strict; -use lib 't/lib'; - -use TAP::Parser::Utils qw( split_shell ); -use Test::More; - -my @schedule = ( - { name => 'Bare words', - in => 'bare words are here', - out => [ 'bare', 'words', 'are', 'here' ], - }, - { name => 'Single quotes', - in => "'bare' 'words' 'are' 'here'", - out => [ 'bare', 'words', 'are', 'here' ], - }, - { name => 'Double quotes', - in => '"bare" "words" "are" "here"', - out => [ 'bare', 'words', 'are', 'here' ], - }, - { name => 'Escapes', - in => '\ "ba\"re" \'wo\\\'rds\' \\\\"are" "here"', - out => [ ' ', 'ba"re', "wo'rds", '\\are', 'here' ], - }, - { name => 'Flag', - in => '-e "system(shift)"', - out => [ '-e', 'system(shift)' ], - }, - { name => 'Nada', - in => undef, - out => [], - }, - { name => 'Nada II', - in => '', - out => [], - }, - { name => 'Zero', - in => 0, - out => ['0'], - }, - { name => 'Empty', - in => '""', - out => [''], - }, - { name => 'Empty II', - in => "''", - out => [''], - }, -); - -plan tests => 1 * @schedule; - -for my $test (@schedule) { - my $name = $test->{name}; - my @got = split_shell( $test->{in} ); - unless ( is_deeply \@got, $test->{out}, "$name: parse OK" ) { - use Data::Dumper; - diag( Dumper( { want => $test->{out}, got => \@got } ) ); - } -} diff --git a/cpan/Test-Harness/t/yamlish-output.t b/cpan/Test-Harness/t/yamlish-output.t index 914d7ea..4cf3fd7 100644 --- a/cpan/Test-Harness/t/yamlish-output.t +++ b/cpan/Test-Harness/t/yamlish-output.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -wT use strict; +use warnings; use lib 't/lib'; use Test::More tests => 9; diff --git a/cpan/Test-Harness/t/yamlish-writer.t b/cpan/Test-Harness/t/yamlish-writer.t index f7a22c3..550b757 100644 --- a/cpan/Test-Harness/t/yamlish-writer.t +++ b/cpan/Test-Harness/t/yamlish-writer.t @@ -1,6 +1,7 @@ #!/usr/bin/perl use strict; +use warnings; use lib 't/lib'; use Test::More; diff --git a/cpan/Test-Harness/t/yamlish.t b/cpan/Test-Harness/t/yamlish.t index 76ba798..fbcefe3 100644 --- a/cpan/Test-Harness/t/yamlish.t +++ b/cpan/Test-Harness/t/yamlish.t @@ -1,6 +1,7 @@ #!perl -w use strict; +use warnings; use lib 't/lib'; use Test::More; diff --git a/pod/perldelta.pod b/pod/perldelta.pod index ed0d8cb..70dcba7 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -198,6 +198,13 @@ The podlators modules have been upgraded from version 2.5.1 to 2.5.3. Numerous updates and bug fixes are incorporated. See the F file in the CPAN distribution for full details. +=item * + +L has been upgraded from version 3.28 to 3.29. + +All modules now use C rather than C, have C +enabled and C instead of @ISA. + =back =head2 Removed Modules and Pragmata -- 2.7.4