summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Sherret <dsherret@users.noreply.github.com>2024-02-20 23:22:07 -0500
committerGitHub <noreply@github.com>2024-02-20 23:22:07 -0500
commit6592a92c203b30a8aae72a645ce1822fd740a2a7 (patch)
tree0efe58b3456cae83fd2d600aea9bcec635f7fd95
parente32c704970d9c332367757cbd21f1905c2d11486 (diff)
fix(node/test): disable Deno test sanitizers (#22480)
Closes #22473
-rw-r--r--ext/node/polyfills/testing.ts6
-rw-r--r--tests/integration/node_compat_tests.rs8
-rw-r--r--tests/testdata/node/test_no_sanitizers/test.js28
-rw-r--r--tests/testdata/node/test_no_sanitizers/test.out5
4 files changed, 47 insertions, 0 deletions
diff --git a/ext/node/polyfills/testing.ts b/ext/node/polyfills/testing.ts
index b04456ce8..b6733f118 100644
--- a/ext/node/polyfills/testing.ts
+++ b/ext/node/polyfills/testing.ts
@@ -61,6 +61,9 @@ class NodeTestContext {
await prepared.fn(newNodeTextContext);
},
ignore: prepared.options.todo || prepared.options.skip,
+ sanitizeExit: false,
+ sanitizeOps: false,
+ sanitizeResources: false,
}).then(() => undefined);
}
@@ -131,6 +134,9 @@ function prepareDenoTest(name, options, fn, overrides) {
fn: wrapTestFn(prepared.fn, resolve),
only: prepared.options.only,
ignore: prepared.options.todo || prepared.options.skip,
+ sanitizeExit: false,
+ sanitizeOps: false,
+ sanitizeResources: false,
};
Deno.test(denoTestOptions);
return promise;
diff --git a/tests/integration/node_compat_tests.rs b/tests/integration/node_compat_tests.rs
index 767f23460..26f691636 100644
--- a/tests/integration/node_compat_tests.rs
+++ b/tests/integration/node_compat_tests.rs
@@ -11,3 +11,11 @@ itest!(node_test_module {
exit_code: 1,
http_server: true,
});
+
+itest!(node_test_module_no_sanitizers {
+ args: "test -A --no-check node/test_no_sanitizers/test.js",
+ output: "node/test_no_sanitizers/test.out",
+ envs: env_vars_for_npm_tests(),
+ exit_code: 123,
+ http_server: true,
+});
diff --git a/tests/testdata/node/test_no_sanitizers/test.js b/tests/testdata/node/test_no_sanitizers/test.js
new file mode 100644
index 000000000..d2ca8a6c7
--- /dev/null
+++ b/tests/testdata/node/test_no_sanitizers/test.js
@@ -0,0 +1,28 @@
+import test from "node:test";
+
+test("should not complain about resource and op sanitizers", async (t) => {
+ // resource
+ const _file1 = Deno.open("welcome.ts");
+
+ await t.test("nested test", () => {
+ // resource
+ const _file2 = Deno.open("cat.ts");
+
+ // op
+ crypto.subtle.digest(
+ "SHA-256",
+ new TextEncoder().encode("a".repeat(1_000_000)),
+ );
+ });
+
+ // op
+ crypto.subtle.digest(
+ "SHA-256",
+ new TextEncoder().encode("a".repeat(1_000_000)),
+ );
+});
+
+test("should allow exit", () => {
+ // no exit sanitizers
+ Deno.exit(123);
+});
diff --git a/tests/testdata/node/test_no_sanitizers/test.out b/tests/testdata/node/test_no_sanitizers/test.out
new file mode 100644
index 000000000..f52bed3ab
--- /dev/null
+++ b/tests/testdata/node/test_no_sanitizers/test.out
@@ -0,0 +1,5 @@
+running 2 tests from ./node/test_no_sanitizers/test.js
+should not complain about resource and op sanitizers ...
+ nested test ... ok ([WILDCARD])
+should not complain about resource and op sanitizers ... ok ([WILDCARD])
+should allow exit ... \ No newline at end of file