diff options
author | James M Snell <jasnell@gmail.com> | 2018-10-14 16:51:35 -0700 |
---|---|---|
committer | Rich Trott <rtrott@gmail.com> | 2018-10-17 21:58:06 -0700 |
commit | 72a48a2a0abb655e7387d09c3dc7550793ce4a6a (patch) | |
tree | 206f9c00e895102a6df85d2f72d7e2967060d5bf /test/parallel/test-trace-events-environment.js | |
parent | 92d67fefe2fdbe0f526c1f24e5c896a9eeb5a9d4 (diff) | |
download | android-node-v8-72a48a2a0abb655e7387d09c3dc7550793ce4a6a.tar.gz android-node-v8-72a48a2a0abb655e7387d09c3dc7550793ce4a6a.tar.bz2 android-node-v8-72a48a2a0abb655e7387d09c3dc7550793ce4a6a.zip |
src: add trace events for env.cc
PR-URL: https://github.com/nodejs/node/pull/23674
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Denys Otrishko <shishugi@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Matheus Marchini <mat@mmarchini.me>
Diffstat (limited to 'test/parallel/test-trace-events-environment.js')
-rw-r--r-- | test/parallel/test-trace-events-environment.js | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/test/parallel/test-trace-events-environment.js b/test/parallel/test-trace-events-environment.js new file mode 100644 index 0000000000..39218d0aac --- /dev/null +++ b/test/parallel/test-trace-events-environment.js @@ -0,0 +1,61 @@ +// Flags: --no-warnings + +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const cp = require('child_process'); +const path = require('path'); +const fs = require('fs'); +const tmpdir = require('../common/tmpdir'); + +// This tests the emission of node.environment trace events + +if (!common.isMainThread) + common.skip('process.chdir is not available in Workers'); + +const names = new Set([ + 'Environment', + 'RunAndClearNativeImmediates', + 'CheckImmediate', + 'RunTimers', + 'BeforeExit', + 'RunCleanup', + 'AtExit' +]); + +if (process.argv[2] === 'child') { + // This is just so that the child has something to do. + 1 + 1; + // These ensure that the RunTimers, CheckImmediate, and + // RunAndClearNativeImmediates appear in the list. + setImmediate(() => { 1 + 1; }); + setTimeout(() => { 1 + 1; }, 1); +} else { + tmpdir.refresh(); + process.chdir(tmpdir.path); + + const proc = cp.fork(__filename, + [ 'child' ], { + execArgv: [ + '--trace-event-categories', + 'node.environment' + ] + }); + + proc.once('exit', common.mustCall(async () => { + const file = path.join(tmpdir.path, 'node_trace.1.log'); + const checkSet = new Set(); + + assert(fs.existsSync(file)); + const data = await fs.promises.readFile(file); + JSON.parse(data.toString()).traceEvents + .filter((trace) => trace.cat !== '__metadata') + .forEach((trace) => { + assert.strictEqual(trace.pid, proc.pid); + assert(names.has(trace.name)); + checkSet.add(trace.name); + }); + + assert.deepStrictEqual(names, checkSet); + })); +} |