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