Skip to content

Commit 59efdad

Browse files
committed
unit test update
1 parent 36dfcfb commit 59efdad

File tree

2 files changed

+58
-6
lines changed

2 files changed

+58
-6
lines changed

nodescraper/plugins/inband/dmesg/dmesg_analyzer.py

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -413,18 +413,25 @@ def _is_known_error(self, known_err_events: list[Event], unknown_match: str) ->
413413
bool: return True if error is known
414414
"""
415415
for regex_obj in self.ERROR_REGEX:
416-
if regex_obj.regex.search(unknown_match):
417-
return True
416+
try:
417+
if regex_obj.regex.search(unknown_match):
418+
return True
419+
except re.error:
420+
continue
418421

419-
# handle multline matches
420422
for event in known_err_events:
421423
known_match = event.data["match_content"]
422424
if isinstance(known_match, list):
423425
for line in known_match:
424-
if unknown_match in line:
426+
if unknown_match == line or unknown_match in line or line in unknown_match:
425427
return True
426-
elif known_match in unknown_match:
427-
return True
428+
elif isinstance(known_match, str):
429+
if (
430+
unknown_match == known_match
431+
or unknown_match in known_match
432+
or known_match in unknown_match
433+
):
434+
return True
428435
return False
429436

430437
def analyze_data(

test/unit/plugin/test_dmesg_analyzer.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,3 +234,48 @@ def test_lnet_and_lustre_boot_errors_are_warning_events(system_info):
234234
for m in (m1, m2, m3):
235235
ev = by_msg[m]
236236
assert ev.priority == EventPriority.WARNING, f"{m} should be WARNING"
237+
238+
239+
def test_aca(system_info):
240+
aca_data1 = DmesgData(
241+
dmesg_content=(
242+
"kern :err : 2025-01-01T10:17:15,145363-04:00 amdgpu 0000:0c:00.0: amdgpu: [Hardware error] Accelerator Check Architecture events logged\n"
243+
"kern :err : 2025-01-01T10:17:15,145363-04:00 amdgpu 0000:0c:00.0: amdgpu: [Hardware error] aca entry[00].STATUS=0x000000000000000f\n"
244+
"kern :err : 2025-01-01T10:17:15,145363-04:00 amdgpu 0000:0c:00.0: amdgpu: [Hardware error] aca entry[00].ADDR=0x0000000000000000\n"
245+
"kern :err : 2025-01-01T10:17:15,145363-04:00 amdgpu 0000:0c:00.0: amdgpu: [Hardware error] aca entry[00].MISC0=0x0000000000000000\n"
246+
"kern :err : 2025-01-01T10:17:15,145363-04:00 amdgpu 0000:0c:00.0: amdgpu: [Hardware error] aca entry[00].IPID=0x0000000000000000\n"
247+
"kern :err : 2025-01-01T10:17:15,145363-04:00 amdgpu 0000:0c:00.0: amdgpu: [Hardware error] aca entry[00].SYND=0x0000000000000000\n"
248+
)
249+
)
250+
251+
aca_data2 = DmesgData(
252+
dmesg_content=(
253+
"kern :err : 2025-01-01T17:53:23,028841-06:00 amdgpu 0000:48:00.0: {1}[Hardware Error]: Accelerator Check Architecture events logged\n"
254+
"kern :err : 2025-01-01T17:53:23,028841-06:00 amdgpu 0000:48:00.0: {1}[Hardware Error]: ACA[01/01].CONTROL=0x000000000000000f\n"
255+
"kern :err : 2025-01-01T17:53:23,028841-06:00 amdgpu 0000:48:00.0: {1}[Hardware Error]: ACA[01/01].STATUS=0x0000000000000000\n"
256+
"kern :err : 2025-01-01T17:53:23,028841-06:00 amdgpu 0000:48:00.0: {1}[Hardware Error]: ACA[01/01].ADDR=0x0000000000000000\n"
257+
"kern :err : 2025-01-01T17:53:23,028841-06:00 amdgpu 0000:48:00.0: {1}[Hardware Error]: ACA[01/01].MISC=0x0000000000000000\n"
258+
"kern :err : 2025-01-01T17:53:23,028841-06:00 amdgpu 0000:48:00.0: {1}[Hardware Error]: ACA[01/01].CONFIG=0x0000000000000000\n"
259+
"kern :err : 2025-01-01T17:53:23,028841-06:00 amdgpu 0000:48:00.0: {1}[Hardware Error]: ACA[01/01].IPID=0x0000000000000000\n"
260+
"kern :err : 2025-01-01T17:53:23,028841-06:00 amdgpu 0000:48:00.0: {1}[Hardware Error]: ACA[01/01].SYND=0x0000000000000000\n"
261+
"kern :err : 2025-01-01T17:53:23,028841-06:00 amdgpu 0000:48:00.0: {1}[Hardware Error]: ACA[01/01].DESTAT=0x0000000000000000\n"
262+
"kern :err : 2025-01-01T17:53:23,028841-06:00 amdgpu 0000:48:00.0: {1}[Hardware Error]: ACA[01/01].DEADDR=0x0000000000000000\n"
263+
"kern :err : 2025-01-01T17:53:23,028841-06:00 amdgpu 0000:48:00.0: {1}[Hardware Error]: ACA[01/01].CONTROL_MASK=0x0000000000000000\n"
264+
)
265+
)
266+
267+
analyzer = DmesgAnalyzer(
268+
system_info=system_info,
269+
)
270+
271+
res = analyzer.analyze_data(aca_data1)
272+
assert res.status == ExecutionStatus.ERROR
273+
assert len(res.events) == 1
274+
assert res.events[0].description == "ACA Error"
275+
assert res.events[0].priority == EventPriority.ERROR
276+
277+
res = analyzer.analyze_data(aca_data2)
278+
assert res.status == ExecutionStatus.ERROR
279+
assert len(res.events) == 1
280+
assert res.events[0].description == "ACA Error"
281+
assert res.events[0].priority == EventPriority.ERROR

0 commit comments

Comments
 (0)