Changeset 90571 in webkit


Ignore:
Timestamp:
Jul 7, 2011 10:18:09 AM (13 years ago)
Author:
Adam Roben
Message:

Completely ignore too-many-failures builds in TestFailures in most circumstances

Because a semi-arbitrary subset of tests are run in a too-many-failures build, we can't
really use them to perform regression analysis. The only time we want to pay attention to
too-many-failures builds is when we're trying to explain when the current bout of
too-many-failures started.

Fixes <http://webkit.org/b/64106> TestFailures page sometimes claims a test started failing
in a build that didn't even run it (because it exited early due to too many failues)

Reviewed by David Kilzer.

  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/LayoutTestHistoryAnalyzer.js:

(LayoutTestHistoryAnalyzer.prototype._incorporateBuildHistory): Removed old, broken
too-many-failures handling that would cause us to blame builds that didn't even run a given
test for breaking it. Instead, skip over all too-many-failures builds unless the most recent
build was itself a too-many-failures build.

Location:
trunk/Tools
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/LayoutTestHistoryAnalyzer.js

    r90230 r90571  
    119119        var self = this;
    120120        self._loader.start(nextBuildName, function(tests, tooManyFailures) {
     121            if (tooManyFailures) {
     122                var firstBuildName = Object.keys(self._history)[0];
     123                // If the first (i.e., current or most recent) build exited early due to too many
     124                // failures, we want to process other too-many-failures builds normally to try to
     125                // figure out when the too-many-failures started occurring. If the first/current
     126                // build did not exit due to too many failures, then too-many-failures builds will
     127                // only confuse our analysis (since they run a semi-arbitrary subset of tests), so
     128                // we should just skip them entirely.
     129                if (firstBuildName && !self._history[firstBuildName].tooManyFailures) {
     130                    callback(true);
     131                    return;
     132                }
     133            }
     134
    121135            ++self._testRunsSinceLastInterestingChange;
    122136
     
    151165            }
    152166
    153             if (tooManyFailures && previousHistoryItem) {
    154                 // Not all tests were run due to too many failures. Just assume that all the tests
    155                 // that failed in the last build would still have failed in this build had they been
    156                 // run.
    157                 for (var testName in previousHistoryItem.tests) {
    158                     historyItem.tests[testName] = previousHistoryItem.tests[testName];
    159                     delete previousHistoryItem.tests[testName];
    160                 }
    161             }
    162 
    163167            var previousUnexplainedFailuresCount = previousBuildName ? Object.keys(self._history[previousBuildName].tests).length : 0;
    164168            var unexplainedFailuresCount = Object.keys(self._history[nextBuildName].tests).length;
  • trunk/Tools/ChangeLog

    r90564 r90571  
     12011-07-07  Adam Roben  <aroben@apple.com>
     2
     3        Completely ignore too-many-failures builds in TestFailures in most circumstances
     4
     5        Because a semi-arbitrary subset of tests are run in a too-many-failures build, we can't
     6        really use them to perform regression analysis. The only time we want to pay attention to
     7        too-many-failures builds is when we're trying to explain when the current bout of
     8        too-many-failures started.
     9
     10        Fixes <http://webkit.org/b/64106> TestFailures page sometimes claims a test started failing
     11        in a build that didn't even run it (because it exited early due to too many failues)
     12
     13        Reviewed by David Kilzer.
     14
     15        * BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/LayoutTestHistoryAnalyzer.js:
     16        (LayoutTestHistoryAnalyzer.prototype._incorporateBuildHistory): Removed old, broken
     17        too-many-failures handling that would cause us to blame builds that didn't even run a given
     18        test for breaking it. Instead, skip over all too-many-failures builds unless the most recent
     19        build was itself a too-many-failures build.
     20
    1212011-07-07  Adam Roben  <aroben@apple.com>
    222
Note: See TracChangeset for help on using the changeset viewer.