Fail the task if parsing asan_log files fail (#351)

This differentiates parsing ASAN log parse failures from ASAN logs not existing, fixing the first part of #343.
This commit is contained in:
bmc-msft
2020-12-01 16:10:59 -05:00
committed by GitHub
parent 7f97c142ed
commit aef511efe8

View File

@ -7,6 +7,8 @@ use regex::Regex;
use std::{collections::HashMap, hash::BuildHasher, path::Path}; use std::{collections::HashMap, hash::BuildHasher, path::Path};
use tokio::{fs, stream::StreamExt}; use tokio::{fs, stream::StreamExt};
const ASAN_LOG_TRUNCATE_SIZE: usize = 4096;
#[derive(Clone, Debug)] #[derive(Clone, Debug)]
pub struct AsanLog { pub struct AsanLog {
text: String, text: String,
@ -136,8 +138,8 @@ pub async fn check_asan_string(mut data: String) -> Result<Option<AsanLog>> {
if asan.is_some() { if asan.is_some() {
return Ok(asan); return Ok(asan);
} else { } else {
if data.len() > 1024 { if data.len() > ASAN_LOG_TRUNCATE_SIZE {
data.truncate(1024); data.truncate(ASAN_LOG_TRUNCATE_SIZE);
data.push_str("...<truncated>"); data.push_str("...<truncated>");
} }
warn!("unable to parse asan log from string: {:?}", data); warn!("unable to parse asan log from string: {:?}", data);
@ -154,11 +156,11 @@ pub async fn check_asan_path(asan_dir: &Path) -> Result<Option<AsanLog>> {
if asan.is_some() { if asan.is_some() {
return Ok(asan); return Ok(asan);
} else { } else {
if asan_text.len() > 1024 { if asan_text.len() > ASAN_LOG_TRUNCATE_SIZE {
asan_text.truncate(1024); asan_text.truncate(ASAN_LOG_TRUNCATE_SIZE);
asan_text.push_str("...<truncated>"); asan_text.push_str("...<truncated>");
} }
warn!( bail!(
"unable to parse asan log {}: {:?}", "unable to parse asan log {}: {:?}",
file.path().display(), file.path().display(),
asan_text asan_text