- $file ||= 'SKIP'; + $file ||= 't/SKIP';
excellent, thanks for tracking that down.
we just need to be a bit more platform independent. if you could verify that the attached patch works ok for you, I'll commit it.
Index: lib/Apache/TestHarness.pm
===================================================================
RCS file:
/home/cvspublic/httpd-test/perl-framework/Apache-Test/lib/Apache/TestHarness.pm,v
retrieving revision 1.13
diff -u -r1.13 TestHarness.pm
--- lib/Apache/TestHarness.pm 31 Jan 2004 01:12:17 -0000 1.13
+++ lib/Apache/TestHarness.pm 23 Feb 2004 17:40:32 -0000
@@ -23,7 +23,7 @@
#skip tests listed in t/SKIP
sub skip {
my($self, $file) = @_;
- $file ||= 'SKIP';
+ $file ||= catfile Apache::Test::vars('serverroot'), 'SKIP';
Geoff, you are making a good point of removing the hardcoding of t/ towards the idea of being able to split the test suite. There are a few other places where t/ is hardcoded. But at those places, e.g.:
Apache-Test/lib/Apache/TestRun.pm: push @tests, "t/$arg"; Apache-Test/lib/Apache/TestRun.pm: push @tests, "t/$arg.t";
Apache::Test::vars('serverroot') is not available yet. So perhaps we need to deduct the serverroot directory from the location of the driving script. I'd think in the recently added code in TestRun.pm:
sub run {
my $self = shift; # assuming that test files are always in the same directory as the
# driving script, make it possible to run the test suite from any place
# use a full path, which will work after chdir (e.g. ./TEST)
$0 = File::Spec->rel2abs($0);
if (-e $0) {
my $top = dirname dirname $0;
chdir $top if $top and -d $top;
}So may be it should be:
my $server_root;
my $project_root;
sub server_root { $server_root }
sub project_root { $project_root }
sub run {
my $self = shift; # assuming that test files are always in the same directory as the
# driving script, make it possible to run the test suite from any place
# use a full path, which will work after chdir (e.g. ./TEST)
$0 = File::Spec->rel2abs($0);
if (-e $0) {
$server_root = dirname $0;
$project_root = dirname $server_root;
chdir $project_root if $project_root and -d $project_root;
}and now server_root() and project_root() are available across the A-T project.
That's of course if all projects will always put TEST (or its equivalent) in t/ or another directory.
__________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
