From e5588d2f1eb84947c8691fffbcf719a73557a3f5 Mon Sep 17 00:00:00 2001 From: Nayeem Rahman Date: Sat, 1 Apr 2023 21:20:16 +0100 Subject: [PATCH] fix(test): don't swallow sanitizer errors with permissions (#18550) Missing `return` from #18246. --- cli/js/40_testing.js | 2 +- cli/tests/testdata/test/ops_sanitizer_unstable.out | 2 +- cli/tests/testdata/test/ops_sanitizer_unstable.ts | 9 +++++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/cli/js/40_testing.js b/cli/js/40_testing.js index 74fbb8da3a..babbec8c2f 100644 --- a/cli/js/40_testing.js +++ b/cli/js/40_testing.js @@ -481,7 +481,7 @@ function withPermissions(fn, permissions) { const token = pledgePermissions(permissions); try { - await fn(...new SafeArrayIterator(params)); + return await fn(...new SafeArrayIterator(params)); } finally { restorePermissions(token); } diff --git a/cli/tests/testdata/test/ops_sanitizer_unstable.out b/cli/tests/testdata/test/ops_sanitizer_unstable.out index 2d5ab90798..a4f47a7494 100644 --- a/cli/tests/testdata/test/ops_sanitizer_unstable.out +++ b/cli/tests/testdata/test/ops_sanitizer_unstable.out @@ -10,7 +10,7 @@ error: Leaking async ops: - 1 async operation to sleep for a duration was started in this test, but never completed. This is often caused by not cancelling a `setTimeout` or `setInterval` call. The operation was started here: at [WILDCARD] at setInterval ([WILDCARD]) - at [WILDCARD]/testdata/test/ops_sanitizer_unstable.ts:3:3 + at fn ([WILDCARD]/testdata/test/ops_sanitizer_unstable.ts:7:5) at [WILDCARD] FAILURES diff --git a/cli/tests/testdata/test/ops_sanitizer_unstable.ts b/cli/tests/testdata/test/ops_sanitizer_unstable.ts index 4f409e73c7..d1b554adfe 100644 --- a/cli/tests/testdata/test/ops_sanitizer_unstable.ts +++ b/cli/tests/testdata/test/ops_sanitizer_unstable.ts @@ -1,4 +1,9 @@ Deno.test("no-op", function () {}); -Deno.test("leak interval", function () { - setInterval(function () {}, 100000); +Deno.test({ + name: "leak interval", + // regression test for sanitizer errors being swallowed with permissions. + permissions: {}, + fn() { + setInterval(function () {}, 100000); + }, });