On Tuesday 17 January 2012, Graham Leggett wrote:
> # verifying that logged content is 256 characters
> ok 51
> # posted content (length 1024) to bogus-perl.pl
> # got return code of: 500, expecting: 500
> ok 52
> # verifying log did not increase in size...
> ok 53
> # verifying log is greater than 8192 bytes.
> ok 54
> # verifying log did not grow after making bogus request.
> ok 55
> # verifying log did not grow after making another bogus request.
> ok 56
> # checking that HEAD /modules/cgi/perl.pl returns 200.
> ok 57
> Failed 1/58 subtests
>
> Test Summary Report
> -------------------
> t/modules/cgi.t (Wstat: 0 Tests: 57 Failed: 0)
> Parse errors: Bad plan. You planned 58 tests but ran 57.
> Files=1, Tests=57, 22 wallclock secs ( 0.27 usr 0.22 sys + 3.06
> cusr 5.35 csys = 8.90 CPU) Result: FAIL
> Failed 1/1 test programs. 0/57 subtests failed.
>
> Regards,
> Graham
> --
The diff to a PASS run starts with:
# posted content (length 1024) to bogus-perl.pl
# got return code of: 500, expecting: 500
ok 52
-# checking that log size (5115) is greater than 4516
+# verifying log did not increase in size...
ok 53
-# verifying that logged content is 256 characters
-ok 54
# verifying log is greater than 8192 bytes.
-ok 55
+ok 54
It's certainly a bug in the test that the number of "ok"s differs in
different code paths. Can you try if the attached diff gives better
debug output with -v?
Index: t/modules/cgi.t
===================================================================
--- t/modules/cgi.t (Revision 1232562)
+++ t/modules/cgi.t (Arbeitskopie)
@@ -204,17 +204,23 @@
## characters logged from the post content
open (LOG, $cgi_log) or die "died opening cgi log: $!";
my $multiplier = 256;
- while (<LOG>) {
- if (/^$content+$/) {
- chomp;
- $multiplier = $length unless $length > $multiplier;
- print "# verifying that logged content is $multiplier characters\n";
- ok ($_ eq "$content"x$multiplier);
- last;
- }
+ my $log;
+ {
+ local $/;
+ $log = <LOG>;
}
close (LOG);
-
+ $multiplier = $length unless $length > $multiplier;
+ print "# verifying that logged content is $multiplier characters\n";
+ if ($log =~ /^(?:$content){$multiplier}\n?$/m) {
+ ok 1;
+ }
+ else {
+ $log =~ s{^}{# }m;
+ print "# no log line found with $multiplier '$content' characters\n";
+ print "# log is:\n'$log'\n";
+ ok 0;
+ }
} else {
## log does not exist ##
print "# cgi log does not exist, test fails.\n";