Regular failures are more important so only highlight this problem if the test has no other issue.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51352 Signed-off-by: Francois Gouget fgouget@codeweavers.com --- The status of old reports can be updated by following the steps below after applying today's two patches. But that's not a requirement.
* Update the summary.txt files generated by dissect to use the new big and virus codes.
cd winetest/data find `pwd`/ -name report -print | \ nice xargs -P8 -n 1 dissect --update
* Generate each build's testresults.txt file with gather:
find `pwd`/ -name total.txt -print | \ while read p; do dirname $p; done | \ nice xargs -P8 -n 1 gather --update
* Generate the new pattern pages with build-patterns:
build-patterns build-index
The paths to the scripts should be adjusted as appropriate. Also adjust -P8 for the desired level of parallelism. Here refreshing my test.winehq.org mirror with -P8 takes under 5 minutes. Since I have the same set of reports the time should be similar on winehq.org.
--- winetest/build-patterns | 1 + winetest/dissect | 9 +++++++-- winetest/gather | 12 ++++++++++-- winetest/report.css | 3 +++ 4 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/winetest/build-patterns b/winetest/build-patterns index da7272e56..0b33512a7 100755 --- a/winetest/build-patterns +++ b/winetest/build-patterns @@ -934,6 +934,7 @@ my %status2html = ( "skipped" => ["-", "s", "skipped by user request", "", ""], "crash" => ["C", "C", "crash", "t", ""], "258" => ["T", "T", "timeout", "t", ""], + "big" => ["B", "B", "too much output", "t", ""], );
# Returns a tuple containing the symbol, CSS class, title, link type and diff --git a/winetest/dissect b/winetest/dissect index 33cfb0a56..3f89e1064 100755 --- a/winetest/dissect +++ b/winetest/dissect @@ -267,7 +267,7 @@ open IN, "<:raw", $report or mydie "could not open '$report' for reading: $!"; # - <dll> - skipped - - - - # - <dll> <unit> skipped - - - <source> # - <dll> <unit> failed (258|crash) - - <source> -# - <dll> <unit> <total> <todo> <failures> <skipped> <source> +# - <dll> <unit> <total> <todo> (<failures>|big) <skipped> <source> open SUM, ">$tmpdir/summary.txt" or mydie "could not open '$tmpdir/summary.txt' for writing: $!";
my $line = <IN> || ""; @@ -599,10 +599,12 @@ sub close_test_unit($) $todo ||= $s_todo; $skipped ||= $s_skipped;
+ my $toobig; if ($unitsize > $maxunitsize) { add_test_line("end", "The test prints too much data ($unitsize bytes)"); $extra_failures++; + $toobig = 1; } if (!$broken and defined $rc) { @@ -637,7 +639,10 @@ sub close_test_unit($) }
$failures += $extra_failures; - $summary = "$s_total $todo $failures $skipped" if (!defined $summary); + if (!defined $summary) + { + $summary = "$s_total $todo " . (($toobig and $failures == 1) ? "big" : $failures) . " $skipped"; + } print SUM "- $dll $unit $summary $source\n"; $testbox->{pattern} = "$dll:$unit" if ($failures); if ($failures && ++$failed_units > $maxfailedtests) { diff --git a/winetest/gather b/winetest/gather index abb339598..e6d5a9a30 100755 --- a/winetest/gather +++ b/winetest/gather @@ -356,7 +356,12 @@ foreach my $file (glob "$builddir/*/summary.txt") { skips => [ 1, 1 ] }; } else { - $report->{$testname} = { status => "run", + my $status = "run"; + if ($errors eq "big") { + $status = "big"; + $errors = 1; + } + $report->{$testname} = { status => $status, count => [ $count, $count ], errors => [ $errors, $errors ], todos => [ $todos, $todos ], @@ -409,7 +414,8 @@ sub merge_status($$) } elsif ($group_result->{status} eq "run" and $result->{status} =~ /^missing/) { ; # Nothing to do - } elsif ($group_result->{status} ne $result->{status}) { + } elsif (($group_result->{status} =~ /^(?:run|big)$/) ne + ($result->{status} =~ /^(?:run|big)$/)) { $group_result->{status} = "mixed"; }
@@ -640,6 +646,7 @@ sub get_result_title($$) if ($result->{status} eq "mixed") { return "Mixed results"; } if ($result->{status} eq "crash") { return "Test crashed"; } if ($result->{status} eq "258") { return "Test timed out"; } + if ($result->{status} eq "big") { return "Too much output"; } if ($result->{status} eq "skipped") { return "Skipped by user request"; }
my ($dll, $unit) = split(/:/, $testname); @@ -725,6 +732,7 @@ sub singletest($$$) { skipped => "skipped", native => "native", crash => "crashed", + big => "too big", 258 => "timeout", mixed => "mixed", ); diff --git a/winetest/report.css b/winetest/report.css index b558c6ff7..bd8b73fec 100644 --- a/winetest/report.css +++ b/winetest/report.css @@ -92,6 +92,9 @@ div.pattern :hover { color: black; text-decoration: underline; } background-color: #ff5555; } /* .patF failure(s) */ +.patB { /* too much output */ + background-color: #ffffb3; +} /* .patn not run for an unknown reason */ /* .patm missing dll */ .pate { /* missing entrypoint */