From 961f87e1c5d0cbe312a02997123e65fc315afb06 Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Sun, 21 Apr 2019 12:16:55 -0400 Subject: Fixes #2033, shared queue push bug (#2158) --- core/shared_queue_test.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'core/shared_queue_test.js') diff --git a/core/shared_queue_test.js b/core/shared_queue_test.js index 75a877930..e2597f3bc 100644 --- a/core/shared_queue_test.js +++ b/core/shared_queue_test.js @@ -6,6 +6,21 @@ function assert(cond) { } } +// Check overflow (corresponds to full_records test in rust) +function fullRecords(q) { + q.reset(); + const oneByte = new Uint8Array([42]); + for (let i = 0; i < q.MAX_RECORDS; i++) { + assert(q.push(oneByte)); + } + assert(!q.push(oneByte)); + r = q.shift(); + assert(r.byteLength == 1); + assert(r[0] == 42); + // Even if we shift one off, we still cannot push a new record. + assert(!q.push(oneByte)); +} + function main() { const q = Deno.core.sharedQueue; @@ -56,7 +71,10 @@ function main() { assert(q.numRecords() == 0); assert(q.size() == 0); + fullRecords(q); + Deno.core.print("shared_queue_test.js ok\n"); + q.reset(); } main(); -- cgit v1.2.3