Message ID | 20240821112959.54237-1-philmd@linaro.org |
---|---|
State | New |
Headers | show |
Series | tests/functional: Convert mips fuloong2e avocado test | expand |
On 21/08/2024 13.29, Philippe Mathieu-Daudé wrote: > Straight forward conversion. Update the SHA1 hashes to > SHA256 hashes since SHA1 should not be used anymore nowadays. > > Since the asset is expected locally and the test is guarded > with QEMU_TEST_ALLOW_UNTRUSTED_CODE, keep it under the 'quick' > category. > > $ RESCUE_YL_PATH=/path/to/rescue-yl QEMU_TEST_ALLOW_UNTRUSTED_CODE=1 \ > make check-functional-mips64el > 1/4 qemu:func-quick+func-mips64el / func-mips64el-empty_cpu_model OK 0.12s 1 subtests passed > 2/4 qemu:func-quick+func-mips64el / func-mips64el-version OK 0.13s 1 subtests passed > 3/4 qemu:func-quick+func-mips64el / func-mips64el-info_usernet OK 0.15s 1 subtests passed > 4/4 qemu:func-quick+func-mips64el / func-mips64el-mips64el_fuloong2e OK 0.19s 1 subtests passed > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > Based-on: <20240821082748.65853-1-thuth@redhat.com> > --- > MAINTAINERS | 2 +- > tests/functional/meson.build | 4 +++ > .../test_mips64el_fuloong2e.py} | 32 +++++++++---------- > 3 files changed, 21 insertions(+), 17 deletions(-) > rename tests/{avocado/machine_mips_fuloong2e.py => functional/test_mips64el_fuloong2e.py} (56%) > mode change 100644 => 100755 > > diff --git a/MAINTAINERS b/MAINTAINERS > index 25e71ac14c..77fbb5d42e 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -1384,7 +1384,7 @@ S: Odd Fixes > F: hw/mips/fuloong2e.c > F: hw/pci-host/bonito.c > F: include/hw/pci-host/bonito.h > -F: tests/avocado/machine_mips_fuloong2e.py > +F: tests/functional/test_mips64el_fuloong2e.py > > Loongson-3 virtual platforms > M: Huacai Chen <chenhuacai@kernel.org> > diff --git a/tests/functional/meson.build b/tests/functional/meson.build > index 12e08e365b..8d28313a65 100644 > --- a/tests/functional/meson.build > +++ b/tests/functional/meson.build > @@ -51,6 +51,10 @@ tests_microblazeel_thorough = [ > 'microblazeel_s3adsp1800' > ] > > +tests_mips64el_quick = [ > + 'mips64el_fuloong2e', > +] > + > tests_mips64el_thorough = [ > 'mips64el_loongson3v', > ] > diff --git a/tests/avocado/machine_mips_fuloong2e.py b/tests/functional/test_mips64el_fuloong2e.py > old mode 100644 > new mode 100755 > similarity index 56% > rename from tests/avocado/machine_mips_fuloong2e.py > rename to tests/functional/test_mips64el_fuloong2e.py > index 89291f47b2..523dce4ec4 > --- a/tests/avocado/machine_mips_fuloong2e.py > +++ b/tests/functional/test_mips64el_fuloong2e.py > @@ -1,3 +1,5 @@ > +#!/usr/bin/env python3 > +# > # Functional tests for the Lemote Fuloong-2E machine. > # > # Copyright (c) 2019 Philippe Mathieu-Daudé <f4bug@amsat.org> > @@ -9,34 +11,32 @@ > > import os > > -from avocado import skipUnless > -from avocado_qemu import QemuSystemTest > -from avocado_qemu import wait_for_console_pattern > +from qemu_test import QemuSystemTest, Asset > +from qemu_test import wait_for_console_pattern > +from unittest import skipUnless > > class MipsFuloong2e(QemuSystemTest): > > timeout = 60 > > - @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code') > - @skipUnless(os.getenv('RESCUE_YL_PATH'), 'RESCUE_YL_PATH not available') Wouldn't it be better to keep the RESCUE_YL_PATH decorator? > + ASSET_KERNEL = Asset( > + # http://dev.lemote.com/files/resource/download/rescue/rescue-yl > + ('file://' + os.getenv('RESCUE_YL_PATH')), The precaching is now failing if this environment variable has not been set: Traceback (most recent call last): File "/home/thuth/devel/qemu/tests/functional/test_mips64el_fuloong2e.py", line 18, in <module> class MipsFuloong2e(QemuSystemTest): File "/home/thuth/devel/qemu/tests/functional/test_mips64el_fuloong2e.py", line 24, in MipsFuloong2e ('file://' + os.getenv('RESCUE_YL_PATH')), ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TypeError: can only concatenate str (not "NoneType") to str Since we don't really need precaching in this case, maybe you could move the asset definition into the function itself, or do this test without the asset framework? Thomas > + 'ab588d3316777c62cc81baa20ac92e98b01955c244dff3794b711bc34e26e51d') > + > + @skipUnless(os.getenv('QEMU_TEST_ALLOW_UNTRUSTED_CODE'), 'untrusted code') > def test_linux_kernel_isa_serial(self): > - """ > - :avocado: tags=arch:mips64el > - :avocado: tags=machine:fuloong2e > - :avocado: tags=endian:little > - :avocado: tags=device:bonito64 > - :avocado: tags=device:via686b > - """ > # Recovery system for the Yeeloong laptop > # (enough to test the fuloong2e southbridge, accessing its ISA bus) > - # http://dev.lemote.com/files/resource/download/rescue/rescue-yl > - kernel_hash = 'ec4d1bd89a8439c41033ca63db60160cc6d6f09a' > - kernel_path = self.fetch_asset('file://' + os.getenv('RESCUE_YL_PATH'), > - asset_hash=kernel_hash) > + kernel_path = self.ASSET_KERNEL.fetch() > > + self.set_machine('fuloong2e') > self.vm.set_console() > self.vm.add_args('-kernel', kernel_path) > self.vm.launch() > wait_for_console_pattern(self, 'Linux version 2.6.27.7lemote') > cpu_revision = 'CPU revision is: 00006302 (ICT Loongson-2)' > wait_for_console_pattern(self, cpu_revision) > + > +if __name__ == '__main__': > + QemuSystemTest.main()
On 21/8/24 13:46, Thomas Huth wrote: > On 21/08/2024 13.29, Philippe Mathieu-Daudé wrote: >> Straight forward conversion. Update the SHA1 hashes to >> SHA256 hashes since SHA1 should not be used anymore nowadays. >> >> Since the asset is expected locally and the test is guarded >> with QEMU_TEST_ALLOW_UNTRUSTED_CODE, keep it under the 'quick' >> category. >> >> $ RESCUE_YL_PATH=/path/to/rescue-yl QEMU_TEST_ALLOW_UNTRUSTED_CODE=1 \ >> make check-functional-mips64el >> 1/4 qemu:func-quick+func-mips64el / >> func-mips64el-empty_cpu_model OK 0.12s 1 subtests passed >> 2/4 qemu:func-quick+func-mips64el / >> func-mips64el-version OK 0.13s 1 subtests passed >> 3/4 qemu:func-quick+func-mips64el / >> func-mips64el-info_usernet OK 0.15s 1 subtests passed >> 4/4 qemu:func-quick+func-mips64el / >> func-mips64el-mips64el_fuloong2e OK 0.19s 1 subtests passed >> >> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> >> --- >> Based-on: <20240821082748.65853-1-thuth@redhat.com> >> --- >> MAINTAINERS | 2 +- >> tests/functional/meson.build | 4 +++ >> .../test_mips64el_fuloong2e.py} | 32 +++++++++---------- >> 3 files changed, 21 insertions(+), 17 deletions(-) >> rename tests/{avocado/machine_mips_fuloong2e.py => >> functional/test_mips64el_fuloong2e.py} (56%) >> mode change 100644 => 100755 >> >> diff --git a/MAINTAINERS b/MAINTAINERS >> index 25e71ac14c..77fbb5d42e 100644 >> --- a/MAINTAINERS >> +++ b/MAINTAINERS >> @@ -1384,7 +1384,7 @@ S: Odd Fixes >> F: hw/mips/fuloong2e.c >> F: hw/pci-host/bonito.c >> F: include/hw/pci-host/bonito.h >> -F: tests/avocado/machine_mips_fuloong2e.py >> +F: tests/functional/test_mips64el_fuloong2e.py >> Loongson-3 virtual platforms >> M: Huacai Chen <chenhuacai@kernel.org> >> diff --git a/tests/functional/meson.build b/tests/functional/meson.build >> index 12e08e365b..8d28313a65 100644 >> --- a/tests/functional/meson.build >> +++ b/tests/functional/meson.build >> @@ -51,6 +51,10 @@ tests_microblazeel_thorough = [ >> 'microblazeel_s3adsp1800' >> ] >> +tests_mips64el_quick = [ >> + 'mips64el_fuloong2e', >> +] >> + >> tests_mips64el_thorough = [ >> 'mips64el_loongson3v', >> ] >> diff --git a/tests/avocado/machine_mips_fuloong2e.py >> b/tests/functional/test_mips64el_fuloong2e.py >> old mode 100644 >> new mode 100755 >> similarity index 56% >> rename from tests/avocado/machine_mips_fuloong2e.py >> rename to tests/functional/test_mips64el_fuloong2e.py >> index 89291f47b2..523dce4ec4 >> --- a/tests/avocado/machine_mips_fuloong2e.py >> +++ b/tests/functional/test_mips64el_fuloong2e.py >> @@ -1,3 +1,5 @@ >> +#!/usr/bin/env python3 >> +# >> # Functional tests for the Lemote Fuloong-2E machine. >> # >> # Copyright (c) 2019 Philippe Mathieu-Daudé <f4bug@amsat.org> >> @@ -9,34 +11,32 @@ >> import os >> -from avocado import skipUnless >> -from avocado_qemu import QemuSystemTest >> -from avocado_qemu import wait_for_console_pattern >> +from qemu_test import QemuSystemTest, Asset >> +from qemu_test import wait_for_console_pattern >> +from unittest import skipUnless >> class MipsFuloong2e(QemuSystemTest): >> timeout = 60 >> - @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted >> code') >> - @skipUnless(os.getenv('RESCUE_YL_PATH'), 'RESCUE_YL_PATH not >> available') > > Wouldn't it be better to keep the RESCUE_YL_PATH decorator? Oops yes, no clue how I removed that. > >> + ASSET_KERNEL = Asset( >> + # http://dev.lemote.com/files/resource/download/rescue/rescue-yl >> + ('file://' + os.getenv('RESCUE_YL_PATH')), > > The precaching is now failing if this environment variable has not been > set: > > Traceback (most recent call last): > File > "/home/thuth/devel/qemu/tests/functional/test_mips64el_fuloong2e.py", > line 18, in <module> > class MipsFuloong2e(QemuSystemTest): > File > "/home/thuth/devel/qemu/tests/functional/test_mips64el_fuloong2e.py", > line 24, in MipsFuloong2e > ('file://' + os.getenv('RESCUE_YL_PATH')), > ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > TypeError: can only concatenate str (not "NoneType") to str > > Since we don't really need precaching in this case, maybe you could move > the asset definition into the function itself, or do this test without > the asset framework? Good idea.
diff --git a/MAINTAINERS b/MAINTAINERS index 25e71ac14c..77fbb5d42e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1384,7 +1384,7 @@ S: Odd Fixes F: hw/mips/fuloong2e.c F: hw/pci-host/bonito.c F: include/hw/pci-host/bonito.h -F: tests/avocado/machine_mips_fuloong2e.py +F: tests/functional/test_mips64el_fuloong2e.py Loongson-3 virtual platforms M: Huacai Chen <chenhuacai@kernel.org> diff --git a/tests/functional/meson.build b/tests/functional/meson.build index 12e08e365b..8d28313a65 100644 --- a/tests/functional/meson.build +++ b/tests/functional/meson.build @@ -51,6 +51,10 @@ tests_microblazeel_thorough = [ 'microblazeel_s3adsp1800' ] +tests_mips64el_quick = [ + 'mips64el_fuloong2e', +] + tests_mips64el_thorough = [ 'mips64el_loongson3v', ] diff --git a/tests/avocado/machine_mips_fuloong2e.py b/tests/functional/test_mips64el_fuloong2e.py old mode 100644 new mode 100755 similarity index 56% rename from tests/avocado/machine_mips_fuloong2e.py rename to tests/functional/test_mips64el_fuloong2e.py index 89291f47b2..523dce4ec4 --- a/tests/avocado/machine_mips_fuloong2e.py +++ b/tests/functional/test_mips64el_fuloong2e.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python3 +# # Functional tests for the Lemote Fuloong-2E machine. # # Copyright (c) 2019 Philippe Mathieu-Daudé <f4bug@amsat.org> @@ -9,34 +11,32 @@ import os -from avocado import skipUnless -from avocado_qemu import QemuSystemTest -from avocado_qemu import wait_for_console_pattern +from qemu_test import QemuSystemTest, Asset +from qemu_test import wait_for_console_pattern +from unittest import skipUnless class MipsFuloong2e(QemuSystemTest): timeout = 60 - @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code') - @skipUnless(os.getenv('RESCUE_YL_PATH'), 'RESCUE_YL_PATH not available') + ASSET_KERNEL = Asset( + # http://dev.lemote.com/files/resource/download/rescue/rescue-yl + ('file://' + os.getenv('RESCUE_YL_PATH')), + 'ab588d3316777c62cc81baa20ac92e98b01955c244dff3794b711bc34e26e51d') + + @skipUnless(os.getenv('QEMU_TEST_ALLOW_UNTRUSTED_CODE'), 'untrusted code') def test_linux_kernel_isa_serial(self): - """ - :avocado: tags=arch:mips64el - :avocado: tags=machine:fuloong2e - :avocado: tags=endian:little - :avocado: tags=device:bonito64 - :avocado: tags=device:via686b - """ # Recovery system for the Yeeloong laptop # (enough to test the fuloong2e southbridge, accessing its ISA bus) - # http://dev.lemote.com/files/resource/download/rescue/rescue-yl - kernel_hash = 'ec4d1bd89a8439c41033ca63db60160cc6d6f09a' - kernel_path = self.fetch_asset('file://' + os.getenv('RESCUE_YL_PATH'), - asset_hash=kernel_hash) + kernel_path = self.ASSET_KERNEL.fetch() + self.set_machine('fuloong2e') self.vm.set_console() self.vm.add_args('-kernel', kernel_path) self.vm.launch() wait_for_console_pattern(self, 'Linux version 2.6.27.7lemote') cpu_revision = 'CPU revision is: 00006302 (ICT Loongson-2)' wait_for_console_pattern(self, cpu_revision) + +if __name__ == '__main__': + QemuSystemTest.main()
Straight forward conversion. Update the SHA1 hashes to SHA256 hashes since SHA1 should not be used anymore nowadays. Since the asset is expected locally and the test is guarded with QEMU_TEST_ALLOW_UNTRUSTED_CODE, keep it under the 'quick' category. $ RESCUE_YL_PATH=/path/to/rescue-yl QEMU_TEST_ALLOW_UNTRUSTED_CODE=1 \ make check-functional-mips64el 1/4 qemu:func-quick+func-mips64el / func-mips64el-empty_cpu_model OK 0.12s 1 subtests passed 2/4 qemu:func-quick+func-mips64el / func-mips64el-version OK 0.13s 1 subtests passed 3/4 qemu:func-quick+func-mips64el / func-mips64el-info_usernet OK 0.15s 1 subtests passed 4/4 qemu:func-quick+func-mips64el / func-mips64el-mips64el_fuloong2e OK 0.19s 1 subtests passed Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- Based-on: <20240821082748.65853-1-thuth@redhat.com> --- MAINTAINERS | 2 +- tests/functional/meson.build | 4 +++ .../test_mips64el_fuloong2e.py} | 32 +++++++++---------- 3 files changed, 21 insertions(+), 17 deletions(-) rename tests/{avocado/machine_mips_fuloong2e.py => functional/test_mips64el_fuloong2e.py} (56%) mode change 100644 => 100755