Jarred Sumner
967a6a2021
Fix blocking realpathSync call ( #26056 )
...
### What does this PR do?
### How did you verify your code works?
---------
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2026-01-13 23:05:46 -08:00
robobun
46e7a3b3c5
Implement birthtime support on Linux using statx syscall ( #23209 )
...
## Summary
- Adds birthtime (file creation time) support on Linux using the `statx`
syscall
- Stores birthtime in architecture-specific unused fields of the kernel
Stat struct (x86_64 and aarch64)
- Falls back to traditional `stat` on kernels < 4.11 that don't support
`statx`
- Includes comprehensive tests validating birthtime behavior
Fixes #6585
## Implementation Details
**src/sys.zig:**
- Added `StatxField` enum for field selection
- Implemented `statxImpl()`, `fstatx()`, `statx()`, and `lstatx()`
functions
- Stores birthtime in unused padding fields (architecture-specific for
x86_64 and aarch64)
- Graceful fallback to traditional stat if statx is not supported
**src/bun.js/node/node_fs.zig:**
- Updated `stat()`, `fstat()`, and `lstat()` to use statx functions on
Linux
**src/bun.js/node/Stat.zig:**
- Added `getBirthtime()` helper to extract birthtime from
architecture-specific storage
**test/js/node/fs/fs-birthtime-linux.test.ts:**
- Tests non-zero birthtime values
- Verifies birthtime immutability across file modifications
- Validates consistency across stat/lstat/fstat
- Tests BigInt stats with nanosecond precision
- Verifies birthtime ordering relative to other timestamps
## Test Plan
- [x] Run `bun bd test test/js/node/fs/fs-birthtime-linux.test.ts` - all
5 tests pass
- [x] Compare behavior with Node.js - identical behavior
- [x] Compare with system Bun - system Bun returns epoch, new
implementation returns real birthtime
🤖 Generated with [Claude Code](https://claude.com/claude-code )
---------
Co-authored-by: Claude Bot <claude-bot@bun.sh >
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-10-04 04:57:29 -07:00
pfg
0ea4ce1bb4
Synchronous concurrent test fix ( #22928 )
...
```ts
beforeEach(() => {
console.log("beforeEach");
});
afterEach(() => {
console.log("afterEach");
});
test.concurrent("test 1", () => {
console.log("start test 1");
});
test.concurrent("test 2", async () => {
console.log("start test 2");
});
test.concurrent("test 3", () => {
console.log("start test 3");
});
```
```
$> bun-before test synchronous-concurrent
beforeEach
beforeEach
beforeEach
start test 1
start test 2
start test 3
afterEach
afterEach
afterEach
$> bun-after test synchronous-concurrent
beforeEach
start test 1
afterEach
beforeEach
start test 2
afterEach
beforeEach
start test 3
afterEach
```
---------
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com >
2025-09-25 03:52:18 -07:00
Michael H
15b7cd8c18
node:fs.glob support array of excludes and globs ( #20883 )
2025-07-16 03:08:54 -07:00
Jarred Sumner
2e02d9de28
Use ReadableStream.prototype.* in tests instead of new Response(...).* ( #20937 )
...
Co-authored-by: Jarred-Sumner <709451+Jarred-Sumner@users.noreply.github.com >
Co-authored-by: Alistair Smith <hi@alistair.sh >
Co-authored-by: Claude Bot <claude-bot@bun.sh >
Co-authored-by: Claude <noreply@anthropic.com >
2025-07-14 00:47:53 -07:00
Michael H
25dbe5cf3f
fs.glob set onlyFiles: false so it can match folders (#20510 )
2025-06-21 23:45:38 -07:00
Jarred Sumner
37505ad955
Deflake test/js/node/fs/abort-signal-leak-read-write-file-fixture.ts on Windows
2025-06-21 23:43:55 -07:00
Michael H
3aedf0692c
make options argument not required for fs.promises.glob ( #20480 )
2025-06-19 12:55:32 -07:00
Jarred Sumner
14b439a115
Fix formatters not running in CI + delete unnecessary files ( #19433 )
2025-05-08 23:22:16 -07:00
pfg
500199fe8b
More node tests ( #19197 )
2025-05-07 16:21:08 -07:00
Jarred Sumner
23314188ca
Deflake test/js/fs/promises
...
1 in 10000 is not random enough
2025-03-04 02:37:41 -08:00
Meghan Denny
251c2b7d06
node:fs: windows: fix integer cast truncating bits when using too large of a mode ( #17249 )
2025-02-11 00:12:28 -08:00
Dylan Conway
d4ce421982
Fix node:fs memory leak with AbortSignal ( #16788 )
...
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com >
2025-01-31 05:25:53 -08:00
Don Isaac
b612bc4f47
feat(node/fs): add fs.glob, fs.globSync, and fs.promises.glob ( #16676 )
2025-01-30 13:20:19 -08:00
Don Isaac
33fefdda6b
fix(node/fs): better validation in fs.Dir ( #16806 )
2025-01-28 13:38:28 -08:00
chloe caruso
c08f4abb6a
fix(node:fs): set allow above root ( #16814 )
...
Co-authored-by: Dylan Conway <dylan.conway567@gmail.com >
2025-01-27 16:02:15 -08:00
Don Isaac
0d53353d36
fix(node/fs): fs.close and fs.Dir.closeSync ( #16686 )
2025-01-24 05:58:07 -08:00
Jarred Sumner
f7c5b0d5fc
Fix Stat constructor, remove native code allocation for stat objects ( #16694 )
2025-01-24 04:40:00 -08:00
chloe caruso
5819fe49a7
node fs compat pr #2 ( #16422 )
...
Co-authored-by: Dylan Conway <dylan.conway567@gmail.com >
Co-authored-by: Meghan Denny <meghan@bun.sh >
Co-authored-by: dylan-conway <35280289+dylan-conway@users.noreply.github.com >
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com >
2025-01-21 10:28:35 -08:00
Jarred Sumner
cfbb62df16
Implement fs.statfs, fs.statfsSync fs.promises.statfs ( #16519 )
2025-01-20 00:39:18 -08:00
Jarred Sumner
9579e4292b
Fix fs.mkdir recursive regression from Bun v1.1.44 ( #16464 )
2025-01-17 04:12:17 -08:00
chloe caruso
834ad11d48
get node:fs tests passing part 1 ( #16270 )
2025-01-14 20:53:02 -08:00
Meghan Denny
e1cfea4925
node: fix the rest of test-process ( #16026 )
2025-01-06 14:30:36 -08:00
Ashcon Partovi
e8b85cff40
ci: Retry and detect flaky tests ( #15798 )
2024-12-16 17:04:33 -08:00
Meghan Denny
53318c8b13
ci: run re-enable node tests on all platforms ( #15572 )
2024-12-09 19:08:30 -08:00
pfg
4c8cbecb08
Support flag parameter in readFileSync ( #15595 )
...
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com >
2024-12-05 13:41:44 -08:00
dave caruso
32ddf343ee
bake: csr, streaming ssr, serve integration, safer jsvalue functions, &more ( #14900 )
...
Co-authored-by: paperdave <paperdave@users.noreply.github.com >
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com >
2024-11-13 18:19:12 -08:00
Jarred Sumner
781a392baa
Add micro-optimization to fs.readFile ( #15076 )
2024-11-11 10:35:17 -08:00
Jarred Sumner
ce2afac827
Align "encoding" option in node fs with node ( #14937 )
2024-11-01 18:16:04 -07:00
Dylan Conway
e448c4cc3b
fs.mkdir empty string bugfix (#14510 )
2024-10-16 18:55:49 -07:00
Meghan Denny
1ce2d0e9f5
fix fs-read-empty-buffer.test.js ( #14316 )
2024-10-07 19:03:30 -07:00
Meghan Denny
39342e34b1
node: define missing constants ( #14211 )
2024-10-02 14:35:16 -07:00
Dylan Conway
5af782344f
fix(watch): use case insensitive path comparison ( #13909 )
...
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com >
2024-09-14 01:41:33 -04:00
Jarred Sumner
ed8e6115bb
Fix using decimal numbers for file descriptors ( #13881 )
2024-09-11 15:52:53 -07:00
Jarred Sumner
cd6785771e
run prettier and add back format action ( #13722 )
2024-09-03 21:32:52 -07:00
Jarred Sumner
ac8f9052a2
Deflake fs.test.ts ( #13538 )
2024-08-25 21:43:16 -07:00
Jarred Sumner
b005ef43d4
Deflake fs.test.ts
2024-08-23 22:55:30 -07:00
Jarred Sumner
e97c65fd1e
Add 59 more node tests + copy node test fixtures ( #13495 )
2024-08-23 19:06:35 -07:00
Meghan Denny
d4237b0757
node:fs: mode+flags message cleanup ( #13332 )
2024-08-15 23:19:25 -07:00
Meghan Denny
715ff7f323
node:fs: add additional error handling for flags and mode ( #13321 )
...
Co-authored-by: Jarred Sumner <jarred@jarredsumner.com >
2024-08-15 13:13:11 -07:00
Jarred Sumner
7aaf935711
Handle OOM better ( #13142 )
2024-08-09 00:43:54 -07:00
Meghan Denny
c63c55cbb1
node:fs: fix assertion when chown is passed non-numbers ( #13113 )
2024-08-07 02:29:50 -07:00
Jarred Sumner
63cf732ab4
Support async iterators in fs.promises.writeFile ( #13044 )
2024-08-02 23:05:48 -07:00
Jarred Sumner
03024e6b4e
Fix truncating in BigIntStats ( #12643 )
...
Co-authored-by: Jarred-Sumner <Jarred-Sumner@users.noreply.github.com >
2024-07-19 20:00:32 -07:00
Jarred Sumner
f1151a84ad
On Windows, fix fs.writeFile(1, fs.writeFile(2, fs.writeFile(\\nul ( #12410 )
...
Co-authored-by: Dylan Conway <dylan.conway567@gmail.com >
2024-07-10 19:49:36 -07:00
Jarred Sumner
c2a5451e93
Fix argument validation with callbacks in node:fs ( #12412 )
2024-07-07 20:18:07 -07:00
Ashcon Partovi
d105b048b1
Use Buildkite for CI ( #11477 )
2024-06-27 14:56:07 -07:00
Meghan Denny
ba5dd63eb6
allow node:fs.promises.{read,write,append}File to accept a FileHandle ( #11800 )
2024-06-12 18:26:15 -07:00
Meghan Denny
c456622161
node:fs/promises.cp should make path if dest does not exist ( #11433 )
2024-05-30 01:15:20 -07:00
Jarred Sumner
0905e43049
Test gardening ( #11285 )
2024-05-23 19:54:36 -07:00