From 6915a9b7a701dde0e1078867961c9a91811c1850 Mon Sep 17 00:00:00 2001 From: Yoshiya Hinosawa Date: Tue, 21 Feb 2023 00:35:04 +0900 Subject: test(ext/node): more node compat tests (#17827) This PR adds the remaining ~650 Node.js compat test cases from std/node. Among these 650 cases, about 130 cases are now failing. These failing cases are prefixed with `TODO:` in `tests/node_compat/config.json`. These will be addressed in later PRs. --- .../test-next-tick-fixed-queue-regression.js | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 cli/tests/node_compat/test/parallel/test-next-tick-fixed-queue-regression.js (limited to 'cli/tests/node_compat/test/parallel/test-next-tick-fixed-queue-regression.js') diff --git a/cli/tests/node_compat/test/parallel/test-next-tick-fixed-queue-regression.js b/cli/tests/node_compat/test/parallel/test-next-tick-fixed-queue-regression.js new file mode 100644 index 000000000..254a756ea --- /dev/null +++ b/cli/tests/node_compat/test/parallel/test-next-tick-fixed-queue-regression.js @@ -0,0 +1,25 @@ +// deno-fmt-ignore-file +// deno-lint-ignore-file + +// Copyright Joyent and Node contributors. All rights reserved. MIT license. +// Taken from Node 18.12.1 +// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually + +'use strict'; + +const common = require('../common'); + +// This tests a highly specific regression tied to the FixedQueue size, which +// was introduced in Node.js 9.7.0: https://github.com/nodejs/node/pull/18617 +// More specifically, a nextTick list could potentially end up not fully +// clearing in one run through if exactly 2048 ticks were added after +// microtasks were executed within the nextTick loop. + +process.nextTick(() => { + Promise.resolve(1).then(() => { + for (let i = 0; i < 2047; i++) + process.nextTick(common.mustCall()); + const immediate = setImmediate(common.mustNotCall()); + process.nextTick(common.mustCall(() => clearImmediate(immediate))); + }); +}); -- cgit v1.2.3