Skip to content

Commit 9a1ff1b

Browse files
committed
handle non-json output in stdout
1 parent f23e205 commit 9a1ff1b

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

src/bootstrap/render_tests.rs

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -105,12 +105,19 @@ impl<'a> Renderer<'a> {
105105
break;
106106
}
107107

108-
self.render_message(match serde_json::from_str(&line) {
109-
Ok(parsed) => parsed,
110-
Err(err) => {
111-
panic!("failed to parse libtest json output; error: {err}, line: {line:?}");
112-
}
113-
});
108+
let trimmed = line.trim();
109+
if trimmed.starts_with("{") && trimmed.ends_with("}") {
110+
self.render_message(match serde_json::from_str(&trimmed) {
111+
Ok(parsed) => parsed,
112+
Err(err) => {
113+
panic!("failed to parse libtest json output; error: {err}, line: {line:?}");
114+
}
115+
});
116+
} else {
117+
// Handle non-JSON output, for example when --nocapture is passed.
118+
print!("{line}");
119+
let _ = std::io::stdout().flush();
120+
}
114121
}
115122
}
116123

0 commit comments

Comments
 (0)