From 2adbc9b6919cad1240a834325b355e9b2d5efd67 Mon Sep 17 00:00:00 2001 From: Nicholas Clark Date: Fri, 28 Aug 2009 00:44:15 +0100 Subject: Make extensions in ext run their tests from the extension's own directory. Inspired by, and in parts borrows from, Schwern's branch on github, but takes a slightly different approach in places. Not quite perfect yet - ext/File-Glob still runs from t, at least one FIXME needs fixing, and the changes to dual-life modules' tests need to be filtered back upstream, and possibly modified to suit their respective authors. But it works. --- ext/POSIX/t/is.t | 4 +--- ext/POSIX/t/posix.t | 17 ++++++----------- ext/POSIX/t/sigaction.t | 5 ----- ext/POSIX/t/sysconf.t | 5 ----- ext/POSIX/t/taint.t | 6 ++---- ext/POSIX/t/termios.t | 5 ----- ext/POSIX/t/waitpid.t | 5 ----- 7 files changed, 9 insertions(+), 38 deletions(-) (limited to 'ext/POSIX') diff --git a/ext/POSIX/t/is.t b/ext/POSIX/t/is.t index 489b3a9638..cb36fb5692 100644 --- a/ext/POSIX/t/is.t +++ b/ext/POSIX/t/is.t @@ -1,8 +1,6 @@ #!./perl -w BEGIN { - chdir 't' if -d 't'; - @INC = '../lib'; require Config; import Config; if ($^O ne 'VMS' and $Config{'extensions'} !~ /\bPOSIX\b/) { print "1..0\n"; @@ -72,7 +70,7 @@ foreach my $s (keys %classes) { # Expected number of tests is one each for every combination of a # known is function and string listed above. -require './test.pl'; +require '../../t/test.pl'; plan(tests => keys(%classes) * keys(%functions)); diff --git a/ext/POSIX/t/posix.t b/ext/POSIX/t/posix.t index 93665325dd..0800f914b5 100644 --- a/ext/POSIX/t/posix.t +++ b/ext/POSIX/t/posix.t @@ -1,8 +1,6 @@ #!./perl BEGIN { - chdir 't' if -d 't'; - @INC = '../lib'; require Config; import Config; if ($^O ne 'VMS' and $Config{'extensions'} !~ /\bPOSIX\b/) { print "1..0\n"; @@ -10,7 +8,7 @@ BEGIN { } } -BEGIN { require "./test.pl"; } +BEGIN { require "../../t/test.pl"; } plan(tests => 66); use POSIX qw(fcntl_h signal_h limits_h _exit getcwd open read strftime write @@ -50,9 +48,9 @@ if ($Is_VMS) { } -ok( $testfd = open("TEST", O_RDONLY, 0), 'O_RDONLY with open' ); +ok( $testfd = open("Makefile.PL", O_RDONLY, 0), 'O_RDONLY with open' ); read($testfd, $buffer, 4) if $testfd > 2; -is( $buffer, "#!./", ' with read' ); +is( $buffer, "# Ex", ' with read' ); TODO: { @@ -147,14 +145,11 @@ SKIP: { } my $pat; -if ($Is_MacOS) { - $pat = qr/:t:$/; -} -elsif ( $unix_mode ) { - $pat = qr#[\\/]t$#i; +if ( $unix_mode ) { + $pat = qr#[\\/]POSIX$#i; } else { - $pat = qr/\.T]/i; + $pat = qr/\.POSIX]/i; } like( getcwd(), qr/$pat/, 'getcwd' ); diff --git a/ext/POSIX/t/sigaction.t b/ext/POSIX/t/sigaction.t index 0d532b2472..fd6cf2de65 100644 --- a/ext/POSIX/t/sigaction.t +++ b/ext/POSIX/t/sigaction.t @@ -1,10 +1,5 @@ #!./perl -BEGIN { - chdir 't' if -d 't'; - unshift @INC, '../lib'; -} - BEGIN{ # Don't do anything if POSIX is missing, or sigaction missing. use Config; diff --git a/ext/POSIX/t/sysconf.t b/ext/POSIX/t/sysconf.t index f11841c7fb..2dc9762977 100644 --- a/ext/POSIX/t/sysconf.t +++ b/ext/POSIX/t/sysconf.t @@ -1,11 +1,6 @@ #!perl -T BEGIN { - if ($ENV{PERL_CORE}) { - chdir 't'; - @INC = '../lib'; - } - use Config; use Test::More; plan skip_all => "POSIX is unavailable" if $Config{'extensions'} !~ m!\bPOSIX\b!; diff --git a/ext/POSIX/t/taint.t b/ext/POSIX/t/taint.t index a88f6561fb..3ca01743e0 100644 --- a/ext/POSIX/t/taint.t +++ b/ext/POSIX/t/taint.t @@ -1,8 +1,6 @@ #!./perl -Tw BEGIN { - chdir 't' if -d 't'; - @INC = '../lib'; require Config; import Config; if ($^O ne 'VMS' and $Config{'extensions'} !~ /\bPOSIX\b/) { print "1..0\n"; @@ -28,7 +26,7 @@ my $testfd; my $TAINT = substr($^X, 0, 0); -my $file = 'TEST'; +my $file = 'POSIX.xs'; eval { mkfifo($TAINT. $file, 0) }; like($@, qr/^Insecure dependency/, 'mkfifo with tainted data'); @@ -40,7 +38,7 @@ eval { $testfd = open($file, O_RDONLY, 0) }; is($@, "", 'open with untainted data'); read($testfd, $buffer, 2) if $testfd > 2; -is( $buffer, "#!", ' read' ); +is( $buffer, "#d", ' read' ); ok(tainted($buffer), ' scalar tainted'); TODO: { diff --git a/ext/POSIX/t/termios.t b/ext/POSIX/t/termios.t index 2fbff9665a..7c3deb6678 100644 --- a/ext/POSIX/t/termios.t +++ b/ext/POSIX/t/termios.t @@ -1,11 +1,6 @@ #!perl -T BEGIN { - if ($ENV{PERL_CORE}) { - chdir 't'; - @INC = '../lib'; - } - use Config; use Test::More; plan skip_all => "POSIX is unavailable" diff --git a/ext/POSIX/t/waitpid.t b/ext/POSIX/t/waitpid.t index c36a611bfc..105b1be1b2 100644 --- a/ext/POSIX/t/waitpid.t +++ b/ext/POSIX/t/waitpid.t @@ -1,8 +1,3 @@ -BEGIN { - chdir 't' if -d 't'; - unshift @INC, '../lib'; -} - BEGIN { use Config; unless ($Config{d_fork}) { -- cgit v1.2.1