dougm       01/04/02 01:53:59

  Added:       Apache-Test/lib/Apache TestHarness.pm
  Log:
  Test::Harness wrapper
  
  Revision  Changes    Path
  1.1                  modperl-2.0/Apache-Test/lib/Apache/TestHarness.pm
  
  Index: TestHarness.pm
  ===================================================================
  package Apache::TestHarness;
  
  use strict;
  use warnings FATAL => 'all';
  
  use Test::Harness ();
  use File::Spec::Functions qw(catfile);
  use File::Find qw(finddepth);
  
  sub chdir_t {
      chdir 't' if -d 't';
  #Apache::TestConfig->new takes care of @INC
  #    inc_fixup();
  }
  
  sub inc_fixup {
      # use blib
      unshift @INC, map "blib/$_", qw(lib arch);
  
      # fix all relative library locations
      for (@INC) {
          $_ = "../$_" unless m,^(/)|([a-f]:),i;
      }
  }
  
  sub run {
      my $self = shift;
      my $args = shift || {};
      my @tests = ();
  
      chdir_t();
  
      $Test::Harness::verbose ||= $args->{verbose};
      my $ts = $args->{tests} || [];
  
      if (@$ts) {
        for (@$ts) {
            if (-d $_) {
                push(@tests, <$_/*.t>);
            }
            else {
                $_ .= ".t" unless /\.t$/;
                push(@tests, $_);
            }
        }
      }
      else {
          if ($args->{tdirs}) {
              push @tests, map { <$_/*.t> } @{ $args->{tdirs} };
          }
          else {
              finddepth(sub {
                            return unless /\.t$/;
                            my $t = catfile $File::Find::dir, $_;
                            my $dotslash = catfile '.', "";
                            $t =~ s:^$dotslash::;
                            push @tests, $t
                        }, '.');
          }
      }
  
      Test::Harness::runtests(@tests);
  }
  
  1;
  
  
  

Reply via email to