| 'use strict'; |
| const common = require('../common'); |
| const assert = require('assert'); |
| const async_hooks = require('async_hooks'); |
| |
| // This test verifies that the async ID stack can grow indefinitely. |
| |
| function recurse(n) { |
| const a = new async_hooks.AsyncResource('foobar'); |
| a.runInAsyncScope(common.mustCall(() => { |
| assert.strictEqual(a.asyncId(), async_hooks.executionAsyncId()); |
| assert.strictEqual(a.triggerAsyncId(), async_hooks.triggerAsyncId()); |
| if (n >= 0) |
| recurse(n - 1); |
| assert.strictEqual(a.asyncId(), async_hooks.executionAsyncId()); |
| assert.strictEqual(a.triggerAsyncId(), async_hooks.triggerAsyncId()); |
| })); |
| } |
| |
| recurse(1000); |