mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
tests/functional: Test both microblaze s3adsp1800 endianness variants
Now that the endianness of the petalogix-s3adsp1800 can be configured, we should test that the cross-endianness also works as expected, thus test the big endian variant on the little endian target and vice versa. (based on an original idea from Philippe Mathieu-Daudé) Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Signed-off-by: Thomas Huth <thuth@redhat.com> Message-ID: <20250515132019.569365-3-thuth@redhat.com>
This commit is contained in:
parent
141ec228de
commit
6c54775584
2 changed files with 18 additions and 6 deletions
|
@ -25,12 +25,14 @@ class MicroblazeMachine(QemuSystemTest):
|
|||
('http://www.qemu-advent-calendar.org/2023/download/day13.tar.gz'),
|
||||
'b9b3d43c5dd79db88ada495cc6e0d1f591153fe41355e925d791fbf44de50c22')
|
||||
|
||||
def do_ballerina_be_test(self, machine):
|
||||
self.set_machine(machine)
|
||||
def do_ballerina_be_test(self, force_endianness=False):
|
||||
self.set_machine('petalogix-s3adsp1800')
|
||||
self.archive_extract(self.ASSET_IMAGE_BE)
|
||||
self.vm.set_console()
|
||||
self.vm.add_args('-kernel',
|
||||
self.scratch_file('day17', 'ballerina.bin'))
|
||||
if force_endianness:
|
||||
self.vm.add_args('-M', 'endianness=big')
|
||||
self.vm.launch()
|
||||
wait_for_console_pattern(self, 'This architecture does not have '
|
||||
'kernel memory protection')
|
||||
|
@ -39,12 +41,14 @@ class MicroblazeMachine(QemuSystemTest):
|
|||
# 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):
|
||||
def do_xmaton_le_test(self, force_endianness=False):
|
||||
self.require_netdev('user')
|
||||
self.set_machine(machine)
|
||||
self.set_machine('petalogix-s3adsp1800')
|
||||
self.archive_extract(self.ASSET_IMAGE_LE)
|
||||
self.vm.set_console()
|
||||
self.vm.add_args('-kernel', self.scratch_file('day13', 'xmaton.bin'))
|
||||
if force_endianness:
|
||||
self.vm.add_args('-M', 'endianness=little')
|
||||
tftproot = self.scratch_file('day13')
|
||||
self.vm.add_args('-nic', f'user,tftp={tftproot}')
|
||||
self.vm.launch()
|
||||
|
@ -59,9 +63,13 @@ class MicroblazeMachine(QemuSystemTest):
|
|||
class MicroblazeBigEndianMachine(MicroblazeMachine):
|
||||
|
||||
ASSET_IMAGE_BE = MicroblazeMachine.ASSET_IMAGE_BE
|
||||
ASSET_IMAGE_LE = MicroblazeMachine.ASSET_IMAGE_LE
|
||||
|
||||
def test_microblaze_s3adsp1800_legacy_be(self):
|
||||
self.do_ballerina_be_test('petalogix-s3adsp1800')
|
||||
self.do_ballerina_be_test()
|
||||
|
||||
def test_microblaze_s3adsp1800_legacy_le(self):
|
||||
self.do_xmaton_le_test(force_endianness=True)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
|
@ -13,9 +13,13 @@ from test_microblaze_s3adsp1800 import MicroblazeMachine
|
|||
class MicroblazeLittleEndianMachine(MicroblazeMachine):
|
||||
|
||||
ASSET_IMAGE_LE = MicroblazeMachine.ASSET_IMAGE_LE
|
||||
ASSET_IMAGE_BE = MicroblazeMachine.ASSET_IMAGE_BE
|
||||
|
||||
def test_microblaze_s3adsp1800_legacy_le(self):
|
||||
self.do_xmaton_le_test('petalogix-s3adsp1800')
|
||||
self.do_xmaton_le_test()
|
||||
|
||||
def test_microblaze_s3adsp1800_legacy_be(self):
|
||||
self.do_ballerina_be_test(force_endianness=True)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue