| 'use strict'; |
| |
| // Tests the --redirect-warnings command line flag by spawning |
| // a new child node process that emits a warning into a temporary |
| // warnings file. Once the process completes, the warning file is |
| // opened and the contents are validated |
| |
| const common = require('../common'); |
| const fixtures = require('../common/fixtures'); |
| const fs = require('fs'); |
| const fork = require('child_process').fork; |
| const path = require('path'); |
| const assert = require('assert'); |
| |
| const tmpdir = require('../common/tmpdir'); |
| tmpdir.refresh(); |
| |
| const warnmod = fixtures.path('warnings.js'); |
| const warnpath = path.join(tmpdir.path, 'warnings.txt'); |
| |
| fork(warnmod, { execArgv: [`--redirect-warnings=${warnpath}`] }) |
| .on('exit', common.mustCall(() => { |
| fs.readFile(warnpath, 'utf8', common.mustCall((err, data) => { |
| assert.ifError(err); |
| assert(/\(node:\d+\) Warning: a bad practice warning/.test(data)); |
| })); |
| })); |