| 'use strict'; |
| |
| const common = require('../common'); |
| const assert = require('assert'); |
| |
| const { PerformanceObserver, performance } = require('perf_hooks'); |
| const DELAY = 1000; |
| const ALLOWED_MARGIN = 10; |
| |
| const expected = ['Start to Now', 'A to Now', 'A to B']; |
| const obs = new PerformanceObserver(common.mustCall((items) => { |
| items.getEntries().forEach(({ name, duration }) => { |
| assert.ok(duration > (DELAY - ALLOWED_MARGIN)); |
| assert.strictEqual(expected.shift(), name); |
| }); |
| })); |
| obs.observe({ entryTypes: ['measure'] }); |
| |
| performance.mark('A'); |
| setTimeout(common.mustCall(() => { |
| performance.measure('Start to Now'); |
| performance.measure('A to Now', 'A'); |
| |
| performance.mark('B'); |
| performance.measure('A to B', 'A', 'B'); |
| }), DELAY); |