diff --git a/memory-testing/index.mjs b/memory-testing/index.mjs index 332a54774b..b3d3d869fa 100644 --- a/memory-testing/index.mjs +++ b/memory-testing/index.mjs @@ -5,3 +5,4 @@ await createSuite('tokio-future') await createSuite('serde') await createSuite('tsfn') await createSuite('buffer') +await createSuite('returns-future') diff --git a/memory-testing/returns-future.mjs b/memory-testing/returns-future.mjs new file mode 100644 index 0000000000..5497ddc303 --- /dev/null +++ b/memory-testing/returns-future.mjs @@ -0,0 +1,26 @@ +import { createRequire } from 'module' + +import { displayMemoryUsageFromNode } from './util.mjs' + +const initialMemoryUsage = process.memoryUsage() + +const require = createRequire(import.meta.url) + +const api = require(`./index.node`) + +async function main() { + let i = 1 + // eslint-disable-next-line no-constant-condition + while (true) { + await api.returnsFuture() + if (i % 100000 === 0) { + displayMemoryUsageFromNode(initialMemoryUsage) + } + i++ + } +} + +main().catch((e) => { + console.error(e) + process.exit(1) +}) diff --git a/memory-testing/src/lib.rs b/memory-testing/src/lib.rs index 1b0c432d35..85c87ef25c 100644 --- a/memory-testing/src/lib.rs +++ b/memory-testing/src/lib.rs @@ -171,3 +171,6 @@ pub fn buffer_pass_through(buffer: Buffer) -> Buffer { pub fn array_buffer_pass_through(array_buffer: Uint8Array) -> Uint8Array { array_buffer } + +#[napi] +pub async fn returns_future() {}