Skip to content

Commit 76ecfb1

Browse files
committed
test: expect node:ffi to be enabled by default
test-module-builtin-experimental was added in #65418 asserting that node:ffi is unavailable without --experimental-ffi, but #65475 had already enabled node:ffi by default in builds with FFI support. The two landed independently and broke main. Expect node:ffi to behave like node:sqlite: available by default with the node: scheme, and gone when opted out with --no-experimental-ffi. Refs: #65418 Refs: #65475 Signed-off-by: Matteo Collina <hello@matteocollina.com>
1 parent 6cff903 commit 76ecfb1

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

test/parallel/test-module-builtin-experimental.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ const { spawnSyncAndAssert } = require('../common/child_process');
55

66
const experimentalBuiltins = [
77
['dtls', '--experimental-dtls', common.hasDtls],
8-
['ffi', '--experimental-ffi', common.hasFFI],
98
['quic', '--experimental-quic', common.hasQuic],
109
['vfs', '--experimental-vfs', true],
1110
].filter(([, , available]) => available);
@@ -23,7 +22,19 @@ for (const [id, flag] of experimentalBuiltins) {
2322
], { status: 0 });
2423
}
2524

25+
// node:ffi is enabled by default in builds with FFI support and can be
26+
// disabled with --no-experimental-ffi.
27+
if (common.hasFFI) {
28+
spawnSyncAndAssert(process.execPath, [
29+
'--no-experimental-ffi',
30+
'-e', `const m = require('node:module'); if (m.builtinModules.includes('node:ffi')) process.exit(1); try { require('node:ffi'); } catch (e) { if (e.code === 'ERR_UNKNOWN_BUILTIN_MODULE') process.exit(0); } process.exit(1);`,
31+
], { status: 0 });
32+
}
33+
2634
const schemeOnlyBuiltins = ['node:test', 'node:sea'];
35+
if (common.hasFFI) {
36+
schemeOnlyBuiltins.push('node:ffi');
37+
}
2738
if (common.hasSQLite) {
2839
schemeOnlyBuiltins.push('node:sqlite');
2940
}

0 commit comments

Comments
 (0)