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

Side by Side Diff: appengine/findit/templates/flake/result.html

Issue 2563383002: [Findit] Flake Checker: Extract commit position and git hash and display to UI for each analyzed bu… (Closed)
Patch Set: Created 4 years 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 unified diff | Download patch
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <head> 2 <head>
3 <meta charset="UTF-8"> 3 <meta charset="UTF-8">
4 <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"> 4 <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
5 <title> Analysis of Flaky Test</title> 5 <title> Analysis of Flaky Test</title>
6 <style type="text/css"> 6 <style type="text/css">
7 .container { 7 .container {
8 box-sizing: border-box; 8 box-sizing: border-box;
9 width: 600px; 9 width: 600px;
10 height: 300px; 10 height: 300px;
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 return; 83 return;
84 } 84 }
85 85
86 var not_run_data = []; 86 var not_run_data = [];
87 var run_data = []; 87 var run_data = [];
88 $.each(findit.passRates, function(index, value) { 88 $.each(findit.passRates, function(index, value) {
89 // Convert pass rate from [0, 1] to a percentage. 89 // Convert pass rate from [0, 1] to a percentage.
90 var rate = (value[1] * 100).toFixed(0); 90 var rate = (value[1] * 100).toFixed(0);
91 // -1 means that the test doesn't exist or is disabled at the build. 91 // -1 means that the test doesn't exist or is disabled at the build.
92 if (rate < 0) { 92 if (rate < 0) {
93 not_run_data.push([value[0], 100, value[2]]); 93 not_run_data.push([value[0], 100, value[2]]);
stgao 2016/12/12 20:05:18 Here, we don't need it? Better to be consistent th
lijeffrey 2016/12/14 02:37:13 Done.
94 } else { 94 } else {
95 run_data.push([value[0], rate, value[2]]); 95 // run_data contains information about each point in the format:
96 // [build number, pass rate, swarming task url, commit position, git h ash].
97 run_data.push([value[0], rate, value[2], value[3], value[4]]);
96 } 98 }
97 }); 99 });
98 100
99 var data_series = []; 101 var data_series = [];
100 var run_data_sery_index = 0; 102 var run_data_sery_index = 0;
101 if (not_run_data.length > 0) { 103 if (not_run_data.length > 0) {
102 data_series.push({ 104 data_series.push({
103 data: not_run_data, 105 data: not_run_data,
104 color: "gray", 106 color: "gray",
105 points: { 107 points: {
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 padding: "2px", 164 padding: "2px",
163 "background-color": "#fee", 165 "background-color": "#fee",
164 opacity: 0.80 166 opacity: 0.80
165 }).appendTo("body"); 167 }).appendTo("body");
166 168
167 function showTooltipForDataPoint(item) { 169 function showTooltipForDataPoint(item) {
168 var itemData = item.series.data[item.dataIndex]; 170 var itemData = item.series.data[item.dataIndex];
169 var buildNumber = itemData[0]; 171 var buildNumber = itemData[0];
170 var passRate = itemData[1]; 172 var passRate = itemData[1];
171 var taskUrl = itemData[2]; 173 var taskUrl = itemData[2];
174 var commitPosition = itemData[3];
175 var gitHash = itemData[4];
172 176
173 var tooltipStr = 'Build #: <a href="https://build.chromium.org/p/' + fin dit.masterName + '/builders/' + findit.builderName + '/builds/' + buildNumber + '" target="_blank">' + buildNumber + '</a><br> Pass rate: ' + passRate + '%'; 177 var tooltipStr = 'Build #: <a href="https://build.chromium.org/p/' + fin dit.masterName + '/builders/' + findit.builderName + '/builds/' + buildNumber + '" target="_blank">' + buildNumber + '</a><br> Pass rate: ' + passRate + '%';
174 if (taskUrl) { 178 if (taskUrl) {
175 tooltipStr += '<br>Task: <a href="' + taskUrl +'" target="_blank">link </a>'; 179 tooltipStr += '<br>Task: <a href="' + taskUrl +'" target="_blank">link </a>';
176 } 180 }
177 181
182 if (commitPosition && gitHash) {
183 tooltipStr += '<br>Commit position: <a href="https://crrev.com/' + git Hash + '" "target="_blank">' + commitPosition + '</a>';
184 }
185
178 $("#tooltip").html(tooltipStr).css({top: item.pageY + 5, left: item.page X + 5}).show(); 186 $("#tooltip").html(tooltipStr).css({top: item.pageY + 5, left: item.page X + 5}).show();
179 } 187 }
180 188
181 var dataPointSelected = false; 189 var dataPointSelected = false;
182 $("#flake-data").bind("plothover", function (event, pos, item) { 190 $("#flake-data").bind("plothover", function(event, pos, item) {
183 if (dataPointSelected) 191 if (dataPointSelected)
184 return; // A data point is selected due to a click. 192 return; // A data point is selected due to a click.
185 193
186 if (item) { 194 if (item) {
187 showTooltipForDataPoint(item); 195 showTooltipForDataPoint(item);
188 } else { 196 } else {
189 $("#tooltip").hide(); 197 $("#tooltip").hide();
190 } 198 }
191 }); 199 });
192 $("#flake-data").bind("plotclick", function (event, pos, item) { 200 $("#flake-data").bind("plotclick", function(event, pos, item) {
193 if (item) { 201 if (item) {
194 dataPointSelected = true; // Set selected data point upon click. 202 dataPointSelected = true; // Set selected data point upon click.
195 showTooltipForDataPoint(item); 203 showTooltipForDataPoint(item);
196 } else { 204 } else {
197 dataPointSelected = false; // Unselect the data point. 205 dataPointSelected = false; // Unselect the data point.
198 $("#tooltip").hide(); 206 $("#tooltip").hide();
199 } 207 }
200 }); 208 });
201 209
202 $.each(run_data, function(index, value) { 210 $.each(run_data, function(index, value) {
(...skipping 27 matching lines...) Expand all
230 Test: {{ test_name }} <br> 238 Test: {{ test_name }} <br>
231 </div> 239 </div>
232 <br> 240 <br>
233 <div> 241 <div>
234 <b>Analysis Result:</b><br> 242 <b>Analysis Result:</b><br>
235 Status: {{ analysis_status }}<br> 243 Status: {{ analysis_status }}<br>
236 {% if error %} 244 {% if error %}
237 Error info: {{ error }}<br> 245 Error info: {{ error }}<br>
238 {% endif %} 246 {% endif %}
239 {% if suspected_flake.build_number %} 247 {% if suspected_flake.build_number %}
240 Flakiness <b>started</b> in Build: <a href="https://build.chromium.org/p/{{ master_name }}/builders/{{ builder_name }}/builds/{{ suspected_flake.build_numbe r }}" target="_blank" style="color:red;font-weight:bold">{{ suspected_flake.buil d_number }}</a> 248 Flakiness <b>started</b> in Build: <a href="https://build.chromium.org/p/{ { master_name }}/builders/{{ builder_name }}/builds/{{ suspected_flake.build_num ber }}" target="_blank" style="color:red;font-weight:bold">{{ suspected_flake.bu ild_number }}</a>
241 {% endif %} 249 {% endif %}
250 {% if suspected_flake.commit_position and suspected_flake.git_hash %}
251 <br>
252 Suspected flake git commit position: <a href="https://crrev.com/{{ suspect ed_flake.git_hash }}" target="_blank">{{ suspected_flake.commit_position }}</a>
stgao 2016/12/12 20:05:18 This looks misleading to users. Instead, we could
lijeffrey 2016/12/14 02:37:13 Done.
253 <br>
254 {% endif %}
255
242 </div> 256 </div>
243 <br> 257 <br>
244 <div> 258 <div>
245 <b>Pass Rate by Build:</b><br> 259 <b>Pass Rate by Build:</b><br>
246 <div class="container"> 260 <div class="container">
247 <div id="flake-data" class="flake-trend"></div> 261 <div id="flake-data" class="flake-trend"></div>
248 </div> 262 </div>
249 </div> 263 </div>
250 <br> 264 <br>
251 <div> 265 <div>
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 <td class="triage-cell">{{ triage_record.triage_result }}</td> 326 <td class="triage-cell">{{ triage_record.triage_result }}</td>
313 <td class="triage-cell">{{ triage_record.version_number }}</td> 327 <td class="triage-cell">{{ triage_record.version_number }}</td>
314 </tr> 328 </tr>
315 {% endfor %} 329 {% endfor %}
316 </tbody> 330 </tbody>
317 </table> 331 </table>
318 </div> 332 </div>
319 {% endif %} 333 {% endif %}
320 </body> 334 </body>
321 </html> 335 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698