summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames M Snell <jasnell@gmail.com>2017-07-24 12:08:28 -0700
committerJames M Snell <jasnell@gmail.com>2017-08-03 11:00:23 -0700
commit4b23b429818d3fef1714cbdea4c6a1fd06410a5f (patch)
treecd80c04fde27527616c62bcaaba8351cf2844f51
parentd41423fe72a86d84998a1b2cb915b0888369aaa7 (diff)
downloadnode-new-4b23b429818d3fef1714cbdea4c6a1fd06410a5f.tar.gz
test: improve multiple vm tests
PR-URL: https://github.com/nodejs/node/pull/14458 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
-rw-r--r--test/parallel/test-vm-context-async-script.js8
-rw-r--r--test/parallel/test-vm-context.js16
-rw-r--r--test/parallel/test-vm-create-and-run-in-context.js8
-rw-r--r--test/parallel/test-vm-function-declaration.js2
-rw-r--r--test/parallel/test-vm-new-script-new-context.js8
-rw-r--r--test/parallel/test-vm-new-script-this-context.js10
-rw-r--r--test/parallel/test-vm-run-in-new-context.js14
-rw-r--r--test/parallel/test-vm-syntax-error-message.js14
-rw-r--r--test/parallel/test-vm-syntax-error-stderr.js12
9 files changed, 41 insertions, 51 deletions
diff --git a/test/parallel/test-vm-context-async-script.js b/test/parallel/test-vm-context-async-script.js
index 87b6f50111..879315e37b 100644
--- a/test/parallel/test-vm-context-async-script.js
+++ b/test/parallel/test-vm-context-async-script.js
@@ -20,16 +20,16 @@
// USE OR OTHER DEALINGS IN THE SOFTWARE.
'use strict';
-require('../common');
+const common = require('../common');
const assert = require('assert');
const vm = require('vm');
-const sandbox = { setTimeout: setTimeout };
+const sandbox = { setTimeout };
const ctx = vm.createContext(sandbox);
vm.runInContext('setTimeout(function() { x = 3; }, 0);', ctx);
-setTimeout(function() {
+setTimeout(common.mustCall(() => {
assert.strictEqual(sandbox.x, 3);
assert.strictEqual(ctx.x, 3);
-}, 1);
+}), 1);
diff --git a/test/parallel/test-vm-context.js b/test/parallel/test-vm-context.js
index 8d47cb52ab..7e5404796e 100644
--- a/test/parallel/test-vm-context.js
+++ b/test/parallel/test-vm-context.js
@@ -27,29 +27,29 @@ const vm = require('vm');
const Script = vm.Script;
let script = new Script('"passed";');
-console.error('run in a new empty context');
+// Run in a new empty context
let context = vm.createContext();
let result = script.runInContext(context);
assert.strictEqual('passed', result);
-console.error('create a new pre-populated context');
+// Create a new pre-populated context
context = vm.createContext({ 'foo': 'bar', 'thing': 'lala' });
assert.strictEqual('bar', context.foo);
assert.strictEqual('lala', context.thing);
-console.error('test updating context');
+// Test updating context
script = new Script('foo = 3;');
result = script.runInContext(context);
assert.strictEqual(3, context.foo);
assert.strictEqual('lala', context.thing);
// Issue GH-227:
-assert.throws(function() {
+assert.throws(() => {
vm.runInNewContext('', null, 'some.js');
}, /^TypeError: sandbox must be an object$/);
// Issue GH-1140:
-console.error('test runInContext signature');
+// Test runInContext signature
let gh1140Exception;
try {
vm.runInContext('throw new Error()', context, 'expected-filename.js');
@@ -77,7 +77,7 @@ const contextifiedSandboxErrorMsg =
});
// Issue GH-693:
-console.error('test RegExp as argument to assert.throws');
+// Test RegExp as argument to assert.throws
script = vm.createScript('const assert = require(\'assert\'); assert.throws(' +
'function() { throw "hello world"; }, /hello/);',
'some.js');
@@ -92,13 +92,13 @@ assert.strictEqual(script.runInContext(ctx), false);
// Error on the first line of a module should
// have the correct line and column number
-assert.throws(function() {
+assert.throws(() => {
vm.runInContext('throw new Error()', context, {
filename: 'expected-filename.js',
lineOffset: 32,
columnOffset: 123
});
-}, function(err) {
+}, (err) => {
return /expected-filename\.js:33:130/.test(err.stack);
}, 'Expected appearance of proper offset in Error stack');
diff --git a/test/parallel/test-vm-create-and-run-in-context.js b/test/parallel/test-vm-create-and-run-in-context.js
index 1adf85460d..09f643aa90 100644
--- a/test/parallel/test-vm-create-and-run-in-context.js
+++ b/test/parallel/test-vm-create-and-run-in-context.js
@@ -26,23 +26,23 @@ const assert = require('assert');
const vm = require('vm');
-console.error('run in a new empty context');
+// Run in a new empty context
let context = vm.createContext();
let result = vm.runInContext('"passed";', context);
assert.strictEqual('passed', result);
-console.error('create a new pre-populated context');
+// Create a new pre-populated context
context = vm.createContext({ 'foo': 'bar', 'thing': 'lala' });
assert.strictEqual('bar', context.foo);
assert.strictEqual('lala', context.thing);
-console.error('test updating context');
+// Test updating context
result = vm.runInContext('var foo = 3;', context);
assert.strictEqual(3, context.foo);
assert.strictEqual('lala', context.thing);
// https://github.com/nodejs/node/issues/5768
-console.error('run in contextified sandbox without referencing the context');
+// Run in contextified sandbox without referencing the context
const sandbox = { x: 1 };
vm.createContext(sandbox);
global.gc();
diff --git a/test/parallel/test-vm-function-declaration.js b/test/parallel/test-vm-function-declaration.js
index d42a3a3f48..875ecef22a 100644
--- a/test/parallel/test-vm-function-declaration.js
+++ b/test/parallel/test-vm-function-declaration.js
@@ -42,5 +42,3 @@ assert.strictEqual(res.name, 'b', 'res should be named b');
assert.strictEqual(typeof o.a, 'function', 'a should be function');
assert.strictEqual(typeof o.b, 'function', 'b should be function');
assert.strictEqual(res, o.b, 'result should be global b function');
-
-console.log('ok');
diff --git a/test/parallel/test-vm-new-script-new-context.js b/test/parallel/test-vm-new-script-new-context.js
index 045c37ce33..7015499879 100644
--- a/test/parallel/test-vm-new-script-new-context.js
+++ b/test/parallel/test-vm-new-script-new-context.js
@@ -36,14 +36,14 @@ const Script = require('vm').Script;
{
const script = new Script('throw new Error(\'test\');');
- assert.throws(function() {
+ assert.throws(() => {
script.runInNewContext();
}, /^Error: test$/);
}
{
const script = new Script('foo.bar = 5;');
- assert.throws(function() {
+ assert.throws(() => {
script.runInNewContext();
}, /^ReferenceError: foo is not defined$/);
}
@@ -94,14 +94,14 @@ const Script = require('vm').Script;
script.runInNewContext({ f: f });
assert.strictEqual(f.a, 2);
- assert.throws(function() {
+ assert.throws(() => {
script.runInNewContext();
}, /^ReferenceError: f is not defined$/);
}
{
const script = new Script('');
- assert.throws(function() {
+ assert.throws(() => {
script.runInNewContext.call('\'hello\';');
}, /^TypeError: this\.runInContext is not a function$/);
}
diff --git a/test/parallel/test-vm-new-script-this-context.js b/test/parallel/test-vm-new-script-this-context.js
index dfa9b1130b..6da47e6724 100644
--- a/test/parallel/test-vm-new-script-this-context.js
+++ b/test/parallel/test-vm-new-script-this-context.js
@@ -26,14 +26,14 @@ const Script = require('vm').Script;
common.globalCheck = false;
-console.error('run a string');
+// Run a string
let script = new Script('\'passed\';');
const result = script.runInThisContext(script);
assert.strictEqual('passed', result);
-console.error('thrown error');
+// Thrown error
script = new Script('throw new Error(\'test\');');
-assert.throws(function() {
+assert.throws(() => {
script.runInThisContext(script);
}, /^Error: test$/);
@@ -43,7 +43,7 @@ script.runInThisContext(script);
assert.strictEqual(2, global.hello);
-console.error('pass values');
+// Pass values
global.code = 'foo = 1;' +
'bar = 2;' +
'if (typeof baz !== "undefined") throw new Error("test fail");';
@@ -55,7 +55,7 @@ assert.strictEqual(0, global.obj.foo);
assert.strictEqual(2, global.bar);
assert.strictEqual(1, global.foo);
-console.error('call a function');
+// Call a function
global.f = function() { global.foo = 100; };
script = new Script('f()');
script.runInThisContext(script);
diff --git a/test/parallel/test-vm-run-in-new-context.js b/test/parallel/test-vm-run-in-new-context.js
index 0da73ea6a9..6157b2445d 100644
--- a/test/parallel/test-vm-run-in-new-context.js
+++ b/test/parallel/test-vm-run-in-new-context.js
@@ -31,12 +31,12 @@ assert.strictEqual(typeof global.gc, 'function',
common.globalCheck = false;
-console.error('run a string');
+// Run a string
const result = vm.runInNewContext('\'passed\';');
assert.strictEqual('passed', result);
-console.error('thrown error');
-assert.throws(function() {
+// Thrown error
+assert.throws(() => {
vm.runInNewContext('throw new Error(\'test\');');
}, /^Error: test$/);
@@ -45,7 +45,7 @@ vm.runInNewContext('hello = 2');
assert.strictEqual(5, global.hello);
-console.error('pass values in and out');
+// Pass values in and out
global.code = 'foo = 1;' +
'bar = 2;' +
'if (baz !== 3) throw new Error(\'test fail\');';
@@ -58,17 +58,17 @@ assert.strictEqual(1, global.obj.foo);
assert.strictEqual(2, global.obj.bar);
assert.strictEqual(2, global.foo);
-console.error('call a function by reference');
+// Call a function by reference
function changeFoo() { global.foo = 100; }
vm.runInNewContext('f()', { f: changeFoo });
assert.strictEqual(global.foo, 100);
-console.error('modify an object by reference');
+// Modify an object by reference
const f = { a: 1 };
vm.runInNewContext('f.a = 2', { f: f });
assert.strictEqual(f.a, 2);
-console.error('use function in context without referencing context');
+// Use function in context without referencing context
const fn = vm.runInNewContext('(function() { obj.p = {}; })', { obj: {} });
global.gc();
fn();
diff --git a/test/parallel/test-vm-syntax-error-message.js b/test/parallel/test-vm-syntax-error-message.js
index 89589c5cc9..5a16239f56 100644
--- a/test/parallel/test-vm-syntax-error-message.js
+++ b/test/parallel/test-vm-syntax-error-message.js
@@ -1,5 +1,5 @@
'use strict';
-require('../common');
+const common = require('../common');
const assert = require('assert');
const child_process = require('child_process');
@@ -11,16 +11,12 @@ const p = child_process.spawn(process.execPath, [
'catch (e) { console.log(e.message); }'
]);
-p.stderr.on('data', function(data) {
- assert.fail(`Unexpected stderr data: ${data}`);
-});
+p.stderr.on('data', common.mustNotCall());
let output = '';
-p.stdout.on('data', function(data) {
- output += data;
-});
+p.stdout.on('data', (data) => output += data);
-process.on('exit', function() {
+p.stdout.on('end', common.mustCall(() => {
assert.strictEqual(output.replace(/[\r\n]+/g, ''), 'boo');
-});
+}));
diff --git a/test/parallel/test-vm-syntax-error-stderr.js b/test/parallel/test-vm-syntax-error-stderr.js
index 805bea0f87..e40edc907c 100644
--- a/test/parallel/test-vm-syntax-error-stderr.js
+++ b/test/parallel/test-vm-syntax-error-stderr.js
@@ -12,18 +12,14 @@ const p = child_process.spawn(process.execPath, [
wrong_script
]);
-p.stdout.on('data', function(data) {
- assert.fail(`Unexpected stdout data: ${data}`);
-});
+p.stdout.on('data', common.mustNotCall());
let output = '';
-p.stderr.on('data', function(data) {
- output += data;
-});
+p.stderr.on('data', (data) => output += data);
-process.on('exit', function() {
+p.stderr.on('end', common.mustCall(() => {
assert(/BEGIN CERT/.test(output));
assert(/^\s+\^/m.test(output));
assert(/Invalid left-hand side expression in prefix operation/.test(output));
-});
+}));