diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2019-04-21 12:16:55 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-21 12:16:55 -0400 |
commit | 961f87e1c5d0cbe312a02997123e65fc315afb06 (patch) | |
tree | e1c0299317de6283fed65875326cd99995cf1b2e /core/shared_queue_test.js | |
parent | cd19da62d9efe37566fdeff16e37ed066edd3e3a (diff) |
Fixes #2033, shared queue push bug (#2158)
Diffstat (limited to 'core/shared_queue_test.js')
-rw-r--r-- | core/shared_queue_test.js | 18 |
1 files changed, 18 insertions, 0 deletions
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(); |