node/test/parallel/test-snapshot-stack-trace-limit.js

47 lines
1.2 KiB
JavaScript
Raw Normal View History

'use strict';
// This tests Error.stackTraceLimit is fixed up for snapshot-building contexts,
// and can be restored after deserialization.
require('../common');
const assert = require('assert');
const tmpdir = require('../common/tmpdir');
const fixtures = require('../common/fixtures');
const { spawnSyncAndAssert } = require('../common/child_process');
tmpdir.refresh();
const blobPath = tmpdir.resolve('snapshot.blob');
{
spawnSyncAndAssert(process.execPath, [
'--stack-trace-limit=50',
'--snapshot-blob',
blobPath,
'--build-snapshot',
fixtures.path('snapshot', 'error-stack.js'),
], {
cwd: tmpdir.path
}, {
stdout(output) {
assert.match(output, /During snapshot building, Error\.stackTraceLimit = 50/);
const matches = [...output.matchAll(/at recurse/g)];
assert.strictEqual(matches.length, 30);
}
});
}
{
spawnSyncAndAssert(process.execPath, [
'--stack-trace-limit=20',
'--snapshot-blob',
blobPath,
], {
cwd: tmpdir.path
}, {
stdout(output) {
assert.match(output, /After snapshot deserialization, Error\.stackTraceLimit = 20/);
const matches = [...output.matchAll(/at recurse/g)];
assert.strictEqual(matches.length, 20);
}
});
}