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