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

Unified 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: Fixing nit 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « appengine/findit/model/flake/master_flake_analysis.py ('k') | appengine/findit/waterfall/build_info.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: appengine/findit/templates/flake/result.html
diff --git a/appengine/findit/templates/flake/result.html b/appengine/findit/templates/flake/result.html
index 3739519c1f190132bd8451403ecfc5253f753745..629fd0f80ebaa176ec8ede79ca0a94b3e29f3b6a 100644
--- a/appengine/findit/templates/flake/result.html
+++ b/appengine/findit/templates/flake/result.html
@@ -86,13 +86,18 @@
var not_run_data = [];
var run_data = [];
$.each(findit.passRates, function(index, value) {
- // Convert pass rate from [0, 1] to a percentage.
- var rate = (value[1] * 100).toFixed(0);
- // -1 means that the test doesn't exist or is disabled at the build.
- if (rate < 0) {
- not_run_data.push([value[0], 100, value[2]]);
+ // Convert pass rate from [0, 1] to a percentage. Include information about each point in the format:
+ // [this build commit position, pass rate, swarming task url, build number,
+ // this build's git hash, previous build's commit position,
+ // previous build's git hash].
+ var pass_rate = (value[1] * 100).toFixed(0);
+
+ if (pass_rate < 0) {
+ // -1 means that the test doesn't exist or is disabled at the build.
+ // We consider that a 100% pass rate.
+ not_run_data.push([value[0], 100, value[2], value[3], value[4], value[5], value[6]]);
} else {
- run_data.push([value[0], rate, value[2]]);
+ run_data.push([value[0], pass_rate, value[2], value[3], value[4], value[5], value[6]]);
}
});
@@ -166,11 +171,25 @@
function showTooltipForDataPoint(item) {
var itemData = item.series.data[item.dataIndex];
- var buildNumber = itemData[0];
+ var thisBuildCommitPosition = itemData[0];
var passRate = itemData[1];
var swarmingTaskId = itemData[2];
+ var buildNumber = itemData[3];
+ var thisBuildGitHash = itemData[4];
+ var previousBuildCommitPosition = itemData[5];
+ var previousBuildGitHash = itemData[6];
+
+ var tooltipStr = 'Pass rate: ' + passRate + '%';
+
+ if (previousBuildCommitPosition && previousBuildGitHash && thisBuildCommitPosition && thisBuildGitHash) {
+ tooltipStr += '<br>Range: <a href="https://crrev.com/' + previousBuildGitHash + '..' + thisBuildGitHash + '"target="_blank">' + previousBuildCommitPosition + ':' + thisBuildCommitPosition + '</a>';
+ } else if (thisBuildCommitPosition && thisBuildGitHash) {
+ // Previous information not available, so only show this build.
+ tooltipStr += '<br>Range: <a href="https://crrev.com/' + thisBuildGitHash + '" "target="_blank">' + thisBuildCommitPosition + '</a>';
+ }
+
+ tooltipStr += '<br>Build #: <a href="https://build.chromium.org/p/' + findit.masterName + '/builders/' + findit.builderName + '/builds/' + buildNumber + '" target="_blank">' + buildNumber + '</a>';
- var tooltipStr = 'Build #: <a href="https://build.chromium.org/p/' + findit.masterName + '/builders/' + findit.builderName + '/builds/' + buildNumber + '" target="_blank">' + buildNumber + '</a><br> Pass rate: ' + passRate + '%';
if (swarmingTaskId) {
tooltipStr += '<br>Swarming Task: <a href="https://chromium-swarm.appspot.com/task?id=' + swarmingTaskId + '" target="_blank">' + swarmingTaskId +'</a>';
} else {
@@ -181,7 +200,7 @@
}
var dataPointSelected = false;
- $("#flake-data").bind("plothover", function (event, pos, item) {
+ $("#flake-data").bind("plothover", function(event, pos, item) {
if (dataPointSelected)
return; // A data point is selected due to a click.
@@ -191,7 +210,7 @@
$("#tooltip").hide();
}
});
- $("#flake-data").bind("plotclick", function (event, pos, item) {
+ $("#flake-data").bind("plotclick", function(event, pos, item) {
if (item) {
dataPointSelected = true; // Set selected data point upon click.
showTooltipForDataPoint(item);
@@ -202,8 +221,10 @@
});
$.each(run_data, function(index, value) {
- if (value[0] == findit.regressedBuildNumber)
+ if (value[3] == findit.regressedBuildNumber) {
+ // value[3] contains the build number.
plot.highlight(run_data_sery_index, index);
+ }
});
}
@@ -239,12 +260,18 @@
Error info: {{ error }}<br>
{% endif %}
{% if suspected_flake.build_number %}
- Flakiness <b>started</b> in Build: <a href="https://build.chromium.org/p/{{ master_name }}/builders/{{ builder_name }}/builds/{{ suspected_flake.build_number }}" target="_blank" style="color:red;font-weight:bold">{{ suspected_flake.build_number }}</a>
+ Flakiness <b>started</b> in Build: <a href="https://build.chromium.org/p/{{ master_name }}/builders/{{ builder_name }}/builds/{{ suspected_flake.build_number }}" target="_blank" style="color:red;font-weight:bold">{{ suspected_flake.build_number }}</a>
{% endif %}
+ {% if suspected_flake.commit_position and suspected_flake.git_hash %}
+ <br>
+ Regression Range: <a href="https://crrev.com/{{ suspected_flake.previous_build_git_hash }}..{{ suspected_flake.git_hash }}" target="_blank" style="color:red;font-weight:bold">{{ suspected_flake.previous_build_commit_position }}:{{ suspected_flake.commit_position }}</a>
+ <br>
+ {% endif %}
+
</div>
<br>
<div>
- <b>Pass Rate by Build:</b><br>
+ <b>Pass Rate by Commit:</b><br>
<div class="container">
<div id="flake-data" class="flake-trend"></div>
</div>
« no previous file with comments | « appengine/findit/model/flake/master_flake_analysis.py ('k') | appengine/findit/waterfall/build_info.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698