diff options
author | Vse Mozhet Byt <vsemozhetbyt@gmail.com> | 2017-06-18 16:22:32 +0300 |
---|---|---|
committer | Vse Mozhet Byt <vsemozhetbyt@gmail.com> | 2017-06-21 03:40:27 +0300 |
commit | 76340e3f1007998c7cb9d69fa1a42d42663ca6c2 (patch) | |
tree | 9df1452725a049e20884a918d698f9abe72c7e2b /test/sequential | |
parent | 330349f706a1f21234eee9b9d75d7c1e953ad1f0 (diff) | |
download | android-node-v8-76340e3f1007998c7cb9d69fa1a42d42663ca6c2.tar.gz android-node-v8-76340e3f1007998c7cb9d69fa1a42d42663ca6c2.tar.bz2 android-node-v8-76340e3f1007998c7cb9d69fa1a42d42663ca6c2.zip |
test: fix RegExp nits
* Remove needless RegExp flag
In fixed case, `/g` flag is needless in the boolean context.
* Remove needless RegExp capturing
Use non-capturing grouping or remove capturing completely when:
* capturing is useless per se, e.g. in test() check;
* captured groups are not used afterward at all;
* some of the later captured groups are not used afterward.
* Use test, not match/exec in boolean context
match() and exec() return a complicated object,
unneeded in a boolean context.
* Do not needlessly repeat RegExp creation
This commit takes RegExp creation out of cycles and other repetitions.
As long as the RegExp does not use /g flag and match indices,
we are safe here.
In tests, this fix hardly gives a significant performance gain,
but it increases clarity and maintainability,
reassuring some RegExps to be identical.
RegExp in functions are not taken out of their functions:
while these functions are called many times
and their RegExps are recreated with each call,
the performance gain in test cases
does not seem to be worth decreasing function self-dependency.
PR-URL: https://github.com/nodejs/node/pull/13770
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Diffstat (limited to 'test/sequential')
-rw-r--r-- | test/sequential/test-module-loading.js | 8 | ||||
-rw-r--r-- | test/sequential/test-process-warnings.js | 8 | ||||
-rw-r--r-- | test/sequential/test-regress-GH-784.js | 18 |
3 files changed, 20 insertions, 14 deletions
diff --git a/test/sequential/test-module-loading.js b/test/sequential/test-module-loading.js index c55c03279e..8a7bfe15c4 100644 --- a/test/sequential/test-module-loading.js +++ b/test/sequential/test-module-loading.js @@ -25,6 +25,8 @@ const assert = require('assert'); const path = require('path'); const fs = require('fs'); +const backslash = /\\/g; + console.error('load test-module-loading.js'); // assert that this is the main module. @@ -195,7 +197,7 @@ try { require(`${loadOrder}file3`); } catch (e) { // Not a real .node module, but we know we require'd the right thing. - assert.ok(e.message.replace(/\\/g, '/').match(/file3\.node/)); + assert.ok(/file3\.node/.test(e.message.replace(backslash, '/'))); } assert.strictEqual(require(`${loadOrder}file4`).file4, 'file4.reg', msg); assert.strictEqual(require(`${loadOrder}file5`).file5, 'file5.reg2', msg); @@ -203,7 +205,7 @@ try { try { require(`${loadOrder}file7`); } catch (e) { - assert.ok(e.message.replace(/\\/g, '/').match(/file7\/index\.node/)); + assert.ok(/file7\/index\.node/.test(e.message.replace(backslash, '/'))); } assert.strictEqual(require(`${loadOrder}file8`).file8, 'file8/index.reg', msg); @@ -237,7 +239,7 @@ try { const children = module.children.reduce(function red(set, child) { let id = path.relative(path.dirname(__dirname), child.id); - id = id.replace(/\\/g, '/'); + id = id.replace(backslash, '/'); set[id] = child.children.reduce(red, {}); return set; }, {}); diff --git a/test/sequential/test-process-warnings.js b/test/sequential/test-process-warnings.js index 0ab8652f56..944029d8b3 100644 --- a/test/sequential/test-process-warnings.js +++ b/test/sequential/test-process-warnings.js @@ -10,24 +10,26 @@ const normal = [warnmod]; const noWarn = ['--no-warnings', warnmod]; const traceWarn = ['--trace-warnings', warnmod]; +const warningMessage = /^\(.+\)\sWarning: a bad practice warning/; + execFile(node, normal, function(er, stdout, stderr) { // Show Process Warnings assert.strictEqual(er, null); assert.strictEqual(stdout, ''); - assert(/^\(.+\)\sWarning: a bad practice warning/.test(stderr)); + assert(warningMessage.test(stderr)); }); execFile(node, noWarn, function(er, stdout, stderr) { // Hide Process Warnings assert.strictEqual(er, null); assert.strictEqual(stdout, ''); - assert(!/^\(.+\)\sWarning: a bad practice warning/.test(stderr)); + assert(!warningMessage.test(stderr)); }); execFile(node, traceWarn, function(er, stdout, stderr) { // Show Warning Trace assert.strictEqual(er, null); assert.strictEqual(stdout, ''); - assert(/^\(.+\)\sWarning: a bad practice warning/.test(stderr)); + assert(warningMessage.test(stderr)); assert(/at Object\.<anonymous>\s\(.+warnings\.js:3:9\)/.test(stderr)); }); diff --git a/test/sequential/test-regress-GH-784.js b/test/sequential/test-regress-GH-784.js index 7abc622dbe..127d921626 100644 --- a/test/sequential/test-regress-GH-784.js +++ b/test/sequential/test-regress-GH-784.js @@ -70,28 +70,30 @@ const responses = []; function afterPing(result) { responses.push(result); console.error(`afterPing. responses.length = ${responses.length}`); + const ECONNREFUSED_RE = /ECONNREFUSED/; + const successRE = /success/; switch (responses.length) { case 2: - assert.ok(/ECONNREFUSED/.test(responses[0])); - assert.ok(/ECONNREFUSED/.test(responses[1])); + assert.ok(ECONNREFUSED_RE.test(responses[0])); + assert.ok(ECONNREFUSED_RE.test(responses[1])); serverOn(); break; case 4: - assert.ok(/success/.test(responses[2])); - assert.ok(/success/.test(responses[3])); + assert.ok(successRE.test(responses[2])); + assert.ok(successRE.test(responses[3])); serverOff(); break; case 6: - assert.ok(/ECONNREFUSED/.test(responses[4])); - assert.ok(/ECONNREFUSED/.test(responses[5])); + assert.ok(ECONNREFUSED_RE.test(responses[4])); + assert.ok(ECONNREFUSED_RE.test(responses[5])); serverOn(); break; case 8: - assert.ok(/success/.test(responses[6])); - assert.ok(/success/.test(responses[7])); + assert.ok(successRE.test(responses[6])); + assert.ok(successRE.test(responses[7])); server.close(); // we should go to process.on('exit') from here. break; |