From 1811318097b57c136913bd95bb9e16d820cc1a1a Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Thu, 14 Mar 2019 19:17:52 -0400 Subject: core: Behavior shouldn't be generic We always pass around Box<[u8]>, and adding this generic is an unnecessary complication. Add deno_core_http_bench_test to test.py sharedQueue works on deno_core_http_bench --- core/shared_queue_test.js | 65 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 core/shared_queue_test.js (limited to 'core/shared_queue_test.js') diff --git a/core/shared_queue_test.js b/core/shared_queue_test.js new file mode 100644 index 000000000..33000fd45 --- /dev/null +++ b/core/shared_queue_test.js @@ -0,0 +1,65 @@ +// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. + +function assert(cond) { + if (!cond) { + throw Error("assert"); + } +} + +function main() { + const q = Deno._sharedQueue; + + let h = q.head(); + assert(h > 0); + + let r = new Uint8Array([1, 2, 3, 4, 5]); + let len = r.byteLength + h; + assert(q.push(r)); + assert(q.head() == len); + + r = new Uint8Array([6, 7]); + assert(q.push(r)); + + r = new Uint8Array([8, 9, 10, 11]); + assert(q.push(r)); + assert(q.numRecords() == 3); + assert(q.size() == 3); + + r = q.shift(); + assert(r.byteLength == 5); + assert(r[0] == 1); + assert(r[1] == 2); + assert(r[2] == 3); + assert(r[3] == 4); + assert(r[4] == 5); + assert(q.numRecords() == 3); + assert(q.size() == 2); + + r = q.shift(); + assert(r.byteLength == 2); + assert(r[0] == 6); + assert(r[1] == 7); + assert(q.numRecords() == 3); + assert(q.size() == 1); + + r = q.shift(); + assert(r.byteLength == 4); + assert(r[0] == 8); + assert(r[1] == 9); + assert(r[2] == 10); + assert(r[3] == 11); + assert(q.numRecords() == 3); + assert(q.size() == 0); + + assert(q.shift() == null); + assert(q.shift() == null); + assert(q.numRecords() == 3); + assert(q.size() == 0); + + q.reset(); + assert(q.numRecords() == 0); + assert(q.size() == 0); + libdeno.print("shared_queue_test.js ok\n"); +} + +main(); -- cgit v1.2.3