javascript for 馃悳's, a tiny runtime with big ambitions antjs.org
README.md

Node.js compatibility suite #

Run a focused group first:

node tests/node-compat/runner.mjs --match 'test-path-' --jobs 4

Run the complete parallel corpus and save a machine-readable report:

node tests/node-compat/runner.mjs \
  --jobs 8 \
  --timeout 10000 \
  --json node-compat-output/report.json

The runner preserves upstream // Flags: directives, isolates every test in a fresh Ant process, caps captured output, and classifies pass, failure, crash, timeout, and spawn errors. Use --verbose to print captured output for unexpected results and --list to inspect a selection without executing it. On Unix, every test owns a process group so timeout and completion cleanup also terminate fixture subprocesses that would otherwise outlive a broken test.

Tests enter through bootstrap.cjs. It supplies the minimal process.config shape expected by Node's shared harness when the runtime does not expose that Node build artifact, then restores the target test as process.argv[1]. Keep this compatibility layer runtime-neutral; behavior under test belongs in Ant.

Expectations #

expectations.json contains ordered glob patterns. An entry is either an expected failure or a skip and must explain why:

{
  "pattern": "parallel/test-example-*.js",
  "expectation": "fail",
  "reason": "node:example is not implemented"
}

Keep expectations narrow. Unexpected passes intentionally fail the run so a stale expected failure is removed when Ant gains the behavior.