From f60720090c7bd8cdf91d7aebd0c42e01c86b3b83 Mon Sep 17 00:00:00 2001 From: Matt Mastracci Date: Mon, 12 Feb 2024 13:46:50 -0700 Subject: chore: move test_ffi and test_nap to tests/ [WIP] (#22394) Moving some additional NAPI and. FFI tests out of the tree root. --- tests/napi/typedarray_test.js | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 tests/napi/typedarray_test.js (limited to 'tests/napi/typedarray_test.js') diff --git a/tests/napi/typedarray_test.js b/tests/napi/typedarray_test.js new file mode 100644 index 000000000..25729754a --- /dev/null +++ b/tests/napi/typedarray_test.js @@ -0,0 +1,39 @@ +// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. + +import { assert, assertEquals, loadTestLibrary } from "./common.js"; + +const typedarray = loadTestLibrary(); + +Deno.test("napi typedarray uint8", function () { + const byteArray = new Uint8Array([0, 1, 2]); + assertEquals(byteArray.length, 3); + + const byteResult = typedarray.test_multiply(byteArray, 3); + assert(byteResult instanceof Uint8Array); + assertEquals(byteResult.length, 3); + assertEquals(byteResult[0], 0); + assertEquals(byteResult[1], 3); + assertEquals(byteResult[2], 6); +}); + +Deno.test("napi typedarray float64", function () { + const doubleArray = new Float64Array([0.0, 1.1, 2.2]); + assertEquals(doubleArray.length, 3); + + const doubleResult = typedarray.test_multiply(doubleArray, -3); + assert(doubleResult instanceof Float64Array); + assertEquals(doubleResult.length, 3); + assertEquals(doubleResult[0], -0); + assertEquals(Math.round(10 * doubleResult[1]) / 10, -3.3); + assertEquals(Math.round(10 * doubleResult[2]) / 10, -6.6); +}); + +// TODO(bartlomieju): this test causes segfaults when used with jemalloc. +// Node documentation provides a hint that this function is not supported by +// other runtime like electron. +// Deno.test("napi typedarray external", function () { +// assertEquals( +// new Uint8Array(typedarray.test_external()), +// new Uint8Array([0, 1, 2, 3]), +// ); +// }); -- cgit v1.2.3