You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl-cvs@perl.apache.org by ra...@apache.org on 2003/12/04 08:20:29 UTC
cvs commit: modperl-2.0/ModPerl-Registry/t basic.t redirect.t
randyk 2003/12/03 23:20:29
Modified: perl-framework/Apache-Test/lib/Apache TestUtil.pm
ModPerl-Registry/t basic.t redirect.t
Log:
Reviewed by: stas
Apache uses a Unix-style specification for files, in particular the
forward slash for directory separators. This causes problems in comparing
such files to those constructed with File::Spec->catfile, which may
use a different directory separator on a non-Unix platform. For such
cases we introduce a function t_catfile_apache in Apache::TestUtil which
is essentially File::Spec::Unix->catfile, with an allowance made to
return the long path name on Win32 if the path is absolute.
Revision Changes Path
1.32 +39 -2 httpd-test/perl-framework/Apache-Test/lib/Apache/TestUtil.pm
Index: TestUtil.pm
===================================================================
RCS file: /home/cvs/httpd-test/perl-framework/Apache-Test/lib/Apache/TestUtil.pm,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- TestUtil.pm 29 Apr 2003 08:04:04 -0000 1.31
+++ TestUtil.pm 4 Dec 2003 07:20:29 -0000 1.32
@@ -9,7 +9,7 @@
use Carp ();
use Config;
use File::Basename qw(dirname);
-use File::Spec::Functions qw(catfile);
+use File::Spec::Functions qw(catfile file_name_is_absolute);
use Symbol ();
use Apache::Test ();
@@ -26,7 +26,8 @@
t_client_log_error_is_expected t_client_log_warn_is_expected
);
-@EXPORT_OK = qw(t_write_perl_script t_write_shell_script t_chown);
+@EXPORT_OK = qw(t_write_perl_script t_write_shell_script t_chown
+ t_catfile_apache t_catfile);
%CLEAN = ();
@@ -304,6 +305,26 @@
}
}
+# essentially File::Spec->catfile, but on Win32
+# returns the long path name, if the file is absolute
+sub t_catfile {
+ my $f = catfile(@_);
+ return $f unless file_name_is_absolute($f);
+ return Apache::TestConfig::WIN32 ?
+ Win32::GetLongPathName($f) : $f;
+}
+
+# Apache uses a Unix-style specification for files, with
+# forward slashes for directory separators. This is
+# essentially File::Spec::Unix->catfile, but on Win32
+# returns the long path name, if the file is absolute
+sub t_catfile_apache {
+ my $f = File::Spec::Unix->catfile(@_);
+ return $f unless file_name_is_absolute($f);
+ return Apache::TestConfig::WIN32 ?
+ Win32::GetLongPathName($f) : $f;
+}
+
1;
__END__
@@ -617,6 +638,22 @@
details.
This function is exported by default.
+
+=item t_catfile('a', 'b', 'c')
+
+This function is essentially C<File::Spec-E<gt>catfile>, but
+on Win32 will use C<Win32::GetLongpathName()> to convert the
+result to a long path name (if the result is an absolute file).
+The function is not exported by default.
+
+=item t_catfile_apache('a', 'b', 'c')
+
+This function is essentially C<File::Spec::Unix-E<gt>catfile>, but
+on Win32 will use C<Win32::GetLongpathName()> to convert the
+result to a long path name (if the result is an absolute file).
+It is useful when comparing something to that returned by Apache,
+which uses a Unix-style specification with forward slashes for
+directory separators. The function is not exported by default.
=back
1.16 +2 -2 modperl-2.0/ModPerl-Registry/t/basic.t
Index: basic.t
===================================================================
RCS file: /home/cvs/modperl-2.0/ModPerl-Registry/t/basic.t,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- basic.t 23 Nov 2003 21:01:50 -0000 1.15
+++ basic.t 4 Dec 2003 07:20:29 -0000 1.16
@@ -6,7 +6,7 @@
use Apache::TestRequest qw(GET GET_BODY HEAD);
use Apache::TestConfig ();
-use File::Spec::Functions qw(catfile);
+use Apache::TestUtil qw(t_catfile_apache);
my %modules = (
registry => 'ModPerl::Registry',
@@ -19,7 +19,7 @@
plan tests => @aliases * 4 + 3;
my $vars = Apache::Test::config()->{vars};
-my $script_file = catfile $vars->{serverroot}, 'cgi-bin', 'basic.pl';
+my $script_file = t_catfile_apache $vars->{serverroot}, 'cgi-bin', 'basic.pl';
# very basic compilation/response test
for my $alias (@aliases) {
1.7 +2 -2 modperl-2.0/ModPerl-Registry/t/redirect.t
Index: redirect.t
===================================================================
RCS file: /home/cvs/modperl-2.0/ModPerl-Registry/t/redirect.t,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- redirect.t 23 Nov 2003 21:01:50 -0000 1.6
+++ redirect.t 4 Dec 2003 07:20:29 -0000 1.7
@@ -5,7 +5,7 @@
use Apache::TestUtil;
use Apache::TestRequest qw(GET_BODY HEAD);
-use File::Spec::Functions qw(catfile);
+use Apache::TestUtil qw(t_catfile_apache);
plan tests => 4, have_lwp;
@@ -16,7 +16,7 @@
my $redirect_path = "/registry/basic.pl";
my $url = "$base_url?$redirect_path";
my $vars = Apache::Test::config()->{vars};
- my $script_file = catfile $vars->{serverroot}, 'cgi-bin', 'basic.pl';
+ my $script_file = t_catfile_apache $vars->{serverroot}, 'cgi-bin', 'basic.pl';
ok t_cmp(
"ok $script_file",