Merge branch 'ben/fix-node-napi-tests' into kai/fix-node-napi-tests

This commit is contained in:
Kai Tamkun
2024-11-14 21:36:05 -08:00
3 changed files with 20 additions and 6 deletions

View File

@@ -428,9 +428,9 @@ pub export fn Bun__GlobalObject__hasIPC(global: *JSC.JSGlobalObject) bool {
}
extern fn Bun__Process__queueNextTick1(*JSC.ZigGlobalObject, JSC.JSValue, JSC.JSValue) void;
extern fn Bun__queueFinishNapiFinalizers(?*JSC.JSGlobalObject) callconv(.C) bool;
extern fn Bun__queueFinishNapiFinalizers(?*JSC.JSGlobalObject) bool;
pub export fn Bun__isNapiFinalizerQueueEmpty(globalObject: *JSGlobalObject) callconv(JSC.conv) bool {
pub export fn Bun__isNapiFinalizerQueueEmpty(globalObject: *JSGlobalObject) bool {
return globalObject.bunVM().eventLoop().napi_finalizer_queue.count == 0;
}

View File

@@ -4,6 +4,8 @@
#include <js_native_api.h>
#include <stdlib.h> // abort()
#include <js_native_api_types.h>
// Empty value so that macros here are able to return NULL or void
#define NODE_API_RETVAL_NOTHING // Intentionally blank #define
@@ -129,4 +131,6 @@ static inline void add_last_status(napi_env env,
#include "common-inl.h"
typedef node_api_nogc_env node_api_basic_env;
#endif // JS_NATIVE_API_COMMON_H_

View File

@@ -4,8 +4,8 @@ import { bunEnv, bunExe } from "harness";
import { join, dirname } from "path";
import os from "node:os";
const jsNativeApiRoot = join(__dirname, "node-napi-tests/test/js-native-api");
const nodeApiRoot = join(__dirname, "node-napi-tests/test/node-api");
const jsNativeApiRoot = join(__dirname, "node-napi-tests", "test", "js-native-api");
const nodeApiRoot = join(__dirname, "node-napi-tests", "test", "node-api");
const jsNativeApiTests = Array.from(new Glob("**/*.js").scanSync(jsNativeApiRoot));
const nodeApiTests = Array.from(new Glob("**/*.js").scanSync(nodeApiRoot));
@@ -50,10 +50,20 @@ const failingNodeApiTests = [
"test_worker_terminate/test.js",
];
if (process.platform == "win32") {
for (const i in failingJsNativeApiTests) {
failingJsNativeApiTests[i] = failingJsNativeApiTests[i].replaceAll("/", "\\");
}
for (const i in failingNodeApiTests) {
failingNodeApiTests[i] = failingNodeApiTests[i].replaceAll("/", "\\");
}
}
beforeAll(async () => {
const directories = jsNativeApiTests
.filter(t => !failingJsNativeApiTests.includes(t))
.map(t => join(jsNativeApiRoot, t))
.concat(nodeApiTests.map(t => join(nodeApiRoot, t)))
.concat(nodeApiTests.filter(t => !failingNodeApiTests.includes(t)).map(t => join(nodeApiRoot, t)))
.map(t => dirname(t));
const uniqueDirectories = Array.from(new Set(directories));
@@ -64,7 +74,7 @@ beforeAll(async () => {
stderr: "pipe",
stdout: "ignore",
stdin: "inherit",
env: bunEnv,
env: { ...bunEnv, npm_config_target: "v23.2.0" },
});
await process.exited;
if (process.exitCode !== 0) {