test: Memory leak reproduction for futures

This commit is contained in:
Sergey Tatarintsev 2022-12-28 12:33:43 +01:00 committed by LongYinan
parent 1e8d20a559
commit 81498ecbea
No known key found for this signature in database
GPG key ID: C3666B7FC82ADAD7
3 changed files with 30 additions and 0 deletions

View file

@ -5,3 +5,4 @@ await createSuite('tokio-future')
await createSuite('serde') await createSuite('serde')
await createSuite('tsfn') await createSuite('tsfn')
await createSuite('buffer') await createSuite('buffer')
await createSuite('returns-future')

View file

@ -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)
})

View file

@ -171,3 +171,6 @@ pub fn buffer_pass_through(buffer: Buffer) -> Buffer {
pub fn array_buffer_pass_through(array_buffer: Uint8Array) -> Uint8Array { pub fn array_buffer_pass_through(array_buffer: Uint8Array) -> Uint8Array {
array_buffer array_buffer
} }
#[napi]
pub async fn returns_future() {}