action #119461
Updated by livdywan over 1 year ago
## Observation The serial failure detection code in [basetest::parse_serial_output_qemu()](https://github.com/os-autoinst/os-autoinst/blob/2156ecc810939cf3bce8ca705cf39423dd6c194d/basetest.pm#L632) `basetest::parse_serial_output_qemu()` unconditionally changes `$self->{result}` which can result in test failure being turned into softfail or even pass. Result should be changed only when the new value is a "higher level" of failure than the current value (e.g. `softfail` -> `fail`, but never `fail` -> `softfail`). Example: https://openqa.suse.de/tests/9481132#step/nfs41_01/12 The nfs41_01 test in the example job failed with exit code 137 (SIGKILL) but the CPU soft lockup box at the end (serial failure with type `info`) changed the result to `pass`. This continued in all subsequent test modules until the job timed out. ## Acceptance criteria * **AC1**: Test module results are never reset to a lower level ## Suggestions * Extend tests in t/17-basetest.t with the updated expectation (The main bunch of tests was added in 2018 by riafarov who is not active anymore) * Investigate the code path in `basetest::parse_serial_output_qemu` * Update the implementation