Skip to content

Commit

Permalink
test: fix invalid output TAP if there newline in test name
Browse files Browse the repository at this point in the history
PR-URL: #45742
Fixes: #45396
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
  • Loading branch information
pulkit-30 authored and targos committed Dec 13, 2022
1 parent 5d7cd36 commit 5c4475d
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 8 deletions.
12 changes: 9 additions & 3 deletions lib/internal/test_runner/tap_stream.js
Expand Up @@ -131,9 +131,15 @@ class TapStream extends Readable {

// In certain places, # and \ need to be escaped as \# and \\.
function tapEscape(input) {
return StringPrototypeReplaceAll(
StringPrototypeReplaceAll(input, '\\', '\\\\'), '#', '\\#'
);
let result = StringPrototypeReplaceAll(input, '\\', '\\\\');
result = StringPrototypeReplaceAll(result, '#', '\\#');
result = StringPrototypeReplaceAll(result, '\b', '\\b');
result = StringPrototypeReplaceAll(result, '\f', '\\f');
result = StringPrototypeReplaceAll(result, '\t', '\\t');
result = StringPrototypeReplaceAll(result, '\n', '\\n');
result = StringPrototypeReplaceAll(result, '\r', '\\r');
result = StringPrototypeReplaceAll(result, '\v', '\\v');
return result;
}

function jsToYaml(indent, name, value) {
Expand Down
2 changes: 1 addition & 1 deletion test/message/test_runner_output.js
Expand Up @@ -213,7 +213,7 @@ test('test with a name and options provided', { skip: true });
test({ skip: true }, function functionAndOptions() {});

// A test whose description needs to be escaped.
test('escaped description \\ # \\#\\');
test('escaped description \\ # \\#\\ \n \t \f \v \b \r');

// A test whose skip message needs to be escaped.
test('escaped skip message', { skip: '#skip' });
Expand Down
8 changes: 4 additions & 4 deletions test/message/test_runner_output.out
Expand Up @@ -127,9 +127,9 @@ not ok 13 - async assertion fail
failureType: 'testCodeFailure'
error: |-
Expected values to be strictly equal:

true !== false

code: 'ERR_ASSERTION'
expected: false
actual: true
Expand Down Expand Up @@ -353,8 +353,8 @@ ok 36 - functionAndOptions # SKIP
---
duration_ms: *
...
# Subtest: escaped description \\ \# \\\#\\
ok 37 - escaped description \\ \# \\\#\\
# Subtest: escaped description \\ \# \\\#\\ \n \t \f \v \b \r
ok 37 - escaped description \\ \# \\\#\\ \n \t \f \v \b \r
---
duration_ms: *
...
Expand Down

0 comments on commit 5c4475d

Please sign in to comment.