X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=tools%2Fprivoxy-regression-test.pl;h=4c5ed9eeef9b3691aac1e94c2e41926cdf7cbbbf;hp=66ec63667f9bbe7aebee365401875e6ee92e6fa6;hb=e77871a063abecffc98c8a77aeeeb5061ae9711d;hpb=3da62991440d075531c735491a6953c459776aab diff --git a/tools/privoxy-regression-test.pl b/tools/privoxy-regression-test.pl index 66ec6366..4c5ed9ee 100755 --- a/tools/privoxy-regression-test.pl +++ b/tools/privoxy-regression-test.pl @@ -7,7 +7,7 @@ # A regression test "framework" for Privoxy. For documentation see: # perldoc privoxy-regression-test.pl # -# $Id: privoxy-regression-test.pl,v 1.61 2010/01/03 13:49:01 fabiankeil Exp $ +# $Id: privoxy-regression-test.pl,v 1.69 2011/05/08 13:29:59 fabiankeil Exp $ # # Wish list: # @@ -19,7 +19,7 @@ # - Document magic Expect Header values # - Internal fuzz support? # -# Copyright (c) 2007-2009 Fabian Keil +# Copyright (c) 2007-2011 Fabian Keil # # Permission to use, copy, modify, and distribute this software for any # purpose with or without fee is hereby granted, provided that the above @@ -90,13 +90,9 @@ sub init_our_variables () { our $leading_log_time = LEADING_LOG_TIME; our $leading_log_date = LEADING_LOG_DATE; - our $privoxy_cgi_url = PRIVOXY_CGI_URL; - our $verbose_test_description = VERBOSE_TEST_DESCRIPTION; - our $log_level = get_default_log_level(); - } sub get_default_log_level () { @@ -221,7 +217,7 @@ sub tokenize ($) { s@\s*$@@; # Reverse HTML-encoding - # XXX: Seriously imcomplete. + # XXX: Seriously incomplete. s@"@"@g; s@&@&@g; @@ -371,6 +367,7 @@ sub load_action_files ($) { $ri++; $count++; enlist_new_test(\@regression_tests, $token, $value, $si, $ri, $count); + $no_checks = 1; # Already validated by enlist_new_test(). } if ($token =~ /level\s+(\d+)/i) { @@ -463,10 +460,14 @@ sub load_action_files ($) { # We don't use it, so we don't need $no_checks = 1; + l(LL_STATUS, "Enabling no_checks for $token") unless $no_checks; + } + + # XXX: Necessary? + unless ($no_checks) { + check_for_forbidden_characters($value); + check_for_forbidden_characters($token); } - # XXX: Neccessary? - check_for_forbidden_characters($value) unless $no_checks; - check_for_forbidden_characters($token); } } @@ -503,7 +504,7 @@ sub execute_regression_tests () { my $failures; my $skipped = 0; - for my $s (0 .. @regression_tests - 1) { + for (my $s = 0; $s < @regression_tests; $s++) { my $r = 0; @@ -588,11 +589,11 @@ sub level_is_unacceptable ($) { } elsif ($level < $min_level) { - $reason = "Level to low (" . $level . " < " . $min_level . ")"; + $reason = "Level too low (" . $level . " < " . $min_level . ")"; } elsif ($level > $max_level) { - $reason = "Level to high (" . $level . " > " . $max_level . ")"; + $reason = "Level too high (" . $level . " > " . $max_level . ")"; } else { @@ -696,7 +697,7 @@ sub execute_redirect_test ($) { my $redirect_destination; my $expected_redirect_destination = $test->{'redirect destination'}; - # XXX: Check if a redirect actualy applies before doing the request. + # XXX: Check if a redirect actually applies before doing the request. # otherwise the test may hit a real server in failure cases. $curl_parameters .= '--head '; @@ -912,12 +913,9 @@ sub check_header_result ($$) { if ($expect_header eq 'NO CHANGE') { - if (defined($header) and $header eq $test->{'data'}) { - - $success = 1; - - } else { + $success = (defined($header) and $header eq $test->{'data'}); + unless ($success) { $header = "REMOVAL" unless defined $header; l(LL_VERBOSE_FAILURE, "Ooops. Got: '" . $header . "' while expecting: '" . $expect_header . "'"); @@ -925,26 +923,20 @@ sub check_header_result ($$) { } elsif ($expect_header eq 'REMOVAL') { - if (defined($header) and $header eq $test->{'data'}) { + # XXX: Use more reliable check here and make sure + # the header has a different name. + $success = not (defined($header) and $header eq $test->{'data'}); + unless ($success) { l(LL_VERBOSE_FAILURE, "Ooops. Expected removal but: '" . $header . "' is still there."); - - } else { - - # XXX: Use more reliable check here and make sure - # the header has a different name. - $success = 1; } } elsif ($expect_header eq 'SOME CHANGE') { - if (defined($header) and not $header eq $test->{'data'}) { - - $success = 1; - - } else { + $success = (defined($header) and $header ne $test->{'data'}); + unless ($success) { $header = "REMOVAL" unless defined $header; l(LL_VERBOSE_FAILURE, "Ooops. Got: '" . $header . "' while expecting: SOME CHANGE"); @@ -952,12 +944,9 @@ sub check_header_result ($$) { } else { - if (defined($header) and $header eq $expect_header) { - - $success = 1; - - } else { + $success = (defined($header) and $header eq $expect_header); + unless ($success) { $header = "No matching header" unless defined $header; # XXX: No header detected to be precise l(LL_VERBOSE_FAILURE, "Ooops. Got: '" . $header . "' while expecting: '" . $expect_header . "'"); @@ -997,7 +986,7 @@ sub get_header ($$) { if ($expect_header eq 'REMOVAL' or $expect_header eq 'NO CHANGE' - or $expect_header eq 'SOME CHANGE') { + or $expect_header eq 'SOME CHANGE') { $expect_header = $test->{'data'}; } @@ -1423,7 +1412,7 @@ sub quote ($) { } sub print_version () { - printf PRT_VERSION . "\n" . 'Copyright (C) 2007-2009 Fabian Keil ' . "\n"; + printf PRT_VERSION . "\n" . 'Copyright (C) 2007-2011 Fabian Keil ' . "\n"; } sub list_test_types () { @@ -1762,7 +1751,7 @@ number. B<--show-skipped-tests> Log skipped tests even if verbose mode is off. -B<--verbose> Log succesful tests as well. By default only +B<--verbose> Log successful tests as well. By default only the failures are logged. B<--version> Print version and exit.