'use strict'; // This tests that the snapshot works with built-in coverage collection. const common = require('../common'); common.skipIfInspectorDisabled(); const { spawnSyncAndExitWithoutError } = require('../common/child_process'); const tmpdir = require('../common/tmpdir'); const fixtures = require('../common/fixtures'); const fs = require('fs'); const assert = require('assert'); tmpdir.refresh(); const blobPath = tmpdir.resolve('snapshot.blob'); const file = fixtures.path('empty.js'); function filterCoverageFiles(name) { return name.startsWith('coverage') && name.endsWith('.json'); } { // Create the snapshot. const { child } = spawnSyncAndExitWithoutError(process.execPath, [ '--snapshot-blob', blobPath, '--build-snapshot', file, ], { cwd: tmpdir.path, env: { ...process.env, NODE_V8_COVERAGE: tmpdir.path, NODE_DEBUG_NATIVE: 'inspector_profiler', } }); const files = fs.readdirSync(tmpdir.path); console.log('Files in tmpdir.path', files); // Log for debugging the test. const coverage = files.filter(filterCoverageFiles); console.log(child.stderr.toString()); assert.strictEqual(coverage.length, 1); } { const { child } = spawnSyncAndExitWithoutError(process.execPath, [ '--snapshot-blob', blobPath, file, ], { cwd: tmpdir.path, env: { ...process.env, NODE_V8_COVERAGE: tmpdir.path, NODE_DEBUG_NATIVE: 'inspector_profiler', }, }); const files = fs.readdirSync(tmpdir.path); console.log('Files in tmpdir.path', files); // Log for debugging the test. const coverage = files.filter(filterCoverageFiles); console.log(child.stderr.toString()); assert.strictEqual(coverage.length, 2); }