# A regression test "framework" for Privoxy. For documentation see:
# perldoc privoxy-regression-test.pl
#
-# $Id: privoxy-regression-test.pl,v 1.156 2008/07/03 11:26:35 fk Exp $
+# $Id: privoxy-regression-test.pl,v 1.161 2008/10/25 15:44:26 fk Exp $
#
# Wish list:
#
use Getopt::Long;
use constant {
- PRT_VERSION => 'Privoxy-Regression-Test 0.2',
+ PRT_VERSION => 'Privoxy-Regression-Test 0.3',
CURL => 'curl',
our $privoxy_cgi_url;
our @privoxy_config;
+ our %privoxy_features;
my @actionfiles;
my $curl_url = '';
my $file_number = 0;
+ my $feature;
$curl_url .= $privoxy_cgi_url;
$curl_url .= 'show-status';
my $directive = $1 . " " . $2;
push (@privoxy_config, $directive);
+
+ } elsif (m@<td><code>([^<]*)</code></td>@) {
+
+ $feature = $1;
+
+ } elsif (m@<td> (Yes|No) </td>@) {
+
+ $privoxy_features{$feature} = $1 if defined $feature;
+ $feature = undef;
}
}
my $ignored = 0;
- l(LL_STATUS, "Loading regression tests from action file(s) delivered by Privoxy.");
+ l(LL_STATUS, "Gathering regression tests from " .
+ @actionfiles . " action file(s) delivered by Privoxy.");
for my $file_number (0 .. @actionfiles - 1) {
my $level = shift;
our %dependencies;
our @privoxy_config;
+ our %privoxy_features;
+
my $dependency_problem = 0;
if (defined ($dependencies{$level}{'config line'})) {
foreach (@privoxy_config) {
$dependency_problem = 0 if (/$dependency/);
+ last;
+ }
+
+ } elsif (defined ($dependencies{$level}{'feature status'})) {
+
+ my $dependency = $dependencies{$level}{'feature status'};
+ my ($feature, $status) = $dependency =~ /([^\s]*)\s+(Yes|No)/;
+
+ $dependency_problem = 1;
+
+ if (defined($privoxy_features{$feature})
+ and ($privoxy_features{$feature} eq $status))
+ {
+ $dependency_problem = 0;
}
}
if ($dependency =~ /config line\s+(.*)/) {
- $dependencies{$level}{'config line'} = $1;
+ $dependencies{$level}{'config line'} = $1;
+
+ } elsif ($dependency =~ /feature status\s+(.*)/) {
+
+ $dependencies{$level}{'feature status'} = $1;
+
}
}
[--min-level $cli_options{'min-level'}]
[--privoxy-address]
[--retries $cli_options{'retries'}]
+ [--test-number]
[--verbose]
[--version]
see "perldoc $0" for more information
[B<--fuzzer-feeding>] [B<--fuzzer-feeding>] [B<--help>] [B<--level level>]
[B<--loops count>] [B<--max-level max-level>] [B<--max-time max-time>]
[B<--min-level min-level>] B<--privoxy-address proxy-address>
-[B<--retries retries>] [B<--verbose>] [B<--version>]
+[B<--retries retries>] [B<--test-number test-number>] [B<--verbose>]
+[B<--version>]
=head1 DESCRIPTION
B<--retries retries> Retry B<retries> times.
+B<--test-number test-number> Only run the test with the specified
+number.
+
B<--verbose> Also log succesful test runs.
B<--version> Print version and exit.