@samitouri / QOSamiQemu / commits / 10235ca883

tests/functional: Add test for MPIPL in PowerNV

With MPIPL support implemented, enable fadump's functional test for PowerNV Also, current functional test for powernv uses op-build's Linux 5.10 image, which doesn't support adding "fadump=on" in argument due to this: Kernel is locked down from Kernel configuration; see man kernel_lockdown.7 Hence, instead of op-build's image, use the newer fedora vmlinuz as used in FADump PSeries functional test Also due to "bash#" string not showing up, rely on sh: no job control to check if testcase has reached till shell Reviewed-by: Hari Bathini <hbathini@linux.ibm.com> Reviewed-by: Sourabh Jain <sourabhjain@linux.ibm.com> Signed-off-by: Aditya Gupta <adityag@linux.ibm.com> Tested-by: Shivang Upadhyay <shivangu@linux.ibm.com> Link: https://lore.kernel.org/qemu-devel/20260424083837.214947-10-adityag@linux.ibm.com Signed-off-by: Harsh Prateek Bora <harshpb@linux.ibm.com>

Aditya Gupta committed Apr 24, 2026 at 14:08 UTC 10235ca883276f2bc5a7f0fdfe33cb240ef5ad0f
1 file changed +13 -22
tests/functional/ppc64/test_fadump.py
+13 -22
@@ -14,6 +14,7 @@ class QEMUFadump(LinuxKernelTest):
14
15 1. test_fadump_pseries: PSeries
16 2. test_fadump_pseries_kvm: PSeries + KVM
17 + 3. test_fadump_powernv: PowerNV
18 """
19
20 timeout = 90
@@ -24,11 +25,6 @@ class QEMUFadump(LinuxKernelTest):
25 msg_registered_failed = ''
26 msg_dump_active = ''
27
27 - ASSET_EPAPR_KERNEL = Asset(
28 - ('https://github.com/open-power/op-build/releases/download/v2.7/'
29 - 'zImage.epapr'),
30 - '0ab237df661727e5392cee97460e8674057a883c5f74381a128fa772588d45cd')
31 -
28 ASSET_VMLINUZ_KERNEL = Asset(
29 ('https://archives.fedoraproject.org/pub/archive/fedora-secondary/'
30 'releases/39/Everything/ppc64le/os/ppc/ppc64/vmlinuz'),
@@ -62,16 +58,14 @@ class QEMUFadump(LinuxKernelTest):
58 # SLOF takes upto >20s in startup time, use VOF
59 self.set_machine("pseries")
60 self.vm.add_args("-machine", "x-vof=on")
65 - self.vm.add_args("-m", "6G")
61 +
62 + self.vm.add_args("-m", "6G")
63
64 self.vm.set_console()
65
66 kernel_path = None
67
71 - if is_powernv:
72 - kernel_path = self.ASSET_EPAPR_KERNEL.fetch()
73 - else:
74 - kernel_path = self.ASSET_VMLINUZ_KERNEL.fetch()
68 + kernel_path = self.ASSET_VMLINUZ_KERNEL.fetch()
69
70 initrd_path = self.ASSET_FEDORA_INITRD.fetch()
71
@@ -102,16 +96,14 @@ class QEMUFadump(LinuxKernelTest):
96 timeout=20
97 )
98
105 - # Ensure fadump is registered successfully, if registration
106 - # succeeds, we get a log from rtas fadump:
107 - #
108 - # rtas fadump: Registration is successful!
109 - self.wait_for_console_pattern(
110 - "rtas fadump: Registration is successful!"
111 - )
99 + # Ensure fadump is registered successfully
100 + if not is_powernv:
101 + self.wait_for_console_pattern(
102 + "rtas fadump: Registration is successful!"
103 + )
104
105 # Wait for the shell
114 - self.wait_for_console_pattern("#")
106 + self.wait_for_console_pattern("sh: no job control")
107
108 # Mount /proc since not available in the initrd used
109 exec_command(self, command="mount -t proc proc /proc")
@@ -135,7 +127,7 @@ class QEMUFadump(LinuxKernelTest):
127 # that qemu didn't pass the 'ibm,kernel-dump' device tree node
128 wait_for_console_pattern(
129 test=self,
138 - success_message="rtas fadump: Firmware-assisted dump is active",
130 + success_message="fadump: Firmware-assisted dump is active",
131 failure_message="fadump: Reserved "
132 )
133
@@ -148,7 +140,7 @@ class QEMUFadump(LinuxKernelTest):
140 self.wait_for_console_pattern("preserving crash data")
141
142 # Wait for prompt
151 - self.wait_for_console_pattern("sh-5.2#")
143 + self.wait_for_console_pattern("Run /bin/sh as init process")
144
145 # Mount /proc since not available in the initrd used
146 exec_command_and_wait_for_pattern(self,
@@ -166,9 +158,8 @@ class QEMUFadump(LinuxKernelTest):
158 def test_fadump_pseries(self):
159 return self.do_test_fadump(is_kvm=False, is_powernv=False)
160
169 - @skip("PowerNV Fadump not supported yet")
161 def test_fadump_powernv(self):
171 - return
162 + return self.do_test_fadump(is_kvm=False, is_powernv=True)
163
164 def test_fadump_pseries_kvm(self):
165 """