On Tue, 3 Feb 2004, Christopher H. Laco wrote:
I've installed Apache::Test 1.07 on ActiveState perl 5.6.1 build 630 and am trying to make test scripts for a pile of pages in a package I'm workin on.
If I pass in an -httpd path that has spaces in the path, it fails.
use ExtUtils::MakeMaker; use Apache::TestMM qw(test clean);
push @ARGV, '-httpd', 'C:\Program Files\Apache Group\Apache\Apache.exe';
[ .. ]
Is this an Apache::Test problem, or possible an nmake issue?
This case should be handled I'd think on the Apache::Test side. Does my $exe = 'C:\Program Files\Apache Group\Apache\Apache.exe'; $exe = Win32::GetShortPathName($exe); push @ARGV, '-httpd', $exe; work? If so, I'll look at seeing where this could be added within Apache::Test.
This patch should probably take care of it. It's untested.
Index: lib/Apache/TestConfig.pm
===================================================================
RCS file: /home/cvs/httpd-test/perl-framework/Apache-Test/lib/Apache/TestConfig.pm,v
retrieving revision 1.205
diff -u -r1.205 TestConfig.pm
--- lib/Apache/TestConfig.pm 18 Feb 2004 00:30:57 -0000 1.205
+++ lib/Apache/TestConfig.pm 18 Feb 2004 04:40:21 -0000
@@ -67,6 +67,16 @@
(map { $_ . '_module_name', "$_ module name"} qw(cgi ssl thread access auth)),
);
+my %filepath_conf_opts = map { $_ => 1 }
+ qw(top_dir t_dir t_conf t_logs t_conf_file src_dir serverroot
+ documentroot bindir sbindir httpd apxs httpd_conf perlpod sslca
+ libmodperl);
+
+sub conf_opt_is_a_filepath {
+ my $opt = shift;
+ $opt && exists $filepath_conf_opts{$opt};
+}
+
sub usage {
for my $hash (\%Usage) {
for (sort keys %$hash){
Index: lib/Apache/TestRun.pm
===================================================================
RCS file:
/home/cvs/httpd-test/perl-framework/Apache-Test/lib/Apache/TestRun.pm,v
retrieving revision 1.149
diff -u -r1.149 TestRun.pm
--- lib/Apache/TestRun.pm 18 Feb 2004 04:09:08 -0000 1.149
+++ lib/Apache/TestRun.pm 18 Feb 2004 04:40:21 -0000
@@ -238,6 +238,15 @@
push @argv, $val;
}+ # fixup the filepath options on win32 (spaces, short names, etc.)
+ if (Apache::TestConfig::WIN32) {
+ require Win32::GetShortPathName;
+ for my $key (keys %conf_opts) {
+ next unless Apache::TestConfig::conf_opt_is_a_filepath($key);
+ $conf_opts{$key} = Win32::GetShortPathName($conf_opts{$key});
+ }
+ }
+
$opts{req_args} = \%req_args;# only test files/dirs if any at all are left in argv
__________________________________________________________________ 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
