ChangeSet ID: 31321 CVSROOT: /opt/cvs-commit Module name: tools Changes by: jnewman@winehq.org 2007/08/08 16:43:02
Modified files: winetest : dissect gather winetest.cgi winetest.conf
Log message: Paul Vriens paul.vriens.wine@gmail.com Make a distinction between a real winetest crash and a partial report file
Patch: http://cvs.winehq.org/patch.py?id=31321
Old revision New revision Changes Path 1.23 1.24 +10 -2 tools/winetest/dissect 1.24 1.25 +17 -4 tools/winetest/gather 1.8 1.9 +3 -3 tools/winetest/winetest.cgi 1.4 1.5 +5 -1 tools/winetest/winetest.conf
Index: tools/winetest/dissect diff -u -p tools/winetest/dissect:1.23 tools/winetest/dissect:1.24 --- tools/winetest/dissect:1.23 8 Aug 2007 21:43: 2 -0000 +++ tools/winetest/dissect 8 Aug 2007 21:43: 2 -0000 @@ -29,7 +29,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
use strict; -use vars qw/$builds $queuedir $datadir $maxmult $fileversion/; +use vars qw/$builds $queuedir $datadir $maxmult $fileversion $maxfilesize/; require "winetest.conf";
use File::Temp qw/tempdir/; @@ -56,6 +56,9 @@ my $tmpfile = "$tmpdir/dissect.tmp"; open IN, "<:raw", $report or mydie "can't read $report: $!"; open SUM, ">$tmpdir/summary.txt" or mydie "can't write $tmpdir/summary.txt: $!";
+# Get the size of the report file +my $filesize = -s "$report"; + $_ = <IN>; /^Version (\d+)\r?$/ or mydie "no version header: $_"; $1 eq $fileversion or mydie "illegal version: $1\n"; @@ -184,8 +187,13 @@ while (<IN>) { } } if (defined $unit) { + # Either winetest crashed or the report file was cut off $_=""; - $result = "failed - - -"; + if ($filesize == $maxfilesize) { + $result = "failed filelimit - -"; + } else { + $result = "failed crash - -"; + } goto FINISH; } close SUM or mydie "error writing $tmpdir/summary.txt: $!"; Index: tools/winetest/gather diff -u -p tools/winetest/gather:1.24 tools/winetest/gather:1.25 --- tools/winetest/gather:1.24 8 Aug 2007 21:43: 2 -0000 +++ tools/winetest/gather 8 Aug 2007 21:43: 2 -0000 @@ -112,8 +112,10 @@ foreach my $file (glob "$datadir/$build/ } else { $group->{extrema}->{$testname} = [$error, $error]; } - } elsif ($todo eq "-") { + } elsif ($todo eq "crash") { $testref->{crash} = $testname; + } elsif ($todo eq "filelimit") { + $testref->{filelimit} = $testname; } my $prevdigest = $group->{digests}->{$testname}; $$prevdigest = ($count eq "failed" || $error || $skipped || @@ -135,13 +137,16 @@ foreach my $group (@groups) { $group->{digests}->{$testname} = "differ"; my ($dll, $subtest) = split(/:/, $testname); my $crash = $test->{crash}; + my $filelimit = $test->{filelimit}; if (exists $test->{dllmissing}->{$dll}) { # Mark this test as missing because of a missing dll $test->{results}->{$testname} = ["dll missing", "-", "-", "-"]; } elsif (defined $crash && $testname gt $crash) { - # Mark this test as missing because of what looks like a winetest crash. - # The cause of that is most likely a partial report file. + # Mark this test as missing because of a winetest crash. $test->{results}->{$testname} = ["winetest crash", "-", "-", "-"]; + } elsif (defined $filelimit && $testname gt $filelimit) { + # Mark this test as missing because of a partial report file. + $test->{results}->{$testname} = ["file limit", "-", "-", "-"]; } else { # Mark this test as missing for an unknown reason $test->{results}->{$testname} = ["test missing", "-", "-", "-"]; @@ -234,7 +239,8 @@ sub singletest { my $file = "$test->{dir}/$testname.txt"; my ($count, $todo, $error, $skipped) = @{$test->{results}->{$testname}}; if ($count eq "failed") { - my $msg = $todo eq "-"?"crash": + my $msg = $todo eq "crash"?"crash": + $todo eq "filelimit"?"file limit": $todo == 258?"timeout":"failed"; my $fail = -r "$datadir/$build/$file"?"<a href="$file">$msg</a>":$msg; print OUT " <td class="note">$fail</td>\n"; @@ -253,6 +259,13 @@ EOF onMouseOver="Test did not run as winetest crashed"; >.</a></td> EOF + } elsif ($count eq "file limit") { + print OUT <<"EOF"; + <td class="skip_fail"><a + title="Test is missing because of a partial report file" + onMouseOver="Test is missing because of a partial report file"; + >.</a></td> +EOF } elsif ($count eq "test missing") { print OUT <<"EOF"; <td class="skip_fail"><a Index: tools/winetest/winetest.cgi diff -u -p tools/winetest/winetest.cgi:1.8 tools/winetest/winetest.cgi:1.9 --- tools/winetest/winetest.cgi:1.8 8 Aug 2007 21:43: 2 -0000 +++ tools/winetest/winetest.cgi 8 Aug 2007 21:43: 2 -0000 @@ -17,7 +17,7 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
use strict; -use vars qw/$queuedir/; +use vars qw/$queuedir $maxfilesize/;
BEGIN { require "winetest.conf"; @@ -26,8 +26,8 @@ BEGIN {
use File::Temp qw(tempdir); use CGI qw(:standard); -# This should be in line with programs\winetest\send.c -$CGI::POST_MAX = 1.5 * 1024 * 1025; +# Cater for some overhead +$CGI::POST_MAX = $maxfilesize + 1024;
my $name = param ("reportfile"); my $error = cgi_error (); Index: tools/winetest/winetest.conf diff -u -p tools/winetest/winetest.conf:1.4 tools/winetest/winetest.conf:1.5 --- tools/winetest/winetest.conf:1.4 8 Aug 2007 21:43: 2 -0000 +++ tools/winetest/winetest.conf 8 Aug 2007 21:43: 2 -0000 @@ -1,6 +1,6 @@ # Hey Emacs! This is a -*-cperl-*- file!
-$root = "/home/laxdragon/wine/tools/winetest"; +$root = "/wine/winetest"; $builds = "$root/winetest.builds"; # These two below should be on the same filesystem $queuedir = "$root/queue"; @@ -12,4 +12,8 @@ $maxmult = 10; # File version number $fileversion = 4;
+# Maximum size of the report file +# This should be in line with programs\winetest\send.c +$maxfilesize = 1.5 * 1024 * 1024; + 1; # keep require happy