Log PowerShell raw output preview in tests

This commit is contained in:
Esdras Renan 2025-10-20 22:18:44 -03:00
parent 8312330c2e
commit 680d49ddc5

View file

@ -759,6 +759,18 @@ fn collect_windows_extended() -> serde_json::Value {
}
}
fn preview_base64(bytes: &[u8], max_len: usize) -> String {
if bytes.is_empty() {
return "<empty>".to_string();
}
let prefix = if bytes.len() > max_len {
&bytes[..max_len]
} else {
bytes
};
format!("base64:{}...", STANDARD.encode(prefix))
}
fn encode_ps_script(script: &str) -> String {
let mut bytes = Vec::with_capacity(script.len() * 2);
for unit in script.encode_utf16() {
@ -790,13 +802,19 @@ fn collect_windows_extended() -> serde_json::Value {
let preview = txt.chars().take(512).collect::<String>();
eprintln!("[collect_windows_extended] stdout `{cmd}` => {preview}");
} else {
eprintln!("[collect_windows_extended] stdout `{cmd}` => <vazio>");
let preview = preview_base64(&out.stdout, 512);
eprintln!(
"[collect_windows_extended] stdout `{cmd}` => <não decodificado {preview}>"
);
}
if !out.stderr.is_empty() {
if let Some(err) = decode_powershell_text(&out.stderr) {
eprintln!("[collect_windows_extended] stderr `{cmd}` => {err}");
} else {
eprintln!("[collect_windows_extended] stderr `{cmd}` => <binário>");
let preview = preview_base64(&out.stderr, 512);
eprintln!(
"[collect_windows_extended] stderr `{cmd}` => <não decodificado {preview}>"
);
}
}
}