summaryrefslogtreecommitdiff
path: root/test/parallel/test-trace-events-environment.js
diff options
context:
space:
mode:
authorJames M Snell <jasnell@gmail.com>2018-10-14 16:51:35 -0700
committerRich Trott <rtrott@gmail.com>2018-10-17 21:58:06 -0700
commit72a48a2a0abb655e7387d09c3dc7550793ce4a6a (patch)
tree206f9c00e895102a6df85d2f72d7e2967060d5bf /test/parallel/test-trace-events-environment.js
parent92d67fefe2fdbe0f526c1f24e5c896a9eeb5a9d4 (diff)
downloadandroid-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.js61
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);
+ }));
+}