Message ID | 20241108154317.12129-18-philmd@linaro.org |
---|---|
State | New |
Headers | show |
Series | hw/microblaze: Allow running cross-endian vCPUs | expand |
On 08/11/2024 16.43, Philippe Mathieu-Daudé wrote: > Copy/paste the current tests, but call the opposite endianness > machines, testing: > - petalogix-s3adsp1800-le machine (little-endian CPU) on the > qemu-system-microblaze binary (big-endian) > - petalogix-s3adsp1800-be machine (big-endian CPU) on the > qemu-system-microblazeel binary (little-endian). > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > Reviewed-by: Richard Henderson <richard.henderson@linaro.org> > --- > .../functional/test_microblaze_s3adsp1800.py | 21 +++++++++++++++++++ > .../test_microblazeel_s3adsp1800.py | 19 +++++++++++++++++ > 2 files changed, 40 insertions(+) > > diff --git a/tests/functional/test_microblaze_s3adsp1800.py b/tests/functional/test_microblaze_s3adsp1800.py > index 2b2f782270..7f5e8b6024 100755 > --- a/tests/functional/test_microblaze_s3adsp1800.py > +++ b/tests/functional/test_microblaze_s3adsp1800.py > @@ -36,5 +36,26 @@ def test_microblaze_s3adsp1800_be(self): > # message, that's why we don't test for a later string here. This > # needs some investigation by a microblaze wizard one day... > > + ASSET_IMAGE_LE = Asset( > + ('http://www.qemu-advent-calendar.org/2023/download/day13.tar.gz'), > + 'b9b3d43c5dd79db88ada495cc6e0d1f591153fe41355e925d791fbf44de50c22') > + > + def test_microblaze_s3adsp1800_le(self): > + self.require_netdev('user') > + self.set_machine('petalogix-s3adsp1800-le') > + file_path = self.ASSET_IMAGE_LE.fetch() > + archive_extract(file_path, self.workdir) > + self.vm.set_console() > + self.vm.add_args('-kernel', self.workdir + '/day13/xmaton.bin') > + self.vm.add_args('-nic', 'user,tftp=' + self.workdir + '/day13/') > + self.vm.launch() > + wait_for_console_pattern(self, 'QEMU Advent Calendar 2023') > + time.sleep(0.1) > + exec_command(self, 'root') > + time.sleep(0.1) > + exec_command_and_wait_for_pattern(self, > + 'tftp -g -r xmaton.png 10.0.2.2 ; md5sum xmaton.png', > + '821cd3cab8efd16ad6ee5acc3642a8ea') > + > if __name__ == '__main__': > QemuSystemTest.main() > diff --git a/tests/functional/test_microblazeel_s3adsp1800.py b/tests/functional/test_microblazeel_s3adsp1800.py > index 1aee5149fb..60543009ba 100755 > --- a/tests/functional/test_microblazeel_s3adsp1800.py > +++ b/tests/functional/test_microblazeel_s3adsp1800.py > @@ -38,5 +38,24 @@ def test_microblazeel_s3adsp1800_le(self): > 'tftp -g -r xmaton.png 10.0.2.2 ; md5sum xmaton.png', > '821cd3cab8efd16ad6ee5acc3642a8ea') > > + ASSET_IMAGE_BE = Asset( > + ('https://qemu-advcal.gitlab.io/qac-best-of-multiarch/download/' > + 'day17.tar.xz'), > + '3ba7439dfbea7af4876662c97f8e1f0cdad9231fc166e4861d17042489270057') > + > + def test_microblazeel_s3adsp1800_be(self): > + self.set_machine('petalogix-s3adsp1800-be') > + file_path = self.ASSET_IMAGE_BE.fetch() > + archive_extract(file_path, self.workdir) > + self.vm.set_console() > + self.vm.add_args('-kernel', self.workdir + '/day17/ballerina.bin') > + self.vm.launch() > + wait_for_console_pattern(self, 'This architecture does not have ' > + 'kernel memory protection') > + # Note: > + # The kernel sometimes gets stuck after the "This architecture ..." > + # message, that's why we don't test for a later string here. This > + # needs some investigation by a microblaze wizard one day... > + > if __name__ == '__main__': > QemuSystemTest.main() Duplicating code is ugly. I think I'd rather prefer to merge the two files into one and then add that test to both targets in meson.build. Thomas
On 11/11/24 07:57, Thomas Huth wrote: > On 08/11/2024 16.43, Philippe Mathieu-Daudé wrote: >> Copy/paste the current tests, but call the opposite endianness >> machines, testing: >> - petalogix-s3adsp1800-le machine (little-endian CPU) on the >> qemu-system-microblaze binary (big-endian) >> - petalogix-s3adsp1800-be machine (big-endian CPU) on the >> qemu-system-microblazeel binary (little-endian). >> >> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> >> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> >> --- >> .../functional/test_microblaze_s3adsp1800.py | 21 +++++++++++++++++++ >> .../test_microblazeel_s3adsp1800.py | 19 +++++++++++++++++ >> 2 files changed, 40 insertions(+) >> >> diff --git a/tests/functional/test_microblaze_s3adsp1800.py >> b/tests/functional/test_microblaze_s3adsp1800.py >> index 2b2f782270..7f5e8b6024 100755 >> --- a/tests/functional/test_microblaze_s3adsp1800.py >> +++ b/tests/functional/test_microblaze_s3adsp1800.py >> @@ -36,5 +36,26 @@ def test_microblaze_s3adsp1800_be(self): >> # message, that's why we don't test for a later string here. >> This >> # needs some investigation by a microblaze wizard one day... >> + ASSET_IMAGE_LE = Asset( >> + >> ('http://www.qemu-advent-calendar.org/2023/download/day13.tar.gz'), >> + >> 'b9b3d43c5dd79db88ada495cc6e0d1f591153fe41355e925d791fbf44de50c22') >> + >> + def test_microblaze_s3adsp1800_le(self): >> + self.require_netdev('user') >> + self.set_machine('petalogix-s3adsp1800-le') >> + file_path = self.ASSET_IMAGE_LE.fetch() >> + archive_extract(file_path, self.workdir) >> + self.vm.set_console() >> + self.vm.add_args('-kernel', self.workdir + '/day13/xmaton.bin') >> + self.vm.add_args('-nic', 'user,tftp=' + self.workdir + >> '/day13/') >> + self.vm.launch() >> + wait_for_console_pattern(self, 'QEMU Advent Calendar 2023') >> + time.sleep(0.1) >> + exec_command(self, 'root') >> + time.sleep(0.1) >> + exec_command_and_wait_for_pattern(self, >> + 'tftp -g -r xmaton.png 10.0.2.2 ; md5sum xmaton.png', >> + '821cd3cab8efd16ad6ee5acc3642a8ea') >> + >> if __name__ == '__main__': >> QemuSystemTest.main() >> diff --git a/tests/functional/test_microblazeel_s3adsp1800.py >> b/tests/functional/test_microblazeel_s3adsp1800.py >> index 1aee5149fb..60543009ba 100755 >> --- a/tests/functional/test_microblazeel_s3adsp1800.py >> +++ b/tests/functional/test_microblazeel_s3adsp1800.py >> @@ -38,5 +38,24 @@ def test_microblazeel_s3adsp1800_le(self): >> 'tftp -g -r xmaton.png 10.0.2.2 ; md5sum xmaton.png', >> '821cd3cab8efd16ad6ee5acc3642a8ea') >> + ASSET_IMAGE_BE = Asset( >> + ('https://qemu-advcal.gitlab.io/qac-best-of-multiarch/download/' >> + 'day17.tar.xz'), >> + >> '3ba7439dfbea7af4876662c97f8e1f0cdad9231fc166e4861d17042489270057') >> + >> + def test_microblazeel_s3adsp1800_be(self): >> + self.set_machine('petalogix-s3adsp1800-be') >> + file_path = self.ASSET_IMAGE_BE.fetch() >> + archive_extract(file_path, self.workdir) >> + self.vm.set_console() >> + self.vm.add_args('-kernel', self.workdir + >> '/day17/ballerina.bin') >> + self.vm.launch() >> + wait_for_console_pattern(self, 'This architecture does not >> have ' >> + 'kernel memory protection') >> + # Note: >> + # The kernel sometimes gets stuck after the "This >> architecture ..." >> + # message, that's why we don't test for a later string here. >> This >> + # needs some investigation by a microblaze wizard one day... >> + >> if __name__ == '__main__': >> QemuSystemTest.main() > > Duplicating code is ugly. I think I'd rather prefer to merge the two > files into one and then add that test to both targets in meson.build. In v2 I mentioned I'll merge them in a following up patch. I'll try to do that for v4.
diff --git a/tests/functional/test_microblaze_s3adsp1800.py b/tests/functional/test_microblaze_s3adsp1800.py index 2b2f782270..7f5e8b6024 100755 --- a/tests/functional/test_microblaze_s3adsp1800.py +++ b/tests/functional/test_microblaze_s3adsp1800.py @@ -36,5 +36,26 @@ def test_microblaze_s3adsp1800_be(self): # message, that's why we don't test for a later string here. This # needs some investigation by a microblaze wizard one day... + ASSET_IMAGE_LE = Asset( + ('http://www.qemu-advent-calendar.org/2023/download/day13.tar.gz'), + 'b9b3d43c5dd79db88ada495cc6e0d1f591153fe41355e925d791fbf44de50c22') + + def test_microblaze_s3adsp1800_le(self): + self.require_netdev('user') + self.set_machine('petalogix-s3adsp1800-le') + file_path = self.ASSET_IMAGE_LE.fetch() + archive_extract(file_path, self.workdir) + self.vm.set_console() + self.vm.add_args('-kernel', self.workdir + '/day13/xmaton.bin') + self.vm.add_args('-nic', 'user,tftp=' + self.workdir + '/day13/') + self.vm.launch() + wait_for_console_pattern(self, 'QEMU Advent Calendar 2023') + time.sleep(0.1) + exec_command(self, 'root') + time.sleep(0.1) + exec_command_and_wait_for_pattern(self, + 'tftp -g -r xmaton.png 10.0.2.2 ; md5sum xmaton.png', + '821cd3cab8efd16ad6ee5acc3642a8ea') + if __name__ == '__main__': QemuSystemTest.main() diff --git a/tests/functional/test_microblazeel_s3adsp1800.py b/tests/functional/test_microblazeel_s3adsp1800.py index 1aee5149fb..60543009ba 100755 --- a/tests/functional/test_microblazeel_s3adsp1800.py +++ b/tests/functional/test_microblazeel_s3adsp1800.py @@ -38,5 +38,24 @@ def test_microblazeel_s3adsp1800_le(self): 'tftp -g -r xmaton.png 10.0.2.2 ; md5sum xmaton.png', '821cd3cab8efd16ad6ee5acc3642a8ea') + ASSET_IMAGE_BE = Asset( + ('https://qemu-advcal.gitlab.io/qac-best-of-multiarch/download/' + 'day17.tar.xz'), + '3ba7439dfbea7af4876662c97f8e1f0cdad9231fc166e4861d17042489270057') + + def test_microblazeel_s3adsp1800_be(self): + self.set_machine('petalogix-s3adsp1800-be') + file_path = self.ASSET_IMAGE_BE.fetch() + archive_extract(file_path, self.workdir) + self.vm.set_console() + self.vm.add_args('-kernel', self.workdir + '/day17/ballerina.bin') + self.vm.launch() + wait_for_console_pattern(self, 'This architecture does not have ' + 'kernel memory protection') + # Note: + # The kernel sometimes gets stuck after the "This architecture ..." + # message, that's why we don't test for a later string here. This + # needs some investigation by a microblaze wizard one day... + if __name__ == '__main__': QemuSystemTest.main()