diff options
| author | 2023-07-26 21:35:49 -0700 | |
|---|---|---|
| committer | 2023-07-26 21:35:49 -0700 | |
| commit | 86633e0af47dc9ff62e9cef23962a855d061bde8 (patch) | |
| tree | 991683656af75e39cd041b4631d6b0d196c77a44 /test | |
| parent | ec2cf38ad85d05bb15080d88febd2476548987c8 (diff) | |
| download | bun-86633e0af47dc9ff62e9cef23962a855d061bde8.tar.gz bun-86633e0af47dc9ff62e9cef23962a855d061bde8.tar.zst bun-86633e0af47dc9ff62e9cef23962a855d061bde8.zip | |
Start time performance improvements to build tools (#3797)
* Make os.cpus() faster on Linux
* Fix crash
See https://github.com/ziglang/zig/issues/16540
* Handle watcher_count == 0
* Add assertion
* Clean up lifetimes of fs watcher a little
* :scissors:
* Use `errdefer`
* Make the error better
* Make os.cpus() more lazy
* Please don't translate-c on the entire C standard library
* immediately closing works correctly is still bug
* ops
* fmt+fixeup
* add back verbose
* free instead of destroy
* remove destroy option for watcher tasks
* flush verbose and add debug log
* fixup files
* use log for debug
---------
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Co-authored-by: cirospaciari <ciro.spaciari@gmail.com>
Diffstat (limited to 'test')
| -rw-r--r-- | test/js/node/watch/fixtures/relative.js | 39 | ||||
| -rw-r--r-- | test/js/node/watch/fs.watch.test.ts | 9 |
2 files changed, 29 insertions, 19 deletions
diff --git a/test/js/node/watch/fixtures/relative.js b/test/js/node/watch/fixtures/relative.js index 26e09da1a..692d809ec 100644 --- a/test/js/node/watch/fixtures/relative.js +++ b/test/js/node/watch/fixtures/relative.js @@ -1,23 +1,28 @@ import fs from "fs"; -const watcher = fs.watch("relative.txt", { signal: AbortSignal.timeout(2000) }); +try { + const watcher = fs.watch("relative.txt", { signal: AbortSignal.timeout(2000) }); -watcher.on("change", function (event, filename) { - if (filename !== "relative.txt" && event !== "change") { - console.error("fail"); + watcher.on("change", function (event, filename) { + if (filename !== "relative.txt" && event !== "change") { + console.error("fail"); + clearInterval(interval); + watcher.close(); + process.exit(1); + } else { + clearInterval(interval); + watcher.close(); + } + }); + watcher.on("error", err => { clearInterval(interval); - watcher.close(); + console.error(err.message); process.exit(1); - } else { - clearInterval(interval); - watcher.close(); - } -}); -watcher.on("error", err => { - clearInterval(interval); + }); + + const interval = setInterval(() => { + fs.writeFileSync("relative.txt", "world"); + }, 10); +} catch (err) { console.error(err.message); process.exit(1); -}); - -const interval = setInterval(() => { - fs.writeFileSync("relative.txt", "world"); -}, 10); +} diff --git a/test/js/node/watch/fs.watch.test.ts b/test/js/node/watch/fs.watch.test.ts index aa7959bed..d228e5a22 100644 --- a/test/js/node/watch/fs.watch.test.ts +++ b/test/js/node/watch/fs.watch.test.ts @@ -189,7 +189,7 @@ describe("fs.watch", () => { const interval = repeat(() => { fs.writeFileSync(filepath, "world"); }); - }); + }, 10000); test("should error on invalid path", done => { try { @@ -248,7 +248,7 @@ describe("fs.watch", () => { clearInterval(interval); watchers.forEach(watcher => watcher.close()); } - }); + }, 10000); test("should work with url", done => { const filepath = path.join(testDir, "url.txt"); @@ -373,6 +373,11 @@ describe("fs.watch", () => { }); expect(promise).resolves.toBe("change"); }); + + test("immediately closing works correctly", async () => { + for (let i = 0; i < 100; i++) fs.watch(testDir, { persistent: true }).close(); + for (let i = 0; i < 100; i++) fs.watch(testDir, { persistent: false }).close(); + }); }); describe("fs.promises.watch", () => { |
