Perf dashboard should always show comparison to baseline and target even if one is...
authorrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 30 Nov 2015 21:09:42 +0000 (21:09 +0000)
committerrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 30 Nov 2015 21:09:42 +0000 (21:09 +0000)
https://bugs.webkit.org/show_bug.cgi?id=151510

Reviewed by Darin Adler.

Show the comparison status against the baseline when baseline is present but target is missing.

To make the code more readable, this patch splits the logic into three cases:
1. Both baseline and target are present
2. Only baseline is present
3. Only target is present

Also extracted a helper function to construct the label.

* public/v2/app.js:
(.labelForDiff): Added.
(App.Pane.computeStatus):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@192817 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Websites/perf.webkit.org/ChangeLog
Websites/perf.webkit.org/public/v2/app.js

index 716efaf..8ca5680 100644 (file)
@@ -1,3 +1,23 @@
+2015-11-30  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Perf dashboard should always show comparison to baseline and target even if one is missing
+        https://bugs.webkit.org/show_bug.cgi?id=151510
+
+        Reviewed by Darin Adler.
+
+        Show the comparison status against the baseline when baseline is present but target is missing.
+
+        To make the code more readable, this patch splits the logic into three cases:
+        1. Both baseline and target are present
+        2. Only baseline is present
+        3. Only target is present
+
+        Also extracted a helper function to construct the label.
+
+        * public/v2/app.js:
+        (.labelForDiff): Added.
+        (App.Pane.computeStatus):
+
 2015-11-23  Commit Queue  <commit-queue@webkit.org>
 
         Unreviewed, rolling out r192716 and r192717.
 2015-11-23  Commit Queue  <commit-queue@webkit.org>
 
         Unreviewed, rolling out r192716 and r192717.
index 0217ba0..0fc6277 100644 (file)
@@ -486,15 +486,27 @@ App.Pane = Ember.Object.extend({
         var className = '';
         var formatter = d3.format('.3p');
 
         var className = '';
         var formatter = d3.format('.3p');
 
+        function labelForDiff(diff, name) { return formatter(Math.abs(diff)) + ' ' + (diff > 0 ? 'above' : 'below') + ' ' + name; }
+
         var smallerIsBetter = chartData.smallerIsBetter;
         var smallerIsBetter = chartData.smallerIsBetter;
-        if (diffFromBaseline !== undefined && diffFromBaseline > 0 == smallerIsBetter) {
-            label = formatter(Math.abs(diffFromBaseline)) + ' ' + (smallerIsBetter ? 'above' : 'below') + ' baseline';
-            className = 'worse';
-        } else if (diffFromTarget !== undefined && diffFromTarget < 0 == smallerIsBetter) {
-            label = formatter(Math.abs(diffFromTarget)) + ' ' + (smallerIsBetter ? 'below' : 'above') + ' target';
-            className = 'better';
-        } else if (diffFromTarget !== undefined)
-            label = formatter(Math.abs(diffFromTarget)) + ' until target';
+        if (diffFromBaseline !== undefined && diffFromTarget !== undefined) {
+            if (diffFromBaseline > 0 == smallerIsBetter) {
+                label = labelForDiff(diffFromBaseline, 'baseline');
+                className = 'worse';
+            } else if (diffFromTarget < 0 == smallerIsBetter) {
+                label = labelForDiff(diffFromBaseline, 'target');
+                className = 'better';
+            } else
+                label = formatter(Math.abs(diffFromTarget)) + ' until target';
+        } else if (diffFromBaseline !== undefined) {
+            label = labelForDiff(diffFromBaseline, 'baseline');
+            if (diffFromBaseline > 0 == smallerIsBetter)
+                className = 'worse';
+        } else if (diffFromTarget !== undefined) {
+            label = labelForDiff(diffFromTarget, 'target');
+            if (diffFromTarget < 0 == smallerIsBetter)
+                className = 'better';
+        }
 
         var valueDelta = null;
         var relativeDelta = null;
 
         var valueDelta = null;
         var relativeDelta = null;