tests/functional/s390x/test_pxelinux.py | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-)
From: Thomas Huth <thuth@redhat.com>
pylint complains about wrong identation in one of the lines and
that the pxelinux_cfg_contents is a constant that should be written
with capital letters. While we're at it, also add the missing doc
strings.
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/functional/s390x/test_pxelinux.py | 25 ++++++++++++++++++-------
1 file changed, 18 insertions(+), 7 deletions(-)
diff --git a/tests/functional/s390x/test_pxelinux.py b/tests/functional/s390x/test_pxelinux.py
index 4fc33b8c46d..c00cce6a5a4 100755
--- a/tests/functional/s390x/test_pxelinux.py
+++ b/tests/functional/s390x/test_pxelinux.py
@@ -1,10 +1,11 @@
#!/usr/bin/env python3
#
# SPDX-License-Identifier: GPL-2.0-or-later
-#
-# Functional test that checks the pxelinux.cfg network booting of a s390x VM
-# (TFTP booting without config file is already tested by the pxe qtest, so
-# we don't repeat that here).
+'''
+Functional test that checks the pxelinux.cfg network booting of a s390x VM
+(TFTP booting without config file is already tested by the pxe qtest, so
+we don't repeat that here).
+'''
import os
import shutil
@@ -12,7 +13,7 @@
from qemu_test import QemuSystemTest, Asset, wait_for_console_pattern
-pxelinux_cfg_contents='''# pxelinux.cfg style config file
+PXELINUX_CFG_CONTENTS='''# pxelinux.cfg style config file
default Debian
label Nonexisting
kernel kernel.notavailable
@@ -26,6 +27,10 @@
'''
class S390PxeLinux(QemuSystemTest):
+ '''
+ Test various ways of booting via a pxelinux.cfg file, for details see:
+ https://wiki.syslinux.org/wiki/index.php?title=PXELINUX#Configuration
+ '''
ASSET_DEBIAN_KERNEL = Asset(
('https://snapshot.debian.org/archive/debian/'
@@ -46,6 +51,7 @@ class S390PxeLinux(QemuSystemTest):
'480859574f3f44caa6cd35c62d70e1ac0609134e22ce2a954bbed9b110c06e0b')
def pxelinux_launch(self, pl_name='default', extra_opts=None):
+ '''Create a pxelinux.cfg file in the right location and launch QEMU'''
self.require_netdev('user')
self.set_machine('s390-ccw-virtio')
@@ -66,11 +72,11 @@ def pxelinux_launch(self, pl_name='default', extra_opts=None):
cfg_fname = self.scratch_file('tftp', 'pxelinux.cfg', pl_name)
with open(cfg_fname, 'w', encoding='utf-8') as f:
- f.write(pxelinux_cfg_contents)
+ f.write(PXELINUX_CFG_CONTENTS)
virtio_net_dev = 'virtio-net-ccw,netdev=n1,bootindex=1'
if extra_opts:
- virtio_net_dev += ',' + extra_opts
+ virtio_net_dev += ',' + extra_opts
self.vm.add_args('-m', '384',
'-netdev', f'user,id=n1,tftp={tftpdir}',
@@ -80,6 +86,7 @@ def pxelinux_launch(self, pl_name='default', extra_opts=None):
def test_default(self):
+ '''Check whether the guest uses the "default" file name'''
self.pxelinux_launch()
# The kernel prints its arguments to the console, so we can use
# this to check whether the kernel parameters are correctly handled:
@@ -89,11 +96,13 @@ def test_default(self):
wait_for_console_pattern(self, 'Run /init as init process')
def test_mac(self):
+ '''Check whether the guest uses file name based on its MAC address'''
self.pxelinux_launch(pl_name='01-02-ca-fe-ba-be-42',
extra_opts='mac=02:ca:fe:ba:be:42,loadparm=3')
wait_for_console_pattern(self, 'Linux version 5.3.7-301.fc31.s390x')
def test_uuid(self):
+ '''Check whether the guest uses file name based on its UUID'''
# Also add a non-bootable disk to check the fallback to network boot:
self.vm.add_args('-blockdev', 'null-co,size=65536,node-name=d1',
'-device', 'virtio-blk,drive=d1,bootindex=0,loadparm=1',
@@ -102,11 +111,13 @@ def test_uuid(self):
wait_for_console_pattern(self, 'Debian 4.19.146-1 (2020-09-17)')
def test_ip(self):
+ '''Check whether the guest uses file name based on its IP address'''
self.vm.add_args('-M', 'loadparm=3')
self.pxelinux_launch(pl_name='0A00020F')
wait_for_console_pattern(self, 'Linux version 5.3.7-301.fc31.s390x')
def test_menu(self):
+ '''Check whether the boot menu works for pxelinux.cfg booting'''
self.vm.add_args('-boot', 'menu=on,splash-time=10')
self.pxelinux_launch(pl_name='0A00')
wait_for_console_pattern(self, '[1] Nonexisting')
--
2.51.0
Reviewed-by: Jared Rossi <jrossi@linux.ibm.com> On 9/12/25 4:52 AM, Thomas Huth wrote: > From: Thomas Huth <thuth@redhat.com> > > pylint complains about wrong identation in one of the lines and > that the pxelinux_cfg_contents is a constant that should be written > with capital letters. While we're at it, also add the missing doc > strings. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > tests/functional/s390x/test_pxelinux.py | 25 ++++++++++++++++++------- > 1 file changed, 18 insertions(+), 7 deletions(-) > > diff --git a/tests/functional/s390x/test_pxelinux.py b/tests/functional/s390x/test_pxelinux.py > index 4fc33b8c46d..c00cce6a5a4 100755 > --- a/tests/functional/s390x/test_pxelinux.py > +++ b/tests/functional/s390x/test_pxelinux.py > @@ -1,10 +1,11 @@ > #!/usr/bin/env python3 > # > # SPDX-License-Identifier: GPL-2.0-or-later > -# > -# Functional test that checks the pxelinux.cfg network booting of a s390x VM > -# (TFTP booting without config file is already tested by the pxe qtest, so > -# we don't repeat that here). > +''' > +Functional test that checks the pxelinux.cfg network booting of a s390x VM > +(TFTP booting without config file is already tested by the pxe qtest, so > +we don't repeat that here). > +''' > > import os > import shutil > @@ -12,7 +13,7 @@ > from qemu_test import QemuSystemTest, Asset, wait_for_console_pattern > > > -pxelinux_cfg_contents='''# pxelinux.cfg style config file > +PXELINUX_CFG_CONTENTS='''# pxelinux.cfg style config file > default Debian > label Nonexisting > kernel kernel.notavailable > @@ -26,6 +27,10 @@ > ''' > > class S390PxeLinux(QemuSystemTest): > + ''' > + Test various ways of booting via a pxelinux.cfg file, for details see: > + https://wiki.syslinux.org/wiki/index.php?title=PXELINUX#Configuration > + ''' > > ASSET_DEBIAN_KERNEL = Asset( > ('https://snapshot.debian.org/archive/debian/' > @@ -46,6 +51,7 @@ class S390PxeLinux(QemuSystemTest): > '480859574f3f44caa6cd35c62d70e1ac0609134e22ce2a954bbed9b110c06e0b') > > def pxelinux_launch(self, pl_name='default', extra_opts=None): > + '''Create a pxelinux.cfg file in the right location and launch QEMU''' > self.require_netdev('user') > self.set_machine('s390-ccw-virtio') > > @@ -66,11 +72,11 @@ def pxelinux_launch(self, pl_name='default', extra_opts=None): > > cfg_fname = self.scratch_file('tftp', 'pxelinux.cfg', pl_name) > with open(cfg_fname, 'w', encoding='utf-8') as f: > - f.write(pxelinux_cfg_contents) > + f.write(PXELINUX_CFG_CONTENTS) > > virtio_net_dev = 'virtio-net-ccw,netdev=n1,bootindex=1' > if extra_opts: > - virtio_net_dev += ',' + extra_opts > + virtio_net_dev += ',' + extra_opts > > self.vm.add_args('-m', '384', > '-netdev', f'user,id=n1,tftp={tftpdir}', > @@ -80,6 +86,7 @@ def pxelinux_launch(self, pl_name='default', extra_opts=None): > > > def test_default(self): > + '''Check whether the guest uses the "default" file name''' > self.pxelinux_launch() > # The kernel prints its arguments to the console, so we can use > # this to check whether the kernel parameters are correctly handled: > @@ -89,11 +96,13 @@ def test_default(self): > wait_for_console_pattern(self, 'Run /init as init process') > > def test_mac(self): > + '''Check whether the guest uses file name based on its MAC address''' > self.pxelinux_launch(pl_name='01-02-ca-fe-ba-be-42', > extra_opts='mac=02:ca:fe:ba:be:42,loadparm=3') > wait_for_console_pattern(self, 'Linux version 5.3.7-301.fc31.s390x') > > def test_uuid(self): > + '''Check whether the guest uses file name based on its UUID''' > # Also add a non-bootable disk to check the fallback to network boot: > self.vm.add_args('-blockdev', 'null-co,size=65536,node-name=d1', > '-device', 'virtio-blk,drive=d1,bootindex=0,loadparm=1', > @@ -102,11 +111,13 @@ def test_uuid(self): > wait_for_console_pattern(self, 'Debian 4.19.146-1 (2020-09-17)') > > def test_ip(self): > + '''Check whether the guest uses file name based on its IP address''' > self.vm.add_args('-M', 'loadparm=3') > self.pxelinux_launch(pl_name='0A00020F') > wait_for_console_pattern(self, 'Linux version 5.3.7-301.fc31.s390x') > > def test_menu(self): > + '''Check whether the boot menu works for pxelinux.cfg booting''' > self.vm.add_args('-boot', 'menu=on,splash-time=10') > self.pxelinux_launch(pl_name='0A00') > wait_for_console_pattern(self, '[1] Nonexisting')
© 2016 - 2025 Red Hat, Inc.