Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(681)

Unified Diff: appengine/findit/templates/flake/dashboard.html

Issue 2435013005: [Findit] Updating flakiness dashboard to be able to triage results (Closed)
Patch Set: Fixing nit Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: appengine/findit/templates/flake/dashboard.html
diff --git a/appengine/findit/templates/flake/dashboard.html b/appengine/findit/templates/flake/dashboard.html
index 57617795c61bdd7ada7f4075ef9558ccf3974feb..032b765cb1c41a3e046c4de54249e9a8146f57c5 100644
--- a/appengine/findit/templates/flake/dashboard.html
+++ b/appengine/findit/templates/flake/dashboard.html
@@ -1,75 +1,170 @@
<!DOCTYPE html>
<head>
- <title>Flaky tests</title>
+ <title>Flaky Tests Dashboard</title>
<meta charset="utf-8">
<link rel="stylesheet" href="/common.css">
<style type="text/css">
.truncated {
- width: 300px;
+ max-width: 500px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
</style>
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
+ <script>
+ /*parameters = {
+ 'result_status': '{{ result_status_filter }}' == '-1' ? undefined : '{{ result_status_filter }}',
+ 'triage': '{{ triage }}' == '1' ? undefined : '1',
+ };*/
+
+ function CreateUrl(parameters) {
+ var params = [];
+ for(var key in parameters) {
+ if (parameters[key] != undefined) {
+ params.push(key + '=' + parameters[key])
+ }
+ }
+
+ if (params.length == 0) {
+ return '/waterfall/list-flakes'
+ } else {
+ return '/waterfall/list-flakes?' + params.join('&');
+ }
+ };
+
+ function requestFilteredResults(e) {
+ parameters = {}
+ if ('{{ triage }}') {
+ parameters['triage'] = '1'
+ parameters['start_date'] = $('#start_date').val() == 'mm/dd/yyyy' ? undefined : $('#start_date').val();
+ parameters['end_date'] = $('#end_date').val() == 'mm/dd/yyyy' ? undefined : $('#end_date').val();
+ }
+ parameters['master_name'] = $('#master_name').val();
+ parameters['builder_name'] = $('#builder_name').val();
+ parameters['build_number'] = $('#build_number').val();
+ parameters['step_name'] = $('#step_name').val();
+ parameters['test_name'] = $('#test_name').val();
+ parameters['result_status'] = $('#result_status').val() == 'default' ? undefined : $('#result_status').val();
+
+ newUrl = CreateUrl(parameters);
+ window.location.replace(newUrl);
+ e.preventDefault();
+ };
+
+ function handleResultStatusChanged(e) {
+ requestFilteredResults(e);
+ };
+
+ function handleFilterResults(e) {
+ requestFilteredResults(e);
+ };
+
+ $(document).ready(function() {
+ if ('{{ result_status_filter }}' != '-1') {
+ $('#result_status').val('{{ result_status_filter }}');
+ }
+ $('#result_status').change(handleResultStatusChanged);
+ $('#filter_results').click(handleFilterResults);
+ });
+ </script>
</head>
<body>
-<h1> Flaky tests </h1>
+ <h1>Flaky Tests</h1>
+ <b>Filter by input parameters</b>
<form method="get" action="/waterfall/list-flakes">
<table>
<tr>
<td style="text-align:right">Master:</td>
- <td><input type="text" name="master_name" id="master_name" size="150" placeholder="chromium.mac"/></td>
+ <td>
+ <input type="text" name="master_name" id="master_name" size="100" value="{{ master_name_filter }}"placeholder="chromium.mac"/>
+ </td>
</tr>
<tr>
<td style="text-align:right">Builder:</td>
- <td><input type="text" name="builder_name" id="builder_name" size="150" placeholder="Mac10.9 Tests"/></td>
+ <td>
+ <input type="text" name="builder_name" id="builder_name" size="100" value="{{ builder_name_filter }}"placeholder="Mac10.9 Tests"/>
+ </td>
</tr>
<tr>
<td style="text-align:right">Build Number:</td>
- <td><input type="text" name="build_number" id="build_number" size="150" placeholder="28133"/></td>
+ <td>
+ <input type="text" name="build_number" id="build_number" size="100" value="{{ build_number_filter }}" placeholder="28133"/>
+ </td>
</tr>
<tr>
<td style="text-align:right">Step:</td>
- <td><input type="text" name="step_name" id="step_name" size="150" placeholder="unit_tests on Mac-10.9"/></td>
+ <td>
+ <input type="text" name="step_name" id="step_name" size="100" value="{{ step_name_filter }}" placeholder="unit_tests on Mac-10.9"/>
+ </td>
</tr>
<tr>
<td style="text-align:right">Test:</td>
- <td><input type="text" name="test_name" id="test_name" size="150" placeholder="DesktopEngagementServiceTest.TestTimeoutDiscount"/></td>
+ <td>
+ <input type="text" name="test_name" id="test_name" size="100" value="{{ test_name_filter }}" placeholder="DesktopEngagementServiceTest.TestTimeoutDiscount"/>
+ </td>
</tr>
</table>
- <input type="submit" value="Filter">
+ {% if triage %}
+ <br>
+ <form>
+ Start Date
+ <input type="date" id="start_date" value={{ start_date }}></input>
+ End Date
+ <input type="date" id="end_date" value={{ end_date }}></input>
+ </form>
+ {% endif %}
+ <input type="submit" value="Filter" id="filter_results">
+ <br>
</form>
-<br><br><br>
-<table>
-<thead>
- <tr>
- <th>Request Time</th>
- <th>Master</th>
- <th>Builder</th>
+ <br>
+ <b>Analysis Results</b>
+ <table>
+ <thead>
+ <tr>
+ <th></th>
+ <th>Analysis Request Time</th>
<th>Build</th>
- <th style="width:100px">Step</th>
- <th style="width:300px">Test</th>
+ <th>Step</th>
+ <th>Test</th>
<th>Status</th>
<th>Suspected Build</th>
- <th>Graph</th>
- </tr>
-</thead>
-<tbody>
- {% for master_flake_analysis in master_flake_analyses %}
- <tr>
- <td> {{master_flake_analysis.request_time or ''}} </td>
- <td> {{master_flake_analysis.master_name}} </td>
- <td> {{master_flake_analysis.builder_name}} </td>
- <td> {{master_flake_analysis.build_number}} </td>
- <td> <div title="{{master_flake_analysis.step_name}}" class="truncated">{{master_flake_analysis.step_name}}</div> </td>
- <td> <div title="{{master_flake_analysis.test_name}}" class="truncated">{{master_flake_analysis.test_name}}</div> </td>
- <td> {{master_flake_analysis.status}} </td>
- <td> {{master_flake_analysis.suspected_build or ''}} </td>
- <td>
- <a href="/waterfall/check-flake?master_name={{master_flake_analysis.master_name}}&builder_name={{master_flake_analysis.builder_name}}&build_number={{master_flake_analysis.build_number}}&step_name={{master_flake_analysis.step_name}}&test_name={{master_flake_analysis.test_name}}">Link</a>
- </td>
- </tr>
- {% endfor %}
-</tbody>
-</table>
+ <th>Analysis</th>
+ <th>
+ <select id="result_status">
+ <option value="default">Result Status</option>
+ <option value="0">Correct - Found</option>
+ <option value="10">Incorrect - Found</option>
+ <option value="20">Incorrect - Not Found</option>
+ <option value="30">Untriaged - Found</option>
+ <option value="40">Untriaged - Not Found</option>
+ <option value="50">Correct - Not Found</option>
+ </select>
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for master_flake_analysis in master_flake_analyses %}
+ <tr>
+ <td>{{loop.index}}</td>
+ <td>{{ master_flake_analysis.request_time or '' }}</td>
+ <td>
+ {{ master_flake_analysis.master_name }}, {{ master_flake_analysis.builder_name }}, {{ master_flake_analysis.build_number }}
+ </td>
+ <td class="truncated">{{ master_flake_analysis.step_name }}</td>
+ <td class="truncated">{{ master_flake_analysis.test_name }}</td>
+ <td>{{ master_flake_analysis.status }}</td>
+ <td>
+ {% if master_flake_analysis.suspected_build %}
+ <a href="https://build.chromium.org/p/{{ master_flake_analysis.master_name }}/builders/{{ master_flake_analysis.builder_name }}/builds/{{ master_flake_analysis.suspected_build }}" target="_blank">{{ master_flake_analysis.suspected_build }}
+ </a>
+ {% endif %}
+ <td>
+ <a href="/waterfall/check-flake?master_name={{ master_flake_analysis.master_name }}&builder_name={{ master_flake_analysis.builder_name }}&build_number={{master_flake_analysis.build_number}}&step_name={{ master_flake_analysis.step_name }}&test_name={{ master_flake_analysis.test_name }}">Link</a>
+ </td>
+ <td>{{ master_flake_analysis.result_status }}</td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
</body>
« no previous file with comments | « appengine/findit/model/result_status.py ('k') | appengine/findit/waterfall/flake/recursive_flake_pipeline.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698