Skip to content

Commit bc8d2af

Browse files
Test release of multiple buffers.
1 parent 823582e commit bc8d2af

File tree

1 file changed

+25
-21
lines changed

1 file changed

+25
-21
lines changed

test/unit/socket-send-receive-test.ts

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -287,57 +287,61 @@ for (const proto of testProtos("tcp", "ipc", "inproc")) {
287287
it("should release buffers", async function() {
288288
const weak = require("weak-napi")
289289

290-
const address = uniqAddress(proto)
291-
await sockB.bind(address)
292-
sockA.connect(address)
293-
290+
const n = 10
294291
let released = 0
295292

296293
const send = async (size: number) => {
297-
const msg = Buffer.alloc(size)
298-
weak(msg, () => {released++})
299-
await sockA.send(msg)
294+
for (let i = 0; i < n; i++) {
295+
const msg = Buffer.alloc(size)
296+
weak(msg, () => {released++})
297+
await sockA.send(msg)
298+
}
300299
}
301300

302301
const receive = async () => {
303-
const msg = await sockB.receive()
304-
weak(msg, () => {released++})
302+
for (let i = 0; i < n; i++) {
303+
const msg = await sockB.receive()
304+
weak(msg, () => {released++})
305+
}
305306
}
306307

307308
await Promise.all([
308309
send(2048),
309310
receive(),
310311
])
311312

312-
await sockB.unbind(address)
313-
314313
/* Repeated GC to allow inproc messages from being collected. */
315314
for (let i = 0; i < 5; i++) {
316315
global.gc()
317316
await new Promise((resolve) => setTimeout(resolve, 2))
318317
}
319318

320-
assert.equal(released, 2)
319+
assert.equal(released, n * 2)
321320
})
322321

323322
it("should release buffers after echo", async function() {
324323
const weak = require("weak-napi")
325324

325+
const n = 10
326326
let released = 0
327327

328328
const echo = async () => {
329-
const [msg] = await sockB.receive()
330-
await sockB.send(msg)
331-
weak(msg, () => {released++})
329+
for (let i = 0; i < n; i++) {
330+
const [msg] = await sockB.receive()
331+
await sockB.send(msg)
332+
weak(msg, () => {released++})
333+
}
332334
}
333335

334336
const send = async (size: number) => {
335-
const msg = Buffer.alloc(size)
336-
weak(msg, () => {released++})
337-
await sockA.send(msg)
337+
for (let i = 0; i < n; i++) {
338+
const msg = Buffer.alloc(size)
339+
weak(msg, () => {released++})
340+
await sockA.send(msg)
338341

339-
const [rep] = await sockA.receive()
340-
weak(rep, () => {released++})
342+
const [rep] = await sockA.receive()
343+
weak(rep, () => {released++})
344+
}
341345

342346
sockA.close()
343347
sockB.close()
@@ -354,7 +358,7 @@ for (const proto of testProtos("tcp", "ipc", "inproc")) {
354358
await new Promise((resolve) => setTimeout(resolve, 2))
355359
}
356360

357-
assert.equal(released, 3)
361+
assert.equal(released, n * 3)
358362
})
359363

360364
if (proto === "inproc") {

0 commit comments

Comments
 (0)