jenkins-bot has submitted this change and it was merged.

Change subject: Get rid of top regressions / top fixes endpoints in round-trip 
test server.
......................................................................


Get rid of top regressions / top fixes endpoints in round-trip test server.

Those endpoints are basically useless, as we always use pairwise
comparisons to find regressions. As a bonus, the regressions and fixes
counters now point to the comparisons between the two latest revisions.

Bug: 52235
Change-Id: I2ae6ce9fb089cc45eae6d05641c9b89d0aa04ba6
---
M js/tests/server/server.js
1 file changed, 45 insertions(+), 81 deletions(-)

Approvals:
  Subramanya Sastry: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/js/tests/server/server.js b/js/tests/server/server.js
index 5c15a49..8411bb0 100755
--- a/js/tests/server/server.js
+++ b/js/tests/server/server.js
@@ -185,6 +185,7 @@
 var dbStatsQuery =
        'SELECT ' +
        '(select hash from commits order by timestamp desc limit 1) as maxhash, 
' +
+       '(select hash from commits order by timestamp desc limit 1 offset 1) as 
secondhash, ' +
        '(select count(*) from stats where stats.commit_hash = ' +
                '(select hash from commits order by timestamp desc limit 1)) as 
maxresults, ' +
        '(select avg(stats.errors) from stats join pages on ' +
@@ -225,6 +226,7 @@
 var dbPerWikiStatsQuery =
        'SELECT ' +
        '(select hash from commits order by timestamp desc limit 1) as maxhash, 
' +
+       '(select hash from commits order by timestamp desc limit 1 offset 1) as 
secondhash, ' +
        '(select count(*) from stats join pages on stats.page_id = pages.id ' +
                'where stats.commit_hash = ' +
                '(select hash from commits order by timestamp desc limit 1) ' +
@@ -291,30 +293,6 @@
 
 var dbFailedFetches =
        'SELECT title, prefix FROM pages WHERE num_fetch_errors >= ?';
-
-var dbRegressedPages =
-       'SELECT pages.title, pages.prefix, ' +
-       's1.commit_hash AS new_commit, s1.errors AS new_errors, s1.fails AS 
new_fails, s1.skips AS new_skips, ' +
-       's2.commit_hash AS old_commit, s2.errors AS old_errors, s2.fails AS 
old_fails, s2.skips AS old_skips ' +
-       'FROM pages ' +
-       'JOIN stats AS s1 ON s1.id = pages.latest_result ' +
-       'JOIN stats AS s2 ON s2.page_id = pages.id ' +
-       'WHERE s2.id != s1.id AND s1.score > s2.score ' +
-       'GROUP BY pages.id ' + // picks a "random" past hash from which we 
regressed
-       'ORDER BY s1.score - s2.score DESC ' +
-       'LIMIT 40 OFFSET ?';
-
-var dbFixedPages =
-       'SELECT pages.title, pages.prefix, ' +
-       's1.commit_hash AS new_commit, s1.errors AS new_errors, s1.fails AS 
new_fails, s1.skips AS new_skips, ' +
-       's2.commit_hash AS old_commit, s2.errors AS old_errors, s2.fails AS 
old_fails, s2.skips AS old_skips ' +
-       'FROM pages ' +
-       'JOIN stats AS s1 ON s1.id = pages.latest_result ' +
-       'JOIN stats AS s2 ON s2.page_id = pages.id ' +
-       'WHERE s2.id != s1.id AND s1.score < s2.score ' +
-       'GROUP BY pages.id ' + // picks a "random" past hash from which we 
regressed
-       'ORDER BY s1.score - s2.score ASC ' +
-       'LIMIT 40 OFFSET ?';
 
 var dbFailsDistribution =
        'SELECT fails, count(*) AS num_pages ' +
@@ -553,8 +531,6 @@
 var indexLinkList = function () {
        return '<p>More details:</p>\n<ul>' +
                '<li><a href="/topfails">Results by title</a></li>\n' +
-               '<li><a href="/regressions">Top regressions</a></li>\n' +
-               '<li><a href="/topfixes">Top fixes</a></li>\n' +
                '<li><a href="/failedFetches">Non-existing test 
pages</a></li>\n' +
                '<li><a href="/failsDistr">Histogram of failures</a></li>\n' +
                '<li><a href="/skipsDistr">Histogram of skips</a></li>\n' +
@@ -640,8 +616,14 @@
                        res.write( '<table><tbody>');
                        displayRow(res, "Git SHA1", row[0].maxhash);
                        displayRow(res, "Test Results", row[0].maxresults);
-                       displayRow(res, "Regressions", numRegressions);
-                       displayRow(res, "Fixes", numFixes);
+                       displayRow(res, "Regressions",
+                                  '<a href="/regressions/between/' + 
row[0].secondhash + '/' +
+                                  row[0].maxhash + '">' +
+                                  numRegressions + '</a>');
+                       displayRow(res, "Fixes",
+                                  '<a href="/topfixes/between/' + 
row[0].secondhash + '/' +
+                                  row[0].maxhash + '">' +
+                                  numFixes + '</a>');
                        res.write( '</tbody></table></p>' );
 
                        res.write( '<p>Averages (over the latest results):' );
@@ -917,57 +899,43 @@
 
 var GET_regressions = function( req, res ) {
        var page, offset, urlPrefix;
-       if (req.params.length > 1) {
-               var r1 = req.params[0];
-               var r2 = req.params[1];
-               urlPrefix = "/regressions/between/" + r1 + "/" + r2;
-               page = (req.params[2] || 0) - 0;
-               offset = page * 40;
-               db.query( dbNumRegressionsBetweenRevs, [ r2, r1 ], 
function(err, row) {
-                       if (err || !row) {
-                               res.send( err.toString(), 500 );
-                       } else {
-                               var topfixesLink = "/topfixes/between/" + r1 + 
"/" + r2,
-                                       header = "Total regressions between 
selected revisions: " +
-                                                       row[0].numRegressions +
-                                                       ' | <a href="' + 
topfixesLink + '">topfixes</a>';
-                               db.query( dbRegressionsBetweenRevs, [ r2, r1, 
offset ],
-                                       displayPageList.bind(null, res, 
urlPrefix, page, header));
-                       }
-               });
-       } else {
-               urlPrefix = "/regressions";
-               page = ( req.params[0] || 0 ) - 0;
-               offset = page * 40;
-               db.query( dbRegressedPages, [ offset ], 
displayPageList.bind(null, res, urlPrefix, page, null));
-       }
+       var r1 = req.params[0];
+       var r2 = req.params[1];
+       urlPrefix = "/regressions/between/" + r1 + "/" + r2;
+       page = (req.params[2] || 0) - 0;
+       offset = page * 40;
+       db.query( dbNumRegressionsBetweenRevs, [ r2, r1 ], function(err, row) {
+               if (err || !row) {
+                       res.send( err.toString(), 500 );
+               } else {
+                       var topfixesLink = "/topfixes/between/" + r1 + "/" + r2,
+                               header = "Total regressions between selected 
revisions: " +
+                                               row[0].numRegressions +
+                                               ' | <a href="' + topfixesLink + 
'">topfixes</a>';
+                       db.query( dbRegressionsBetweenRevs, [ r2, r1, offset ],
+                               displayPageList.bind(null, res, urlPrefix, 
page, header));
+               }
+       });
 };
 
 var GET_topfixes = function( req, res ) {
        var page, offset, urlPrefix;
-       if (req.params.length > 1) {
-               var r1 = req.params[0];
-               var r2 = req.params[1];
-               urlPrefix = "/topfixes/between/" + r1 + "/" + r2;
-               page = (req.params[2] || 0) - 0;
-               offset = page * 40;
-               db.query( dbNumFixesBetweenRevs, [ r2, r1 ], function(err, row) 
{
-                       if (err || !row) {
-                               res.send( err.toString(), 500 );
-                       } else {
-                               var regressionLink = "/regressions/between/" + 
r1 + "/" + r2,
-                                       header = "Total fixes between selected 
revisions: " + row[0].numFixes +
-                                               ' | <a href="' + regressionLink 
+ '">regressions</a>';
-                               db.query( dbFixesBetweenRevs, [ r2, r1, offset 
],
-                                       displayPageList.bind(null, res, 
urlPrefix, page, header));
-                       }
-               });
-       } else {
-               urlPrefix = "/topfixes";
-               page = ( req.params[0] || 0 ) - 0;
-               offset = page * 40;
-               db.query( dbFixedPages, [ offset ], displayPageList.bind(null, 
res, urlPrefix, page, null));
-       }
+       var r1 = req.params[0];
+       var r2 = req.params[1];
+       urlPrefix = "/topfixes/between/" + r1 + "/" + r2;
+       page = (req.params[2] || 0) - 0;
+       offset = page * 40;
+       db.query( dbNumFixesBetweenRevs, [ r2, r1 ], function(err, row) {
+               if (err || !row) {
+                       res.send( err.toString(), 500 );
+               } else {
+                       var regressionLink = "/regressions/between/" + r1 + "/" 
+ r2,
+                               header = "Total fixes between selected 
revisions: " + row[0].numFixes +
+                                       ' | <a href="' + regressionLink + 
'">regressions</a>';
+                       db.query( dbFixesBetweenRevs, [ r2, r1, offset ],
+                               displayPageList.bind(null, res, urlPrefix, 
page, header));
+               }
+       });
 };
 
 var GET_commits = function( req, res ) {
@@ -1038,14 +1006,10 @@
 // Failed fetches
 app.get( /^\/failedFetches$/, GET_failedFetches );
 
-// Regressions -- 0th and later pages
-app.get( /^\/regressions$/, GET_regressions );
-app.get( /^\/regressions\/(\d+)$/, GET_regressions );
+// Regressions between two revisions.
 app.get( /^\/regressions\/between\/([^\/]+)\/([^\/]+)(?:\/(\d+))?$/, 
GET_regressions );
 
-// Topfixes -- 0th and later pages
-app.get( /^\/topfixes$/, GET_topfixes );
-app.get( /^\/topfixes\/(\d+)$/, GET_topfixes );
+// Topfixes between two revisions.
 app.get( /^\/topfixes\/between\/([^\/]+)\/([^\/]+)(?:\/(\d+))?$/, GET_topfixes 
);
 
 // Distribution of fails

-- 
To view, visit https://gerrit.wikimedia.org/r/76933
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I2ae6ce9fb089cc45eae6d05641c9b89d0aa04ba6
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Parsoid
Gerrit-Branch: rt_testing
Gerrit-Owner: Marcoil <marc...@wikimedia.org>
Gerrit-Reviewer: Subramanya Sastry <ssas...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to