Skip to content

test runner regression in 19.2.0 #46508

@vhiairrassary

Description

@vhiairrassary

Version

19.2.0

Platform

Darwin Victors-MacBook-Pro.local 22.2.0 Darwin Kernel Version 22.2.0: Fri Nov 11 02:08:47 PST 2022; root:xnu-8792.61.2~4/RELEASE_X86_64 x86_64

Subsystem

test runner

How to reproduce

Considering a file test.txt is available in the current directory, then the following script does not work anymore starting from 19.2.0 (it crashed on byteLength access):

const { readFile } = require("node:fs/promises");
const { test } = require("node:test");

test("test", async () => {
  const buffer = await readFile("./test.txt");
  console.log(buffer);
  console.log(buffer.byteLength);
});

Works in 19.1.0:

> nodenv shell 19.1.0 && node -v && node --test main.js
v19.1.0
TAP version 13
# Subtest: [redacted]/tmp/main.js
ok 1 - [redacted]/main.js
  ---
  duration_ms: 86.154689
  ...
1..1
# tests 1
# pass 1
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 89.07115

Does not work in 19.2.0:

> nodenv shell 19.2.0 && node -v && node --test main.js
v19.2.0
TAP version 13
# Subtest: [redacted]/tmp/main.js
    # <Buffer >
not ok 1 - [redacted]/tmp/main.js
  ---
  duration_ms: 69.710577
  failureType: 'uncaughtException'
  error: "Cannot read properties of undefined (reading 'value')"
  code: 'ERR_TEST_FAILURE'
  stack: |-
    #Plan (node:internal/test_runner/tap_parser:647:20)
    #TAPDocument (node:internal/test_runner/tap_parser:546:28)
    #parseChunk (node:internal/test_runner/tap_parser:268:35)
    #parseTokens (node:internal/test_runner/tap_parser:243:23)
    TapParser.parse (node:internal/test_runner/tap_parser:103:24)
    TapParser._transform (node:internal/test_runner/tap_parser:181:10)
    Transform._write (node:internal/streams/transform:175:8)
    writeOrBuffer (node:internal/streams/writable:392:12)
    _write (node:internal/streams/writable:333:10)
    Writable.write (node:internal/streams/writable:337:10)
  ...
1..1
# tests 1
# pass 0
# fail 1
# cancelled 0
# skipped 0
# todo 0
# duration_ms 75.363203

It does not work with the latest available version (19.6.0)

v19.6.0
TAP version 13
# Subtest: [redacted]/tmp/main.js
    # <Buffer >
not ok 1 - [redacted]/tmp/main.js
  ---
  duration_ms: 62.524259
  failureType: 'uncaughtException'
  error: "Cannot read properties of undefined (reading 'value')"
  code: 'ERR_TEST_FAILURE'
  stack: |-
    #Plan (node:internal/test_runner/tap_parser:651:20)
    #TAPDocument (node:internal/test_runner/tap_parser:550:28)
    #parseChunk (node:internal/test_runner/tap_parser:274:35)
    #parseTokens (node:internal/test_runner/tap_parser:249:23)
    TapParser.parse (node:internal/test_runner/tap_parser:105:24)
    TapParser._transform (node:internal/test_runner/tap_parser:187:10)
    Transform._write (node:internal/streams/transform:175:8)
    writeOrBuffer (node:internal/streams/writable:392:12)
    _write (node:internal/streams/writable:333:10)
    Writable.write (node:internal/streams/writable:337:10)
  ...
1..1
# tests 1
# pass 0
# fail 1
# cancelled 0
# skipped 0
# todo 0
# duration_ms 71.162296

Additional information

The following script works with all tested version (19.1.0, 19.2.0 & 19.6.0) when not using the --test flag:

const { readFile } = require("node:fs/promises");

(async () => {
  const buffer = await readFile("./test.txt");
  console.log(buffer);
  console.log(buffer.byteLength);
})()

Metadata

Metadata

Assignees

No one assigned

    Labels

    test_runnerIssues and PRs related to the test runner subsystem.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions