diff --git a/scripts/wk/cfg/hw.py b/scripts/wk/cfg/hw.py index 0790cf63..d0d1efb1 100644 --- a/scripts/wk/cfg/hw.py +++ b/scripts/wk/cfg/hw.py @@ -20,6 +20,7 @@ BADBLOCKS_REGEX = re.compile( r'^Pass completed, (\d+) bad blocks found. .(\d+)/(\d+)/(\d+) errors', re.IGNORECASE, ) +BADBLOCKS_RESULTS_REGEX = re.compile(r'^(.*?)\x08.*\x08(.*)') BADBLOCKS_SKIP_REGEX = re.compile(r'^(Checking|\[)', re.IGNORECASE) CPU_CRITICAL_TEMP = 99 CPU_FAILURE_TEMP = 90 diff --git a/scripts/wk/hw/surface_scan.py b/scripts/wk/hw/surface_scan.py index f6452bc5..50e7eecd 100644 --- a/scripts/wk/hw/surface_scan.py +++ b/scripts/wk/hw/surface_scan.py @@ -8,6 +8,7 @@ from subprocess import STDOUT from wk.cfg.hw import ( BADBLOCKS_LARGE_DISK, BADBLOCKS_REGEX, + BADBLOCKS_RESULTS_REGEX, BADBLOCKS_SKIP_REGEX, TEST_MODE_BADBLOCKS_LIMIT, ) @@ -33,6 +34,11 @@ def check_surface_scan_results(test_obj, log_path) -> None: if not line or BADBLOCKS_SKIP_REGEX.match(line): # Skip continue + + # Clean line by removing backspaces/etc + line = BADBLOCKS_RESULTS_REGEX.sub(r'\1 \2', line) + + # Add to report match = BADBLOCKS_REGEX.search(line) if match: if all(s == '0' for s in match.groups()):