Perf Dashboard v3 UI doesn't show recent data points on v2 UI
authorrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 17 Dec 2015 04:26:32 +0000 (04:26 +0000)
committerrniwa@webkit.org <rniwa@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 17 Dec 2015 04:26:32 +0000 (04:26 +0000)
https://bugs.webkit.org/show_bug.cgi?id=152368

Reviewed by Chris Dumez.

The bug was caused by the last modified date in measurement set JSON being a string instead of a POSIX timestamp,
which prevented the v3 UI from invalidating the cache. Specifically, the following boolean logic always evaluated
to false because +data['lastModified'] was NaN in MeasurementSet.prototype._fetch (/v3/models/measurement-set.js):

!clusterEndTime && useCache && +data['lastModified'] < self._lastModified

Fixed the bug by calling Database::to_js_time on the last modified date fetched from the database.

* public/api/measurement-set.php:
(MeasurementSetFetcher::fetch_config_list): Convert the string returned by the database to a POSIX timestamp.
* tests/api-measurement-set.js: Added a test to ensure the last modified date in JSON is numeric. Since the value
of the last modified date depends on when tests run, we can't assert it to be a certain value.

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

Websites/perf.webkit.org/ChangeLog
Websites/perf.webkit.org/public/api/measurement-set.php
Websites/perf.webkit.org/tests/api-measurement-set.js

index 6838589..609cc22 100644 (file)
@@ -1,5 +1,25 @@
 2015-12-16  Ryosuke Niwa  <rniwa@webkit.org>
 
+        Perf Dashboard v3 UI doesn't show recent data points on v2 UI
+        https://bugs.webkit.org/show_bug.cgi?id=152368
+
+        Reviewed by Chris Dumez.
+
+        The bug was caused by the last modified date in measurement set JSON being a string instead of a POSIX timestamp,
+        which prevented the v3 UI from invalidating the cache. Specifically, the following boolean logic always evaluated
+        to false because +data['lastModified'] was NaN in MeasurementSet.prototype._fetch (/v3/models/measurement-set.js):
+
+        !clusterEndTime && useCache && +data['lastModified'] < self._lastModified
+
+        Fixed the bug by calling Database::to_js_time on the last modified date fetched from the database.
+
+        * public/api/measurement-set.php:
+        (MeasurementSetFetcher::fetch_config_list): Convert the string returned by the database to a POSIX timestamp.
+        * tests/api-measurement-set.js: Added a test to ensure the last modified date in JSON is numeric. Since the value
+        of the last modified date depends on when tests run, we can't assert it to be a certain value.
+
+2015-12-16  Ryosuke Niwa  <rniwa@webkit.org>
+
         v3 UI should show and link the build number on charts page
         https://bugs.webkit.org/show_bug.cgi?id=152359
 
index bee5d8a..7a0f2c1 100644 (file)
@@ -85,7 +85,7 @@ class MeasurementSetFetcher {
         foreach ($config_rows as &$config_row) {
             $query = $this->execute_query($config_row['config_id']);
 
-            $this->last_modified = max($this->last_modified, $config_row['config_runs_last_modified']);
+            $this->last_modified = max($this->last_modified, Database::to_js_time($config_row['config_runs_last_modified']));
 
             $measurement_row = $this->db->fetch_next_row($query);
             if ($measurement_row) {
index b9eb3c2..5038438 100644 (file)
@@ -206,6 +206,7 @@ describe("/api/measurement-set", function () {
                             'revisions', 'commitTime', 'build', 'buildTime', 'buildNumber', 'builder']);
 
                         assert.equal(paresdResult['startTime'], reportWithBuildTime.startTime);
+                        assert(typeof(paresdResult['lastModified']) == 'number', 'lastModified time should be a numeric');
 
                         assert.deepEqual(Object.keys(paresdResult['configurations']), ['current']);