Skip to content

test: ignore test-domain-no-error-handler-abort-on-uncaught tests#33937

Merged
bartlomieju merged 2 commits into
mainfrom
chore/disable-domain-abort-on-uncaught-tests
May 9, 2026
Merged

test: ignore test-domain-no-error-handler-abort-on-uncaught tests#33937
bartlomieju merged 2 commits into
mainfrom
chore/disable-domain-abort-on-uncaught-tests

Conversation

@bartlomieju
Copy link
Copy Markdown
Member

Summary

  • Ignores all 10 test-domain-no-error-handler-abort-on-uncaught-{0..9}.js tests in tests/node_compat/config.jsonc.
  • These tests use common.childShouldThrowAndAbort(), which spawns a child with Node.js's --abort-on-uncaught-exception V8 flag and asserts the child aborts (SIGABRT). Deno does not support this V8 flag, so the child exits normally and the assertion fails — this is an inherent incompatibility, not a fixable bug.

Test plan

  • ./x test-compat test-domain-no-error-handler-abort-on-uncaught — all 10 now report ignored

…ught tests

These 10 tests rely on Node.js's --abort-on-uncaught-exception V8 flag
(via common.childShouldThrowAndAbort), which Deno does not support.
Copy link
Copy Markdown
Contributor

@fibibot fibibot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Substance is straightforward — adding 10 ignore: true entries for parallel/test-domain-no-error-handler-abort-on-uncaught-{0..9}.js with a uniform, accurate reason. Holding at COMMENT pending the 3 in-progress shards (Windows-aarch64 + node_compat (3/3) — slow but no failures so far).

Verified

The reason is correct and not papering over a fixable bug:

  • Each test calls common.childShouldThrowAndAbort(...) (in test/common/index.js's shared helper)
  • That helper spawns a child with node --abort-on-uncaught-exception ... and asserts the child terminates with SIGABRT specifically (not just a non-zero exit code)
  • The --abort-on-uncaught-exception flag is a V8 surface — when set, V8's uncaught-exception handler calls abort() instead of running the JS-level handler chain
  • Deno doesn't pass --abort-on-uncaught-exception through to V8 (and intentionally so — Deno's runtime owns the uncaught-exception handler for its own diagnostics + permission-error formatting)
  • Without the flag, the child exits normally on uncaught — so child.signal === 'SIGABRT' fails. Not a Deno bug, an inherent platform divergence.

The ignore: true + per-test reason is the right disposition — keeps the test files visible in config.jsonc (so they don't silently disappear) but skips them with a self-documenting note. ✓

CI

110 success | 3 in_progress | 0 fail | 2 skipped

Will upgrade to APPROVE once the in-progress shards land. The node_compat (3/3) shard is the one that actually exercises this config change — once it reports green, this is a clean chore merge.

@bartlomieju bartlomieju changed the title chore(node_compat): ignore test-domain-no-error-handler-abort-on-uncaught tests test: ignore test-domain-no-error-handler-abort-on-uncaught tests May 9, 2026
Use `test:` for PRs that only ignore/skip tests in config.jsonc, and
`fix(ext/node):` for PRs that actually fix the implementation.
@bartlomieju bartlomieju enabled auto-merge (squash) May 9, 2026 09:41
@bartlomieju bartlomieju merged commit d0fe7ce into main May 9, 2026
136 checks passed
@bartlomieju bartlomieju deleted the chore/disable-domain-abort-on-uncaught-tests branch May 9, 2026 10:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants