C. Scott Ananian has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/401812 )

Change subject: Use Promise.async/yield in tools/regression-testing.js
......................................................................

Use Promise.async/yield in tools/regression-testing.js

Depends-On: I732ae30a5295f6b1f833553c2293bec8b13ff1c9
Change-Id: I5af068cbcb06a845a5a63c922be3e896956ca6ba
---
M tools/regression-testing.js
1 file changed, 41 insertions(+), 53 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/parsoid 
refs/changes/12/401812/1

diff --git a/tools/regression-testing.js b/tools/regression-testing.js
index 46819bc..71bb064 100755
--- a/tools/regression-testing.js
+++ b/tools/regression-testing.js
@@ -4,16 +4,14 @@
 
 require('../core-upgrade.js');
 
-var fs = require('fs');
+var fs = require('pn/fs');
 var path = require('path');
 var yargs = require('yargs');
-var childProcess = require('child_process');
+var childProcess = require('pn/child_process');
 
 var Promise = require('../lib/utils/promise.js');
 var serviceWrapper = require('../tests/serviceWrapper.js');
 var rtTest = require('../bin/roundtrip-test.js');
-
-var readFile = Promise.promisify(fs.readFile, false, fs);
 
 var usage = 'Usage: $0 -f <file> -o <sha> -c <sha>';
 var opts = yargs.usage(usage, {
@@ -46,7 +44,7 @@
        // FIXME: Add an option for the regression url.
 });
 
-(function() {
+Promise.async(function *() {
        var argv = opts.argv;
 
        if (argv.help) {
@@ -60,31 +58,27 @@
                return;
        }
 
-       var checkout = Promise.method(function(commit) {
+       var checkout = Promise.async(function *(commit) {
                console.log('Checking out: ' + commit);
-               return Promise.promisify(
-                       childProcess.execFile, ['stdout', 'stderr'], 
childProcess
-               )('git', ['checkout', commit], {
+               yield childProcess.execFile('git', ['checkout', commit], {
                        cwd: path.join(__dirname, '..'),
-               });
+               }).promise;
        });
 
        var titles;
-       var run = Promise.method(function(handleResult) {
-               return serviceWrapper.runServices({ skipMock: true 
}).then(function(ret) {
-                       // Do this serially for now.
-                       return Promise.reduce(titles, function(_, t) {
-                               return rtTest.runTests(t.title, {
-                                       prefix: t.prefix,
-                                       parsoidURL: ret.parsoidURL,
-                                       contentVersion: argv.contentVersion,
-                               }, rtTest.jsonFormat).then(
-                                       handleResult.bind(null, t)
-                               );
-                       }, null).then(function() {
-                               return ret.runner.stop();
-                       });
-               });
+       var run = Promise.async(function *(handleResult) {
+               var ret = yield serviceWrapper.runServices({ skipMock: true });
+               // Do this serially for now.
+               yield Promise.reduce(titles, function(_, t) {
+                       return rtTest.runTests(t.title, {
+                               prefix: t.prefix,
+                               parsoidURL: ret.parsoidURL,
+                               contentVersion: argv.contentVersion,
+                       }, rtTest.jsonFormat).then(
+                               handleResult.bind(null, t)
+                       );
+               }, null);
+               yield ret.runner.stop();
        });
 
        var summary = [];
@@ -101,31 +95,25 @@
                }
        };
 
-       readFile(argv.f, 'utf8').then(function(data) {
-               titles = data.trim().split('\n').map(function(l) {
-                       var ind = l.indexOf(':');
-                       return {
-                               prefix: l.substr(0, ind),
-                               title: l.substr(ind + 1).replace(/ \|.*$/, ''),
-                       };
-               });
-               return checkout(argv.o);
-       }).then(function() {
-               return run(function(t, ret) {
-                       if (ret.output.error) { throw ret.output.error; }
-                       t.oresults = ret.output.results;
-               });
-       }).then(function() {
-               return checkout(argv.c);
-       }).then(function() {
-               return run(function(t, ret) {
-                       if (ret.output.error) { throw ret.output.error; }
-                       compareResult(t, ret.output.results);
-               });
-       }).then(function() {
-               console.log('----------------------------');
-               console.log('Pages needing investigation:');
-               console.log(summary);
-               process.exit(0);
-       }).done();
-}());
+       var data = yield fs.readFile(argv.f, 'utf8');
+       titles = data.trim().split('\n').map(function(l) {
+               var ind = l.indexOf(':');
+               return {
+                       prefix: l.substr(0, ind),
+                       title: l.substr(ind + 1).replace(/ \|.*$/, ''),
+               };
+       });
+       yield checkout(argv.o);
+       yield run(function(t, ret) {
+               if (ret.output.error) { throw ret.output.error; }
+               t.oresults = ret.output.results;
+       });
+       yield checkout(argv.c);
+       yield run(function(t, ret) {
+               if (ret.output.error) { throw ret.output.error; }
+               compareResult(t, ret.output.results);
+       });
+       console.log('----------------------------');
+       console.log('Pages needing investigation:');
+       console.log(summary);
+})().done();

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5af068cbcb06a845a5a63c922be3e896956ca6ba
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: C. Scott Ananian <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to