%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
// Flags: --expose-internals 'use strict'; const common = require('../common'); common.skipIfInspectorDisabled(); common.skipIfWorker(); // https://github.com/nodejs/node/issues/22767 const { internalBinding } = require('internal/test/binding'); const { trace: { TRACE_EVENT_PHASE_NESTABLE_ASYNC_BEGIN: kBeforeEvent } } = internalBinding('constants'); const { trace } = internalBinding('trace_events'); const assert = require('assert'); const { Session } = require('inspector'); const session = new Session(); function post(message, data) { return new Promise((resolve, reject) => { session.post(message, data, (err, result) => { if (err) reject(new Error(JSON.stringify(err))); else resolve(result); }); }); } async function test() { session.connect(); const events = []; let tracingComplete = false; session.on('NodeTracing.dataCollected', (n) => { assert.ok(n && n.params && n.params.value); events.push(...n.params.value); // append the events. }); session.on('NodeTracing.tracingComplete', () => tracingComplete = true); trace(kBeforeEvent, 'foo', 'test1', 0, 'test'); const traceConfig = { includedCategories: ['foo'] }; await post('NodeTracing.start', { traceConfig }); trace(kBeforeEvent, 'foo', 'test2', 0, 'test'); trace(kBeforeEvent, 'bar', 'test3', 0, 'test'); await post('NodeTracing.stop', { traceConfig }); trace(kBeforeEvent, 'foo', 'test4', 0, 'test'); session.disconnect(); assert.ok(tracingComplete); const marks = events.filter((t) => null !== /foo/.exec(t.cat)); assert.strictEqual(marks.length, 1); assert.strictEqual(marks[0].name, 'test2'); } test();