Skip to content

Commit 8c949bc

Browse files
cjihrigalexfernandez
authored andcommitted
test_runner: add test location for FileTests
This commit adds the previously missing test location for FileTest tests. Fixes: nodejs#49926 Fixes: nodejs#49927 PR-URL: nodejs#49999 Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Chemi Atlow <chemi@atlow.co.il> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
1 parent 6149fb3 commit 8c949bc

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

lib/internal/test_runner/runner.js

+12
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ const {
2929

3030
const { spawn } = require('child_process');
3131
const { finished } = require('internal/streams/end-of-stream');
32+
const { resolve } = require('path');
3233
const { DefaultDeserializer, DefaultSerializer } = require('v8');
3334
// TODO(aduh95): switch to internal/readline/interface when backporting to Node.js 16.x is no longer a concern.
3435
const { createInterface } = require('readline');
@@ -139,6 +140,17 @@ class FileTest extends Test {
139140
#rawBufferSize = 0;
140141
#reportedChildren = 0;
141142
failedSubtests = false;
143+
144+
constructor(options) {
145+
super(options);
146+
this.loc ??= {
147+
__proto__: null,
148+
line: 1,
149+
column: 1,
150+
file: resolve(this.name),
151+
};
152+
}
153+
142154
#skipReporting() {
143155
return this.#reportedChildren > 0 && (!this.error || this.error.failureType === kSubtestsFailed);
144156
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
'use strict';
2+
const common = require('../common');
3+
const fixtures = require('../common/fixtures');
4+
const { strictEqual } = require('node:assert');
5+
const { relative } = require('node:path');
6+
const { run } = require('node:test');
7+
const fixture = fixtures.path('test-runner', 'never_ending_sync.js');
8+
const relativePath = relative(process.cwd(), fixture);
9+
const stream = run({
10+
files: [relativePath],
11+
timeout: common.platformTimeout(100),
12+
});
13+
14+
stream.on('test:fail', common.mustCall((result) => {
15+
strictEqual(result.name, relativePath);
16+
strictEqual(result.details.error.failureType, 'testTimeoutFailure');
17+
strictEqual(result.line, 1);
18+
strictEqual(result.column, 1);
19+
strictEqual(result.file, fixture);
20+
}));

0 commit comments

Comments
 (0)