summaryrefslogtreecommitdiff
path: root/t/TEST
diff options
context:
space:
mode:
Diffstat (limited to 't/TEST')
-rwxr-xr-xt/TEST32
1 files changed, 28 insertions, 4 deletions
diff --git a/t/TEST b/t/TEST
index 702409e467..8f60c8701c 100755
--- a/t/TEST
+++ b/t/TEST
@@ -44,12 +44,34 @@ $ENV{PERL_DESTRUCT_LEVEL} = 2 unless exists $ENV{PERL_DESTRUCT_LEVEL};
$ENV{EMXSHELL} = 'sh'; # For OS/2
-if ($#ARGV == -1) {
- @ARGV = split(/[ \n]/,
- `echo base/*.t comp/*.t cmd/*.t run/*.t io/*.t; echo op/*.t pragma/*.t lib/*.t pod/*.t`);
+
+# Roll your own File::Find!
+use TestInit;
+use File::Spec;
+my $curdir = File::Spec->curdir;
+my $updir = File::Spec->updir;
+
+sub _find_tests {
+ my($dir) = @_;
+ opendir DIR, $dir || die "Trouble opening $dir: $!";
+ foreach my $f (readdir DIR) {
+ next if $f eq $curdir or $f eq $updir;
+
+ my $fullpath = File::Spec->catdir($dir, $f);
+
+ _find_tests($fullpath) if -d $fullpath;
+ push @ARGV, $fullpath if $f =~ /\.t$/;
+ }
+}
+
+unless (@ARGV) {
+ foreach my $dir (qw(base comp cmd run io op pragma lib pod)) {
+ _find_tests($dir);
+ }
}
# %infinite = ( 'comp/require.t', 1, 'op/bop.t', 1, 'lib/hostname.t', 1 );
+%infinite = ();
if ($deparse) {
_testprogs('deparse', @ARGV);
@@ -170,8 +192,9 @@ EOT
print $_;
}
unless (/^#/) {
- if (/^1\.\.([0-9]+)/) {
+ if (/^1\.\.([0-9]+)( todo ([\d ]+))?/) {
$max = $1;
+ %todo = map { $_ => 1 } split / /, $3 if $3;
$totmax += $max;
$files += 1;
$next = 1;
@@ -183,6 +206,7 @@ EOT
{
my($not, $num, $extra) = ($1, $2, $3);
my($istodo) = $extra =~ /^\s*#\s*TODO/ if $extra;
+ $istodo = 1 if $todo{$num};
if( $not && !$istodo ) {
$ok = 0;