Skip to content

Commit 4859786

Browse files
authored
Rollup merge of #77890 - gilescope:welformed-json-output-from-libtest, r=KodrAus
Fixing escaping to ensure generation of welformed json. doc tests' json name have a filename in them. When json test output is asked for on windows currently produces invalid json. Tracking issue for json test output: #49359
2 parents da3e41e + 0c32e81 commit 4859786

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

Diff for: library/test/src/formatters/json.rs

+10-4
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,12 @@ impl<T: Write> JsonFormatter<T> {
3939
stdout: Option<Cow<'_, str>>,
4040
extra: Option<&str>,
4141
) -> io::Result<()> {
42+
// A doc test's name includes a filename which must be escaped for correct json.
4243
self.write_message(&*format!(
4344
r#"{{ "type": "{}", "name": "{}", "event": "{}""#,
44-
ty, name, evt
45+
ty,
46+
EscapedString(name),
47+
evt
4548
))?;
4649
if let Some(exec_time) = exec_time {
4750
self.write_message(&*format!(r#", "exec_time": "{}""#, exec_time))?;
@@ -67,7 +70,7 @@ impl<T: Write> OutputFormatter for JsonFormatter<T> {
6770
fn write_test_start(&mut self, desc: &TestDesc) -> io::Result<()> {
6871
self.writeln_message(&*format!(
6972
r#"{{ "type": "test", "event": "started", "name": "{}" }}"#,
70-
desc.name
73+
EscapedString(desc.name.as_slice())
7174
))
7275
}
7376

@@ -140,7 +143,10 @@ impl<T: Write> OutputFormatter for JsonFormatter<T> {
140143
\"name\": \"{}\", \
141144
\"median\": {}, \
142145
\"deviation\": {}{} }}",
143-
desc.name, median, deviation, mbps
146+
EscapedString(desc.name.as_slice()),
147+
median,
148+
deviation,
149+
mbps
144150
);
145151

146152
self.writeln_message(&*line)
@@ -151,7 +157,7 @@ impl<T: Write> OutputFormatter for JsonFormatter<T> {
151157
fn write_timeout(&mut self, desc: &TestDesc) -> io::Result<()> {
152158
self.writeln_message(&*format!(
153159
r#"{{ "type": "test", "event": "timeout", "name": "{}" }}"#,
154-
desc.name
160+
EscapedString(desc.name.as_slice())
155161
))
156162
}
157163

0 commit comments

Comments
 (0)