1'use strict'; 2 3// This tests the console works in the deserialized snapshot. 4 5const common = require('../common'); 6common.skipIfInspectorDisabled(); 7 8const assert = require('assert'); 9const { spawnSync } = require('child_process'); 10const tmpdir = require('../common/tmpdir'); 11const fixtures = require('../common/fixtures'); 12const path = require('path'); 13const fs = require('fs'); 14 15tmpdir.refresh(); 16const blobPath = path.join(tmpdir.path, 'snapshot.blob'); 17const entry = fixtures.path('snapshot', 'console.js'); 18 19{ 20 const child = spawnSync(process.execPath, [ 21 '--snapshot-blob', 22 blobPath, 23 '--build-snapshot', 24 entry, 25 ], { 26 cwd: tmpdir.path 27 }); 28 const stdout = child.stdout.toString(); 29 if (child.status !== 0) { 30 console.log(stdout); 31 console.log(child.stderr.toString()); 32 assert.strictEqual(child.status, 0); 33 } 34 assert.deepStrictEqual(Object.keys(console), JSON.parse(stdout)); 35 const stats = fs.statSync(path.join(tmpdir.path, 'snapshot.blob')); 36 assert(stats.isFile()); 37} 38 39{ 40 const child = spawnSync(process.execPath, [ 41 '--snapshot-blob', 42 blobPath, 43 ], { 44 cwd: tmpdir.path, 45 env: { 46 ...process.env, 47 } 48 }); 49 50 const stdout = child.stdout.toString(); 51 if (child.status !== 0) { 52 console.log(stdout); 53 console.log(child.stderr.toString()); 54 assert.strictEqual(child.status, 0); 55 } 56 assert.deepStrictEqual(Object.keys(console), JSON.parse(stdout)); 57 assert.strictEqual(child.status, 0); 58} 59