'use strict'; const common = require('../common'); const tmpdir = require('../common/tmpdir'); const fs = require('fs'); const assert = require('assert'); const { spawnSync } = require('child_process'); if (!common.enoughTestMem) common.skip('skipped due to memory requirements'); if (common.isAIX) common.skip('does not work on AIX'); tmpdir.refresh(); // Generate log file. spawnSync(process.execPath, [ '--prof', '-p', '42' ], { cwd: tmpdir.path }); const files = fs.readdirSync(tmpdir.path); const logfile = files.filter((name) => /\.log$/.test(name))[0]; assert(logfile); // Make sure that the --preprocess argument is passed through correctly, // as an example flag listed in deps/v8/tools/tickprocessor.js. // Any of the other flags there should work for this test too, if --preprocess // is ever removed. const { stdout } = spawnSync( process.execPath, [ '--prof-process', '--preprocess', logfile ], { cwd: tmpdir.path, encoding: 'utf8', maxBuffer: Infinity }); // Make sure that the result is valid JSON. JSON.parse(stdout);