aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-04-02 05:14:13 -0700
committerGravatar Jarred Sumner <jarred@jarredsumner.com> 2022-04-02 05:14:13 -0700
commitc2ed8d02400a796e9a44c53fc90bfbd9c4b14df3 (patch)
tree23e1cddc1dc0cf6add205346343654d6f3bbbab5
parent51e5d3ea7056138769ec57221ce7720eb8d77c9a (diff)
downloadbun-c2ed8d02400a796e9a44c53fc90bfbd9c4b14df3.tar.gz
bun-c2ed8d02400a796e9a44c53fc90bfbd9c4b14df3.tar.zst
bun-c2ed8d02400a796e9a44c53fc90bfbd9c4b14df3.zip
Add more tests for Node FS
-rw-r--r--integration/bunjs-only-snippets/fs.test.js56
-rw-r--r--integration/bunjs-only-snippets/writeFileSync.txt1
-rw-r--r--src/__global.zig3
-rw-r--r--src/javascript/jsc/bindings/headers-handwritten.h1
4 files changed, 60 insertions, 1 deletions
diff --git a/integration/bunjs-only-snippets/fs.test.js b/integration/bunjs-only-snippets/fs.test.js
index 4ee4c652a..8b5e0c867 100644
--- a/integration/bunjs-only-snippets/fs.test.js
+++ b/integration/bunjs-only-snippets/fs.test.js
@@ -5,6 +5,11 @@ import {
readFileSync,
writeFileSync,
readFile,
+ read,
+ openSync,
+ readSync,
+ closeSync,
+ writeSync,
} from "node:fs";
const Buffer = globalThis.Buffer || Uint8Array;
@@ -24,6 +29,57 @@ describe("mkdirSync", () => {
});
});
+describe("readSync", () => {
+ const firstFourBytes = new Uint32Array(
+ new TextEncoder().encode("File").buffer
+ )[0];
+ it("works with a position set to 0", () => {
+ const fd = openSync(import.meta.dir + "/readFileSync.txt", "r");
+ const four = new Uint8Array(4);
+
+ {
+ const count = readSync(fd, four, 0, 4, 0);
+ const u32 = new Uint32Array(four.buffer)[0];
+ expect(u32).toBe(firstFourBytes);
+ expect(count).toBe(4);
+ }
+ closeSync(fd);
+ });
+ it("works without position set", () => {
+ const fd = openSync(import.meta.dir + "/readFileSync.txt", "r");
+ const four = new Uint8Array(4);
+ {
+ const count = readSync(fd, four);
+ const u32 = new Uint32Array(four.buffer)[0];
+ expect(u32).toBe(firstFourBytes);
+ expect(count).toBe(4);
+ }
+ closeSync(fd);
+ });
+});
+
+describe("writeSync", () => {
+ it("works with a position set to 0", () => {
+ const fd = openSync(import.meta.dir + "/writeFileSync.txt", "w+");
+ const four = new Uint8Array(4);
+
+ {
+ const count = writeSync(fd, new TextEncoder().encode("File"), 0, 4, 0);
+ expect(count).toBe(4);
+ }
+ closeSync(fd);
+ });
+ it("works without position set", () => {
+ const fd = openSync(import.meta.dir + "/writeFileSync.txt", "w+");
+ const four = new Uint8Array(4);
+ {
+ const count = writeSync(fd, new TextEncoder().encode("File"));
+ expect(count).toBe(4);
+ }
+ closeSync(fd);
+ });
+});
+
describe("readFileSync", () => {
it("works", () => {
const text = readFileSync(import.meta.dir + "/readFileSync.txt", "utf8");
diff --git a/integration/bunjs-only-snippets/writeFileSync.txt b/integration/bunjs-only-snippets/writeFileSync.txt
new file mode 100644
index 000000000..a0fe4515f
--- /dev/null
+++ b/integration/bunjs-only-snippets/writeFileSync.txt
@@ -0,0 +1 @@
+File \ No newline at end of file
diff --git a/src/__global.zig b/src/__global.zig
index 39ac9496f..389b2c203 100644
--- a/src/__global.zig
+++ b/src/__global.zig
@@ -51,9 +51,10 @@ pub const AllocatorConfiguration = struct {
long_running: bool = false,
};
+pub const Mimalloc = @import("./allocators/mimalloc.zig");
+
pub inline fn mimalloc_cleanup(force: bool) void {
if (comptime use_mimalloc) {
- const Mimalloc = @import("./allocators/mimalloc.zig");
Mimalloc.mi_collect(force);
}
}
diff --git a/src/javascript/jsc/bindings/headers-handwritten.h b/src/javascript/jsc/bindings/headers-handwritten.h
index 8bfc1a09d..a190d694a 100644
--- a/src/javascript/jsc/bindings/headers-handwritten.h
+++ b/src/javascript/jsc/bindings/headers-handwritten.h
@@ -173,6 +173,7 @@ typedef struct {
uint32_t len;
uint32_t byte_len;
uint8_t cell_type;
+ uint64_t _value;
} Bun__ArrayBuffer;
#ifndef STRING_POINTER