'use strict'; require('../common'); const assert = require('assert'); const execFile = require('child_process').execFile; if (process.argv[2] === 'child') { setImmediate(function() { require('fs').readFileSync(__filename); process.exit(); }); } else { (function runTest(flags) { const execArgv = [flags.pop()]; let args = [__filename, 'child']; let cntr = 0; args = execArgv.concat(args); if (!args[0]) args.shift(); execFile(process.execPath, args, function(err, stdout, stderr) { assert.strictEqual(err, null); assert.strictEqual(stdout, ''); if (/WARNING[\s\S]*readFileSync/.test(stderr)) cntr++; if (args[0] === '--trace-sync-io') { assert.strictEqual(cntr, 1); } else if (args[0] === __filename) { assert.strictEqual(cntr, 0); } else { throw new Error('UNREACHABLE'); } if (flags.length > 0) setImmediate(runTest, flags); }); }(['--trace-sync-io', ''])); }