diff options
author | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2003-12-31 08:28:43 +0000 |
---|---|---|
committer | Rafael Garcia-Suarez <rgarciasuarez@gmail.com> | 2003-12-31 08:28:43 +0000 |
commit | 60e33a80f044d3bc238cf78e893aebc7d865af63 (patch) | |
tree | ad3ac746397b9d7833b5ce418377c29a15e7439d /lib/Test/Harness | |
parent | 1955c8df0d22842b6d2e7d7ca54cb284b1c7c779 (diff) | |
download | perl-60e33a80f044d3bc238cf78e893aebc7d865af63.tar.gz |
Upgrade to Test::Harness 2.40.
p4raw-id: //depot/perl@22021
Diffstat (limited to 'lib/Test/Harness')
-rw-r--r-- | lib/Test/Harness/Changes | 20 | ||||
-rw-r--r-- | lib/Test/Harness/Iterator.pm | 11 | ||||
-rw-r--r-- | lib/Test/Harness/Straps.pm | 10 | ||||
-rw-r--r-- | lib/Test/Harness/bin/prove | 18 | ||||
-rw-r--r-- | lib/Test/Harness/t/00compile.t | 4 | ||||
-rw-r--r-- | lib/Test/Harness/t/assert.t | 2 | ||||
-rw-r--r-- | lib/Test/Harness/t/callback.t | 20 | ||||
-rw-r--r-- | lib/Test/Harness/t/prove-switches.t | 26 | ||||
-rw-r--r-- | lib/Test/Harness/t/strap-analyze.t | 17 | ||||
-rw-r--r-- | lib/Test/Harness/t/strap.t | 2 | ||||
-rw-r--r-- | lib/Test/Harness/t/test-harness.t | 5 |
11 files changed, 100 insertions, 35 deletions
diff --git a/lib/Test/Harness/Changes b/lib/Test/Harness/Changes index e3c223ae44..6427c6a3a2 100644 --- a/lib/Test/Harness/Changes +++ b/lib/Test/Harness/Changes @@ -1,5 +1,25 @@ Revision history for Perl extension Test::Harness +2.40 Tue Dec 30 20:38:59 CST 2003 + [FIXES] + * Test::Harness::Straps should now properly quote on VMS. + + [ENHANCEMENTS] + * prove now takes a -l option to add lib/ to @INC. Now when you're + building a module, you don't have to do a make before you run + the prove. Thanks to David Wheeler for the idea. + + [INTERNALS] + * Internal functions corestatus() and canonfailed() prepended with + underscores, to indicate such. + + * Gratuitous text-only changes in Test::Harness::Iterator. + + * All tests now do their use_ok() in a BEGIN block. Some of the + use_ok() calls were too much of a hassle to put into a BEGIN block, + so I changed them to regular use calls. + + 2.38 Mon Nov 24 22:36:18 CST 2003 Released. See changes below. diff --git a/lib/Test/Harness/Iterator.pm b/lib/Test/Harness/Iterator.pm index 8939f86a4a..adb0727c83 100644 --- a/lib/Test/Harness/Iterator.pm +++ b/lib/Test/Harness/Iterator.pm @@ -2,8 +2,7 @@ package Test::Harness::Iterator; use strict; use vars qw($VERSION); -$VERSION = 0.01; - +$VERSION = 0.02; =head1 NAME @@ -23,6 +22,14 @@ B<FOR INTERNAL USE ONLY!> This is a simple iterator wrapper for arrays and filehandles. +=head2 new() + +Create an iterator. + +=head2 next() + +Iterate through it, of course. + =cut sub new { diff --git a/lib/Test/Harness/Straps.pm b/lib/Test/Harness/Straps.pm index d536274457..27f5602f5c 100644 --- a/lib/Test/Harness/Straps.pm +++ b/lib/Test/Harness/Straps.pm @@ -1,12 +1,12 @@ # -*- Mode: cperl; cperl-indent-level: 4 -*- -# $Id: Straps.pm,v 1.34 2003/11/23 00:02:11 andy Exp $ +# $Id: Straps.pm,v 1.35 2003/12/31 02:34:22 andy Exp $ package Test::Harness::Straps; use strict; use vars qw($VERSION); use Config; -$VERSION = '0.18'; +$VERSION = '0.19'; use Test::Harness::Assert; use Test::Harness::Iterator; @@ -372,9 +372,11 @@ sub _switches { push @derived_switches, map { "-I$_" } @inc; } - # Quote all switches to prevent shell interference, or VMS downcasing + # Quote the argument if there's any whitespace in it, or if + # we're VMS, since VMS requires all parms quoted. Also, don't quote + # it if it's already quoted. for ( @derived_switches ) { - $_ = qq["$_"] if /\S/ && !/^".*"$/; + $_ = qq["$_"] if ((/\s/ || $self->{_is_vms}) && !/^".*"$/ ); } return join( " ", @existing_switches, @derived_switches ); } diff --git a/lib/Test/Harness/bin/prove b/lib/Test/Harness/bin/prove index e9a463f59a..44a631b847 100644 --- a/lib/Test/Harness/bin/prove +++ b/lib/Test/Harness/bin/prove @@ -14,6 +14,7 @@ my @ext = (); my $shuffle = 0; my $dry = 0; my $blib = 0; +my $lib = 0; my $recurse = 0; my @includes = (); my @switches = (); @@ -34,6 +35,7 @@ GetOptions( 'h|help|?' => sub {pod2usage({-verbose => 1, -input => \*DATA}); exit}, 'H|man' => sub {pod2usage({-verbose => 2, -input => \*DATA}); exit}, 'I=s@' => \@includes, + 'l|lib' => \$lib, 'r|recurse' => \$recurse, 's|shuffle' => \$shuffle, 't' => sub { unshift @switches, "-t" }, # Always want -t up front @@ -60,6 +62,11 @@ if ( $blib ) { } } +# Handle lib includes +if ( $lib ) { + unshift @includes, "lib"; +} + # Build up TH switches push( @switches, map { /\s/ && !/^".*"$/ ? qq["-I$_"] : "-I$_" } @includes ); $Test::Harness::Switches = join( " ", @switches ); @@ -165,6 +172,7 @@ Options: -h, --help Display this help -H, --man Longer manpage for prove -I Add libraries to @INC, as Perl's -I + -l, --lib Add lib to the path for your tests. -r, --recurse Recursively descend into directories. -s, --shuffle Run the tests in a random order. -T Enable tainting checks @@ -255,7 +263,11 @@ The --ext is repeatable. =head2 -I -Add libraries to @INC, as Perl's -I +Add libraries to @INC, as Perl's -I. + +=head2 -l, --lib + +Add C<lib> to @INC. Equivalent to C<-Ilib>. =head2 -r, --recurse @@ -300,10 +312,6 @@ C<< <bug-test-harness@rt.cpan.org> >>. Shuffled tests must be recreatable -=item * - -Add a flag to run prove under Devel::Cover - =back =head1 AUTHORS diff --git a/lib/Test/Harness/t/00compile.t b/lib/Test/Harness/t/00compile.t index 5b795a7e94..1f83bf67ef 100644 --- a/lib/Test/Harness/t/00compile.t +++ b/lib/Test/Harness/t/00compile.t @@ -13,6 +13,7 @@ BEGIN { use Test::More tests => 5; BEGIN { use_ok 'Test::Harness' } +BEGIN { diag( "Testing Test::Harness $Test::Harness::VERSION" ) } BEGIN { use_ok 'Test::Harness::Straps' } @@ -21,4 +22,5 @@ BEGIN { use_ok 'Test::Harness::Iterator' } BEGIN { use_ok 'Test::Harness::Assert' } # If the $VERSION is set improperly, this will spew big warnings. -use_ok 'Test::Harness', 1.1601; +BEGIN { use_ok 'Test::Harness', 1.1601 } + diff --git a/lib/Test/Harness/t/assert.t b/lib/Test/Harness/t/assert.t index ec5239ec9b..48d094b52b 100644 --- a/lib/Test/Harness/t/assert.t +++ b/lib/Test/Harness/t/assert.t @@ -14,7 +14,7 @@ use strict; use Test::More tests => 7; -use_ok( 'Test::Harness::Assert' ); +BEGIN { use_ok( 'Test::Harness::Assert' ); } ok( defined &assert, 'assert() exported' ); diff --git a/lib/Test/Harness/t/callback.t b/lib/Test/Harness/t/callback.t index c3a7fb9d26..4164da4abe 100644 --- a/lib/Test/Harness/t/callback.t +++ b/lib/Test/Harness/t/callback.t @@ -13,12 +13,10 @@ BEGIN { use Test::More; use File::Spec; -my $Curdir = File::Spec->curdir; -my $SAMPLE_TESTS = $ENV{PERL_CORE} - ? File::Spec->catdir($Curdir, 'lib', 'sample-tests') - : File::Spec->catdir($Curdir, 't', 'sample-tests'); - -%samples = ( +BEGIN { + use vars qw( %samples ); + + %samples = ( bailout => [qw( header test test test bailout )], combined => ['header', ('test') x 10], descriptive => ['header', ('test') x 5 ], @@ -42,10 +40,16 @@ my $SAMPLE_TESTS = $ENV{PERL_CORE} with_comments => [qw( other header other test other test test test other other test other )], ); + plan tests => 2 + scalar keys %samples; +} + +BEGIN { use_ok( 'Test::Harness::Straps' ); } -plan tests => 2 + scalar keys %samples; +my $Curdir = File::Spec->curdir; +my $SAMPLE_TESTS = $ENV{PERL_CORE} + ? File::Spec->catdir($Curdir, 'lib', 'sample-tests') + : File::Spec->catdir($Curdir, 't', 'sample-tests'); -use_ok( 'Test::Harness::Straps' ); my $strap = Test::Harness::Straps->new; isa_ok( $strap, 'Test::Harness::Straps' ); $strap->{callback} = sub { diff --git a/lib/Test/Harness/t/prove-switches.t b/lib/Test/Harness/t/prove-switches.t index 1df12db152..aa7ece97e0 100644 --- a/lib/Test/Harness/t/prove-switches.t +++ b/lib/Test/Harness/t/prove-switches.t @@ -14,8 +14,7 @@ use Test::More; plan skip_all => "Not adapted to perl core" if $ENV{PERL_CORE}; plan skip_all => "Not installing prove" if -e "t/SKIP-PROVE"; -plan tests => 3; -local $/ = undef; +plan tests => 5; my $blib = File::Spec->catfile( File::Spec->curdir, "blib" ); my $blib_lib = File::Spec->catfile( $blib, "lib" ); @@ -24,6 +23,8 @@ my $prove = File::Spec->catfile( $blib, "script", "prove" ); CAPITAL_TAINT: { local $ENV{PROVE_SWITCHES}; + local $/ = undef; + my @actual = qx/$prove -Ifirst -D -I second -Ithird -Tvdb/; my @expected = ( "# \$Test::Harness::Switches: -T -I$blib_arch -I$blib_lib -Ifirst -Isecond -Ithird\n" ); array_match_ok( \@actual, \@expected, "Capital taint flags OK" ); @@ -31,6 +32,8 @@ CAPITAL_TAINT: { LOWERCASE_TAINT: { local $ENV{PROVE_SWITCHES}; + local $/ = undef; + my @actual = qx/$prove -dD -Ifirst -I second -t -Ithird -vb/; my @expected = ( "# \$Test::Harness::Switches: -t -I$blib_arch -I$blib_lib -Ifirst -Isecond -Ithird\n" ); array_match_ok( \@actual, \@expected, "Lowercase taint OK" ); @@ -38,11 +41,30 @@ LOWERCASE_TAINT: { PROVE_SWITCHES: { local $ENV{PROVE_SWITCHES} = "-dvb -I fark"; + local $/ = undef; + my @actual = qx/$prove -Ibork -Dd/; my @expected = ( "# \$Test::Harness::Switches: -I$blib_arch -I$blib_lib -Ifark -Ibork\n" ); array_match_ok( \@actual, \@expected, "PROVE_SWITCHES OK" ); } +PROVE_SWITCHES_L: { + local $/ = undef; + + my @actual = qx/$prove -l -Ibongo -Dd/; + my @expected = ( "# \$Test::Harness::Switches: -Ilib -Ibongo\n" ); + array_match_ok( \@actual, \@expected, "PROVE_SWITCHES OK" ); +} + +PROVE_SWITCHES_LB: { + local $/ = undef; + + my @actual = qx/$prove -lb -Dd/; + my @expected = ( "# \$Test::Harness::Switches: -Ilib -I$blib_arch -I$blib_lib\n" ); + array_match_ok( \@actual, \@expected, "PROVE_SWITCHES OK" ); +} + + sub array_match_ok { my $actual = shift; my $expected = shift; diff --git a/lib/Test/Harness/t/strap-analyze.t b/lib/Test/Harness/t/strap-analyze.t index c372df90ab..ed27fcd019 100644 --- a/lib/Test/Harness/t/strap-analyze.t +++ b/lib/Test/Harness/t/strap-analyze.t @@ -460,9 +460,9 @@ my %samples = ( }, ); -plan tests => (keys(%samples) * 5) + 4; +plan tests => (keys(%samples) * 5) + 3; -use_ok('Test::Harness::Straps'); +use Test::Harness::Straps; $SIG{__WARN__} = sub { warn @_ unless $_[0] =~ /^Enormous test number/ || @@ -507,10 +507,11 @@ for my $test ( sort keys %samples ) { } is_deeply(\%results, $expect, " the rest $test" ); -} - +} # for %samples -my $strap = Test::Harness::Straps->new; -isa_ok( $strap, 'Test::Harness::Straps' ); -ok( !$strap->analyze_file('I_dont_exist') ); -is( $strap->{error}, "I_dont_exist does not exist" ); +NON_EXISTENT_FILE: { + my $strap = Test::Harness::Straps->new; + isa_ok( $strap, 'Test::Harness::Straps' ); + ok( !$strap->analyze_file('I_dont_exist') ); + is( $strap->{error}, "I_dont_exist does not exist" ); +} diff --git a/lib/Test/Harness/t/strap.t b/lib/Test/Harness/t/strap.t index 2980d970ff..ab9d0da090 100644 --- a/lib/Test/Harness/t/strap.t +++ b/lib/Test/Harness/t/strap.t @@ -14,7 +14,7 @@ use strict; use Test::More tests => 170; -use_ok('Test::Harness::Straps'); +BEGIN { use_ok('Test::Harness::Straps'); } my $strap = Test::Harness::Straps->new; isa_ok( $strap, 'Test::Harness::Straps', 'new()' ); diff --git a/lib/Test/Harness/t/test-harness.t b/lib/Test/Harness/t/test-harness.t index ca87efa0ae..5662a16ba0 100644 --- a/lib/Test/Harness/t/test-harness.t +++ b/lib/Test/Harness/t/test-harness.t @@ -469,10 +469,9 @@ my %samples = ( }, ); -plan tests => (keys(%samples) * 8) + 1; +plan tests => (keys(%samples) * 8); -use_ok('Test::Harness'); -use Test::Harness; # So that we don't get "used only once" warnings on the next line +use Test::Harness; $Test::Harness::Switches = '"-Mstrict"'; tie *NULL, 'Dev::Null' or die $!; |