Changeset 112303 in webkit


Ignore:
Timestamp:
Mar 27, 2012 12:36:20 PM (12 years ago)
Author:
commit-queue@webkit.org
Message:

Show image diffs for gpu_tests on flakiness dashboard
https://bugs.webkit.org/show_bug.cgi?id=81848

Patch by Dave Tu <dtu@chromium.org> on 2012-03-27
Reviewed by Ojan Vafai.

Add a new results layout for gpu_tests that pulls the image diffs in
addition to the text output. Also add new gpu_tests builders.

  • Tools/TestResultServer/static-dashboards/builders.js: Update

gpu_tests builders.

  • Tools/TestResultServer/static-dashboards/dashboard_base.js: Add a

function to check for GPU test type.

  • Tools/TestResultServer/static-dashboards/flakiness_dashboard.html:

Add new GPU results layout.

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/ChangeLog

    r112183 r112303  
     12012-03-27  Dave Tu  <dtu@chromium.org>
     2
     3        Show image diffs for gpu_tests on flakiness dashboard
     4        https://bugs.webkit.org/show_bug.cgi?id=81848
     5
     6        Reviewed by Ojan Vafai.
     7
     8        Add a new results layout for gpu_tests that pulls the image diffs in
     9        addition to the text output. Also add new gpu_tests builders.
     10
     11        * Tools/TestResultServer/static-dashboards/builders.js: Update
     12        gpu_tests builders.
     13        * Tools/TestResultServer/static-dashboards/dashboard_base.js: Add a
     14        function to check for GPU test type.
     15        * Tools/TestResultServer/static-dashboards/flakiness_dashboard.html:
     16        Add new GPU results layout.
     17
    1182012-03-26  Ryosuke Niwa  <rniwa@webkit.org>
    219
  • trunk/Tools/TestResultServer/static-dashboards/builders.js

    r110516 r112303  
    5252    'ChromiumChromiumOS': '@DEPS CrOS - chromium.org',
    5353    'ChromiumGPU': '@DEPS - chromium.org',
     54    'ChromiumGPUFYI': '@DEPS FYI - chromium.org',
    5455    'ChromiumWebkit': '@ToT - chromium.org',
    5556    'webkit.org': '@ToT - webkit.org'
     
    162163    ['Linux Release (ATI)'],
    163164    ['Linux Release (Intel)'],
     165    ['Win7 Audio'],
     166    ['Linux Audio'],
    164167];
    165168associateBuildersWithMaster(CHROMIUM_GPU_FYI_GTESTS_DEPS_BUILDERS, CHROMIUM_GPU_FYI_BUILDER_MASTER);
    166169
    167170var CHROMIUM_GPU_GTESTS_TOT_BUILDERS = [
    168     ['GPU Win7 (dbg) (NVIDIA)', BuilderGroup.DEFAULT_BUILDER],
     171    ['GPU Win7 (NVIDIA)', BuilderGroup.DEFAULT_BUILDER],
     172    ['GPU Win7 (dbg) (NVIDIA)'],
     173    ['GPU Mac'],
    169174    ['GPU Mac (dbg)'],
    170175    ['GPU Linux (dbg) (NVIDIA)'],
  • trunk/Tools/TestResultServer/static-dashboards/dashboard_base.js

    r108695 r112303  
    421421{
    422422    return g_currentState.testType == 'layout-tests';
     423}
     424
     425function isGPUTestResults()
     426{
     427    return g_currentState.testType == 'gpu_tests';
    423428}
    424429
  • trunk/Tools/TestResultServer/static-dashboards/flakiness_dashboard.html

    r109810 r112303  
    262262.non-webkit-results {
    263263    width: 99%;
     264}
     265.gpu-test-results {
     266    width: 400px;
    264267}
    265268.used-platform {
     
    12141217}
    12151218
    1216 // Returns an array of buildNumbers for all builds where this test failed.
    1217 function buildNumbersForFailures(builder, testName)
     1219// Returns an array of indexes for all builds where this test failed.
     1220function indexesForFailures(builder, testName)
    12181221{
    12191222    var rawResults = g_resultsByBuilder[builder].tests[testName].results;
     
    12251228        if (isFailingResult(rawResults[i][RLE.VALUE])) {
    12261229            for (var j = 0; j < numResults; j++)
    1227                 failures.push(buildNumbers[index + j]);
     1230                failures.push(index + j);
    12281231        }
    12291232        index += numResults;
     
    18301833        linkHTMLToToggleState('showExpectations', 'results')
    18311834
    1832     if (isLayoutTestResults()) {
    1833         html += ' | ' + linkHTMLToToggleState('showLargeExpectations', 'large thumbnails');
     1835    if (isLayoutTestResults() || isGPUTestResults()) {
     1836        if (isLayoutTestResults())
     1837            html += ' | ' + linkHTMLToToggleState('showLargeExpectations', 'large thumbnails');
    18341838        if (master == WEBKIT_BUILDER_MASTER) {
    18351839            var revision = g_currentState.revision || '';
     
    18381842                '<input name=revision placeholder="e.g. 65540" value="' + revision +
    18391843                '" id=revision-input></form>';
    1840       } else
    1841         html += ' | <b>Only shows actual results/diffs from the most recent *failure* on each bot.</b>';
     1844        } else
     1845            html += ' | <b>Only shows actual results/diffs from the most recent *failure* on each bot.</b>';
    18421846    } else {
    18431847      html += ' | <span>Results height:<input ' +
     
    21152119function loadExpectations(expectationsContainer)
    21162120{
     2121    var test = expectationsContainer.getAttribute('test');
    21172122    if (isLayoutTestResults())
    2118         loadExpectationsLayoutTests(expectationsContainer);
     2123        loadExpectationsLayoutTests(test, expectationsContainer);
    21192124    else {
    2120         var test = expectationsContainer.getAttribute('test');
    21212125        var results = g_testToResultsMap[test];
    21222126        for (var i = 0; i < results.length; i++)
    2123             loadNonWebKitResultsForBuilder(results[i].builder, test, expectationsContainer);
    2124     }
     2127            if (isGPUTestResults())
     2128                loadGPUResultsForBuilder(results[i].builder, test, expectationsContainer);
     2129            else
     2130                loadNonWebKitResultsForBuilder(results[i].builder, test, expectationsContainer);
     2131    }
     2132}
     2133
     2134function loadGPUResultsForBuilder(builder, test, expectationsContainer)
     2135{
     2136    var container = document.createElement('div');
     2137    container.className = 'expectations-container';
     2138    container.innerHTML = '<div><b>' + builder + '</b></div>';
     2139    expectationsContainer.appendChild(container);
     2140
     2141    var baseUrl = 'http://chromium-browser-gpu-tests.commondatastorage.googleapis.com/runs/'
     2142    var failureIndex = indexesForFailures(builder, test)[0];
     2143
     2144    var buildNumber = g_resultsByBuilder[builder].buildNumbers[failureIndex];
     2145    var pathToLog = builderMaster(builder).getLogPath(builder, buildNumber) + pathToFailureLog(test);
     2146
     2147    var chromeRevision = g_resultsByBuilder[builder].chromeRevision[failureIndex];
     2148    var builderName = builder.replace(/[^A-Za-z0-9 ]/g, '').replace(/ /g, '_');
     2149    var resultsUrl = baseUrl + chromeRevision + '_' + builderName + '_/';
     2150    var filename = test.split(/\./)[1] + '.png';
     2151
     2152    appendNonWebKitResults(container, pathToLog, 'non-webkit-results');
     2153    appendNonWebKitResults(container, resultsUrl + 'gen/' + filename, 'gpu-test-results', 'Generated');
     2154    appendNonWebKitResults(container, resultsUrl + 'ref/' + filename, 'gpu-test-results', 'Reference');
     2155    appendNonWebKitResults(container, resultsUrl + 'diff/' + filename, 'gpu-test-results', 'Diff');
    21252156}
    21262157
    21272158function loadNonWebKitResultsForBuilder(builder, test, expectationsContainer)
    21282159{
    2129     var failures = buildNumbersForFailures(builder, test);
     2160    var failureIndexes = indexesForFailures(builder, test);
    21302161    var container = document.createElement('div');
    21312162    container.innerHTML = '<div><b>' + builder + '</b></div>';
    21322163    expectationsContainer.appendChild(container);
    2133     for (var i = 0; i < failures.length; i++) {
     2164    for (var i = 0; i < failureIndexes.length; i++) {
    21342165        // FIXME: This doesn't seem to work anymore. Did the paths change?
    21352166        // Once that's resolved, see if we need to try each GTEST_MODIFIERS prefix as well.
    2136         var pathToLog = builderMaster(builder).getLogPath(builder, failures[i]) + pathToFailureLog(test);
    2137         appendNonWebKitResults(container, pathToLog);
    2138     }
    2139 }
    2140 
    2141 function appendNonWebKitResults(container, url)
     2167        var buildNumber = g_resultsByBuilder[builder].buildNumbers[failureIndexes[i]];
     2168        var pathToLog = builderMaster(builder).getLogPath(builder, buildNumber) + pathToFailureLog(test);
     2169        appendNonWebKitResults(container, pathToLog, 'non-webkit-results');
     2170    }
     2171}
     2172
     2173function appendNonWebKitResults(container, url, itemClassName, opt_title)
    21422174{
    21432175    // Use a script tag to detect whether the URL 404s.
     
    21492181        var item = document.createElement('iframe');
    21502182        item.src = dummyNode.src;
    2151         item.className = 'non-webkit-results';
     2183        item.className = itemClassName;
    21522184        item.style.height = g_currentState.resultsHeight + 'px';
    2153         container.appendChild(item);
     2185
     2186        if (opt_title) {
     2187            var childContainer = document.createElement('div');
     2188            childContainer.style.display = 'inline-block';
     2189            var title = document.createElement('div');
     2190            title.textContent = opt_title;
     2191            childContainer.appendChild(title);
     2192            childContainer.appendChild(item);
     2193            container.replaceChild(childContainer, dummyNode);
     2194        } else
     2195            container.replaceChild(item, dummyNode);
    21542196    }
    21552197    dummyNode.onerror = function() {
    2156         container.parentNode.removeChild(childContainer);
     2198        container.removeChild(dummyNode);
    21572199    }
    21582200
     
    22192261}
    22202262
    2221 function loadExpectationsLayoutTests(expectationsContainer)
     2263function loadExpectationsLayoutTests(test, expectationsContainer)
    22222264{
    22232265    // Map from file extension to container div for expectations of that type.
    22242266    var expectationsContainers = {};
    2225     var test = expectationsContainer.getAttribute('test');
    22262267
    22272268    var revisionContainer = document.createElement('div');
Note: See TracChangeset for help on using the changeset viewer.