| 'use strict'; |
| |
| // This tests mutation to Error.stackTraceLimit in both the snapshot builder script |
| // and the snapshot main script work. |
| |
| require('../common'); |
| const assert = require('assert'); |
| const tmpdir = require('../common/tmpdir'); |
| const fixtures = require('../common/fixtures'); |
| const { spawnSyncAndAssert, spawnSyncAndExitWithoutError } = require('../common/child_process'); |
| |
| const blobPath = tmpdir.resolve('snapshot.blob'); |
| |
| function test(additionalArguments = [], additionalEnv = {}) { |
| tmpdir.refresh(); |
| // Check the mutation works without --stack-trace-limit. |
| spawnSyncAndAssert(process.execPath, [ |
| ...additionalArguments, |
| '--snapshot-blob', |
| blobPath, |
| '--build-snapshot', |
| fixtures.path('snapshot', 'mutate-error-stack-trace-limit.js'), |
| ], { |
| cwd: tmpdir.path, |
| env: { |
| ...process.env, |
| ...additionalEnv, |
| } |
| }, { |
| stderr(output) { |
| assert.match(output, /Error\.stackTraceLimit has been modified by the snapshot builder script/); |
| assert.match(output, /It will be preserved after snapshot deserialization/); |
| } |
| }); |
| spawnSyncAndExitWithoutError(process.execPath, [ |
| '--snapshot-blob', |
| blobPath, |
| ], { |
| cwd: tmpdir.path |
| }); |
| } |
| |
| test(); |
| test([], { TEST_IN_SERIALIZER: 1 }); |
| test(['--stack-trace-limit=50']); |
| test(['--stack-trace-limit=50'], { TEST_IN_SERIALIZER: 1 }); |