aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2023-07-26 21:35:49 -0700
committerGravatar GitHub <noreply@github.com> 2023-07-26 21:35:49 -0700
commit86633e0af47dc9ff62e9cef23962a855d061bde8 (patch)
tree991683656af75e39cd041b4631d6b0d196c77a44 /test
parentec2cf38ad85d05bb15080d88febd2476548987c8 (diff)
downloadbun-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.js39
-rw-r--r--test/js/node/watch/fs.watch.test.ts9
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", () => {