From 0c2e1f324a355dfa5e9b34bf59b5d7bab22cd516 Mon Sep 17 00:00:00 2001 From: chloe caruso Date: Sat, 18 Jan 2025 16:43:36 -0800 Subject: [PATCH] node test: run bun:test tests with bun test --- scripts/runner.node.mjs | 3 ++- src/bun.js/node/node_fs.zig | 13 ++++++++----- test/js/bun/io/bun-write.test.js | 4 ++-- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/scripts/runner.node.mjs b/scripts/runner.node.mjs index cc0ebfcb86..4b4f480b25 100755 --- a/scripts/runner.node.mjs +++ b/scripts/runner.node.mjs @@ -256,7 +256,8 @@ async function runTests() { const absoluteTestPath = join(testsPath, testPath); const title = relative(cwd, absoluteTestPath).replaceAll(sep, "/"); if (isNodeParallelTest(testPath)) { - const subcommand = title.includes("needs-test") ? "test" : "run"; + const runWithBunTest = title.includes("needs-test") || readFileSync(absoluteTestPath, "utf-8").includes('bun:test'); + const subcommand = runWithBunTest ? "test" : "run"; await runTest(title, async () => { const { ok, error, stdout } = await spawnBun(execPath, { cwd: cwd, diff --git a/src/bun.js/node/node_fs.zig b/src/bun.js/node/node_fs.zig index 8f5706d167..f0b27aa04a 100644 --- a/src/bun.js/node/node_fs.zig +++ b/src/bun.js/node/node_fs.zig @@ -5519,6 +5519,7 @@ pub const NodeFS = struct { // We cannot use removefileat() on macOS because it does not handle write-protected files as expected. if (args.recursive) { zigDeleteTree(std.fs.cwd(), args.path.slice(), .file) catch |err| { + bun.handleErrorReturnTrace(err, @errorReturnTrace()); const errno: E = switch (@as(anyerror, err)) { // error.InvalidHandle => .BADF, error.AccessDenied => .ACCES, @@ -5563,14 +5564,16 @@ pub const NodeFS = struct { const dest = args.path.sliceZ(&this.sync_error_buf); - std.posix.unlinkZ(dest) catch |er| { + std.posix.unlinkZ(dest) catch |err1| { + bun.handleErrorReturnTrace(err1, @errorReturnTrace()); // empircally, it seems to return AccessDenied when the // file is actually a directory on macOS. if (args.recursive and - (er == error.IsDir or er == error.NotDir or er == error.AccessDenied)) + (err1 == error.IsDir or err1 == error.NotDir or err1 == error.AccessDenied)) { - std.posix.rmdirZ(dest) catch |err| { - const code: E = switch (err) { + std.posix.rmdirZ(dest) catch |err2| { + bun.handleErrorReturnTrace(err2, @errorReturnTrace()); + const code: E = switch (err2) { error.AccessDenied => .ACCES, error.SymLinkLoop => .LOOP, error.NameTooLong => .NAMETOOLONG, @@ -5598,7 +5601,7 @@ pub const NodeFS = struct { } { - const code: E = switch (er) { + const code: E = switch (err1) { error.AccessDenied => .ACCES, error.SymLinkLoop => .LOOP, error.NameTooLong => .NAMETOOLONG, diff --git a/test/js/bun/io/bun-write.test.js b/test/js/bun/io/bun-write.test.js index 926ebba987..dc806129a2 100644 --- a/test/js/bun/io/bun-write.test.js +++ b/test/js/bun/io/bun-write.test.js @@ -463,7 +463,7 @@ describe("ENOENT", () => { await Bun.write(file, "contents", ...opts); expect(fs.existsSync(file)).toBe(true); } finally { - fs.rmSync(dir, { force: true }); + fs.rmSync(dir, { recursive: true, force: true }); } }); }; @@ -483,7 +483,7 @@ describe("ENOENT", () => { ); expect(fs.existsSync(file)).toBe(false); } finally { - fs.rmSync(dir, { force: true }); + fs.rmSync(dir, { recursive: true, force: true }); } });