stas        2004/01/17 22:53:53

  Modified:    perl-framework/Apache-Test/lib/Apache TestConfigParse.pm
               perl-framework/Apache-Test Changes
  Log:
  handle "Include conf/*conf" cases when inheriting httpd.conf in a
  cleaner way, don't complain that "*conf" doesn't exist, since it's a
  glob pattern. Instead check try to resolve the base directory.
  
  Revision  Changes    Path
  1.42      +19 -6     
httpd-test/perl-framework/Apache-Test/lib/Apache/TestConfigParse.pm
  
  Index: TestConfigParse.pm
  ===================================================================
  RCS file: 
/home/cvs/httpd-test/perl-framework/Apache-Test/lib/Apache/TestConfigParse.pm,v
  retrieving revision 1.41
  retrieving revision 1.42
  diff -u -u -r1.41 -r1.42
  --- TestConfigParse.pm        9 Dec 2003 14:53:58 -0000       1.41
  +++ TestConfigParse.pm        18 Jan 2004 06:53:53 -0000      1.42
  @@ -9,7 +9,7 @@
   use Apache::TestTrace;
   
   use File::Spec::Functions qw(rel2abs splitdir file_name_is_absolute);
  -use File::Basename qw(basename);
  +use File::Basename qw(dirname basename);
   
   sub strip_quotes {
       local $_ = shift || $_;
  @@ -43,7 +43,8 @@
       $self->$where($directive => $val);
   }
   
  -#resolve relative files like Apache->server_root_relative
  +# resolve relative files like Apache->server_root_relative
  +# this function doesn't test whether the resolved file exists
   sub server_file_rel2abs {
       my($self, $file, $base) = @_;
   
  @@ -87,14 +88,26 @@
               # return early, skipping file test below
               return $file;
           }
  -
       }
   
  -    if (-e $result) {
  -        debug "$file successfully resolved to existing file $result";
  +    my $dir = dirname $result;
  +    # $file might not exist (e.g. if it's a glob pattern like
  +    # "conf/*.conf" but what we care about here is to check whether
  +    # the base dir was successfully resolved. we don't check whether
  +    # the file exists at all. it's the responsibility of the caller to
  +    # do this check
  +    if (defined $dir && -e $dir && -d _) {
  +        if (-e $result) {
  +            debug "$file successfully resolved to existing file $result";
  +        }
  +        else {
  +            debug "base dir of '$file' successfully resolved to $dir";
  +        }
  +
       }
       else {
  -        warning "file $result does not exist";
  +        $dir ||= '';
  +        warning "dir '$dir' does not exist (while resolving '$file')";
   
           # old behavior was to return the resolved but non-existent
           # file.  preserve that behavior and return $result anyway.
  
  
  
  1.80      +4 -0      httpd-test/perl-framework/Apache-Test/Changes
  
  Index: Changes
  ===================================================================
  RCS file: /home/cvs/httpd-test/perl-framework/Apache-Test/Changes,v
  retrieving revision 1.79
  retrieving revision 1.80
  diff -u -u -r1.79 -r1.80
  --- Changes   18 Jan 2004 03:17:16 -0000      1.79
  +++ Changes   18 Jan 2004 06:53:53 -0000      1.80
  @@ -8,6 +8,10 @@
   
   =item 1.08_dev
   
  +handle "Include conf/*conf" cases when inheriting httpd.conf in a
  +cleaner way, don't complain that "*conf" doesn't exist, since it's a
  +glob pattern. Instead check try to resolve the base directory. [Stas]
  +
   import the Apache::TestMM clean target in Makefile.PL so 'make clean'
   will call t/TEST -clean [Stas]
   
  
  
  

Reply via email to