aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2023-07-28 18:55:04 -0700
committerGravatar GitHub <noreply@github.com> 2023-07-28 18:55:04 -0700
commit05716ff39b5db10f2ef8b7b212e77ac3d50e2d16 (patch)
tree0edef60fa5b6cf00e521aa1dd32101b313e75d5e
parent4f914cbfe805e3f48f2614e7dc30ae80bc3fb604 (diff)
downloadbun-05716ff39b5db10f2ef8b7b212e77ac3d50e2d16.tar.gz
bun-05716ff39b5db10f2ef8b7b212e77ac3d50e2d16.tar.zst
bun-05716ff39b5db10f2ef8b7b212e77ac3d50e2d16.zip
Stat largefile test (#3870)
* Add test for stat on a large file * Update fs.test.ts --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
-rw-r--r--test/js/node/fs/fs.test.ts22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/js/node/fs/fs.test.ts b/test/js/node/fs/fs.test.ts
index ec2cd1398..e2de62480 100644
--- a/test/js/node/fs/fs.test.ts
+++ b/test/js/node/fs/fs.test.ts
@@ -1,4 +1,5 @@
import { describe, expect, it } from "bun:test";
+import { dirname } from "node:path";
import { gc } from "harness";
import fs, {
closeSync,
@@ -31,6 +32,7 @@ import fs, {
symlinkSync,
writevSync,
readvSync,
+ fstatSync,
} from "node:fs";
import _promises from "node:fs/promises";
@@ -1432,6 +1434,26 @@ describe("fs/promises", () => {
});
});
+it("stat on a large file", () => {
+ var dest: string = "",
+ fd;
+ try {
+ dest = `${tmpdir()}/fs.test.js/${Math.trunc(Math.random() * 10000000000).toString(32)}.stat.txt`;
+ mkdirSync(dirname(dest), { recursive: true });
+ const bigBuffer = new Uint8Array(1024 * 1024 * 1024);
+ fd = openSync(dest, "w");
+ let offset = 0;
+ while (offset < 5 * 1024 * 1024 * 1024) {
+ offset += writeSync(fd, bigBuffer, 0, bigBuffer.length, offset);
+ }
+
+ expect(fstatSync(fd).size).toEqual(offset);
+ } finally {
+ if (fd) closeSync(fd);
+ unlinkSync(dest);
+ }
+});
+
it("fs.constants", () => {
expect(constants).toBeDefined();
expect(constants.F_OK).toBeDefined();