- $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