Skip to content

test_runner: add context subtests expectFailure only skip todo #4250

test_runner: add context subtests expectFailure only skip todo

test_runner: add context subtests expectFailure only skip todo #4250

Triggered via pull request March 15, 2026 14:06
Status Failure
Total duration 32m 42s
Artifacts 1

test-shared.yml

on: pull_request
Build slim tarball
1m 57s
Build slim tarball
Matrix: build
Fit to window
Zoom out
Zoom in

Annotations

40 errors and 4 warnings
aarch64-linux: with shared libraries: test/parallel/test-runner-test-rerun-failures.js#L87
--- stdout --- Test failure: 'test should pass on third rerun' Location: test/parallel/test-runner-test-rerun-failures.js:78:1 AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal: + actual - expected ... Skipped lines [ { + 'node:internal/test_runner/test:381:49': { + name: '2 levels deep', - 'test/fixtures/test-runner/rerun.js:17:3': { - name: 'ambiguous (expectedAttempts=0)', passed_on_attempt: 0 }, + 'node:internal/test_runner/test:381:49:(1)': { - 'test/fixtures/test-runner/rerun.js:29:13': { name: 'nested', passed_on_attempt: 0 }, + 'test/fixtures/test-runner/rerun.js:17:3': { + name: 'ambiguous (expectedAttempts=0)', - 'test/fixtures/test-runner/rerun.js:30:16': { - name: '2 levels deep', passed_on_attempt: 0 }, - 'test/fixtures/test-runner/rerun.js:30:16:(1)': { - name: '2 levels deep', - passed_on_attempt: 0 - }, - 'test/fixtures/test-runner/rerun.js:35:13': { - name: 'ok', - passed_on_attempt: 0 - }, - 'test/fixtures/test-runner/rerun.js:35:13:(1)': { - name: 'ok', - passed_on_attempt: 0 - }, 'test/fixtures/test-runner/rerun.js:39:1': { name: 'nested ambiguous (expectedAttempts=0)', passed_on_attempt: 0 }, 'test/fixtures/test-runner/rerun.js:43:1': { ... }, - 'test/fixtures/test-runner/rerun.js:45:13': { - name: 'nested', - passed_on_attempt: 0 - }, 'test/fixtures/test-runner/rerun.js:47:3': { name: 'a', passed_on_attempt: 0 }, 'test/fixtures/test-runner/rerun.js:9:1': { at TestContext.<anonymous> (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/parallel/test-runner-test-rerun-failures.js:87:10) at async Test.run (node:internal/test_runner/test:1217:7) at async startSubtestAfterBootstrap (node:internal/test_runner/harness:385:3) { generatedMessage: true, code: 'ERR_ASSERTION', actual: [Array], expected: [Array], operator: 'deepStrictEqual', diff: 'simple' } Test failure: 'test should pass on third rerun with `--test`' Location: test/parallel/test-runner-test-rerun-failures.js:107:1 AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal: + actual - expected ... Skipped lines [ { + 'node:internal/test_runner/test:381:49': { + name: '2 levels deep', - 'test/fixtures/test-runner/rerun.js:17:3': { - name: 'ambiguous (expectedAttempts=0)', passed_on_attempt: 0 }, + 'node:internal/test_runner/test:381:49:(1)': { - 'test/fixtures/test-runner/rerun.js:29:13': { name: 'nested', passed_on_attempt: 0 }, + 'test/fixtures/test-runner/rerun.js:17:3': { + name: 'ambiguous (expectedAttempts=0)', - 'test/fixtures/test-runner/rerun.js:30:16': { - name: '2 levels deep', passed_on_attempt: 0 }, - 'test/fixtures/test-runner/rerun.js:30:16:(1)': { - name: '2 levels deep', - passed_on_attempt: 0 - }, - 'test/fixtures/test-runner/rerun.js:35:13': { - name: 'ok', - passed_on_attempt: 0 - }, - 'test/fixtures/test-runner/rerun.js:35:13:(1)': { - name: 'ok', - passed_on_attempt: 0 - }, 'test/fixtures/test-runner/rerun.js:39:1': { name: 'nested ambiguous (expectedAttempts=0)', passed_on_attempt: 0 }, 'test/fixtures/test-runner/rerun.js:43:1': { ... }, - 'test/fixtures/test-runner/rerun.js:45:13': { - name: 'nested', - passed_on_attempt: 0 - }, 'test/fixtures/test-runner/rerun.js:47:3': { name: 'a', passed_on_attempt: 0 }, 'test/fixtures/test-runner/rerun.js:9:1': { at TestContext.<anonymous> (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/parallel/test-runner-test-rerun-failures.js:116:10) at async Test.run (node:internal/test_runner/test:1217:7) at async Test.processPendingSubtests (node:internal/tes
aarch64-linux: with shared libraries: test/parallel/test-runner-reporters.js#L114
--- stdout --- Test failure: 'should support a 'js' file as a custom reporter' Location: test/parallel/test-runner-reporters.js:109:5 AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected + 'node:internal/test_runner/harness:129\n' + + ' throw err;\n' + + ' ^\n' + + '\n' + + 'AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:\n' + + '+ actual - expected\n' + + '\n' + + "+ 'node:internal/test_runner/test'\n" + + "- '/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/fixtures/test-runner/reporters.js'\n" + + '\n' + + ' at customReporter (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/fixtures/test-runner/custom_reporters/custom.js:8:14)\n' + + ' at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' + + ' at async nextAsync (node:internal/streams/from:182:33)\n' + + "Emitted 'error' event on Duplex instance at:\n" + + ' at emitErrorNT (node:internal/streams/destroy:170:8)\n' + + ' at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n' + + ' at process.processTicksAndRejections (node:internal/process/task_queues:90:21) {\n' + + ' generatedMessage: true,\n' + + " code: 'ERR_ASSERTION',\n" + + " actual: 'node:internal/test_runner/test',\n" + + " expected: '/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/fixtures/test-runner/reporters.js',\n" + + " operator: 'strictEqual',\n" + + " diff: 'simple'\n" + + '}\n' + + '\n' + + 'Node.js v26.0.0-pre\n' - '' at TestContext.<anonymous> (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/parallel/test-runner-reporters.js:114:14) at Test.runInAsyncScope (node:async_hooks:226:14) at Test.run (node:internal/test_runner/test:1210:25) at Test.start (node:internal/test_runner/test:1105:17) at node:internal/test_runner/test:1626:71 at node:internal/per_context/primordials:466:82 at new Promise (<anonymous>) at new SafePromise (node:internal/per_context/primordials:435:3) at node:internal/per_context/primordials:466:9 at Array.map (<anonymous>) { generatedMessage: true, code: 'ERR_ASSERTION', actual: 'node:internal/test_runner/harness:129\n' + ' throw err;\n' + ' ^\n' + '\n' + 'AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:\n' + '+ actual - expected\n' + '\n' + "+ 'node:internal/test_runner/test'\n" + "- '/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/fixtures/test-runner/reporters.js'\n" + '\n' + '...', expected: '', operator: 'strictEqual', diff: 'simple' } Command: out/Release/node --test-reporter=./test/common/test-error-reporter.js --test-reporter-destination=stdout /home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/parallel/test-runner-reporters.js
aarch64-linux: with shared libraries: test/test-runner/test-output-spec-reporter-cli.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ sync todo with expect fail (*ms) # TODO\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/output.js:125:11\n' + '✖ +sync throw fail (*ms)\n' + ' Error: thrown from subtest sync throw fail\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:125:11)\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:4'... 2922 more characters - 'test at test/fixtures/test-runne'... 2969 more characters at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-spec-reporter-cli.mjs:8:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ sync todo with expect fail (*ms) # TODO\n' + '﹣ sync skip expect fail (*ms) # SKIP\n' + '✔ sync pass todo (*ms) # TODO\n' + '✔ sync pass todo with message (*ms) # this is a passing todo\n' + '⚠ sync fail todo (*ms) # TODO\n' + '⚠ sync fail todo with message (*ms) # this is a failing todo\n' + '﹣ sync skip pass (*ms) # SKIP\n' + '﹣ sync skip pass with message (*ms) # this is skipped\n' + '✔ sync pass (*ms)\n' + 'ℹ this test should pass\n' + '✖ sync throw fail (*ms)\n' + '﹣ async skip pass (*ms) # SKIP\n' + '✔ async pass (*ms)\n' + '✖ async throw fail (*ms)\n' + '﹣ async skip fail (*ms) # SKIP\n' + '✖ async assertion fail (*ms)\n' + '✔ resolve pass (*ms)\n' + '✖ reject fail (*ms)\n' + '✔ unhandled rejection - passes but warns (*ms)\n' + '✔ async unhandled rejection - passes but warns (*ms)\n' + '✔ immediate throw - passes but warns (*ms)\n' + '✔ immediate reject - passes but warns (*ms)\n' + '✔ immediate resolve pass (*ms)\n' + '▶ subtest sync throw fail\n' + ' ✖ +sync throw fail (*ms)\n' + ' ℹ this subtest should make its parent test fail\n' + '✖ subtest sync throw fail (*ms)\n' + '✖ sync throw non-error fail (*ms)\n' + '▶ level 0a\n' + ' ✔ level 1a (*ms)\n' + ' ✔ level 1b (*ms)\n' + ' ✔ level 1c (*ms)\n' + ' ✔ level 1d (*ms)\n' + '✔ level 0a (*ms)\n' + '▶ top level\n' + ' ✔ +long running (*ms)\n' + ' ▶ +short running\n' + ' ✔ ++short running (*ms)\n' + ' ✔ +short running (*ms)\n' + '✔ top level (*ms)\n' + '✔ invalid subtest - pass but subtest fails (*ms)\n' + '﹣ sync skip option (*ms) # SKIP\n' + '﹣ sync skip option with message (*ms) # this is skipped\n' + '✖ sync skip option is false fail (*ms)\n' + '✔ <anonymous> (*ms)\n' + '✔ functionOnly (*ms)\n' + '✔ <anonymous> (*ms)\n' + '✔ test with only a name provided (*ms)\n' + '✔ <anonymous> (*ms)\n' + '﹣ <anonymous> (*ms) # SKIP\n' + '﹣ test with a name and options provided (*ms) # SKIP\n' + '﹣ f
aarch64-linux: with shared libraries: test/test-runner/test-output-spec-reporter.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ sync todo with expect fail (*ms) # TODO\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/output.js:125:11\n' + '✖ +sync throw fail (*ms)\n' + ' Error: thrown from subtest sync throw fail\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:125:11)\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/output.js:334:11\n' + '✖ sync throw fails at first (*ms)\n' + + ' Error: thrown from subtest sync throw fails at first'... 2549 more characters - ' Error: thrown from subtest s'... 2596 more characters at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-spec-reporter.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ sync todo with expect fail (*ms) # TODO\n' + '﹣ sync skip expect fail (*ms) # SKIP\n' + '✔ sync pass todo (*ms) # TODO\n' + '✔ sync pass todo with message (*ms) # this is a passing todo\n' + '⚠ sync fail todo (*ms) # TODO\n' + '⚠ sync fail todo with message (*ms) # this is a failing todo\n' + '﹣ sync skip pass (*ms) # SKIP\n' + '﹣ sync skip pass with message (*ms) # this is skipped\n' + '✔ sync pass (*ms)\n' + 'ℹ this test should pass\n' + '✖ sync throw fail (*ms)\n' + '﹣ async skip pass (*ms) # SKIP\n' + '✔ async pass (*ms)\n' + '✖ async throw fail (*ms)\n' + '﹣ async skip fail (*ms) # SKIP\n' + '✖ async assertion fail (*ms)\n' + '✔ resolve pass (*ms)\n' + '✖ reject fail (*ms)\n' + '✔ unhandled rejection - passes but warns (*ms)\n' + '✔ async unhandled rejection - passes but warns (*ms)\n' + '✔ immediate throw - passes but warns (*ms)\n' + '✔ immediate reject - passes but warns (*ms)\n' + '✔ immediate resolve pass (*ms)\n' + '▶ subtest sync throw fail\n' + ' ✖ +sync throw fail (*ms)\n' + ' ℹ this subtest should make its parent test fail\n' + '✖ subtest sync throw fail (*ms)\n' + '✖ sync throw non-error fail (*ms)\n' + '▶ level 0a\n' + ' ✔ level 1a (*ms)\n' + ' ✔ level 1b (*ms)\n' + ' ✔ level 1c (*ms)\n' + ' ✔ level 1d (*ms)\n' + '✔ level 0a (*ms)\n' + '▶ top level\n' + ' ✔ +long running (*ms)\n' + ' ▶ +short running\n' + ' ✔ ++short running (*ms)\n' + ' ✔ +short running (*ms)\n' + '✔ top level (*ms)\n' + '✔ invalid subtest - pass but subtest fails (*ms)\n' + '﹣ sync skip option (*ms) # SKIP\n' + '﹣ sync skip option with message (*ms) # this is skipped\n' + '✖ sync skip option is false fail (*ms)\n' + '✔ <anonymous> (*ms)\n' + '✔ functionOnly (*ms)\n' + '✔ <anonymous> (*ms)\n' + '✔ test with only
aarch64-linux: with shared libraries: test/test-runner/test-output-output-cli.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines 'TAP version 13\n' + '# Subtest: sync expect fail (method)\n' + 'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/output.js:125:11'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from subtest sync throw fail'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' + ... ' ...\n' + + '# Subtest: callback t is this in test\n' + + 'ok '... 11601 more characters - '# Subtest: cal'... 11708 more characters at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-output-cli.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: 'TAP version 13\n' + '# Subtest: sync expect fail (method)\n' + 'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync expect fail (options)\n' + 'ok 2 - sync expect fail (options) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: async expect fail (method)\n' + 'ok 3 - async expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: async expect fail (options)\n' + 'ok 4 - async expect fail (options) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync todo with expect fail\n' + 'ok 5 - sync todo with expect fail # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync skip expect fail\n' + 'ok 6 - sync skip expect fail # SKIP\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync pass todo\n' + 'ok 7 - sync pass todo # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync pass todo with message\n' + 'ok 8 - sync pass todo with message # TODO this is a passing todo\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync fail todo\n' + 'not ok 9 - sync fail todo # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/output.js:40:1'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from sync fail todo'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:42:9)\n' + ' <node-internal-frames>\n' + ' ...\n' + '# Subtest: sync fail todo with message\n' + 'not ok 10 - sync fail todo with message # TODO this is a failing todo\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/output.js:45:1'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from sync fail todo with message'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:47:9)\n' + ' <node-in
aarch64-linux: with shared libraries: test/test-runner/test-output-output.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines 'TAP version 13\n' + '# Subtest: sync expect fail (method)\n' + 'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/output.js:125:11'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from subtest sync throw fail'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' + ... ' ...\n' + + '# Subtest: callback t is this in test\n' + + 'ok '... 11252 more characters - '# Subtest: cal'... 11359 more characters at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-output.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: 'TAP version 13\n' + '# Subtest: sync expect fail (method)\n' + 'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync expect fail (options)\n' + 'ok 2 - sync expect fail (options) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: async expect fail (method)\n' + 'ok 3 - async expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: async expect fail (options)\n' + 'ok 4 - async expect fail (options) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync todo with expect fail\n' + 'ok 5 - sync todo with expect fail # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync skip expect fail\n' + 'ok 6 - sync skip expect fail # SKIP\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync pass todo\n' + 'ok 7 - sync pass todo # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync pass todo with message\n' + 'ok 8 - sync pass todo with message # TODO this is a passing todo\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync fail todo\n' + 'not ok 9 - sync fail todo # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/output.js:40:1'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from sync fail todo'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:42:9)\n' + ' <node-internal-frames>\n' + ' ...\n' + '# Subtest: sync fail todo with message\n' + 'not ok 10 - sync fail todo with message # TODO this is a failing todo\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/output.js:45:1'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from sync fail todo with message'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:47:9)\n' + ' <node-intern
aarch64-linux: with shared libraries: test/test-runner/test-output-hooks-spec-reporter.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '- after() called\n' + '▶ describe hooks\n' + ' ✔ 1 (*ms)\n' + ' ✔ 2 (*ms)\n' + ' ▶ nested\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:172:11\n' + '✖ 1 (*ms)\n' + ' Error: before\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:5)\n' + ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:173:11\n' + '✖ 2 (*ms)\n' + ' Error: before\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:5)\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:197:11\n' + '✖ 1 (*ms)\n' + ' Error: beforeEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:196:30)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:197:11)\n' + - ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:198:11\n' + '✖ 2 (*ms)\n' + ' Error: beforeEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:196:30)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:198:11)\n' + - ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:204:11\n' + '✖ 1 (*ms)\n' + ' Error: afterEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:203:29)\n' + ' at <node-internal-frames>\n' + ' at async TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:204:3)\n' + ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:205:11\n' + '✖ 2 (*ms)\n' + ' Error: afterEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:203:29)\n' + ' at <node-internal-frames>\n' + ' at async TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:205:3)\n' + ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:212:11\n' + '✖ 1 (*ms)\n' + ' Error: test\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:212:35)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:212:11)\n' + ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:232:11\n' + '✖ 1 (*ms)\n' + ' Error: test\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:226:15)\n' + ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + -
aarch64-linux: with shared libraries: test/test-runner/test-output-hooks.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '- after() called\n' + 'TAP version 13\n' + '# Subtest: describe hooks\n' + ' # Subtest: 1\n' + ' ok 1 - 1\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:172:11'\n" + " failureType: 'hookFailed'\n" + " error: 'before'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:173:11'\n" + " failureType: 'hookFailed'\n" + " error: 'before'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' + ... '# Subtest: t.before throws - no subtests\n' + + 'not ok 14 - t.before throws - no subtests\n' + + ' ---\n' + + ' duratio'... 8766 more characters - 'not o'... 9088 more characters at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-hooks.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '- after() called\n' + 'TAP version 13\n' + '# Subtest: describe hooks\n' + ' # Subtest: 1\n' + ' ok 1 - 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: 2\n' + ' ok 2 - 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: nested\n' + ' # Subtest: nested 1\n' + ' ok 1 - nested 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: nested 2\n' + ' ok 2 - nested 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' 1..2\n' + ' ok 3 - nested\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + ' 1..3\n' + 'ok 1 - describe hooks\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + '# Subtest: describe hooks - no subtests\n' + 'ok 2 - describe hooks - no subtests\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + '# Subtest: before throws\n' + ' # Subtest: 1\n' + ' not ok 1 - 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:74:3'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: 2\n' + ' not ok 2 - 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:75:3'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' 1..2\n' + 'not ok 3 - before throws\n' + ' ---\n' + ' duration_ms: *\n'
aarch64-linux: with shared libraries: test/test-runner/test-output-default-output.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '[32m✔ should pass [90m(*ms)[39m[39m\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + '[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' + '▶ parent\n' + ' [31m✖ should fail [90m(*ms)[39m[39m\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/default_output.js:13:5\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + ' Error: fail\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:39[90m)[39m\n' + ' [90m at <node-internal-frames>[39m\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:5[90m)[39m\n' + at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-default-output.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '[32m✔ should pass [90m(*ms)[39m[39m\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + '[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' + '▶ parent\n' + ' [31m✖ should fail [90m(*ms)[39m[39m\n' + ' [32m✔ should pass but parent fail [90m(*ms)[39m[39m\n' + '[31m✖ parent [90m(*ms)[39m[39m\n' + '[34mℹ tests 6[39m\n' + '[34mℹ suites 0[39m\n' + '[34mℹ pass 2[39m\n' + '[34mℹ fail 3[39m\n' + '[34mℹ cancelled 0[39m\n' + '[34mℹ skipped 1[39m\n' + '[34mℹ todo 0[39m\n' + '[34mℹ duration_ms *[39m\n' + '\n' + '[31m✖ failing tests:[39m\n' + '\n' + 'test at test/fixtures/test-runner/output/default_output.js:10:1\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + ' Error: fail\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:10:35[90m)[39m\n' + ' [90m at <node-internal-frames>[39m\n' + '\n' + 'test at node:internal/test_runner/test:381:49\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + ' Error: fail\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:39[90m)[39m\n' + ' [90m at <node-internal-frames>[39m\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:5[90m)[39m\n' + ' [90m at <node-internal-frames>[39m\n', expected: '[32m✔ should pass [90m(*ms)[39m[39m\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + '[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' + '▶ parent\n' + ' [31m✖ should fail [90m(*ms)[39m[39m\n' + ' [32m✔ should pass but parent fail [90m(*ms)[39m[39m\n' + '[31m✖ parent [90m(*ms)[39m[39m\n' + '[34mℹ tests 6[39m\n' + '[34mℹ suites 0[39m\n' + '[34mℹ pass 2[39m\n' + '[34mℹ fail 3[39m\n' + '[34mℹ cancelled 0[39m\n' + '[34mℹ skipped 1[39m\n' + '[34mℹ todo 0[39m\n' + '[34mℹ duration_ms *[39m\n' + '\n' + '[31m✖ failing tests:[39m\n' + '\n' + 'test at test/fixtures/test-runner/output/default_output.js:10:1\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + ' Error: fail\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:10:35[90m)[39m\n' + ' [90m at <node-internal-frames>[39m\n' + '\n' + 'test at test/fixtures/test-runner/output/default_output.js:13:5\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + ' Error: fail\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtur
aarch64-linux: with shared libraries: test/test-runner/test-output-abort.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines 'TAP version 13\n' + '# Subtest: promise timeout signal\n' + ' # Subtest: ok 1\n' + ' ok 1 - ok 1\n' + ' ---\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:11:7'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: not ok 2\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:12:7'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: not ok 3\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:13:7'\n" + " failureType: 'testAborted'\n" + " error: 'This operation was aborted'\n" + ' code: 20\n' + " name: 'AbortError'\n" + ' stack: |-\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:14:7'\n" + " failureType: 'testAborted'\n" + " error: 'This operation was aborted'\n" + ' code: 20\n' + " name: 'AbortError'\n" + ' stack: |-\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:15:7'\n" + " failureType: 'testAborted'\n" + " error: 'This operation was aborted'\n" + ' code: 20\n' + " name: 'AbortError'\n" + ' stack: |-\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:30:5'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: not ok 2\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:31:5'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: not ok 3\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:32:5'\n" + " failureType: 'testAborted'\n" + " error: 'This operation was aborted'\n" + ' code: 20\n' + " name: 'AbortError'\n" + ' stack: |-\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:33:5'\n" + " failureType: 'testAborted'\n" + " error: 'This operation was aborted'\n" + ' code: 20\n' + " name: 'AbortError'\n" + ' stack: |-\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:34:5'\n" + " failureType: 'testAborted'\n" + " error: '
aarch64-darwin: with shared libraries: test/test-runner/test-output-spec-reporter-cli.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ sync todo with expect fail (*ms) # TODO\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/output.js:125:11\n' + '✖ +sync throw fail (*ms)\n' + ' Error: thrown from subtest sync throw fail\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:125:11)\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:4'... 2922 more characters - 'test at test/fixtures/test-runne'... 2969 more characters at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-spec-reporter-cli.mjs:8:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ sync todo with expect fail (*ms) # TODO\n' + '﹣ sync skip expect fail (*ms) # SKIP\n' + '✔ sync pass todo (*ms) # TODO\n' + '✔ sync pass todo with message (*ms) # this is a passing todo\n' + '⚠ sync fail todo (*ms) # TODO\n' + '⚠ sync fail todo with message (*ms) # this is a failing todo\n' + '﹣ sync skip pass (*ms) # SKIP\n' + '﹣ sync skip pass with message (*ms) # this is skipped\n' + '✔ sync pass (*ms)\n' + 'ℹ this test should pass\n' + '✖ sync throw fail (*ms)\n' + '﹣ async skip pass (*ms) # SKIP\n' + '✔ async pass (*ms)\n' + '✖ async throw fail (*ms)\n' + '﹣ async skip fail (*ms) # SKIP\n' + '✖ async assertion fail (*ms)\n' + '✔ resolve pass (*ms)\n' + '✖ reject fail (*ms)\n' + '✔ unhandled rejection - passes but warns (*ms)\n' + '✔ async unhandled rejection - passes but warns (*ms)\n' + '✔ immediate throw - passes but warns (*ms)\n' + '✔ immediate reject - passes but warns (*ms)\n' + '✔ immediate resolve pass (*ms)\n' + '▶ subtest sync throw fail\n' + ' ✖ +sync throw fail (*ms)\n' + ' ℹ this subtest should make its parent test fail\n' + '✖ subtest sync throw fail (*ms)\n' + '✖ sync throw non-error fail (*ms)\n' + '▶ level 0a\n' + ' ✔ level 1a (*ms)\n' + ' ✔ level 1b (*ms)\n' + ' ✔ level 1c (*ms)\n' + ' ✔ level 1d (*ms)\n' + '✔ level 0a (*ms)\n' + '▶ top level\n' + ' ✔ +long running (*ms)\n' + ' ▶ +short running\n' + ' ✔ ++short running (*ms)\n' + ' ✔ +short running (*ms)\n' + '✔ top level (*ms)\n' + '✔ invalid subtest - pass but subtest fails (*ms)\n' + '﹣ sync skip option (*ms) # SKIP\n' + '﹣ sync skip option with message (*ms) # this is skipped\n' + '✖ sync skip option is false fail (*ms)\n' + '✔ <anonymous> (*ms)\n' + '✔ functionOnly (*ms)\n' + '✔ <anonymous> (*ms)\n' + '✔ test with only a name provided (*ms)\n' + '✔ <anonymous> (*ms)\n' + '﹣ <anonymous> (*ms) # SKIP\n' + '﹣ test with a name and options provided (*ms) # SKIP\n' + '��
aarch64-darwin: with shared libraries: test/test-runner/test-output-spec-reporter.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ sync todo with expect fail (*ms) # TODO\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/output.js:125:11\n' + '✖ +sync throw fail (*ms)\n' + ' Error: thrown from subtest sync throw fail\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:125:11)\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/output.js:334:11\n' + '✖ sync throw fails at first (*ms)\n' + + ' Error: thrown from subtest sync throw fails at first'... 2549 more characters - ' Error: thrown from subtest s'... 2596 more characters at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-spec-reporter.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ sync todo with expect fail (*ms) # TODO\n' + '﹣ sync skip expect fail (*ms) # SKIP\n' + '✔ sync pass todo (*ms) # TODO\n' + '✔ sync pass todo with message (*ms) # this is a passing todo\n' + '⚠ sync fail todo (*ms) # TODO\n' + '⚠ sync fail todo with message (*ms) # this is a failing todo\n' + '﹣ sync skip pass (*ms) # SKIP\n' + '﹣ sync skip pass with message (*ms) # this is skipped\n' + '✔ sync pass (*ms)\n' + 'ℹ this test should pass\n' + '✖ sync throw fail (*ms)\n' + '﹣ async skip pass (*ms) # SKIP\n' + '✔ async pass (*ms)\n' + '✖ async throw fail (*ms)\n' + '﹣ async skip fail (*ms) # SKIP\n' + '✖ async assertion fail (*ms)\n' + '✔ resolve pass (*ms)\n' + '✖ reject fail (*ms)\n' + '✔ unhandled rejection - passes but warns (*ms)\n' + '✔ async unhandled rejection - passes but warns (*ms)\n' + '✔ immediate throw - passes but warns (*ms)\n' + '✔ immediate reject - passes but warns (*ms)\n' + '✔ immediate resolve pass (*ms)\n' + '▶ subtest sync throw fail\n' + ' ✖ +sync throw fail (*ms)\n' + ' ℹ this subtest should make its parent test fail\n' + '✖ subtest sync throw fail (*ms)\n' + '✖ sync throw non-error fail (*ms)\n' + '▶ level 0a\n' + ' ✔ level 1a (*ms)\n' + ' ✔ level 1b (*ms)\n' + ' ✔ level 1c (*ms)\n' + ' ✔ level 1d (*ms)\n' + '✔ level 0a (*ms)\n' + '▶ top level\n' + ' ✔ +long running (*ms)\n' + ' ▶ +short running\n' + ' ✔ ++short running (*ms)\n' + ' ✔ +short running (*ms)\n' + '✔ top level (*ms)\n' + '✔ invalid subtest - pass but subtest fails (*ms)\n' + '﹣ sync skip option (*ms) # SKIP\n' + '﹣ sync skip option with message (*ms) # this is skipped\n' + '✖ sync skip option is false fail (*ms)\n' + '✔ <anonymous> (*ms)\n' + '✔ functionOnly (*ms)\n' + '✔ <anonymous> (*ms)\n' + '✔ test with o
aarch64-darwin: with shared libraries: test/test-runner/test-output-output-cli.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines 'TAP version 13\n' + '# Subtest: sync expect fail (method)\n' + 'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/output.js:125:11'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from subtest sync throw fail'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' + ... ' ...\n' + + '# Subtest: callback t is this in test\n' + + 'ok '... 11601 more characters - '# Subtest: cal'... 11708 more characters at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-output-cli.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: 'TAP version 13\n' + '# Subtest: sync expect fail (method)\n' + 'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync expect fail (options)\n' + 'ok 2 - sync expect fail (options) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: async expect fail (method)\n' + 'ok 3 - async expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: async expect fail (options)\n' + 'ok 4 - async expect fail (options) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync todo with expect fail\n' + 'ok 5 - sync todo with expect fail # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync skip expect fail\n' + 'ok 6 - sync skip expect fail # SKIP\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync pass todo\n' + 'ok 7 - sync pass todo # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync pass todo with message\n' + 'ok 8 - sync pass todo with message # TODO this is a passing todo\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync fail todo\n' + 'not ok 9 - sync fail todo # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/output.js:40:1'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from sync fail todo'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:42:9)\n' + ' <node-internal-frames>\n' + ' ...\n' + '# Subtest: sync fail todo with message\n' + 'not ok 10 - sync fail todo with message # TODO this is a failing todo\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/output.js:45:1'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from sync fail todo with message'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:47:9)\n' + ' <node
aarch64-darwin: with shared libraries: test/test-runner/test-output-output.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines 'TAP version 13\n' + '# Subtest: sync expect fail (method)\n' + 'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/output.js:125:11'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from subtest sync throw fail'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' + ... ' ...\n' + + '# Subtest: callback t is this in test\n' + + 'ok '... 11252 more characters - '# Subtest: cal'... 11359 more characters at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-output.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: 'TAP version 13\n' + '# Subtest: sync expect fail (method)\n' + 'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync expect fail (options)\n' + 'ok 2 - sync expect fail (options) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: async expect fail (method)\n' + 'ok 3 - async expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: async expect fail (options)\n' + 'ok 4 - async expect fail (options) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync todo with expect fail\n' + 'ok 5 - sync todo with expect fail # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync skip expect fail\n' + 'ok 6 - sync skip expect fail # SKIP\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync pass todo\n' + 'ok 7 - sync pass todo # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync pass todo with message\n' + 'ok 8 - sync pass todo with message # TODO this is a passing todo\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync fail todo\n' + 'not ok 9 - sync fail todo # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/output.js:40:1'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from sync fail todo'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:42:9)\n' + ' <node-internal-frames>\n' + ' ...\n' + '# Subtest: sync fail todo with message\n' + 'not ok 10 - sync fail todo with message # TODO this is a failing todo\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/output.js:45:1'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from sync fail todo with message'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:47:9)\n' + ' <node-int
aarch64-darwin: with shared libraries: test/test-runner/test-output-hooks-spec-reporter.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '- after() called\n' + '▶ describe hooks\n' + ' ✔ 1 (*ms)\n' + ' ✔ 2 (*ms)\n' + ' ▶ nested\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:172:11\n' + '✖ 1 (*ms)\n' + ' Error: before\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:5)\n' + ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:173:11\n' + '✖ 2 (*ms)\n' + ' Error: before\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:5)\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:197:11\n' + '✖ 1 (*ms)\n' + ' Error: beforeEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:196:30)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:197:11)\n' + - ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:198:11\n' + '✖ 2 (*ms)\n' + ' Error: beforeEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:196:30)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:198:11)\n' + - ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:204:11\n' + '✖ 1 (*ms)\n' + ' Error: afterEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:203:29)\n' + ' at <node-internal-frames>\n' + ' at async TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:204:3)\n' + ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:205:11\n' + '✖ 2 (*ms)\n' + ' Error: afterEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:203:29)\n' + ' at <node-internal-frames>\n' + ' at async TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:205:3)\n' + ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:212:11\n' + '✖ 1 (*ms)\n' + ' Error: test\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:212:35)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:212:11)\n' + ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:232:11\n' + '✖ 1 (*ms)\n' + ' Error: test\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:226:15)\n' + ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + -
aarch64-darwin: with shared libraries: test/test-runner/test-output-hooks.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '- after() called\n' + 'TAP version 13\n' + '# Subtest: describe hooks\n' + ' # Subtest: 1\n' + ' ok 1 - 1\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:172:11'\n" + " failureType: 'hookFailed'\n" + " error: 'before'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:173:11'\n" + " failureType: 'hookFailed'\n" + " error: 'before'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' + ... '# Subtest: t.before throws - no subtests\n' + + 'not ok 14 - t.before throws - no subtests\n' + + ' ---\n' + + ' duratio'... 8766 more characters - 'not o'... 9088 more characters at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-hooks.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '- after() called\n' + 'TAP version 13\n' + '# Subtest: describe hooks\n' + ' # Subtest: 1\n' + ' ok 1 - 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: 2\n' + ' ok 2 - 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: nested\n' + ' # Subtest: nested 1\n' + ' ok 1 - nested 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: nested 2\n' + ' ok 2 - nested 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' 1..2\n' + ' ok 3 - nested\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + ' 1..3\n' + 'ok 1 - describe hooks\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + '# Subtest: describe hooks - no subtests\n' + 'ok 2 - describe hooks - no subtests\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + '# Subtest: before throws\n' + ' # Subtest: 1\n' + ' not ok 1 - 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:74:3'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: 2\n' + ' not ok 2 - 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:75:3'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' 1..2\n' + 'not ok 3 - before throws\n' + ' ---\n' + ' duration_ms: *\
aarch64-darwin: with shared libraries: test/test-runner/test-output-default-output.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '[32m✔ should pass [90m(*ms)[39m[39m\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + '[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' + '▶ parent\n' + ' [31m✖ should fail [90m(*ms)[39m[39m\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/default_output.js:13:5\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + ' Error: fail\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:39[90m)[39m\n' + ' [90m at <node-internal-frames>[39m\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:5[90m)[39m\n' + at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-default-output.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '[32m✔ should pass [90m(*ms)[39m[39m\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + '[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' + '▶ parent\n' + ' [31m✖ should fail [90m(*ms)[39m[39m\n' + ' [32m✔ should pass but parent fail [90m(*ms)[39m[39m\n' + '[31m✖ parent [90m(*ms)[39m[39m\n' + '[34mℹ tests 6[39m\n' + '[34mℹ suites 0[39m\n' + '[34mℹ pass 2[39m\n' + '[34mℹ fail 3[39m\n' + '[34mℹ cancelled 0[39m\n' + '[34mℹ skipped 1[39m\n' + '[34mℹ todo 0[39m\n' + '[34mℹ duration_ms *[39m\n' + '\n' + '[31m✖ failing tests:[39m\n' + '\n' + 'test at test/fixtures/test-runner/output/default_output.js:10:1\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + ' Error: fail\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:10:35[90m)[39m\n' + ' [90m at <node-internal-frames>[39m\n' + '\n' + 'test at node:internal/test_runner/test:381:49\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + ' Error: fail\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:39[90m)[39m\n' + ' [90m at <node-internal-frames>[39m\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:5[90m)[39m\n' + ' [90m at <node-internal-frames>[39m\n', expected: '[32m✔ should pass [90m(*ms)[39m[39m\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + '[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' + '▶ parent\n' + ' [31m✖ should fail [90m(*ms)[39m[39m\n' + ' [32m✔ should pass but parent fail [90m(*ms)[39m[39m\n' + '[31m✖ parent [90m(*ms)[39m[39m\n' + '[34mℹ tests 6[39m\n' + '[34mℹ suites 0[39m\n' + '[34mℹ pass 2[39m\n' + '[34mℹ fail 3[39m\n' + '[34mℹ cancelled 0[39m\n' + '[34mℹ skipped 1[39m\n' + '[34mℹ todo 0[39m\n' + '[34mℹ duration_ms *[39m\n' + '\n' + '[31m✖ failing tests:[39m\n' + '\n' + 'test at test/fixtures/test-runner/output/default_output.js:10:1\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + ' Error: fail\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:10:35[90m)[39m\n' + ' [90m at <node-internal-frames>[39m\n' + '\n' + 'test at test/fixtures/test-runner/output/default_output.js:13:5\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + ' Error: fail\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fix
aarch64-darwin: with shared libraries: test/test-runner/test-output-abort.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines 'TAP version 13\n' + '# Subtest: promise timeout signal\n' + ' # Subtest: ok 1\n' + ' ok 1 - ok 1\n' + ' ---\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:11:7'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: not ok 2\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:12:7'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: not ok 3\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:13:7'\n" + " failureType: 'testAborted'\n" + " error: 'This operation was aborted'\n" + ' code: 20\n' + " name: 'AbortError'\n" + ' stack: |-\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:14:7'\n" + " failureType: 'testAborted'\n" + " error: 'This operation was aborted'\n" + ' code: 20\n' + " name: 'AbortError'\n" + ' stack: |-\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:15:7'\n" + " failureType: 'testAborted'\n" + " error: 'This operation was aborted'\n" + ' code: 20\n' + " name: 'AbortError'\n" + ' stack: |-\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:30:5'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: not ok 2\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:31:5'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: not ok 3\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:32:5'\n" + " failureType: 'testAborted'\n" + " error: 'This operation was aborted'\n" + ' code: 20\n' + " name: 'AbortError'\n" + ' stack: |-\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:33:5'\n" + " failureType: 'testAborted'\n" + " error: 'This operation was aborted'\n" + ' code: 20\n' + " name: 'AbortError'\n" + ' stack: |-\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:34:5'\n" + " failureType: 'testAborted'\n" + " error: '
aarch64-darwin: with shared libraries: test/parallel/test-runner-test-rerun-failures.js#L87
--- stdout --- Test failure: 'test should pass on third rerun' Location: test/parallel/test-runner-test-rerun-failures.js:78:1 AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal: + actual - expected ... Skipped lines [ { + 'node:internal/test_runner/test:381:49': { + name: '2 levels deep', - 'test/fixtures/test-runner/rerun.js:17:3': { - name: 'ambiguous (expectedAttempts=0)', passed_on_attempt: 0 }, + 'node:internal/test_runner/test:381:49:(1)': { - 'test/fixtures/test-runner/rerun.js:29:13': { name: 'nested', passed_on_attempt: 0 }, + 'test/fixtures/test-runner/rerun.js:17:3': { + name: 'ambiguous (expectedAttempts=0)', - 'test/fixtures/test-runner/rerun.js:30:16': { - name: '2 levels deep', passed_on_attempt: 0 }, - 'test/fixtures/test-runner/rerun.js:30:16:(1)': { - name: '2 levels deep', - passed_on_attempt: 0 - }, - 'test/fixtures/test-runner/rerun.js:35:13': { - name: 'ok', - passed_on_attempt: 0 - }, - 'test/fixtures/test-runner/rerun.js:35:13:(1)': { - name: 'ok', - passed_on_attempt: 0 - }, 'test/fixtures/test-runner/rerun.js:39:1': { name: 'nested ambiguous (expectedAttempts=0)', passed_on_attempt: 0 }, 'test/fixtures/test-runner/rerun.js:43:1': { ... }, - 'test/fixtures/test-runner/rerun.js:45:13': { - name: 'nested', - passed_on_attempt: 0 - }, 'test/fixtures/test-runner/rerun.js:47:3': { name: 'a', passed_on_attempt: 0 }, 'test/fixtures/test-runner/rerun.js:9:1': { at TestContext.<anonymous> (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/parallel/test-runner-test-rerun-failures.js:87:10) at async Test.run (node:internal/test_runner/test:1217:7) at async startSubtestAfterBootstrap (node:internal/test_runner/harness:385:3) { generatedMessage: true, code: 'ERR_ASSERTION', actual: [Array], expected: [Array], operator: 'deepStrictEqual', diff: 'simple' } Test failure: 'test should pass on third rerun with `--test`' Location: test/parallel/test-runner-test-rerun-failures.js:107:1 AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal: + actual - expected ... Skipped lines [ { + 'node:internal/test_runner/test:381:49': { + name: '2 levels deep', - 'test/fixtures/test-runner/rerun.js:17:3': { - name: 'ambiguous (expectedAttempts=0)', passed_on_attempt: 0 }, + 'node:internal/test_runner/test:381:49:(1)': { - 'test/fixtures/test-runner/rerun.js:29:13': { name: 'nested', passed_on_attempt: 0 }, + 'test/fixtures/test-runner/rerun.js:17:3': { + name: 'ambiguous (expectedAttempts=0)', - 'test/fixtures/test-runner/rerun.js:30:16': { - name: '2 levels deep', passed_on_attempt: 0 }, - 'test/fixtures/test-runner/rerun.js:30:16:(1)': { - name: '2 levels deep', - passed_on_attempt: 0 - }, - 'test/fixtures/test-runner/rerun.js:35:13': { - name: 'ok', - passed_on_attempt: 0 - }, - 'test/fixtures/test-runner/rerun.js:35:13:(1)': { - name: 'ok', - passed_on_attempt: 0 - }, 'test/fixtures/test-runner/rerun.js:39:1': { name: 'nested ambiguous (expectedAttempts=0)', passed_on_attempt: 0 }, 'test/fixtures/test-runner/rerun.js:43:1': { ... }, - 'test/fixtures/test-runner/rerun.js:45:13': { - name: 'nested', - passed_on_attempt: 0 - }, 'test/fixtures/test-runner/rerun.js:47:3': { name: 'a', passed_on_attempt: 0 }, 'test/fixtures/test-runner/rerun.js:9:1': { at TestContext.<anonymous> (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/parallel/test-runner-test-rerun-failures.js:116:10) at async Test.run (node:internal/test_runner/test:1217:7) at async Test.processPendingSubtests (node:internal/t
aarch64-darwin: with shared libraries: test/parallel/test-runner-reporters.js#L114
--- stdout --- Test failure: 'should support a 'js' file as a custom reporter' Location: test/parallel/test-runner-reporters.js:109:5 AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected + 'node:internal/test_runner/harness:129\n' + + ' throw err;\n' + + ' ^\n' + + '\n' + + 'AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:\n' + + '+ actual - expected\n' + + '\n' + + "+ 'node:internal/test_runner/test'\n" + + "- '/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/fixtures/test-runner/reporters.js'\n" + + '\n' + + ' at customReporter (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/fixtures/test-runner/custom_reporters/custom.js:8:14)\n' + + ' at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' + + ' at async nextAsync (node:internal/streams/from:182:33)\n' + + "Emitted 'error' event on Duplex instance at:\n" + + ' at emitErrorNT (node:internal/streams/destroy:170:8)\n' + + ' at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n' + + ' at process.processTicksAndRejections (node:internal/process/task_queues:90:21) {\n' + + ' generatedMessage: true,\n' + + " code: 'ERR_ASSERTION',\n" + + " actual: 'node:internal/test_runner/test',\n" + + " expected: '/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/fixtures/test-runner/reporters.js',\n" + + " operator: 'strictEqual',\n" + + " diff: 'simple'\n" + + '}\n' + + '\n' + + 'Node.js v26.0.0-pre\n' - '' at TestContext.<anonymous> (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/parallel/test-runner-reporters.js:114:14) at Test.runInAsyncScope (node:async_hooks:226:14) at Test.run (node:internal/test_runner/test:1210:25) at Test.start (node:internal/test_runner/test:1105:17) at node:internal/test_runner/test:1626:71 at node:internal/per_context/primordials:466:82 at new Promise (<anonymous>) at new SafePromise (node:internal/per_context/primordials:435:3) at node:internal/per_context/primordials:466:9 at Array.map (<anonymous>) { generatedMessage: true, code: 'ERR_ASSERTION', actual: 'node:internal/test_runner/harness:129\n' + ' throw err;\n' + ' ^\n' + '\n' + 'AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:\n' + '+ actual - expected\n' + '\n' + "+ 'node:internal/test_runner/test'\n" + "- '/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/fixtures/test-runner/reporters.js'\n" + '\n' + '...', expected: '', operator: 'strictEqual', diff: 'simple' } Command: out/Release/node --test-reporter=./test/common/test-error-reporter.js --test-reporter-destination=stdout /Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/parallel/test-runner-reporters.js
x86_64-linux: with shared libraries: test/parallel/test-runner-test-rerun-failures.js#L87
--- stdout --- Test failure: 'test should pass on third rerun' Location: test/parallel/test-runner-test-rerun-failures.js:78:1 AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal: + actual - expected ... Skipped lines [ { + 'node:internal/test_runner/test:381:49': { + name: '2 levels deep', - 'test/fixtures/test-runner/rerun.js:17:3': { - name: 'ambiguous (expectedAttempts=0)', passed_on_attempt: 0 }, + 'node:internal/test_runner/test:381:49:(1)': { - 'test/fixtures/test-runner/rerun.js:29:13': { name: 'nested', passed_on_attempt: 0 }, + 'test/fixtures/test-runner/rerun.js:17:3': { + name: 'ambiguous (expectedAttempts=0)', - 'test/fixtures/test-runner/rerun.js:30:16': { - name: '2 levels deep', passed_on_attempt: 0 }, - 'test/fixtures/test-runner/rerun.js:30:16:(1)': { - name: '2 levels deep', - passed_on_attempt: 0 - }, - 'test/fixtures/test-runner/rerun.js:35:13': { - name: 'ok', - passed_on_attempt: 0 - }, - 'test/fixtures/test-runner/rerun.js:35:13:(1)': { - name: 'ok', - passed_on_attempt: 0 - }, 'test/fixtures/test-runner/rerun.js:39:1': { name: 'nested ambiguous (expectedAttempts=0)', passed_on_attempt: 0 }, 'test/fixtures/test-runner/rerun.js:43:1': { ... }, - 'test/fixtures/test-runner/rerun.js:45:13': { - name: 'nested', - passed_on_attempt: 0 - }, 'test/fixtures/test-runner/rerun.js:47:3': { name: 'a', passed_on_attempt: 0 }, 'test/fixtures/test-runner/rerun.js:9:1': { at TestContext.<anonymous> (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/parallel/test-runner-test-rerun-failures.js:87:10) at async Test.run (node:internal/test_runner/test:1217:7) at async startSubtestAfterBootstrap (node:internal/test_runner/harness:385:3) { generatedMessage: true, code: 'ERR_ASSERTION', actual: [Array], expected: [Array], operator: 'deepStrictEqual', diff: 'simple' } Test failure: 'test should pass on third rerun with `--test`' Location: test/parallel/test-runner-test-rerun-failures.js:107:1 AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal: + actual - expected ... Skipped lines [ { + 'node:internal/test_runner/test:381:49': { + name: '2 levels deep', - 'test/fixtures/test-runner/rerun.js:17:3': { - name: 'ambiguous (expectedAttempts=0)', passed_on_attempt: 0 }, + 'node:internal/test_runner/test:381:49:(1)': { - 'test/fixtures/test-runner/rerun.js:29:13': { name: 'nested', passed_on_attempt: 0 }, + 'test/fixtures/test-runner/rerun.js:17:3': { + name: 'ambiguous (expectedAttempts=0)', - 'test/fixtures/test-runner/rerun.js:30:16': { - name: '2 levels deep', passed_on_attempt: 0 }, - 'test/fixtures/test-runner/rerun.js:30:16:(1)': { - name: '2 levels deep', - passed_on_attempt: 0 - }, - 'test/fixtures/test-runner/rerun.js:35:13': { - name: 'ok', - passed_on_attempt: 0 - }, - 'test/fixtures/test-runner/rerun.js:35:13:(1)': { - name: 'ok', - passed_on_attempt: 0 - }, 'test/fixtures/test-runner/rerun.js:39:1': { name: 'nested ambiguous (expectedAttempts=0)', passed_on_attempt: 0 }, 'test/fixtures/test-runner/rerun.js:43:1': { ... }, - 'test/fixtures/test-runner/rerun.js:45:13': { - name: 'nested', - passed_on_attempt: 0 - }, 'test/fixtures/test-runner/rerun.js:47:3': { name: 'a', passed_on_attempt: 0 }, 'test/fixtures/test-runner/rerun.js:9:1': { at TestContext.<anonymous> (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/parallel/test-runner-test-rerun-failures.js:116:10) at async Test.run (node:internal/test_runner/test:1217:7) at async Test.processPendingSubtests (node:internal/tes
x86_64-linux: with shared libraries: test/parallel/test-runner-reporters.js#L114
--- stdout --- Test failure: 'should support a 'js' file as a custom reporter' Location: test/parallel/test-runner-reporters.js:109:5 AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected + 'node:internal/test_runner/harness:129\n' + + ' throw err;\n' + + ' ^\n' + + '\n' + + 'AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:\n' + + '+ actual - expected\n' + + '\n' + + "+ 'node:internal/test_runner/test'\n" + + "- '/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/fixtures/test-runner/reporters.js'\n" + + '\n' + + ' at customReporter (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/fixtures/test-runner/custom_reporters/custom.js:8:14)\n' + + ' at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' + + ' at async nextAsync (node:internal/streams/from:182:33)\n' + + "Emitted 'error' event on Duplex instance at:\n" + + ' at emitErrorNT (node:internal/streams/destroy:170:8)\n' + + ' at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n' + + ' at process.processTicksAndRejections (node:internal/process/task_queues:90:21) {\n' + + ' generatedMessage: true,\n' + + " code: 'ERR_ASSERTION',\n" + + " actual: 'node:internal/test_runner/test',\n" + + " expected: '/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/fixtures/test-runner/reporters.js',\n" + + " operator: 'strictEqual',\n" + + " diff: 'simple'\n" + + '}\n' + + '\n' + + 'Node.js v26.0.0-pre\n' - '' at TestContext.<anonymous> (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/parallel/test-runner-reporters.js:114:14) at Test.runInAsyncScope (node:async_hooks:226:14) at Test.run (node:internal/test_runner/test:1210:25) at Test.start (node:internal/test_runner/test:1105:17) at node:internal/test_runner/test:1626:71 at node:internal/per_context/primordials:466:82 at new Promise (<anonymous>) at new SafePromise (node:internal/per_context/primordials:435:3) at node:internal/per_context/primordials:466:9 at Array.map (<anonymous>) { generatedMessage: true, code: 'ERR_ASSERTION', actual: 'node:internal/test_runner/harness:129\n' + ' throw err;\n' + ' ^\n' + '\n' + 'AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:\n' + '+ actual - expected\n' + '\n' + "+ 'node:internal/test_runner/test'\n" + "- '/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/fixtures/test-runner/reporters.js'\n" + '\n' + '...', expected: '', operator: 'strictEqual', diff: 'simple' } Command: out/Release/node --test-reporter=./test/common/test-error-reporter.js --test-reporter-destination=stdout /home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/parallel/test-runner-reporters.js
x86_64-linux: with shared libraries: test/test-runner/test-output-spec-reporter-cli.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ sync todo with expect fail (*ms) # TODO\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/output.js:125:11\n' + '✖ +sync throw fail (*ms)\n' + ' Error: thrown from subtest sync throw fail\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:125:11)\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:4'... 2922 more characters - 'test at test/fixtures/test-runne'... 2969 more characters at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-spec-reporter-cli.mjs:8:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ sync todo with expect fail (*ms) # TODO\n' + '﹣ sync skip expect fail (*ms) # SKIP\n' + '✔ sync pass todo (*ms) # TODO\n' + '✔ sync pass todo with message (*ms) # this is a passing todo\n' + '⚠ sync fail todo (*ms) # TODO\n' + '⚠ sync fail todo with message (*ms) # this is a failing todo\n' + '﹣ sync skip pass (*ms) # SKIP\n' + '﹣ sync skip pass with message (*ms) # this is skipped\n' + '✔ sync pass (*ms)\n' + 'ℹ this test should pass\n' + '✖ sync throw fail (*ms)\n' + '﹣ async skip pass (*ms) # SKIP\n' + '✔ async pass (*ms)\n' + '✖ async throw fail (*ms)\n' + '﹣ async skip fail (*ms) # SKIP\n' + '✖ async assertion fail (*ms)\n' + '✔ resolve pass (*ms)\n' + '✖ reject fail (*ms)\n' + '✔ unhandled rejection - passes but warns (*ms)\n' + '✔ async unhandled rejection - passes but warns (*ms)\n' + '✔ immediate throw - passes but warns (*ms)\n' + '✔ immediate reject - passes but warns (*ms)\n' + '✔ immediate resolve pass (*ms)\n' + '▶ subtest sync throw fail\n' + ' ✖ +sync throw fail (*ms)\n' + ' ℹ this subtest should make its parent test fail\n' + '✖ subtest sync throw fail (*ms)\n' + '✖ sync throw non-error fail (*ms)\n' + '▶ level 0a\n' + ' ✔ level 1a (*ms)\n' + ' ✔ level 1b (*ms)\n' + ' ✔ level 1c (*ms)\n' + ' ✔ level 1d (*ms)\n' + '✔ level 0a (*ms)\n' + '▶ top level\n' + ' ✔ +long running (*ms)\n' + ' ▶ +short running\n' + ' ✔ ++short running (*ms)\n' + ' ✔ +short running (*ms)\n' + '✔ top level (*ms)\n' + '✔ invalid subtest - pass but subtest fails (*ms)\n' + '﹣ sync skip option (*ms) # SKIP\n' + '﹣ sync skip option with message (*ms) # this is skipped\n' + '✖ sync skip option is false fail (*ms)\n' + '✔ <anonymous> (*ms)\n' + '✔ functionOnly (*ms)\n' + '✔ <anonymous> (*ms)\n' + '✔ test with only a name provided (*ms)\n' + '✔ <anonymous> (*ms)\n' + '﹣ <anonymous> (*ms) # SKIP\n' + '﹣ test with a name and options provided (*ms) # SKIP\n' + '﹣ f
x86_64-linux: with shared libraries: test/test-runner/test-output-spec-reporter.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ sync todo with expect fail (*ms) # TODO\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/output.js:125:11\n' + '✖ +sync throw fail (*ms)\n' + ' Error: thrown from subtest sync throw fail\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:125:11)\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/output.js:334:11\n' + '✖ sync throw fails at first (*ms)\n' + + ' Error: thrown from subtest sync throw fails at first'... 2549 more characters - ' Error: thrown from subtest s'... 2596 more characters at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-spec-reporter.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ sync todo with expect fail (*ms) # TODO\n' + '﹣ sync skip expect fail (*ms) # SKIP\n' + '✔ sync pass todo (*ms) # TODO\n' + '✔ sync pass todo with message (*ms) # this is a passing todo\n' + '⚠ sync fail todo (*ms) # TODO\n' + '⚠ sync fail todo with message (*ms) # this is a failing todo\n' + '﹣ sync skip pass (*ms) # SKIP\n' + '﹣ sync skip pass with message (*ms) # this is skipped\n' + '✔ sync pass (*ms)\n' + 'ℹ this test should pass\n' + '✖ sync throw fail (*ms)\n' + '﹣ async skip pass (*ms) # SKIP\n' + '✔ async pass (*ms)\n' + '✖ async throw fail (*ms)\n' + '﹣ async skip fail (*ms) # SKIP\n' + '✖ async assertion fail (*ms)\n' + '✔ resolve pass (*ms)\n' + '✖ reject fail (*ms)\n' + '✔ unhandled rejection - passes but warns (*ms)\n' + '✔ async unhandled rejection - passes but warns (*ms)\n' + '✔ immediate throw - passes but warns (*ms)\n' + '✔ immediate reject - passes but warns (*ms)\n' + '✔ immediate resolve pass (*ms)\n' + '▶ subtest sync throw fail\n' + ' ✖ +sync throw fail (*ms)\n' + ' ℹ this subtest should make its parent test fail\n' + '✖ subtest sync throw fail (*ms)\n' + '✖ sync throw non-error fail (*ms)\n' + '▶ level 0a\n' + ' ✔ level 1a (*ms)\n' + ' ✔ level 1b (*ms)\n' + ' ✔ level 1c (*ms)\n' + ' ✔ level 1d (*ms)\n' + '✔ level 0a (*ms)\n' + '▶ top level\n' + ' ✔ +long running (*ms)\n' + ' ▶ +short running\n' + ' ✔ ++short running (*ms)\n' + ' ✔ +short running (*ms)\n' + '✔ top level (*ms)\n' + '✔ invalid subtest - pass but subtest fails (*ms)\n' + '﹣ sync skip option (*ms) # SKIP\n' + '﹣ sync skip option with message (*ms) # this is skipped\n' + '✖ sync skip option is false fail (*ms)\n' + '✔ <anonymous> (*ms)\n' + '✔ functionOnly (*ms)\n' + '✔ <anonymous> (*ms)\n' + '✔ test with only
x86_64-linux: with shared libraries: test/test-runner/test-output-output-cli.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines 'TAP version 13\n' + '# Subtest: sync expect fail (method)\n' + 'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/output.js:125:11'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from subtest sync throw fail'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' + ... ' ...\n' + + '# Subtest: callback t is this in test\n' + + 'ok '... 11601 more characters - '# Subtest: cal'... 11708 more characters at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-output-cli.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: 'TAP version 13\n' + '# Subtest: sync expect fail (method)\n' + 'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync expect fail (options)\n' + 'ok 2 - sync expect fail (options) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: async expect fail (method)\n' + 'ok 3 - async expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: async expect fail (options)\n' + 'ok 4 - async expect fail (options) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync todo with expect fail\n' + 'ok 5 - sync todo with expect fail # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync skip expect fail\n' + 'ok 6 - sync skip expect fail # SKIP\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync pass todo\n' + 'ok 7 - sync pass todo # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync pass todo with message\n' + 'ok 8 - sync pass todo with message # TODO this is a passing todo\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync fail todo\n' + 'not ok 9 - sync fail todo # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/output.js:40:1'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from sync fail todo'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:42:9)\n' + ' <node-internal-frames>\n' + ' ...\n' + '# Subtest: sync fail todo with message\n' + 'not ok 10 - sync fail todo with message # TODO this is a failing todo\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/output.js:45:1'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from sync fail todo with message'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:47:9)\n' + ' <node-in
x86_64-linux: with shared libraries: test/test-runner/test-output-output.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines 'TAP version 13\n' + '# Subtest: sync expect fail (method)\n' + 'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/output.js:125:11'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from subtest sync throw fail'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' + ... ' ...\n' + + '# Subtest: callback t is this in test\n' + + 'ok '... 11252 more characters - '# Subtest: cal'... 11359 more characters at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-output.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: 'TAP version 13\n' + '# Subtest: sync expect fail (method)\n' + 'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync expect fail (options)\n' + 'ok 2 - sync expect fail (options) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: async expect fail (method)\n' + 'ok 3 - async expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: async expect fail (options)\n' + 'ok 4 - async expect fail (options) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync todo with expect fail\n' + 'ok 5 - sync todo with expect fail # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync skip expect fail\n' + 'ok 6 - sync skip expect fail # SKIP\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync pass todo\n' + 'ok 7 - sync pass todo # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync pass todo with message\n' + 'ok 8 - sync pass todo with message # TODO this is a passing todo\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync fail todo\n' + 'not ok 9 - sync fail todo # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/output.js:40:1'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from sync fail todo'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:42:9)\n' + ' <node-internal-frames>\n' + ' ...\n' + '# Subtest: sync fail todo with message\n' + 'not ok 10 - sync fail todo with message # TODO this is a failing todo\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/output.js:45:1'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from sync fail todo with message'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:47:9)\n' + ' <node-intern
x86_64-linux: with shared libraries: test/test-runner/test-output-hooks-spec-reporter.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '- after() called\n' + '▶ describe hooks\n' + ' ✔ 1 (*ms)\n' + ' ✔ 2 (*ms)\n' + ' ▶ nested\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:172:11\n' + '✖ 1 (*ms)\n' + ' Error: before\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:5)\n' + ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:173:11\n' + '✖ 2 (*ms)\n' + ' Error: before\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:5)\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:197:11\n' + '✖ 1 (*ms)\n' + ' Error: beforeEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:196:30)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:197:11)\n' + - ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:198:11\n' + '✖ 2 (*ms)\n' + ' Error: beforeEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:196:30)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:198:11)\n' + - ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:204:11\n' + '✖ 1 (*ms)\n' + ' Error: afterEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:203:29)\n' + ' at <node-internal-frames>\n' + ' at async TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:204:3)\n' + ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:205:11\n' + '✖ 2 (*ms)\n' + ' Error: afterEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:203:29)\n' + ' at <node-internal-frames>\n' + ' at async TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:205:3)\n' + ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:212:11\n' + '✖ 1 (*ms)\n' + ' Error: test\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:212:35)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:212:11)\n' + ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:232:11\n' + '✖ 1 (*ms)\n' + ' Error: test\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:226:15)\n' + ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + -
x86_64-linux: with shared libraries: test/test-runner/test-output-hooks.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '- after() called\n' + 'TAP version 13\n' + '# Subtest: describe hooks\n' + ' # Subtest: 1\n' + ' ok 1 - 1\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:172:11'\n" + " failureType: 'hookFailed'\n" + " error: 'before'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:173:11'\n" + " failureType: 'hookFailed'\n" + " error: 'before'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' + ... '# Subtest: t.before throws - no subtests\n' + + 'not ok 14 - t.before throws - no subtests\n' + + ' ---\n' + + ' duratio'... 8766 more characters - 'not o'... 9088 more characters at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-hooks.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '- after() called\n' + 'TAP version 13\n' + '# Subtest: describe hooks\n' + ' # Subtest: 1\n' + ' ok 1 - 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: 2\n' + ' ok 2 - 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: nested\n' + ' # Subtest: nested 1\n' + ' ok 1 - nested 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: nested 2\n' + ' ok 2 - nested 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' 1..2\n' + ' ok 3 - nested\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + ' 1..3\n' + 'ok 1 - describe hooks\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + '# Subtest: describe hooks - no subtests\n' + 'ok 2 - describe hooks - no subtests\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + '# Subtest: before throws\n' + ' # Subtest: 1\n' + ' not ok 1 - 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:74:3'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: 2\n' + ' not ok 2 - 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:75:3'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' 1..2\n' + 'not ok 3 - before throws\n' + ' ---\n' + ' duration_ms: *\n'
x86_64-linux: with shared libraries: test/test-runner/test-output-default-output.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '[32m✔ should pass [90m(*ms)[39m[39m\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + '[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' + '▶ parent\n' + ' [31m✖ should fail [90m(*ms)[39m[39m\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/default_output.js:13:5\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + ' Error: fail\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:39[90m)[39m\n' + ' [90m at <node-internal-frames>[39m\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:5[90m)[39m\n' + at assertSnapshot (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///home/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-default-output.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '[32m✔ should pass [90m(*ms)[39m[39m\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + '[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' + '▶ parent\n' + ' [31m✖ should fail [90m(*ms)[39m[39m\n' + ' [32m✔ should pass but parent fail [90m(*ms)[39m[39m\n' + '[31m✖ parent [90m(*ms)[39m[39m\n' + '[34mℹ tests 6[39m\n' + '[34mℹ suites 0[39m\n' + '[34mℹ pass 2[39m\n' + '[34mℹ fail 3[39m\n' + '[34mℹ cancelled 0[39m\n' + '[34mℹ skipped 1[39m\n' + '[34mℹ todo 0[39m\n' + '[34mℹ duration_ms *[39m\n' + '\n' + '[31m✖ failing tests:[39m\n' + '\n' + 'test at test/fixtures/test-runner/output/default_output.js:10:1\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + ' Error: fail\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:10:35[90m)[39m\n' + ' [90m at <node-internal-frames>[39m\n' + '\n' + 'test at node:internal/test_runner/test:381:49\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + ' Error: fail\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:39[90m)[39m\n' + ' [90m at <node-internal-frames>[39m\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:5[90m)[39m\n' + ' [90m at <node-internal-frames>[39m\n', expected: '[32m✔ should pass [90m(*ms)[39m[39m\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + '[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' + '▶ parent\n' + ' [31m✖ should fail [90m(*ms)[39m[39m\n' + ' [32m✔ should pass but parent fail [90m(*ms)[39m[39m\n' + '[31m✖ parent [90m(*ms)[39m[39m\n' + '[34mℹ tests 6[39m\n' + '[34mℹ suites 0[39m\n' + '[34mℹ pass 2[39m\n' + '[34mℹ fail 3[39m\n' + '[34mℹ cancelled 0[39m\n' + '[34mℹ skipped 1[39m\n' + '[34mℹ todo 0[39m\n' + '[34mℹ duration_ms *[39m\n' + '\n' + '[31m✖ failing tests:[39m\n' + '\n' + 'test at test/fixtures/test-runner/output/default_output.js:10:1\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + ' Error: fail\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:10:35[90m)[39m\n' + ' [90m at <node-internal-frames>[39m\n' + '\n' + 'test at test/fixtures/test-runner/output/default_output.js:13:5\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + ' Error: fail\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtur
x86_64-linux: with shared libraries: test/test-runner/test-output-abort.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines 'TAP version 13\n' + '# Subtest: promise timeout signal\n' + ' # Subtest: ok 1\n' + ' ok 1 - ok 1\n' + ' ---\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:11:7'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: not ok 2\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:12:7'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: not ok 3\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:13:7'\n" + " failureType: 'testAborted'\n" + " error: 'This operation was aborted'\n" + ' code: 20\n' + " name: 'AbortError'\n" + ' stack: |-\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:14:7'\n" + " failureType: 'testAborted'\n" + " error: 'This operation was aborted'\n" + ' code: 20\n' + " name: 'AbortError'\n" + ' stack: |-\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:15:7'\n" + " failureType: 'testAborted'\n" + " error: 'This operation was aborted'\n" + ' code: 20\n' + " name: 'AbortError'\n" + ' stack: |-\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:30:5'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: not ok 2\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:31:5'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: not ok 3\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:32:5'\n" + " failureType: 'testAborted'\n" + " error: 'This operation was aborted'\n" + ' code: 20\n' + " name: 'AbortError'\n" + ' stack: |-\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:33:5'\n" + " failureType: 'testAborted'\n" + " error: 'This operation was aborted'\n" + ' code: 20\n' + " name: 'AbortError'\n" + ' stack: |-\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:34:5'\n" + " failureType: 'testAborted'\n" + " error: '
x86_64-darwin: with shared libraries: test/test-runner/test-output-spec-reporter-cli.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ sync todo with expect fail (*ms) # TODO\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/output.js:125:11\n' + '✖ +sync throw fail (*ms)\n' + ' Error: thrown from subtest sync throw fail\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:125:11)\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:4'... 2922 more characters - 'test at test/fixtures/test-runne'... 2969 more characters at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-spec-reporter-cli.mjs:8:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ sync todo with expect fail (*ms) # TODO\n' + '﹣ sync skip expect fail (*ms) # SKIP\n' + '✔ sync pass todo (*ms) # TODO\n' + '✔ sync pass todo with message (*ms) # this is a passing todo\n' + '⚠ sync fail todo (*ms) # TODO\n' + '⚠ sync fail todo with message (*ms) # this is a failing todo\n' + '﹣ sync skip pass (*ms) # SKIP\n' + '﹣ sync skip pass with message (*ms) # this is skipped\n' + '✔ sync pass (*ms)\n' + 'ℹ this test should pass\n' + '✖ sync throw fail (*ms)\n' + '﹣ async skip pass (*ms) # SKIP\n' + '✔ async pass (*ms)\n' + '✖ async throw fail (*ms)\n' + '﹣ async skip fail (*ms) # SKIP\n' + '✖ async assertion fail (*ms)\n' + '✔ resolve pass (*ms)\n' + '✖ reject fail (*ms)\n' + '✔ unhandled rejection - passes but warns (*ms)\n' + '✔ async unhandled rejection - passes but warns (*ms)\n' + '✔ immediate throw - passes but warns (*ms)\n' + '✔ immediate reject - passes but warns (*ms)\n' + '✔ immediate resolve pass (*ms)\n' + '▶ subtest sync throw fail\n' + ' ✖ +sync throw fail (*ms)\n' + ' ℹ this subtest should make its parent test fail\n' + '✖ subtest sync throw fail (*ms)\n' + '✖ sync throw non-error fail (*ms)\n' + '▶ level 0a\n' + ' ✔ level 1a (*ms)\n' + ' ✔ level 1b (*ms)\n' + ' ✔ level 1c (*ms)\n' + ' ✔ level 1d (*ms)\n' + '✔ level 0a (*ms)\n' + '▶ top level\n' + ' ✔ +long running (*ms)\n' + ' ▶ +short running\n' + ' ✔ ++short running (*ms)\n' + ' ✔ +short running (*ms)\n' + '✔ top level (*ms)\n' + '✔ invalid subtest - pass but subtest fails (*ms)\n' + '﹣ sync skip option (*ms) # SKIP\n' + '﹣ sync skip option with message (*ms) # this is skipped\n' + '✖ sync skip option is false fail (*ms)\n' + '✔ <anonymous> (*ms)\n' + '✔ functionOnly (*ms)\n' + '✔ <anonymous> (*ms)\n' + '✔ test with only a name provided (*ms)\n' + '✔ <anonymous> (*ms)\n' + '﹣ <anonymous> (*ms) # SKIP\n' + '﹣ test with a name and options provided (*ms) # SKIP\n' + '��
x86_64-darwin: with shared libraries: test/test-runner/test-output-spec-reporter.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ sync todo with expect fail (*ms) # TODO\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/output.js:125:11\n' + '✖ +sync throw fail (*ms)\n' + ' Error: thrown from subtest sync throw fail\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:125:11)\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/output.js:334:11\n' + '✖ sync throw fails at first (*ms)\n' + + ' Error: thrown from subtest sync throw fails at first'... 2549 more characters - ' Error: thrown from subtest s'... 2596 more characters at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-spec-reporter.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '✔ sync expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ sync expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (method) (*ms) # EXPECTED FAILURE\n' + '✔ async expect fail (options) (*ms) # EXPECTED FAILURE\n' + '✔ sync todo with expect fail (*ms) # TODO\n' + '﹣ sync skip expect fail (*ms) # SKIP\n' + '✔ sync pass todo (*ms) # TODO\n' + '✔ sync pass todo with message (*ms) # this is a passing todo\n' + '⚠ sync fail todo (*ms) # TODO\n' + '⚠ sync fail todo with message (*ms) # this is a failing todo\n' + '﹣ sync skip pass (*ms) # SKIP\n' + '﹣ sync skip pass with message (*ms) # this is skipped\n' + '✔ sync pass (*ms)\n' + 'ℹ this test should pass\n' + '✖ sync throw fail (*ms)\n' + '﹣ async skip pass (*ms) # SKIP\n' + '✔ async pass (*ms)\n' + '✖ async throw fail (*ms)\n' + '﹣ async skip fail (*ms) # SKIP\n' + '✖ async assertion fail (*ms)\n' + '✔ resolve pass (*ms)\n' + '✖ reject fail (*ms)\n' + '✔ unhandled rejection - passes but warns (*ms)\n' + '✔ async unhandled rejection - passes but warns (*ms)\n' + '✔ immediate throw - passes but warns (*ms)\n' + '✔ immediate reject - passes but warns (*ms)\n' + '✔ immediate resolve pass (*ms)\n' + '▶ subtest sync throw fail\n' + ' ✖ +sync throw fail (*ms)\n' + ' ℹ this subtest should make its parent test fail\n' + '✖ subtest sync throw fail (*ms)\n' + '✖ sync throw non-error fail (*ms)\n' + '▶ level 0a\n' + ' ✔ level 1a (*ms)\n' + ' ✔ level 1b (*ms)\n' + ' ✔ level 1c (*ms)\n' + ' ✔ level 1d (*ms)\n' + '✔ level 0a (*ms)\n' + '▶ top level\n' + ' ✔ +long running (*ms)\n' + ' ▶ +short running\n' + ' ✔ ++short running (*ms)\n' + ' ✔ +short running (*ms)\n' + '✔ top level (*ms)\n' + '✔ invalid subtest - pass but subtest fails (*ms)\n' + '﹣ sync skip option (*ms) # SKIP\n' + '﹣ sync skip option with message (*ms) # this is skipped\n' + '✖ sync skip option is false fail (*ms)\n' + '✔ <anonymous> (*ms)\n' + '✔ functionOnly (*ms)\n' + '✔ <anonymous> (*ms)\n' + '✔ test with o
x86_64-darwin: with shared libraries: test/test-runner/test-output-output-cli.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines 'TAP version 13\n' + '# Subtest: sync expect fail (method)\n' + 'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/output.js:125:11'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from subtest sync throw fail'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' + ... ' ...\n' + + '# Subtest: callback t is this in test\n' + + 'ok '... 11601 more characters - '# Subtest: cal'... 11708 more characters at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-output-cli.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: 'TAP version 13\n' + '# Subtest: sync expect fail (method)\n' + 'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync expect fail (options)\n' + 'ok 2 - sync expect fail (options) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: async expect fail (method)\n' + 'ok 3 - async expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: async expect fail (options)\n' + 'ok 4 - async expect fail (options) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync todo with expect fail\n' + 'ok 5 - sync todo with expect fail # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync skip expect fail\n' + 'ok 6 - sync skip expect fail # SKIP\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync pass todo\n' + 'ok 7 - sync pass todo # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync pass todo with message\n' + 'ok 8 - sync pass todo with message # TODO this is a passing todo\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync fail todo\n' + 'not ok 9 - sync fail todo # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/output.js:40:1'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from sync fail todo'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:42:9)\n' + ' <node-internal-frames>\n' + ' ...\n' + '# Subtest: sync fail todo with message\n' + 'not ok 10 - sync fail todo with message # TODO this is a failing todo\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/output.js:45:1'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from sync fail todo with message'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:47:9)\n' + ' <node
x86_64-darwin: with shared libraries: test/test-runner/test-output-output.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines 'TAP version 13\n' + '# Subtest: sync expect fail (method)\n' + 'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/output.js:125:11'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from subtest sync throw fail'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:127:11)\n' + ... ' ...\n' + + '# Subtest: callback t is this in test\n' + + 'ok '... 11252 more characters - '# Subtest: cal'... 11359 more characters at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-output.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: 'TAP version 13\n' + '# Subtest: sync expect fail (method)\n' + 'ok 1 - sync expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync expect fail (options)\n' + 'ok 2 - sync expect fail (options) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: async expect fail (method)\n' + 'ok 3 - async expect fail (method) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: async expect fail (options)\n' + 'ok 4 - async expect fail (options) # EXPECTED FAILURE\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync todo with expect fail\n' + 'ok 5 - sync todo with expect fail # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync skip expect fail\n' + 'ok 6 - sync skip expect fail # SKIP\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync pass todo\n' + 'ok 7 - sync pass todo # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync pass todo with message\n' + 'ok 8 - sync pass todo with message # TODO this is a passing todo\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + '# Subtest: sync fail todo\n' + 'not ok 9 - sync fail todo # TODO\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/output.js:40:1'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from sync fail todo'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:42:9)\n' + ' <node-internal-frames>\n' + ' ...\n' + '# Subtest: sync fail todo with message\n' + 'not ok 10 - sync fail todo with message # TODO this is a failing todo\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/output.js:45:1'\n" + " failureType: 'testCodeFailure'\n" + " error: 'thrown from sync fail todo with message'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/output.js:47:9)\n' + ' <node-int
x86_64-darwin: with shared libraries: test/test-runner/test-output-hooks-spec-reporter.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '- after() called\n' + '▶ describe hooks\n' + ' ✔ 1 (*ms)\n' + ' ✔ 2 (*ms)\n' + ' ▶ nested\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:172:11\n' + '✖ 1 (*ms)\n' + ' Error: before\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:5)\n' + ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:173:11\n' + '✖ 2 (*ms)\n' + ' Error: before\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:5)\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:197:11\n' + '✖ 1 (*ms)\n' + ' Error: beforeEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:196:30)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:197:11)\n' + - ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:198:11\n' + '✖ 2 (*ms)\n' + ' Error: beforeEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:196:30)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:198:11)\n' + - ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:204:11\n' + '✖ 1 (*ms)\n' + ' Error: afterEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:203:29)\n' + ' at <node-internal-frames>\n' + ' at async TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:204:3)\n' + ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:205:11\n' + '✖ 2 (*ms)\n' + ' Error: afterEach\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:203:29)\n' + ' at <node-internal-frames>\n' + ' at async TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:205:3)\n' + ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:212:11\n' + '✖ 1 (*ms)\n' + ' Error: test\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:212:35)\n' + ' at <node-internal-frames>\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:212:11)\n' + ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/hooks.js:232:11\n' + '✖ 1 (*ms)\n' + ' Error: test\n' + ' at TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:226:15)\n' + ' at <node-internal-frames>\n' + '\n' + + 'test at node:internal/test_runner/test:381:49\n' + -
x86_64-darwin: with shared libraries: test/test-runner/test-output-hooks.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '- after() called\n' + 'TAP version 13\n' + '# Subtest: describe hooks\n' + ' # Subtest: 1\n' + ' ok 1 - 1\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:172:11'\n" + " failureType: 'hookFailed'\n" + " error: 'before'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:173:11'\n" + " failureType: 'hookFailed'\n" + " error: 'before'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' stack: |-\n' + ' TestContext.<anonymous> (<project-root>/test/fixtures/test-runner/output/hooks.js:171:26)\n' + ... '# Subtest: t.before throws - no subtests\n' + + 'not ok 14 - t.before throws - no subtests\n' + + ' ---\n' + + ' duratio'... 8766 more characters - 'not o'... 9088 more characters at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-hooks.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '- after() called\n' + 'TAP version 13\n' + '# Subtest: describe hooks\n' + ' # Subtest: 1\n' + ' ok 1 - 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: 2\n' + ' ok 2 - 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: nested\n' + ' # Subtest: nested 1\n' + ' ok 1 - nested 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' # Subtest: nested 2\n' + ' ok 2 - nested 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + ' ...\n' + ' 1..2\n' + ' ok 3 - nested\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + ' 1..3\n' + 'ok 1 - describe hooks\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + '# Subtest: describe hooks - no subtests\n' + 'ok 2 - describe hooks - no subtests\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'suite'\n" + ' ...\n' + '# Subtest: before throws\n' + ' # Subtest: 1\n' + ' not ok 1 - 1\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:74:3'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: 2\n' + ' not ok 2 - 2\n' + ' ---\n' + ' duration_ms: *\n' + " type: 'test'\n" + " location: '<project-root>/test/fixtures/test-runner/output/hooks.js:75:3'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' 1..2\n' + 'not ok 3 - before throws\n' + ' ---\n' + ' duration_ms: *\
x86_64-darwin: with shared libraries: test/test-runner/test-output-default-output.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines '[32m✔ should pass [90m(*ms)[39m[39m\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + '[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' + '▶ parent\n' + ' [31m✖ should fail [90m(*ms)[39m[39m\n' + ... '\n' + + 'test at node:internal/test_runner/test:381:49\n' + - 'test at test/fixtures/test-runner/output/default_output.js:13:5\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + ' Error: fail\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:39[90m)[39m\n' + ' [90m at <node-internal-frames>[39m\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:5[90m)[39m\n' + at assertSnapshot (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:173:12) at async spawnAndAssert (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/common/assertSnapshot.js:208:3) at async file:///Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/test-runner/test-output-default-output.mjs:7:1 { generatedMessage: true, code: 'ERR_ASSERTION', actual: '[32m✔ should pass [90m(*ms)[39m[39m\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + '[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' + '▶ parent\n' + ' [31m✖ should fail [90m(*ms)[39m[39m\n' + ' [32m✔ should pass but parent fail [90m(*ms)[39m[39m\n' + '[31m✖ parent [90m(*ms)[39m[39m\n' + '[34mℹ tests 6[39m\n' + '[34mℹ suites 0[39m\n' + '[34mℹ pass 2[39m\n' + '[34mℹ fail 3[39m\n' + '[34mℹ cancelled 0[39m\n' + '[34mℹ skipped 1[39m\n' + '[34mℹ todo 0[39m\n' + '[34mℹ duration_ms *[39m\n' + '\n' + '[31m✖ failing tests:[39m\n' + '\n' + 'test at test/fixtures/test-runner/output/default_output.js:10:1\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + ' Error: fail\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:10:35[90m)[39m\n' + ' [90m at <node-internal-frames>[39m\n' + '\n' + 'test at node:internal/test_runner/test:381:49\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + ' Error: fail\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:39[90m)[39m\n' + ' [90m at <node-internal-frames>[39m\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:13:5[90m)[39m\n' + ' [90m at <node-internal-frames>[39m\n', expected: '[32m✔ should pass [90m(*ms)[39m[39m\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + '[90m﹣ should skip [90m(*ms)[39m # SKIP[39m\n' + '▶ parent\n' + ' [31m✖ should fail [90m(*ms)[39m[39m\n' + ' [32m✔ should pass but parent fail [90m(*ms)[39m[39m\n' + '[31m✖ parent [90m(*ms)[39m[39m\n' + '[34mℹ tests 6[39m\n' + '[34mℹ suites 0[39m\n' + '[34mℹ pass 2[39m\n' + '[34mℹ fail 3[39m\n' + '[34mℹ cancelled 0[39m\n' + '[34mℹ skipped 1[39m\n' + '[34mℹ todo 0[39m\n' + '[34mℹ duration_ms *[39m\n' + '\n' + '[31m✖ failing tests:[39m\n' + '\n' + 'test at test/fixtures/test-runner/output/default_output.js:10:1\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + ' Error: fail\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fixtures/test-runner/output/default_output.js:10:35[90m)[39m\n' + ' [90m at <node-internal-frames>[39m\n' + '\n' + 'test at test/fixtures/test-runner/output/default_output.js:13:5\n' + '[31m✖ should fail [90m(*ms)[39m[39m\n' + ' Error: fail\n' + ' at TestContext.<anonymous> [90m(<project-root>/[39mtest/fix
x86_64-darwin: with shared libraries: test/test-runner/test-output-abort.mjs#L0
--- stderr --- node:internal/modules/run_main:107 triggerUncaughtException( ^ AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected ... Skipped lines 'TAP version 13\n' + '# Subtest: promise timeout signal\n' + ' # Subtest: ok 1\n' + ' ok 1 - ok 1\n' + ' ---\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:11:7'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: not ok 2\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:12:7'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: not ok 3\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:13:7'\n" + " failureType: 'testAborted'\n" + " error: 'This operation was aborted'\n" + ' code: 20\n' + " name: 'AbortError'\n" + ' stack: |-\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:14:7'\n" + " failureType: 'testAborted'\n" + " error: 'This operation was aborted'\n" + ' code: 20\n' + " name: 'AbortError'\n" + ' stack: |-\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:15:7'\n" + " failureType: 'testAborted'\n" + " error: 'This operation was aborted'\n" + ' code: 20\n' + " name: 'AbortError'\n" + ' stack: |-\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:30:5'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: not ok 2\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:31:5'\n" + " failureType: 'cancelledByParent'\n" + " error: 'test did not finish before its parent and was cancelled'\n" + " code: 'ERR_TEST_FAILURE'\n" + ' ...\n' + ' # Subtest: not ok 3\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:32:5'\n" + " failureType: 'testAborted'\n" + " error: 'This operation was aborted'\n" + ' code: 20\n' + " name: 'AbortError'\n" + ' stack: |-\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:33:5'\n" + " failureType: 'testAborted'\n" + " error: 'This operation was aborted'\n" + ' code: 20\n' + " name: 'AbortError'\n" + ' stack: |-\n' + ... " type: 'test'\n" + + " location: 'node:internal/test_runner/test:381:49'\n" + - " location: '<project-root>/test/fixtures/test-runner/output/abort.js:34:5'\n" + " failureType: 'testAborted'\n" + " error: '
x86_64-darwin: with shared libraries: test/parallel/test-runner-test-rerun-failures.js#L87
--- stdout --- Test failure: 'test should pass on third rerun' Location: test/parallel/test-runner-test-rerun-failures.js:78:1 AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal: + actual - expected ... Skipped lines [ { + 'node:internal/test_runner/test:381:49': { + name: '2 levels deep', - 'test/fixtures/test-runner/rerun.js:17:3': { - name: 'ambiguous (expectedAttempts=0)', passed_on_attempt: 0 }, + 'node:internal/test_runner/test:381:49:(1)': { - 'test/fixtures/test-runner/rerun.js:29:13': { name: 'nested', passed_on_attempt: 0 }, + 'test/fixtures/test-runner/rerun.js:17:3': { + name: 'ambiguous (expectedAttempts=0)', - 'test/fixtures/test-runner/rerun.js:30:16': { - name: '2 levels deep', passed_on_attempt: 0 }, - 'test/fixtures/test-runner/rerun.js:30:16:(1)': { - name: '2 levels deep', - passed_on_attempt: 0 - }, - 'test/fixtures/test-runner/rerun.js:35:13': { - name: 'ok', - passed_on_attempt: 0 - }, - 'test/fixtures/test-runner/rerun.js:35:13:(1)': { - name: 'ok', - passed_on_attempt: 0 - }, 'test/fixtures/test-runner/rerun.js:39:1': { name: 'nested ambiguous (expectedAttempts=0)', passed_on_attempt: 0 }, 'test/fixtures/test-runner/rerun.js:43:1': { ... }, - 'test/fixtures/test-runner/rerun.js:45:13': { - name: 'nested', - passed_on_attempt: 0 - }, 'test/fixtures/test-runner/rerun.js:47:3': { name: 'a', passed_on_attempt: 0 }, 'test/fixtures/test-runner/rerun.js:9:1': { at TestContext.<anonymous> (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/parallel/test-runner-test-rerun-failures.js:87:10) at async Test.run (node:internal/test_runner/test:1217:7) at async startSubtestAfterBootstrap (node:internal/test_runner/harness:385:3) { generatedMessage: true, code: 'ERR_ASSERTION', actual: [Array], expected: [Array], operator: 'deepStrictEqual', diff: 'simple' } Test failure: 'test should pass on third rerun with `--test`' Location: test/parallel/test-runner-test-rerun-failures.js:107:1 AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal: + actual - expected ... Skipped lines [ { + 'node:internal/test_runner/test:381:49': { + name: '2 levels deep', - 'test/fixtures/test-runner/rerun.js:17:3': { - name: 'ambiguous (expectedAttempts=0)', passed_on_attempt: 0 }, + 'node:internal/test_runner/test:381:49:(1)': { - 'test/fixtures/test-runner/rerun.js:29:13': { name: 'nested', passed_on_attempt: 0 }, + 'test/fixtures/test-runner/rerun.js:17:3': { + name: 'ambiguous (expectedAttempts=0)', - 'test/fixtures/test-runner/rerun.js:30:16': { - name: '2 levels deep', passed_on_attempt: 0 }, - 'test/fixtures/test-runner/rerun.js:30:16:(1)': { - name: '2 levels deep', - passed_on_attempt: 0 - }, - 'test/fixtures/test-runner/rerun.js:35:13': { - name: 'ok', - passed_on_attempt: 0 - }, - 'test/fixtures/test-runner/rerun.js:35:13:(1)': { - name: 'ok', - passed_on_attempt: 0 - }, 'test/fixtures/test-runner/rerun.js:39:1': { name: 'nested ambiguous (expectedAttempts=0)', passed_on_attempt: 0 }, 'test/fixtures/test-runner/rerun.js:43:1': { ... }, - 'test/fixtures/test-runner/rerun.js:45:13': { - name: 'nested', - passed_on_attempt: 0 - }, 'test/fixtures/test-runner/rerun.js:47:3': { name: 'a', passed_on_attempt: 0 }, 'test/fixtures/test-runner/rerun.js:9:1': { at TestContext.<anonymous> (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/parallel/test-runner-test-rerun-failures.js:116:10) at async Test.run (node:internal/test_runner/test:1217:7) at async Test.processPendingSubtests (node:internal/t
x86_64-darwin: with shared libraries: test/parallel/test-runner-reporters.js#L114
--- stdout --- Test failure: 'should support a 'js' file as a custom reporter' Location: test/parallel/test-runner-reporters.js:109:5 AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected + 'node:internal/test_runner/harness:129\n' + + ' throw err;\n' + + ' ^\n' + + '\n' + + 'AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:\n' + + '+ actual - expected\n' + + '\n' + + "+ 'node:internal/test_runner/test'\n" + + "- '/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/fixtures/test-runner/reporters.js'\n" + + '\n' + + ' at customReporter (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/fixtures/test-runner/custom_reporters/custom.js:8:14)\n' + + ' at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' + + ' at async nextAsync (node:internal/streams/from:182:33)\n' + + "Emitted 'error' event on Duplex instance at:\n" + + ' at emitErrorNT (node:internal/streams/destroy:170:8)\n' + + ' at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n' + + ' at process.processTicksAndRejections (node:internal/process/task_queues:90:21) {\n' + + ' generatedMessage: true,\n' + + " code: 'ERR_ASSERTION',\n" + + " actual: 'node:internal/test_runner/test',\n" + + " expected: '/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/fixtures/test-runner/reporters.js',\n" + + " operator: 'strictEqual',\n" + + " diff: 'simple'\n" + + '}\n' + + '\n' + + 'Node.js v26.0.0-pre\n' - '' at TestContext.<anonymous> (/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/parallel/test-runner-reporters.js:114:14) at Test.runInAsyncScope (node:async_hooks:226:14) at Test.run (node:internal/test_runner/test:1210:25) at Test.start (node:internal/test_runner/test:1105:17) at node:internal/test_runner/test:1626:71 at node:internal/per_context/primordials:466:82 at new Promise (<anonymous>) at new SafePromise (node:internal/per_context/primordials:435:3) at node:internal/per_context/primordials:466:9 at Array.map (<anonymous>) { generatedMessage: true, code: 'ERR_ASSERTION', actual: 'node:internal/test_runner/harness:129\n' + ' throw err;\n' + ' ^\n' + '\n' + 'AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:\n' + '+ actual - expected\n' + '\n' + "+ 'node:internal/test_runner/test'\n" + "- '/Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/fixtures/test-runner/reporters.js'\n" + '\n' + '...', expected: '', operator: 'strictEqual', diff: 'simple' } Command: out/Release/node --test-reporter=./test/common/test-error-reporter.js --test-reporter-destination=stdout /Users/runner/work/_temp/node-v26.0.0-nightly2026-03-15271ead204c-slim/test/parallel/test-runner-reporters.js
aarch64-linux: with shared libraries
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: cachix/cachix-action@3ba601ff5bbb07c7220846facfa2cd81eeee15a1. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
aarch64-darwin: with shared libraries
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: cachix/cachix-action@3ba601ff5bbb07c7220846facfa2cd81eeee15a1. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
x86_64-linux: with shared libraries
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: cachix/cachix-action@3ba601ff5bbb07c7220846facfa2cd81eeee15a1. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
x86_64-darwin: with shared libraries
Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: cachix/cachix-action@3ba601ff5bbb07c7220846facfa2cd81eeee15a1. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026. Please check if updated versions of these actions are available that support Node.js 24. To opt into Node.js 24 now, set the FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the runner or in your workflow file. Once Node.js 24 becomes the default, you can temporarily opt out by setting ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/

Artifacts

Produced during runtime
Name Size Digest
tarballs
48.3 MB
sha256:e856d4416e98c0bd780fb041a76cb1ba3035dd4b33f02ffea503113192102509