Message ID | 20250212112413.37553-12-philmd@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | hw/microblaze: Allow running cross-endian vCPUs | expand |
On 12/02/2025 12.24, Philippe Mathieu-Daudé wrote: > Have the MicroblazeMachine class being common to both > MicroblazeBigEndianMachine and MicroblazeLittleEndianMachine > classes. Move the xmaton and ballerina tests to the parent class. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > Reviewed-by: Thomas Huth <thuth@redhat.com> > Message-Id: <20250206131052.30207-16-philmd@linaro.org> > --- > .../functional/test_microblaze_s3adsp1800.py | 24 +++++++++++++++ > .../test_microblazeel_s3adsp1800.py | 30 ++----------------- > 2 files changed, 27 insertions(+), 27 deletions(-) > > diff --git a/tests/functional/test_microblaze_s3adsp1800.py b/tests/functional/test_microblaze_s3adsp1800.py > index c4226f49cf3..650416e0c09 100755 > --- a/tests/functional/test_microblaze_s3adsp1800.py > +++ b/tests/functional/test_microblaze_s3adsp1800.py > @@ -7,6 +7,7 @@ > # This work is licensed under the terms of the GNU GPL, version 2 or > # later. See the COPYING file in the top-level directory. > > +from qemu_test import exec_command_and_wait_for_pattern > from qemu_test import QemuSystemTest, Asset > from qemu_test import wait_for_console_pattern > > @@ -20,6 +21,11 @@ class MicroblazeMachine(QemuSystemTest): > 'day17.tar.xz'), > '3ba7439dfbea7af4876662c97f8e1f0cdad9231fc166e4861d17042489270057') > > + ASSET_IMAGE_LE = Asset( > + ('https://qemu-advcal.gitlab.io/qac-best-of-multiarch/download/' > + 'day05.tar.xz'), > + 'b9b3d43c5dd79db88ada495cc6e0d1f591153fe41355e925d791fbf44de50c22') > + > def do_ballerina_be_test(self, machine): > self.set_machine(machine) > self.archive_extract(self.ASSET_IMAGE_BE) > @@ -34,6 +40,24 @@ def do_ballerina_be_test(self, machine): > # message, that's why we don't test for a later string here. This > # needs some investigation by a microblaze wizard one day... > > + def do_xmaton_le_test(self, machine): > + self.require_netdev('user') > + self.set_machine(machine) > + self.archive_extract(self.ASSET_IMAGE_LE) > + self.vm.set_console() > + self.vm.add_args('-kernel', self.scratch_file('day13', 'xmaton.bin')) > + tftproot = self.scratch_file('day13') > + self.vm.add_args('-nic', f'user,tftp={tftproot}') > + self.vm.launch() > + wait_for_console_pattern(self, 'QEMU Advent Calendar 2023') > + wait_for_console_pattern(self, 'buildroot login:') > + exec_command_and_wait_for_pattern(self, 'root', '#') > + exec_command_and_wait_for_pattern(self, > + 'tftp -g -r xmaton.png 10.0.2.2 ; md5sum xmaton.png', > + '821cd3cab8efd16ad6ee5acc3642a8ea') > + > +class MicroblazeBigEndianMachine(MicroblazeMachine): Add this here 'til the problem with the precaching is fixed: ASSET_IMAGE_BE = MicroblazeMachine.ASSET_IMAGE_BE ? > def test_microblaze_s3adsp1800_legacy_be(self): > self.do_ballerina_be_test('petalogix-s3adsp1800') > > diff --git a/tests/functional/test_microblazeel_s3adsp1800.py b/tests/functional/test_microblazeel_s3adsp1800.py > index d50b98342d7..56645bd0bb2 100755 > --- a/tests/functional/test_microblazeel_s3adsp1800.py > +++ b/tests/functional/test_microblazeel_s3adsp1800.py > @@ -7,35 +7,11 @@ > # This work is licensed under the terms of the GNU GPL, version 2 or > # later. See the COPYING file in the top-level directory. > > -from qemu_test import exec_command_and_wait_for_pattern > -from qemu_test import QemuSystemTest, Asset > -from qemu_test import wait_for_console_pattern > +from qemu_test import QemuSystemTest > > +from test_microblaze_s3adsp1800 import MicroblazeMachine > > -class MicroblazeelMachine(QemuSystemTest): > - > - timeout = 90 > - > - ASSET_IMAGE_LE = Asset( > - ('https://qemu-advcal.gitlab.io/qac-best-of-multiarch/download/' > - 'day05.tar.xz'), > - 'b9b3d43c5dd79db88ada495cc6e0d1f591153fe41355e925d791fbf44de50c22') > - > - def do_xmaton_le_test(self, machine): > - self.require_netdev('user') > - self.set_machine(machine) > - self.archive_extract(self.ASSET_IMAGE_LE) > - self.vm.set_console() > - self.vm.add_args('-kernel', self.scratch_file('day13', 'xmaton.bin')) > - tftproot = self.scratch_file('day13') > - self.vm.add_args('-nic', f'user,tftp={tftproot}') > - self.vm.launch() > - wait_for_console_pattern(self, 'QEMU Advent Calendar 2023') > - wait_for_console_pattern(self, 'buildroot login:') > - exec_command_and_wait_for_pattern(self, 'root', '#') > - exec_command_and_wait_for_pattern(self, > - 'tftp -g -r xmaton.png 10.0.2.2 ; md5sum xmaton.png', > - '821cd3cab8efd16ad6ee5acc3642a8ea') > +class MicroblazeLittleEndianMachine(MicroblazeMachine): And add this here: ASSET_IMAGE_LE = MicroblazeMachine.ASSET_IMAGE_LE ? Thomas > def test_microblaze_s3adsp1800_legacy_le(self): > self.do_xmaton_le_test('petalogix-s3adsp1800')
On 12/2/25 12:46, Thomas Huth wrote: > On 12/02/2025 12.24, Philippe Mathieu-Daudé wrote: >> Have the MicroblazeMachine class being common to both >> MicroblazeBigEndianMachine and MicroblazeLittleEndianMachine >> classes. Move the xmaton and ballerina tests to the parent class. >> >> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> >> Reviewed-by: Thomas Huth <thuth@redhat.com> >> Message-Id: <20250206131052.30207-16-philmd@linaro.org> >> --- >> .../functional/test_microblaze_s3adsp1800.py | 24 +++++++++++++++ >> .../test_microblazeel_s3adsp1800.py | 30 ++----------------- >> 2 files changed, 27 insertions(+), 27 deletions(-) >> >> diff --git a/tests/functional/test_microblaze_s3adsp1800.py b/tests/ >> functional/test_microblaze_s3adsp1800.py >> index c4226f49cf3..650416e0c09 100755 >> --- a/tests/functional/test_microblaze_s3adsp1800.py >> +++ b/tests/functional/test_microblaze_s3adsp1800.py >> @@ -7,6 +7,7 @@ >> # This work is licensed under the terms of the GNU GPL, version 2 or >> # later. See the COPYING file in the top-level directory. >> +from qemu_test import exec_command_and_wait_for_pattern >> from qemu_test import QemuSystemTest, Asset >> from qemu_test import wait_for_console_pattern >> @@ -20,6 +21,11 @@ class MicroblazeMachine(QemuSystemTest): >> 'day17.tar.xz'), >> >> '3ba7439dfbea7af4876662c97f8e1f0cdad9231fc166e4861d17042489270057') >> + ASSET_IMAGE_LE = Asset( >> + ('https://qemu-advcal.gitlab.io/qac-best-of-multiarch/download/' >> + 'day05.tar.xz'), >> + >> 'b9b3d43c5dd79db88ada495cc6e0d1f591153fe41355e925d791fbf44de50c22') >> + >> def do_ballerina_be_test(self, machine): >> self.set_machine(machine) >> self.archive_extract(self.ASSET_IMAGE_BE) >> @@ -34,6 +40,24 @@ def do_ballerina_be_test(self, machine): >> # message, that's why we don't test for a later string here. >> This >> # needs some investigation by a microblaze wizard one day... >> + def do_xmaton_le_test(self, machine): >> + self.require_netdev('user') >> + self.set_machine(machine) >> + self.archive_extract(self.ASSET_IMAGE_LE) >> + self.vm.set_console() >> + self.vm.add_args('-kernel', self.scratch_file('day13', >> 'xmaton.bin')) >> + tftproot = self.scratch_file('day13') >> + self.vm.add_args('-nic', f'user,tftp={tftproot}') >> + self.vm.launch() >> + wait_for_console_pattern(self, 'QEMU Advent Calendar 2023') >> + wait_for_console_pattern(self, 'buildroot login:') >> + exec_command_and_wait_for_pattern(self, 'root', '#') >> + exec_command_and_wait_for_pattern(self, >> + 'tftp -g -r xmaton.png 10.0.2.2 ; md5sum xmaton.png', >> + '821cd3cab8efd16ad6ee5acc3642a8ea') >> + >> +class MicroblazeBigEndianMachine(MicroblazeMachine): > > Add this here 'til the problem with the precaching is fixed: > > ASSET_IMAGE_BE = MicroblazeMachine.ASSET_IMAGE_BE > > ? Actually the cache works, I mis-interpreted the network issue. I'll update Daniel on the other thread.
diff --git a/tests/functional/test_microblaze_s3adsp1800.py b/tests/functional/test_microblaze_s3adsp1800.py index c4226f49cf3..650416e0c09 100755 --- a/tests/functional/test_microblaze_s3adsp1800.py +++ b/tests/functional/test_microblaze_s3adsp1800.py @@ -7,6 +7,7 @@ # This work is licensed under the terms of the GNU GPL, version 2 or # later. See the COPYING file in the top-level directory. +from qemu_test import exec_command_and_wait_for_pattern from qemu_test import QemuSystemTest, Asset from qemu_test import wait_for_console_pattern @@ -20,6 +21,11 @@ class MicroblazeMachine(QemuSystemTest): 'day17.tar.xz'), '3ba7439dfbea7af4876662c97f8e1f0cdad9231fc166e4861d17042489270057') + ASSET_IMAGE_LE = Asset( + ('https://qemu-advcal.gitlab.io/qac-best-of-multiarch/download/' + 'day05.tar.xz'), + 'b9b3d43c5dd79db88ada495cc6e0d1f591153fe41355e925d791fbf44de50c22') + def do_ballerina_be_test(self, machine): self.set_machine(machine) self.archive_extract(self.ASSET_IMAGE_BE) @@ -34,6 +40,24 @@ def do_ballerina_be_test(self, machine): # message, that's why we don't test for a later string here. This # needs some investigation by a microblaze wizard one day... + def do_xmaton_le_test(self, machine): + self.require_netdev('user') + self.set_machine(machine) + self.archive_extract(self.ASSET_IMAGE_LE) + self.vm.set_console() + self.vm.add_args('-kernel', self.scratch_file('day13', 'xmaton.bin')) + tftproot = self.scratch_file('day13') + self.vm.add_args('-nic', f'user,tftp={tftproot}') + self.vm.launch() + wait_for_console_pattern(self, 'QEMU Advent Calendar 2023') + wait_for_console_pattern(self, 'buildroot login:') + exec_command_and_wait_for_pattern(self, 'root', '#') + exec_command_and_wait_for_pattern(self, + 'tftp -g -r xmaton.png 10.0.2.2 ; md5sum xmaton.png', + '821cd3cab8efd16ad6ee5acc3642a8ea') + +class MicroblazeBigEndianMachine(MicroblazeMachine): + def test_microblaze_s3adsp1800_legacy_be(self): self.do_ballerina_be_test('petalogix-s3adsp1800') diff --git a/tests/functional/test_microblazeel_s3adsp1800.py b/tests/functional/test_microblazeel_s3adsp1800.py index d50b98342d7..56645bd0bb2 100755 --- a/tests/functional/test_microblazeel_s3adsp1800.py +++ b/tests/functional/test_microblazeel_s3adsp1800.py @@ -7,35 +7,11 @@ # This work is licensed under the terms of the GNU GPL, version 2 or # later. See the COPYING file in the top-level directory. -from qemu_test import exec_command_and_wait_for_pattern -from qemu_test import QemuSystemTest, Asset -from qemu_test import wait_for_console_pattern +from qemu_test import QemuSystemTest +from test_microblaze_s3adsp1800 import MicroblazeMachine -class MicroblazeelMachine(QemuSystemTest): - - timeout = 90 - - ASSET_IMAGE_LE = Asset( - ('https://qemu-advcal.gitlab.io/qac-best-of-multiarch/download/' - 'day05.tar.xz'), - 'b9b3d43c5dd79db88ada495cc6e0d1f591153fe41355e925d791fbf44de50c22') - - def do_xmaton_le_test(self, machine): - self.require_netdev('user') - self.set_machine(machine) - self.archive_extract(self.ASSET_IMAGE_LE) - self.vm.set_console() - self.vm.add_args('-kernel', self.scratch_file('day13', 'xmaton.bin')) - tftproot = self.scratch_file('day13') - self.vm.add_args('-nic', f'user,tftp={tftproot}') - self.vm.launch() - wait_for_console_pattern(self, 'QEMU Advent Calendar 2023') - wait_for_console_pattern(self, 'buildroot login:') - exec_command_and_wait_for_pattern(self, 'root', '#') - exec_command_and_wait_for_pattern(self, - 'tftp -g -r xmaton.png 10.0.2.2 ; md5sum xmaton.png', - '821cd3cab8efd16ad6ee5acc3642a8ea') +class MicroblazeLittleEndianMachine(MicroblazeMachine): def test_microblaze_s3adsp1800_legacy_le(self): self.do_xmaton_le_test('petalogix-s3adsp1800')