diff options
author | 2023-08-21 16:26:07 -0700 | |
---|---|---|
committer | 2023-08-21 16:26:07 -0700 | |
commit | 664119841a92d13a297e88032f9985fe7e35f77c (patch) | |
tree | 0fe664b158d2313d42bb20d6f10b795194a206bb /test | |
parent | 397182b400067be7b5293899fb3855524d07d8bf (diff) | |
download | bun-664119841a92d13a297e88032f9985fe7e35f77c.tar.gz bun-664119841a92d13a297e88032f9985fe7e35f77c.tar.zst bun-664119841a92d13a297e88032f9985fe7e35f77c.zip |
Implement `napi_ref_threadsafe_function` (#4156)
* Implement napi_ref_threadsafe_function
* work on this
* i hate event loops
* little better
* clean
Diffstat (limited to 'test')
-rwxr-xr-x | test/bun.lockb | bin | 153753 -> 153785 bytes | |||
-rw-r--r-- | test/js/third_party/fsevents/fsevents-event-loop.mjs | 10 | ||||
-rw-r--r-- | test/js/third_party/fsevents/fsevents.test.ts | 20 | ||||
-rw-r--r-- | test/js/third_party/fsevents/package.json | 6 | ||||
-rw-r--r-- | test/package.json | 1 |
5 files changed, 37 insertions, 0 deletions
diff --git a/test/bun.lockb b/test/bun.lockb Binary files differindex 98c35844d..c94d5aff3 100755 --- a/test/bun.lockb +++ b/test/bun.lockb diff --git a/test/js/third_party/fsevents/fsevents-event-loop.mjs b/test/js/third_party/fsevents/fsevents-event-loop.mjs new file mode 100644 index 000000000..80e4729a1 --- /dev/null +++ b/test/js/third_party/fsevents/fsevents-event-loop.mjs @@ -0,0 +1,10 @@ +import fsevents from "fsevents"; + +if (process.argv.length < 3) { + console.log("Usage: bun fsevents-event-loop.ts <directory>"); + process.exit(1); +} +fsevents.watch(process.argv[2], () => { + console.log("it works!"); + process.exit(0); +}); diff --git a/test/js/third_party/fsevents/fsevents.test.ts b/test/js/third_party/fsevents/fsevents.test.ts new file mode 100644 index 000000000..1381347e9 --- /dev/null +++ b/test/js/third_party/fsevents/fsevents.test.ts @@ -0,0 +1,20 @@ +import { bunEnv, bunExe } from "harness"; +import path from "path"; +import fs from "fs"; +import os from "os"; + +test("fsevents works (napi_ref_threadsafe_function keeps event loop alive)", async () => { + const tempFile = fs.mkdtempSync(path.join(os.tmpdir(), "fsevents-test-")); + const spawned = Bun.spawn({ + cmd: [bunExe(), "run", path.join(import.meta.dir, "fsevents-event-loop.mjs"), tempFile], + env: bunEnv, + stdio: ["pipe", "pipe", "pipe"], + }); + await Bun.sleep(50); + if (spawned.killed) { + throw new Error("event loop died, test failed"); + } + await Bun.write(tempFile + "/hello.txt", "test"); + expect(await spawned.exited).toBe(0); + expect(await new Response(spawned.stdout).text()).toBe("it works!\n"); +}); diff --git a/test/js/third_party/fsevents/package.json b/test/js/third_party/fsevents/package.json new file mode 100644 index 000000000..315c73e1a --- /dev/null +++ b/test/js/third_party/fsevents/package.json @@ -0,0 +1,6 @@ +{ + "name": "fsevents-test", + "dependencies": { + "fsevents": "2.3.2" + } +} diff --git a/test/package.json b/test/package.json index f841d2003..099f3d312 100644 --- a/test/package.json +++ b/test/package.json @@ -17,6 +17,7 @@ "es-module-lexer": "1.3.0", "esbuild": "0.18.6", "express": "4.18.2", + "fsevents": "2.3.2", "iconv-lite": "0.6.3", "jest-extended": "4.0.0", "lodash": "4.17.21", |