Title: [92743] trunk/Tools
Revision
92743
Author
[email protected]
Date
2011-08-09 18:49:02 -0700 (Tue, 09 Aug 2011)

Log Message

garden-o-matic should use huerstics to narrow regression range
https://bugs.webkit.org/show_bug.cgi?id=65948

Reviewed by Dimitri Glazkov.

When analyzing a regression range, if one of the commit messages
mentions the test in question, we now hueristically assume that
revision caused the failure.  (I'm shamelessly stealing this idea from
TestFailures.)

* BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js:

Modified Paths

Diff

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js (92742 => 92743)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js	2011-08-10 01:44:07 UTC (rev 92742)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js	2011-08-10 01:49:02 UTC (rev 92743)
@@ -47,6 +47,32 @@
     });
 }
 
+function fuzzyFind(testName, commitData)
+{
+    var indexOfLastDot = testName.lastIndexOf('.');
+    var stem = indexOfLastDot == -1 ? testName : testName.substr(0, indexOfLastDot);
+    return commitData.message.indexOf(stem) != -1;
+}
+
+function heuristicallyNarrowRegressionRange(failureAnalysis)
+{
+    var commitDataList = model.state.recentCommits;
+    var commitDataIndex = commitDataList.length - 1;
+
+    for(var revision = failureAnalysis.newestPassingRevision + 1; revision <= failureAnalysis.oldestFailingRevision; ++revision) {
+        while (commitDataIndex >= 0 && commitDataList[commitDataIndex].revision < revision)
+            --commitDataIndex;
+        var commitData = commitDataList[commitDataIndex];
+        if (commitData.revision != revision)
+            continue;
+        if (fuzzyFind(failureAnalysis.testName, commitData)) {
+            failureAnalysis.oldestFailingRevision = revision;
+            failureAnalysis.newestPassingRevision = revision - 1;
+            return;
+        }
+    }
+}
+
 model.queueForRebaseline = function(failureInfo)
 {
     model.state.rebaselineQueue.push(failureInfo);
@@ -107,6 +133,8 @@
                 'newestPassingRevision': newestPassingRevision,
             };
 
+            heuristicallyNarrowRegressionRange(failureAnalysis);
+
             var previousFailureAnalysis = model.state.failureAnalysisByTest[testName];
             if (previousFailureAnalysis
                 && previousFailureAnalysis.oldestFailingRevision <= failureAnalysis.oldestFailingRevision

Modified: trunk/Tools/ChangeLog (92742 => 92743)


--- trunk/Tools/ChangeLog	2011-08-10 01:44:07 UTC (rev 92742)
+++ trunk/Tools/ChangeLog	2011-08-10 01:49:02 UTC (rev 92743)
@@ -1,3 +1,17 @@
+2011-08-09  Adam Barth  <[email protected]>
+
+        garden-o-matic should use huerstics to narrow regression range
+        https://bugs.webkit.org/show_bug.cgi?id=65948
+
+        Reviewed by Dimitri Glazkov.
+
+        When analyzing a regression range, if one of the commit messages
+        mentions the test in question, we now hueristically assume that
+        revision caused the failure.  (I'm shamelessly stealing this idea from
+        TestFailures.)
+
+        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/model.js:
+
 2011-07-13  Eric Seidel  <[email protected]>
 
         new-run-webkit-test's WinPort has no fallback logic
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to