From 2c4ebe0426616e6a5016b6d77f6ca72a9548be93 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Tue, 14 Jul 2020 17:45:39 +0200 Subject: [PATCH] test: use `.then(common.mustCall())` for all async IIFEs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This makes sure that all async functions finish as expected. PR-URL: https://github.com/nodejs/node/pull/34363 Reviewed-By: Colin Ihrig Reviewed-By: Rich Trott Reviewed-By: Tobias Nießen Reviewed-By: Richard Lau Reviewed-By: James M Snell Reviewed-By: Luigi Pinca --- test/es-module/test-esm-error-cache.js | 4 ++-- test/es-module/test-esm-import-meta-resolve.mjs | 4 ++-- test/internet/test-dns-promises-resolve.js | 4 ++-- test/internet/test-dns-txt-sigsegv.js | 4 ++-- test/internet/test-dns.js | 2 +- test/parallel/test-c-ares.js | 4 ++-- test/parallel/test-child-process-spawn-args.js | 2 +- test/parallel/test-dns-lookup-promises.js | 4 ++-- test/parallel/test-dns-lookup.js | 2 +- test/parallel/test-dns-setservers-type-check.js | 2 +- test/parallel/test-dns.js | 4 ++-- test/parallel/test-fs-copyfile-respect-permissions.js | 2 +- test/parallel/test-fs-read-empty-buffer.js | 2 +- test/parallel/test-fs-readdir-types.js | 2 +- test/parallel/test-fs-readv-promises.js | 5 ++--- test/parallel/test-fs-rmdir-recursive.js | 2 +- test/parallel/test-fs-stat-bigint.js | 2 +- test/parallel/test-fs-writev-promises.js | 5 ++--- test/parallel/test-inspect-publish-uid.js | 2 +- test/parallel/test-internal-module-wrap.js | 8 +++----- test/parallel/test-repl.js | 2 +- test/parallel/test-util-inspect-namespace.js | 8 +++----- test/parallel/test-util-promisify.js | 4 ++-- test/parallel/test-util-types.js | 4 ++-- test/parallel/test-vm-module-basic.js | 8 ++++---- test/parallel/test-vm-module-errors.js | 2 +- test/parallel/test-vm-module-import-meta.js | 2 +- test/parallel/test-vm-module-link.js | 2 +- test/parallel/test-vm-module-reevaluate.js | 2 +- test/parallel/test-vm-module-synthetic.js | 2 +- test/parallel/test-zlib-empty-buffer.js | 4 ++-- test/sequential/test-inspector-async-call-stack-abort.js | 2 +- test/wasi/test-wasi-stdio.js | 4 ++-- test/wasi/test-wasi-symlinks.js | 2 +- test/wasi/test-wasi.js | 2 +- 35 files changed, 55 insertions(+), 61 deletions(-) diff --git a/test/es-module/test-esm-error-cache.js b/test/es-module/test-esm-error-cache.js index b13e7936268..d780f1a2216 100644 --- a/test/es-module/test-esm-error-cache.js +++ b/test/es-module/test-esm-error-cache.js @@ -1,6 +1,6 @@ 'use strict'; -require('../common'); +const common = require('../common'); const assert = require('assert'); const file = '../fixtures/syntax/bad_syntax.mjs'; @@ -23,4 +23,4 @@ let error; return true; } ); -})(); +})().then(common.mustCall()); diff --git a/test/es-module/test-esm-import-meta-resolve.mjs b/test/es-module/test-esm-import-meta-resolve.mjs index faf9320a827..911225e13c9 100644 --- a/test/es-module/test-esm-import-meta-resolve.mjs +++ b/test/es-module/test-esm-import-meta-resolve.mjs @@ -1,5 +1,5 @@ // Flags: --experimental-import-meta-resolve -import '../common/index.mjs'; +import { mustCall } from '../common/index.mjs'; import assert from 'assert'; const dirname = import.meta.url.slice(0, import.meta.url.lastIndexOf('/') + 1); @@ -21,4 +21,4 @@ const fixtures = dirname.slice(0, dirname.lastIndexOf('/', dirname.length - 2) + assert.strictEqual(await import.meta.resolve('../fixtures/'), fixtures); assert.strictEqual(await import.meta.resolve('baz/', fixtures), fixtures + 'node_modules/baz/'); -})(); +})().then(mustCall()); diff --git a/test/internet/test-dns-promises-resolve.js b/test/internet/test-dns-promises-resolve.js index a482cba60a2..ed9c95a010a 100644 --- a/test/internet/test-dns-promises-resolve.js +++ b/test/internet/test-dns-promises-resolve.js @@ -1,5 +1,5 @@ 'use strict'; -require('../common'); +const common = require('../common'); const assert = require('assert'); const dnsPromises = require('dns').promises; @@ -38,5 +38,5 @@ const dnsPromises = require('dns').promises; const result = await dnsPromises.resolve('example.org', rrtype); assert.ok(result !== undefined); assert.ok(result.length > 0); - })(); + })().then(common.mustCall()); } diff --git a/test/internet/test-dns-txt-sigsegv.js b/test/internet/test-dns-txt-sigsegv.js index 9f65b6ec24f..eeebf28fc77 100644 --- a/test/internet/test-dns-txt-sigsegv.js +++ b/test/internet/test-dns-txt-sigsegv.js @@ -1,5 +1,5 @@ 'use strict'; -require('../common'); +const common = require('../common'); const assert = require('assert'); const dns = require('dns'); const dnsPromises = dns.promises; @@ -7,7 +7,7 @@ const dnsPromises = dns.promises; (async function() { const result = await dnsPromises.resolveTxt('www.microsoft.com'); assert.strictEqual(result.length, 0); -})(); +})().then(common.mustCall()); dns.resolveTxt('www.microsoft.com', function(err, records) { assert.strictEqual(err, null); diff --git a/test/internet/test-dns.js b/test/internet/test-dns.js index c74acc50dd7..e5092b6ea2e 100644 --- a/test/internet/test-dns.js +++ b/test/internet/test-dns.js @@ -708,4 +708,4 @@ dns.lookupService('0.0.0.0', 0, common.mustCall()); (async function() { await dnsPromises.lookup(addresses.INET6_HOST, 6); await dnsPromises.lookup(addresses.INET_HOST, {}); -})(); +})().then(common.mustCall()); diff --git a/test/parallel/test-c-ares.js b/test/parallel/test-c-ares.js index 110d28ecf82..a1c109ddfcb 100644 --- a/test/parallel/test-c-ares.js +++ b/test/parallel/test-c-ares.js @@ -40,7 +40,7 @@ const dnsPromises = dns.promises; res = await dnsPromises.lookup('::1'); assert.strictEqual(res.address, '::1'); assert.strictEqual(res.family, 6); -})(); +})().then(common.mustCall()); // Try resolution without callback @@ -94,5 +94,5 @@ if (!common.isWindows && !common.isIBMi) { (async function() { assert.ok(Array.isArray(await dnsPromises.reverse('127.0.0.1'))); - })(); + })().then(common.mustCall()); } diff --git a/test/parallel/test-child-process-spawn-args.js b/test/parallel/test-child-process-spawn-args.js index ef70fe844f9..ec56f409faf 100644 --- a/test/parallel/test-child-process-spawn-args.js +++ b/test/parallel/test-child-process-spawn-args.js @@ -52,4 +52,4 @@ const expectedResult = tmpdir.path.trim().toLowerCase(); ); assert.deepStrictEqual([...new Set(results)], [expectedResult]); -})(); +})().then(common.mustCall()); diff --git a/test/parallel/test-dns-lookup-promises.js b/test/parallel/test-dns-lookup-promises.js index 3e8e202c94c..9dab377f6ac 100644 --- a/test/parallel/test-dns-lookup-promises.js +++ b/test/parallel/test-dns-lookup-promises.js @@ -135,5 +135,5 @@ async function lookupallNegative() { lookupNegative(), lookupallPositive(), lookupallNegative() - ]).then(common.mustCall()); -})(); + ]); +})().then(common.mustCall()); diff --git a/test/parallel/test-dns-lookup.js b/test/parallel/test-dns-lookup.js index 80e13d308d3..c5021806830 100644 --- a/test/parallel/test-dns-lookup.js +++ b/test/parallel/test-dns-lookup.js @@ -109,7 +109,7 @@ assert.throws(() => { all: false }); assert.deepStrictEqual(res, { address: '127.0.0.1', family: 4 }); -})(); +})().then(common.mustCall()); dns.lookup(false, { hints: 0, diff --git a/test/parallel/test-dns-setservers-type-check.js b/test/parallel/test-dns-setservers-type-check.js index beb8f484eff..a6add9518f5 100644 --- a/test/parallel/test-dns-setservers-type-check.js +++ b/test/parallel/test-dns-setservers-type-check.js @@ -95,7 +95,7 @@ const promiseResolver = new dns.promises.Resolver(); // This should not throw any error. (async () => { setServers([ '127.0.0.1' ]); - })(); + })().then(common.mustCall()); [ [null], diff --git a/test/parallel/test-dns.js b/test/parallel/test-dns.js index 0d9d267bac7..04746f51296 100644 --- a/test/parallel/test-dns.js +++ b/test/parallel/test-dns.js @@ -276,7 +276,7 @@ dns.lookup('', { await dnsPromises.lookup('', { hints: dns.ADDRCONFIG | dns.V4MAPPED | dns.ALL }); -})(); +})().then(common.mustCall()); { const err = { @@ -450,7 +450,7 @@ assert.throws(() => { cases.shift(); nextCase(); })); - })(); + })().then(common.mustCall()); })); } diff --git a/test/parallel/test-fs-copyfile-respect-permissions.js b/test/parallel/test-fs-copyfile-respect-permissions.js index cb6774ef2ab..cba99ed8998 100644 --- a/test/parallel/test-fs-copyfile-respect-permissions.js +++ b/test/parallel/test-fs-copyfile-respect-permissions.js @@ -49,7 +49,7 @@ function beforeEach() { const { source, dest, check } = beforeEach(); (async () => { await assert.rejects(fs.promises.copyFile(source, dest), check); - })(); + })().then(common.mustCall()); } // Test callback API. diff --git a/test/parallel/test-fs-read-empty-buffer.js b/test/parallel/test-fs-read-empty-buffer.js index 8ca08448182..7ec5e5c186f 100644 --- a/test/parallel/test-fs-read-empty-buffer.js +++ b/test/parallel/test-fs-read-empty-buffer.js @@ -38,4 +38,4 @@ assert.throws( 'Received Uint8Array(0) []' } ); -})(); +})().then(common.mustCall()); diff --git a/test/parallel/test-fs-readdir-types.js b/test/parallel/test-fs-readdir-types.js index 19e2dba99b6..9272a614330 100644 --- a/test/parallel/test-fs-readdir-types.js +++ b/test/parallel/test-fs-readdir-types.js @@ -77,7 +77,7 @@ fs.readdir(readdirDir, { withFileTypes: true }); assertDirents(dirents); -})(); +})().then(common.mustCall()); // Check for correct types when the binding returns unknowns const UNKNOWN = constants.UV_DIRENT_UNKNOWN; diff --git a/test/parallel/test-fs-readv-promises.js b/test/parallel/test-fs-readv-promises.js index e0536505c91..1132417c9e2 100644 --- a/test/parallel/test-fs-readv-promises.js +++ b/test/parallel/test-fs-readv-promises.js @@ -1,6 +1,5 @@ 'use strict'; - -require('../common'); +const common = require('../common'); const assert = require('assert'); const path = require('path'); const fs = require('fs').promises; @@ -64,4 +63,4 @@ const allocateEmptyBuffers = (combinedLength) => { assert(Buffer.concat(bufferArr).equals(await fs.readFile(filename))); handle.close(); } -})(); +})().then(common.mustCall()); diff --git a/test/parallel/test-fs-rmdir-recursive.js b/test/parallel/test-fs-rmdir-recursive.js index db8d4b14dac..2793e0ee111 100644 --- a/test/parallel/test-fs-rmdir-recursive.js +++ b/test/parallel/test-fs-rmdir-recursive.js @@ -149,7 +149,7 @@ function removeAsync(dir) { // Attempted removal should fail now because the directory is gone. assert.rejects(fs.promises.rmdir(dir), { syscall: 'rmdir' }); -})(); +})().then(common.mustCall()); // Test input validation. { diff --git a/test/parallel/test-fs-stat-bigint.js b/test/parallel/test-fs-stat-bigint.js index f96bef192f0..6f1db6078ea 100644 --- a/test/parallel/test-fs-stat-bigint.js +++ b/test/parallel/test-fs-stat-bigint.js @@ -185,4 +185,4 @@ if (!common.isWindows) { const allowableDelta = Math.ceil(Number(endTime - startTime) / 1e6); verifyStats(bigintStats, numStats, allowableDelta); await handle.close(); -})(); +})().then(common.mustCall()); diff --git a/test/parallel/test-fs-writev-promises.js b/test/parallel/test-fs-writev-promises.js index ea349796cc6..02da6799699 100644 --- a/test/parallel/test-fs-writev-promises.js +++ b/test/parallel/test-fs-writev-promises.js @@ -1,6 +1,5 @@ 'use strict'; - -require('../common'); +const common = require('../common'); const assert = require('assert'); const path = require('path'); const fs = require('fs').promises; @@ -48,4 +47,4 @@ tmpdir.refresh(); assert(Buffer.concat(bufferArr).equals(await fs.readFile(filename))); handle.close(); } -})(); +})().then(common.mustCall()); diff --git a/test/parallel/test-inspect-publish-uid.js b/test/parallel/test-inspect-publish-uid.js index 58d651e97dc..2479a37a2d6 100644 --- a/test/parallel/test-inspect-publish-uid.js +++ b/test/parallel/test-inspect-publish-uid.js @@ -10,7 +10,7 @@ const { spawnSync } = require('child_process'); await testArg('stderr'); await testArg('http'); await testArg('http,stderr'); -})(); +})().then(common.mustCall()); async function testArg(argValue) { console.log('Checks ' + argValue + '..'); diff --git a/test/parallel/test-internal-module-wrap.js b/test/parallel/test-internal-module-wrap.js index 09cccba76de..520a83a3a47 100644 --- a/test/parallel/test-internal-module-wrap.js +++ b/test/parallel/test-internal-module-wrap.js @@ -1,8 +1,6 @@ -'use strict'; - // Flags: --expose-internals - -require('../common'); +'use strict'; +const common = require('../common'); const assert = require('assert'); const { internalBinding } = require('internal/test/binding'); @@ -26,4 +24,4 @@ const bar = new ModuleWrap('bar', undefined, 'export const five = 5', 0, 0); assert.strictEqual(await foo.evaluate(-1, false), undefined); assert.strictEqual(foo.getNamespace().five, 5); -})(); +})().then(common.mustCall()); diff --git a/test/parallel/test-repl.js b/test/parallel/test-repl.js index b653e27750b..71160a20ec8 100644 --- a/test/parallel/test-repl.js +++ b/test/parallel/test-repl.js @@ -827,7 +827,7 @@ const tcpTests = [ socket.end(); } common.allowGlobals(...Object.values(global)); -})(); +})().then(common.mustCall()); function startTCPRepl() { let resolveSocket, resolveReplServer; diff --git a/test/parallel/test-util-inspect-namespace.js b/test/parallel/test-util-inspect-namespace.js index 89b26fcdbcf..fc13fca6c6a 100644 --- a/test/parallel/test-util-inspect-namespace.js +++ b/test/parallel/test-util-inspect-namespace.js @@ -1,8 +1,6 @@ -'use strict'; - // Flags: --experimental-vm-modules - -require('../common'); +'use strict'; +const common = require('../common'); const assert = require('assert'); const { SourceTextModule } = require('vm'); @@ -16,4 +14,4 @@ const { inspect } = require('util'); '[Module] { a: , b: undefined }'); await m.evaluate(); assert.strictEqual(inspect(m.namespace), '[Module] { a: 1, b: 2 }'); -})(); +})().then(common.mustCall()); diff --git a/test/parallel/test-util-promisify.js b/test/parallel/test-util-promisify.js index cbbe8983fdf..70125278d96 100644 --- a/test/parallel/test-util-promisify.js +++ b/test/parallel/test-util-promisify.js @@ -131,7 +131,7 @@ const stat = promisify(fs.stat); (async () => { const value = await promisify(fn)(null, 42); assert.strictEqual(value, 42); - })(); + })().then(common.mustCall()); } { @@ -159,7 +159,7 @@ const stat = promisify(fs.stat); await fn(); await Promise.resolve(); return assert.strictEqual(stack, err.stack); - })(); + })().then(common.mustCall()); } { diff --git a/test/parallel/test-util-types.js b/test/parallel/test-util-types.js index 48e65333d9a..ead9bf54697 100644 --- a/test/parallel/test-util-types.js +++ b/test/parallel/test-util-types.js @@ -1,6 +1,6 @@ // Flags: --experimental-vm-modules --expose-internals 'use strict'; -require('../common'); +const common = require('../common'); const assert = require('assert'); const { types, inspect } = require('util'); const vm = require('vm'); @@ -280,4 +280,4 @@ for (const [ value, _method ] of [ await m.link(() => 0); await m.evaluate(); assert.ok(types.isModuleNamespaceObject(m.namespace)); -})(); +})().then(common.mustCall()); diff --git a/test/parallel/test-vm-module-basic.js b/test/parallel/test-vm-module-basic.js index 7a669c8e05d..dbb88e2a877 100644 --- a/test/parallel/test-vm-module-basic.js +++ b/test/parallel/test-vm-module-basic.js @@ -32,7 +32,7 @@ const util = require('util'); baz: 'bar', typeofProcess: 'undefined' }); -}()); +}().then(common.mustCall())); (async () => { const m = new SourceTextModule(` @@ -45,14 +45,14 @@ const util = require('util'); assert.strictEqual(global.vmResultTypeofProcess, '[object process]'); delete global.vmResultFoo; delete global.vmResultTypeofProcess; -})(); +})().then(common.mustCall()); (async () => { const m = new SourceTextModule('while (true) {}'); await m.link(common.mustNotCall()); await m.evaluate({ timeout: 500 }) .then(() => assert(false), () => {}); -})(); +})().then(common.mustCall()); // Check the generated identifier for each module (async () => { @@ -65,7 +65,7 @@ const util = require('util'); assert.strictEqual(m2.identifier, 'vm:module(1)'); const m3 = new SourceTextModule('3', { context: context2 }); assert.strictEqual(m3.identifier, 'vm:module(0)'); -})(); +})().then(common.mustCall()); // Check inspection of the instance { diff --git a/test/parallel/test-vm-module-errors.js b/test/parallel/test-vm-module-errors.js index fee243f1011..2e9697ff412 100644 --- a/test/parallel/test-vm-module-errors.js +++ b/test/parallel/test-vm-module-errors.js @@ -233,4 +233,4 @@ const finished = common.mustCall(); await checkInvalidOptionForEvaluate(); checkInvalidCachedData(); finished(); -})(); +})().then(common.mustCall()); diff --git a/test/parallel/test-vm-module-import-meta.js b/test/parallel/test-vm-module-import-meta.js index baf6c5b37d1..2972bf548b4 100644 --- a/test/parallel/test-vm-module-import-meta.js +++ b/test/parallel/test-vm-module-import-meta.js @@ -41,4 +41,4 @@ async function testInvalid() { (async () => { await testBasic(); await testInvalid(); -})(); +})().then(common.mustCall()); diff --git a/test/parallel/test-vm-module-link.js b/test/parallel/test-vm-module-link.js index 48f06439b6d..5b5eb6b08ff 100644 --- a/test/parallel/test-vm-module-link.js +++ b/test/parallel/test-vm-module-link.js @@ -133,4 +133,4 @@ const finished = common.mustCall(); await circular(); await circular2(); finished(); -})(); +})().then(common.mustCall()); diff --git a/test/parallel/test-vm-module-reevaluate.js b/test/parallel/test-vm-module-reevaluate.js index 6208f140ffa..e547390e0cf 100644 --- a/test/parallel/test-vm-module-reevaluate.js +++ b/test/parallel/test-vm-module-reevaluate.js @@ -48,4 +48,4 @@ const finished = common.mustCall(); } finished(); -})(); +})().then(common.mustCall()); diff --git a/test/parallel/test-vm-module-synthetic.js b/test/parallel/test-vm-module-synthetic.js index a3ca6630f7e..660c0c64ed8 100644 --- a/test/parallel/test-vm-module-synthetic.js +++ b/test/parallel/test-vm-module-synthetic.js @@ -65,4 +65,4 @@ const assert = require('assert'); code: 'ERR_VM_MODULE_STATUS', }); } -})(); +})().then(common.mustCall()); diff --git a/test/parallel/test-zlib-empty-buffer.js b/test/parallel/test-zlib-empty-buffer.js index 3b52896d299..f225d72e649 100644 --- a/test/parallel/test-zlib-empty-buffer.js +++ b/test/parallel/test-zlib-empty-buffer.js @@ -1,5 +1,5 @@ 'use strict'; -require('../common'); +const common = require('../common'); const zlib = require('zlib'); const { inspect, promisify } = require('util'); const assert = require('assert'); @@ -23,4 +23,4 @@ const emptyBuffer = Buffer.alloc(0); `Expected ${inspect(compressed)} to match ${inspect(decompressed)} ` + `to match for ${method}`); } -})(); +})().then(common.mustCall()); diff --git a/test/sequential/test-inspector-async-call-stack-abort.js b/test/sequential/test-inspector-async-call-stack-abort.js index ce2b43cdf02..a3d0944ce5e 100644 --- a/test/sequential/test-inspector-async-call-stack-abort.js +++ b/test/sequential/test-inspector-async-call-stack-abort.js @@ -25,7 +25,7 @@ if (process.argv[2] === 'child') { await session.post('Debugger.setAsyncCallStackDepth', { maxDepth: 42 }); strictEqual(enabled, 1); throw new Error(eyecatcher); - })(); + })().finally(common.mustCall()); } else { const { spawnSync } = require('child_process'); const options = { encoding: 'utf8' }; diff --git a/test/wasi/test-wasi-stdio.js b/test/wasi/test-wasi-stdio.js index 4abe3c1ad8a..d49fa67ce75 100644 --- a/test/wasi/test-wasi-stdio.js +++ b/test/wasi/test-wasi-stdio.js @@ -1,6 +1,6 @@ // Flags: --experimental-wasi-unstable-preview1 --experimental-wasm-bigint 'use strict'; -require('../common'); +const common = require('../common'); const tmpdir = require('../common/tmpdir'); const { strictEqual } = require('assert'); const { closeSync, openSync, readFileSync, writeFileSync } = require('fs'); @@ -31,4 +31,4 @@ const importObject = { wasi_snapshot_preview1: wasi.wasiImport }; closeSync(stderr); strictEqual(readFileSync(stdoutFile, 'utf8').trim(), 'x'.repeat(31)); strictEqual(readFileSync(stderrFile, 'utf8').trim(), ''); -})(); +})().then(common.mustCall()); diff --git a/test/wasi/test-wasi-symlinks.js b/test/wasi/test-wasi-symlinks.js index d1ec796125c..b4f306916a9 100644 --- a/test/wasi/test-wasi-symlinks.js +++ b/test/wasi/test-wasi-symlinks.js @@ -25,7 +25,7 @@ if (process.argv[2] === 'wasi-child') { const { instance } = await WebAssembly.instantiate(buffer, importObject); wasi.start(instance); - })(); + })().then(common.mustCall()); } else { if (!common.canCreateSymLink()) { common.skip('insufficient privileges'); diff --git a/test/wasi/test-wasi.js b/test/wasi/test-wasi.js index 8ebc290d7b8..8f98335ee63 100644 --- a/test/wasi/test-wasi.js +++ b/test/wasi/test-wasi.js @@ -30,7 +30,7 @@ if (process.argv[2] === 'wasi-child') { const { instance } = await WebAssembly.instantiate(buffer, importObject); wasi.start(instance); - })(); + })().then(common.mustCall()); } else { const assert = require('assert'); const cp = require('child_process');