node/test/parallel/test-snapshot-basic.js
Joyee Cheung 64a5c01b99
test: add spawnSyncAndExit() and spawnSyncAndExitWithoutError()
Replaces expectSyncExit() and expectSyncExitWithoutError(). Since
we usually just check the child process right after its spawned,
these shorthands also takes care of the spawning. This makes the
tests more concise.

PR-URL: https://github.com/nodejs/node/pull/49200
Reviewed-By: LiviaMedeiros <livia@cirno.name>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
2023-08-18 16:54:19 +00:00

94 lines
2.0 KiB
JavaScript

'use strict';
// This tests that user land snapshots works when the instance restored from
// the snapshot is launched with --help, --check
require('../common');
const assert = require('assert');
const tmpdir = require('../common/tmpdir');
const fixtures = require('../common/fixtures');
const {
spawnSyncAndExitWithoutError,
spawnSyncAndExit,
} = require('../common/child_process');
const fs = require('fs');
tmpdir.refresh();
let snapshotScript = 'node:embedded_snapshot_main';
if (!process.config.variables.node_use_node_snapshot) {
// Check that Node.js built without an embedded snapshot
// exits with 9 when node:embedded_snapshot_main is specified
// as snapshot entry point.
spawnSyncAndExit(process.execPath, [
'--build-snapshot',
snapshotScript,
], {
cwd: tmpdir.path
}, {
status: 9,
signal: null,
stderr: /Node\.js was built without embedded snapshot/
});
snapshotScript = fixtures.path('empty.js');
}
// By default, the snapshot blob path is cwd/snapshot.blob.
{
// Create the snapshot.
spawnSyncAndExitWithoutError(process.execPath, [
'--build-snapshot',
snapshotScript,
], {
cwd: tmpdir.path
});
const stats = fs.statSync(tmpdir.resolve('snapshot.blob'));
assert(stats.isFile());
}
tmpdir.refresh();
const blobPath = tmpdir.resolve('my-snapshot.blob');
{
// Create the snapshot.
spawnSyncAndExitWithoutError(process.execPath, [
'--snapshot-blob',
blobPath,
'--build-snapshot',
snapshotScript,
], {
cwd: tmpdir.path
});
const stats = fs.statSync(blobPath);
assert(stats.isFile());
}
{
// Check --help.
spawnSyncAndExitWithoutError(process.execPath, [
'--snapshot-blob',
blobPath,
'--help',
], {
cwd: tmpdir.path
}, {
stdout: /--help/
});
}
{
// Check -c.
spawnSyncAndExitWithoutError(process.execPath, [
'--snapshot-blob',
blobPath,
'-c',
fixtures.path('snapshot', 'marked.js'),
], {
cwd: tmpdir.path
}, {
stderr: '',
stdout: '',
trim: true
});
}