action #63814
closed
[functional][y][virtualization][hyperv][timeboxed:12h] msdos test for hyperv, fails in validate_fs_table
Added by syrianidou_sofia about 4 years ago.
Updated about 4 years ago.
Category:
Bugs in existing tests
Target version:
SUSE QA - Milestone 32
Description
Even though same module works for other architectures, validate_fs_table cannot verify that partitions were successfully created.
The point of the code that fails is when the output of command "lsblk -n", split at every new line, is saved in @lsblk_output and it is parsed by:
foreach (@lsblk_output) {
if ($_ =~ /(?\Q$args->{mount_point}\E\z)/) {
$check = $+{check};
last;
}
On step https://openqa.suse.de/tests/3904536#step/validate_fs_table/14
it is shown that the mount point "/" is indeed created, but it cannot be identified by "$_ =~ /(?\Q$args->{mount_point}\E\z)/".
Observation¶
openQA test in scenario sle-15-SP2-Online-x86_64-msdos@svirt-hyperv fails in
validate_fs_table
Reproducible¶
Always.
- Category set to Bugs in existing tests
- Subject changed from msdos test for hyperv, fails in validate_fs_table to [functional][y][virtualization][hyperv] msdos test for hyperv, fails in validate_fs_table
- Due date set to 2020-04-07
- Priority changed from Normal to High
- Subject changed from [functional][y][virtualization][hyperv] msdos test for hyperv, fails in validate_fs_table to [functional][y][virtualization][hyperv][timeboxed:12h] msdos test for hyperv, fails in validate_fs_table
- Status changed from New to Workable
- Target version set to Milestone 32
Let's try to figure out root cause, as it might affect other tests as well. In case, nothing pops up, we can disable this test suite from execution on hyper-v.
- Status changed from Workable to In Progress
- Assignee set to syrianidou_sofia
Interesting finding, on hyperV, the array that is saved in @lsblk_output probably contains spaces at the end. I tried various small changes and narrowed down that the cause of failure was the "\z" in regex :
if ($_ =~ /(?\Q$args->{mount_point}\E\z)/)
In the beginning I though there was newline at the and and expected that changing "\z" to "\Z" would fix the issue, but I was wrong. Adding "\s*" did the work. So,
if ($_ =~ /(?\Q$args->{mount_point}\E\s*\Z)/)
works for hyperV (and rest of architectures hopefully, I ran verification only for x86_64 and hyperV).
Pull request:
https://github.com/os-autoinst/os-autoinst-distri-opensuse/pull/9885
- Status changed from In Progress to Feedback
- Status changed from Feedback to Resolved
Also available in: Atom
PDF