Skip to content

Commit c7bb73c

Browse files
authored
fix(test): Cleanup warning output from generate.js (#291)
* fix(test): Cleanup warning output from generate.js * Only overwrite warnings when stderr is a tty * Format file * Use more readable writeWarning logic
1 parent 351d499 commit c7bb73c

File tree

1 file changed

+21
-2
lines changed

1 file changed

+21
-2
lines changed

test/generate.js

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,19 @@ function cmpString(a, b) {
152152
return 0
153153
}
154154

155+
let lastWarning = ''
156+
let warningMatchCount = 0
157+
function writeWarning(message) {
158+
if (process.stderr.isTTY && lastWarning === message) {
159+
process.stderr.write(`\r[warning] ${message} [${++warningMatchCount}]`)
160+
} else {
161+
if (lastWarning !== '') process.stderr.write('\n')
162+
process.stderr.write(`[warning] ${message}`)
163+
lastWarning = message
164+
warningMatchCount = 0
165+
}
166+
}
167+
155168
process.stdin
156169
.pipe(ndjson.parse())
157170
.on('data', (entry) => {
@@ -169,7 +182,10 @@ process.stdin
169182
if (entry._type === 'test') {
170183
const supported = entry.features.every((f) => SUPPORTED_FEATURES.has(f))
171184
if (!supported) {
172-
process.stderr.write(`[warning] Skipping unsupported test: ${entry.name}\n`)
185+
const missing = entry.features.filter((f) => !SUPPORTED_FEATURES.has(f))
186+
writeWarning(
187+
`Skipping unsupported test: ${entry.name} (missing ${JSON.stringify(missing)})`,
188+
)
173189
return
174190
}
175191

@@ -182,7 +198,7 @@ process.stdin
182198

183199
if (/perf/.test(entry.filename)) return
184200
if (isDisabled(entry.name)) {
185-
process.stderr.write(`[warning] Skipping disabled test: ${entry.name}\n`)
201+
writeWarning(`Skipping disabled test: ${entry.name}`)
186202
return
187203
}
188204

@@ -208,5 +224,8 @@ process.stdin
208224
}
209225
})
210226
.on('end', () => {
227+
if (lastWarning !== '') {
228+
process.stderr.write('\n')
229+
}
211230
closeStack()
212231
})

0 commit comments

Comments
 (0)