Francois Gouget : winetest/build-patterns: Show Potentially obsolete bugs.

Alexandre Julliard julliard at winehq.org
Wed May 19 14:53:36 CDT 2021


Module: tools
Branch: master
Commit: 0ef48b83ac84f3a59ed5521b24d5a7a8d1dcde17
URL:    https://source.winehq.org/git/tools.git/?a=commit;h=0ef48b83ac84f3a59ed5521b24d5a7a8d1dcde17

Author: Francois Gouget <fgouget at codeweavers.com>
Date:   Wed May 19 03:15:13 2021 +0200

winetest/build-patterns: Show Potentially obsolete bugs.

Bugs related to a test that has no failure are likely to be out of
date, except if they are related to memory issues.

Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 winetest/build-patterns | 52 ++++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 45 insertions(+), 7 deletions(-)

diff --git a/winetest/build-patterns b/winetest/build-patterns
index aacbb52..e3174b2 100755
--- a/winetest/build-patterns
+++ b/winetest/build-patterns
@@ -1200,16 +1200,29 @@ sub write_pattern($$$)
 
     print $html "<div class='testtext'>$test->{desc}</div>\n" if (defined $test->{desc});
 
-    print $html "<div class='test'>\n";
-    write_newmodes_line($html, $test) if (%{$test->{newmodes}});
+    my $has_pattern;
+    if (%{$test->{newmodes}})
+    {
+        $has_pattern = 1;
+        print $html "<div class='test'>\n";
+        write_newmodes_line($html, $test);
+    }
     foreach my $reportdir (@sortedreports)
     {
         next if (!$pagereports->{$reportdir});
         next if (!$test->{testreports}->{$reportdir}->{failed});
+        if (!$has_pattern)
+        {
+            $has_pattern = 1;
+            print $html "<div class='test'>\n";
+        }
         write_pattern_line($html, $test, $reportdir);
     }
-    write_commits($html, $test) if (%{$test->{commits}});
-    print $html "</div>\n";
+    if ($has_pattern)
+    {
+        write_commits($html, $test) if (%{$test->{commits}});
+        print $html "</div>\n";
+    }
 }
 
 sub write_patterns_list($$$$)
@@ -1290,12 +1303,20 @@ EOF
         old      => {title => "Old failures",
                      desc => "look like they are fixed: they had no failure in the most recent $patternbuilds builds but that may also just be a lucky streak.",
                      testnames => []},
+        oldbugs  => {title => "Potentially obsolete bugs",
+                     desc => "have related bugs but no failure whatsoever. Maybe the bugs can be closed.",
+                     testnames => []},
+        membugs  => {title => "Memory bugs",
+                     desc => "have no failures but have potential memory bugs (leaks, overflow, uninitialized data, etc). These may be out of date or may cause failures later on.",
+                     testnames => []},
+
     );
     foreach my $testname (sort keys %tests)
     {
         my $test = $tests{$testname};
         $test->{colors} = {};
         $test->{commits} = {};
+        $test->{newmodes} = {};
 
         # The regression commits may only impact the results in Wine.
         # Add them even if only reporting on the Windows results.
@@ -1343,10 +1364,26 @@ EOF
                 $test->{colors}->{$status} = undef;
             }
         }
-        next if ($last == -1); # no report had a pattern of interest
         next if ($testname eq "0");
+        if ($last == -1 and !$subpage)
+        {
+            # This test has no failure but maybe it has bugs?
+            my $listid;
+            foreach my $bug (@{$test->{bugs}})
+            {
+                if ($bug->{desc} =~ /(?:invalid (?:read|write)|leak|uninitialized|use after free|valgrind)/)
+                {
+                    $listid ||= "membugs";
+                }
+                else
+                {
+                    $listid = "oldbugs";
+                }
+            }
+            push @{$lists{$listid}->{testnames}}, $testname if ($listid);
+        }
+        next if ($last == -1); # no report had a pattern of interest
 
-        $test->{newmodes} = {};
         foreach my $status (keys %$newfailures)
         {
             next if ($oldfailures->{$status});
@@ -1399,7 +1436,8 @@ EOF
 <p>The patterns are grouped according to the likelyhood that they contain new failures:</p>
 <ul>";
 
-    my @listids = ("summary", "recent", "newmode", "regular", "old");
+    my @listids = ("summary", "recent", "newmode", "regular", "old",
+                   "oldbugs", "membugs");
     my ($prevunit, $nolist) = ("", 1);
     foreach my $listid (@listids)
     {




More information about the wine-cvs mailing list