httpd-test-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From s...@apache.org
Subject cvs commit: httpd-test/perl-framework/Apache-Test/lib/Apache TestConfig.pm TestRun.pm
Date Thu, 18 Oct 2001 02:44:36 GMT
stas        01/10/17 19:44:36

  Modified:    perl-framework/Apache-Test README
               perl-framework/Apache-Test/lib/Apache TestConfig.pm
                        TestRun.pm
  Log:
  - enforce the leading --? for config options in ARGV
  - split the remaining ARGV after Getopts into Apache::TestRequest,
    Apache::TestConfig and tests groups
  - pospone the -e test for test dirs and files until after autogenerated .t
    are created
  - update docs
  
  Revision  Changes    Path
  1.14      +12 -9     httpd-test/perl-framework/Apache-Test/README
  
  Index: README
  ===================================================================
  RCS file: /home/cvs/httpd-test/perl-framework/Apache-Test/README,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- README	2001/10/17 01:30:40	1.13
  +++ README	2001/10/18 02:44:36	1.14
  @@ -7,6 +7,9 @@
   
   see t/TEST as an example test harness
   
  +For an extensive documentation see
  +modperl-2.0/docs/src/devel/writing_tests/writing_tests.pod.
  +
   see t/*.t for example tests
   
   if the file t/conf/httpd.conf.in exists, it will be used instead of
  @@ -45,16 +48,16 @@
   % t/TEST -configure
   
   run as user nobody:
  -% t/TEST User nobody
  +% t/TEST -User nobody
   
   run on a different port:
  -% t/TEST Port 8799
  +% t/TEST -Port 8799
   
   configure an httpd other than the default (that apxs figures out)
  -% t/TEST httpd ~/ap/httpd-2.0/httpd
  +% t/TEST -httpd ~/ap/httpd-2.0/httpd
   
   switch to another apxs
  -% t/TEST apxs ~/ap/httpd-2.0-prefork/bin/apxs
  +% t/TEST -apxs ~/ap/httpd-2.0-prefork/bin/apxs
   
   turn on tracing
   % t/TEST -preamble "PerlTrace all"
  @@ -69,19 +72,19 @@
   % t/TEST -head
   
   GET url with authentication credentials
  -% t/TEST -get /server-info username dougm password foo
  +% t/TEST -get /server-info -username dougm -password foo
   
   POST url (read content from string)
  -% t/TEST -post /TestApache::post content 'name=dougm&company=covalent'
  +% t/TEST -post /TestApache::post -content 'name=dougm&company=covalent'
   
   POST url (read content from stdin)
  -% t/TEST -post /TestApache::post content - < foo.txt
  +% t/TEST -post /TestApache::post -content - < foo.txt
   
   POST url (generate a body of data 1024 bytes in length)
  -% t/TEST -post /TestApache::post content x1024
  +% t/TEST -post /TestApache::post -content x1024
   
   POST url (only print headers, e.g. useful to just check Content-length)
  -% t/TEST -post -head /TestApache::post content x100000
  +% t/TEST -post -head /TestApache::post -content x100000
   
   GET url (only print headers, e.g. useful to just check Content-length)
   % t/TEST -get -head /foo
  
  
  
  1.77      +3 -2      httpd-test/perl-framework/Apache-Test/lib/Apache/TestConfig.pm
  
  Index: TestConfig.pm
  ===================================================================
  RCS file: /home/cvs/httpd-test/perl-framework/Apache-Test/lib/Apache/TestConfig.pm,v
  retrieving revision 1.76
  retrieving revision 1.77
  diff -u -r1.76 -r1.77
  --- TestConfig.pm	2001/10/17 20:06:25	1.76
  +++ TestConfig.pm	2001/10/18 02:44:36	1.77
  @@ -68,8 +68,9 @@
       }
   
       while (my($key, $val) = splice @filter, 0, 2) {
  -        if ($wanted_args->{$key}) {
  -            $keep{$key} = $val;
  +        if ($key =~ /^-?-?(.+)/ # optinal - or -- prefix
  +            && exists $wanted_args->{$1}) {
  +            $keep{$1} = $val;
           }
           else {
               push @pass, $key, $val;
  
  
  
  1.60      +41 -24    httpd-test/perl-framework/Apache-Test/lib/Apache/TestRun.pm
  
  Index: TestRun.pm
  ===================================================================
  RCS file: /home/cvs/httpd-test/perl-framework/Apache-Test/lib/Apache/TestRun.pm,v
  retrieving revision 1.59
  retrieving revision 1.60
  diff -u -r1.59 -r1.60
  --- TestRun.pm	2001/10/17 02:56:24	1.59
  +++ TestRun.pm	2001/10/18 02:44:36	1.60
  @@ -82,11 +82,12 @@
   #so we dont slurp arguments that are not tests, example:
   # httpd $HOME/apache-2.0/bin/httpd
   
  -sub split_args {
  -    my($self, $argv) = @_;
  +sub split_test_args {
  +    my($self) = @_;
   
  -    my(@tests, @args);
  +    my(@tests);
   
  +    my $argv = $self->{argv};
       for (@$argv) {
           my $arg = $_;
           #need the t/ for stat-ing, but dont want to include it in test output
  @@ -116,12 +117,9 @@
                   next;
               }
           }
  -
  -        push @args, $_;
       }
   
       $self->{tests} = \@tests;
  -    $self->{args}  = \@args;
   }
   
   sub passenv {
  @@ -134,13 +132,15 @@
   
   sub getopts {
       my($self, $argv) = @_;
  -
  -    $self->split_args($argv);
   
  -    #dont count test files/dirs as @ARGV arguments
  -    local *ARGV = $self->{args};
  +    local *ARGV = $argv;
       my(%opts, %vopts, %conf_opts);
   
  +    # permute      : optional values can come before the options
  +    # pass_through : all unknown things are to be left in @ARGV
  +    Getopt::Long::Configure(qw(pass_through permute));
  +
  +    # grab from @ARGV only the options that we expect
       GetOptions(\%opts, @flag_opts, @help_opts,
                  (map "$_:s", @debug_opts, @request_opts, @ostring_opts),
                  (map "$_=s", @string_opts),
  @@ -150,16 +150,38 @@
   
       $opts{$_} = $vopts{$_} for keys %vopts;
   
  -    #force regeneration of httpd.conf if commandline args want to modify it
  +    # separate configuration options and test files/dirs
  +    my $req_wanted_args = Apache::TestRequest::wanted_args();
  +    my @argv = ();
  +    my %req_args = ();
  +    while (@ARGV) {
  +        my $val = shift @ARGV;
  +        if ($val =~ /^--?(.+)/) { # must have a leading - or --
  +            my $key = lc $1;
  +            # a known config option?
  +            if (exists $Apache::TestConfig::Usage{$key}) {
  +                $conf_opts{$key} = shift @ARGV;
  +            } # a TestRequest config option?
  +            elsif (exists $req_wanted_args->{$key}) {
  +                $req_args{$key} = shift @ARGV;
  +            }
  +        }
  +        else {
  +            push @argv, $val;
  +        }
  +    }
  +
  +    $opts{req_args} = \%req_args;
  +
  +    # only test files/dirs if any at all are left in argv
  +    $self->{argv} = \@argv;
  +
  +    # force regeneration of httpd.conf if commandline args want to modify it
       $self->{reconfigure} = $opts{configure} ||
         (grep { $opts{$_}->[0] } qw(preamble postamble)) ||
  -        (grep { $Apache::TestConfig::Usage{$_} } @ARGV) ||
  +        (grep { $Apache::TestConfig::Usage{$_} } keys %conf_opts ) ||
             $self->passenv() || (! -e 'conf/httpd.conf');
   
  -    while (my($key, $val) = splice @ARGV, 0, 2) {
  -       $conf_opts{lc $key} = $val;
  -    }
  -
       if (exists $opts{debug}) {
           $opts{debugger} = $opts{debug};
           $opts{debug} = 1;
  @@ -494,6 +516,8 @@
   
       $self->default_run_opts;
   
  +    $self->split_test_args;
  +
       $self->start;
   
       $self->run_tests;
  @@ -538,14 +562,7 @@
   sub run_request {
       my($test_config, $opts) = @_;
   
  -    my @args = %{ $opts->{header} };
  -    my $wanted_args = Apache::TestRequest::wanted_args();
  -
  -    while (my($key, $val) = each %{ $test_config->{vars} }) {
  -        next unless $wanted_args->{$key};
  -        push @args, $key, $val;
  -        delete $test_config->{vars}->{$key}; #dont save these
  -    }
  +    my @args = (%{ $opts->{header} }, %{ $opts->{req_args} });
   
       my($request, $url) = ("", "");
   
  
  
  

Mime
View raw message