aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorGravatar Dylan Conway <35280289+dylan-conway@users.noreply.github.com> 2023-08-15 22:13:13 -0700
committerGravatar GitHub <noreply@github.com> 2023-08-15 22:13:13 -0700
commitaf23dab833e76c65fa28788d7c23ff97ef8fd428 (patch)
tree379ee6b2d596eb251039d3c024eb54c39763f018 /test
parent9efeef2e245acbb4f7d83b737e107c4972287527 (diff)
downloadbun-af23dab833e76c65fa28788d7c23ff97ef8fd428.tar.gz
bun-af23dab833e76c65fa28788d7c23ff97ef8fd428.tar.zst
bun-af23dab833e76c65fa28788d7c23ff97ef8fd428.zip
Create domjit.test.ts (#4173)
Diffstat (limited to 'test')
-rw-r--r--test/js/bun/jsc/domjit.test.ts103
1 files changed, 103 insertions, 0 deletions
diff --git a/test/js/bun/jsc/domjit.test.ts b/test/js/bun/jsc/domjit.test.ts
new file mode 100644
index 000000000..fe38b3cc9
--- /dev/null
+++ b/test/js/bun/jsc/domjit.test.ts
@@ -0,0 +1,103 @@
+// test functions that use DOMJIT
+
+import { describe, test, expect } from "bun:test";
+
+import crypto from "crypto";
+import { statSync } from "fs";
+import { read, ptr } from "bun:ffi";
+
+const dirStats = statSync(import.meta.dir);
+const buffer = new BigInt64Array(16);
+
+describe("DOMJIT", () => {
+ for (let iter of [1000, 10000, 100000, 1000000]) {
+ test("Buffer.alloc", () => {
+ for (let i = 0; i < iter; i++) {
+ Buffer.alloc(1);
+ }
+ expect(true).toBe(true);
+ });
+ test("Buffer.allocUnsafe", () => {
+ for (let i = 0; i < iter; i++) {
+ Buffer.allocUnsafe(1);
+ }
+ expect(true).toBe(true);
+ });
+ test("Buffer.allocUnsafeSlow", () => {
+ for (let i = 0; i < iter; i++) {
+ Buffer.allocUnsafeSlow(1);
+ }
+ expect(true).toBe(true);
+ });
+ test("Performance.now", () => {
+ for (let i = 0; i < iter; i++) {
+ performance.now();
+ }
+ expect(true).toBe(true);
+ });
+ test("TextEncoder.encode", () => {
+ for (let i = 0; i < iter; i++) {
+ new TextEncoder().encode("test");
+ }
+ expect(true).toBe(true);
+ });
+ test("TextEncoder.encodeInto", () => {
+ for (let i = 0; i < iter; i++) {
+ new TextEncoder().encodeInto("test", new Uint8Array(4));
+ }
+ expect(true).toBe(true);
+ });
+ test("Crypto.timingSafeEqual", () => {
+ for (let i = 0; i < iter; i++) {
+ crypto.timingSafeEqual(new Uint8Array(4), new Uint8Array(4));
+ }
+ expect(true).toBe(true);
+ });
+ test("Crypto.randomUUID", () => {
+ for (let i = 0; i < iter; i++) {
+ crypto.randomUUID();
+ }
+ expect(true).toBe(true);
+ });
+ test("Crypto.getRandomValues", () => {
+ for (let i = 0; i < iter; i++) {
+ crypto.getRandomValues(new Uint8Array(4));
+ }
+ expect(true).toBe(true);
+ });
+ test("TextDecoder.decode", () => {
+ for (let i = 0; i < iter; i++) {
+ new TextDecoder().decode(new Uint8Array(4));
+ }
+ expect(true).toBe(true);
+ });
+ test("Stats", () => {
+ for (let i = 0; i < iter; i++) {
+ dirStats.isSymbolicLink();
+ dirStats.isSocket();
+ dirStats.isFile();
+ dirStats.isFIFO();
+ dirStats.isDirectory();
+ dirStats.isCharacterDevice();
+ dirStats.isBlockDevice();
+ }
+ expect(true).toBe(true);
+ });
+ test.todo("FFI ptr and read", () => {
+ for (let i = 0; i < iter; i++) {
+ read.intptr(ptr(buffer), 8);
+ read.ptr(ptr(buffer), 8);
+ read.f64(ptr(buffer), 8);
+ read.i64(ptr(buffer), 8);
+ read.u64(ptr(buffer), 8);
+ read.i8(ptr(buffer), 8);
+ read.i16(ptr(buffer), 8);
+ read.i32(ptr(buffer), 8);
+ read.u8(ptr(buffer), 8);
+ read.u16(ptr(buffer), 8);
+ read.u32(ptr(buffer), 8);
+ }
+ expect(true).toBe(true);
+ });
+ }
+});