node/test/embedding/test-embedding-snapshot-basic.js
Joyee Cheung b6ae1fc4b8
test: split test-embedding.js and run tests in parallel
Split the tests so that it's easier to isolate and debug issues,
and we can run the test cases in parallel to speed up. Also
add more comments about what they are testing.

PR-URL: https://github.com/nodejs/node/pull/61571
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2026-02-19 11:13:22 +01:00

50 lines
1.4 KiB
JavaScript

'use strict';
// Tests snapshot support in embedded environments.
// See embedtest.cc for the API usage.
const common = require('../common');
const tmpdir = require('../common/tmpdir');
const assert = require('assert');
const fixtures = require('../common/fixtures');
const {
spawnSyncAndAssert,
spawnSyncAndExitWithoutError,
} = require('../common/child_process');
const snapshotFixture = fixtures.path('snapshot', 'echo-args.js');
const embedtest = common.resolveBuiltBinary('embedtest');
const buildSnapshotExecArgs = [
`eval(require("fs").readFileSync(${JSON.stringify(snapshotFixture)}, "utf8"))`,
'arg1', 'arg2',
];
const snapshotBlobArgs = [
'--embedder-snapshot-blob', tmpdir.resolve('embedder-snapshot.blob'),
];
const runSnapshotExecArgs = ['arg3', 'arg4'];
tmpdir.refresh();
// Build the snapshot with the default flags.
spawnSyncAndExitWithoutError(
embedtest,
['--', ...buildSnapshotExecArgs, ...snapshotBlobArgs, '--embedder-snapshot-create'],
{ cwd: tmpdir.path });
// Run the snapshot and check the serialized and refreshed argv values.
spawnSyncAndAssert(
embedtest,
['--', ...runSnapshotExecArgs, ...snapshotBlobArgs ],
{ cwd: tmpdir.path },
{
stdout(output) {
assert.deepStrictEqual(JSON.parse(output), {
originalArgv: [embedtest, '__node_anonymous_main', ...buildSnapshotExecArgs],
currentArgv: [embedtest, ...runSnapshotExecArgs],
});
return true;
},
});