Message ID | 20240730170347.4103919-17-berrange@redhat.com |
---|---|
State | New |
Headers | show |
Series | Convert avocado tests to normal Python unittests | expand |
On 30/7/24 19:03, Daniel P. Berrangé wrote: > From: Thomas Huth <thuth@redhat.com> > > The avocado test defined test functions for both, riscv32 and riscv64. > Since we can run the whole file with multiple targets in the new > framework, we can now consolidate the functions so we have to only > define one function per machine now. > > Reviewed-by: Alistair Francis <alistair.francis@wdc.com> > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > tests/avocado/riscv_opensbi.py | 63 -------------------------- > tests/functional/meson.build | 8 ++++ > tests/functional/test_riscv_opensbi.py | 36 +++++++++++++++ > 3 files changed, 44 insertions(+), 63 deletions(-) > delete mode 100644 tests/avocado/riscv_opensbi.py > create mode 100755 tests/functional/test_riscv_opensbi.py Please squash: -- >8 -- diff --git a/MAINTAINERS b/MAINTAINERS index 98eddf7ae1..a906218f9d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -336,6 +337,7 @@ F: include/hw/riscv/ F: linux-user/host/riscv32/ F: linux-user/host/riscv64/ F: tests/tcg/riscv64/ +F: tests/functional/test_riscv_opensbi.py RISC-V XThead* extensions M: Christoph Muellner <christoph.muellner@vrull.eu> --- Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
On 7/31/24 22:56, Philippe Mathieu-Daudé wrote: > On 30/7/24 19:03, Daniel P. Berrangé wrote: >> From: Thomas Huth <thuth@redhat.com> >> >> The avocado test defined test functions for both, riscv32 and riscv64. >> Since we can run the whole file with multiple targets in the new >> framework, we can now consolidate the functions so we have to only >> define one function per machine now. >> >> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> >> Signed-off-by: Thomas Huth <thuth@redhat.com> >> --- >> tests/avocado/riscv_opensbi.py | 63 -------------------------- >> tests/functional/meson.build | 8 ++++ >> tests/functional/test_riscv_opensbi.py | 36 +++++++++++++++ >> 3 files changed, 44 insertions(+), 63 deletions(-) >> delete mode 100644 tests/avocado/riscv_opensbi.py >> create mode 100755 tests/functional/test_riscv_opensbi.py > > Please squash: > > -- >8 -- > diff --git a/MAINTAINERS b/MAINTAINERS > index 98eddf7ae1..a906218f9d 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -336,6 +337,7 @@ F: include/hw/riscv/ > F: linux-user/host/riscv32/ > F: linux-user/host/riscv64/ > F: tests/tcg/riscv64/ > +F: tests/functional/test_riscv_opensbi.py It seems worth taking this opportunity to add per-target subdirs of tests/functional/, so that we don't have to list every individual test in MAINTAINERS. Surely one F: tests/functional/riscv/ etc, is actually maintainable... r~
On Thu, Aug 01, 2024 at 09:00:36AM +1000, Richard Henderson wrote: > On 7/31/24 22:56, Philippe Mathieu-Daudé wrote: > > On 30/7/24 19:03, Daniel P. Berrangé wrote: > > > From: Thomas Huth <thuth@redhat.com> > > > > > > The avocado test defined test functions for both, riscv32 and riscv64. > > > Since we can run the whole file with multiple targets in the new > > > framework, we can now consolidate the functions so we have to only > > > define one function per machine now. > > > > > > Reviewed-by: Alistair Francis <alistair.francis@wdc.com> > > > Signed-off-by: Thomas Huth <thuth@redhat.com> > > > --- > > > tests/avocado/riscv_opensbi.py | 63 -------------------------- > > > tests/functional/meson.build | 8 ++++ > > > tests/functional/test_riscv_opensbi.py | 36 +++++++++++++++ > > > 3 files changed, 44 insertions(+), 63 deletions(-) > > > delete mode 100644 tests/avocado/riscv_opensbi.py > > > create mode 100755 tests/functional/test_riscv_opensbi.py > > > > Please squash: > > > > -- >8 -- > > diff --git a/MAINTAINERS b/MAINTAINERS > > index 98eddf7ae1..a906218f9d 100644 > > --- a/MAINTAINERS > > +++ b/MAINTAINERS > > @@ -336,6 +337,7 @@ F: include/hw/riscv/ > > F: linux-user/host/riscv32/ > > F: linux-user/host/riscv64/ > > F: tests/tcg/riscv64/ > > +F: tests/functional/test_riscv_opensbi.py > > It seems worth taking this opportunity to add per-target subdirs of > tests/functional/, so that we don't have to list every individual test in > MAINTAINERS. > > Surely one > > F: tests/functional/riscv/ > > etc, is actually maintainable... Either that or wildcard the filenames F: tests/functional/test_riscv_* but subdirs matching the target is probably a little nicer to really encourage people to follow conventions more strictly. We would also need a "tests/functional/common/" for tests which aren't target specific With regards, Daniel
On 1/8/24 12:09, Daniel P. Berrangé wrote: > On Thu, Aug 01, 2024 at 09:00:36AM +1000, Richard Henderson wrote: >> On 7/31/24 22:56, Philippe Mathieu-Daudé wrote: >>> On 30/7/24 19:03, Daniel P. Berrangé wrote: >>>> From: Thomas Huth <thuth@redhat.com> >>>> >>>> The avocado test defined test functions for both, riscv32 and riscv64. >>>> Since we can run the whole file with multiple targets in the new >>>> framework, we can now consolidate the functions so we have to only >>>> define one function per machine now. >>>> >>>> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> >>>> Signed-off-by: Thomas Huth <thuth@redhat.com> >>>> --- >>>> tests/avocado/riscv_opensbi.py | 63 -------------------------- >>>> tests/functional/meson.build | 8 ++++ >>>> tests/functional/test_riscv_opensbi.py | 36 +++++++++++++++ >>>> 3 files changed, 44 insertions(+), 63 deletions(-) >>>> delete mode 100644 tests/avocado/riscv_opensbi.py >>>> create mode 100755 tests/functional/test_riscv_opensbi.py >>> >>> Please squash: >>> >>> -- >8 -- >>> diff --git a/MAINTAINERS b/MAINTAINERS >>> index 98eddf7ae1..a906218f9d 100644 >>> --- a/MAINTAINERS >>> +++ b/MAINTAINERS >>> @@ -336,6 +337,7 @@ F: include/hw/riscv/ >>> F: linux-user/host/riscv32/ >>> F: linux-user/host/riscv64/ >>> F: tests/tcg/riscv64/ >>> +F: tests/functional/test_riscv_opensbi.py >> >> It seems worth taking this opportunity to add per-target subdirs of >> tests/functional/, so that we don't have to list every individual test in >> MAINTAINERS. >> >> Surely one >> >> F: tests/functional/riscv/ >> >> etc, is actually maintainable... > > Either that or wildcard the filenames > > F: tests/functional/test_riscv_* > > > but subdirs matching the target is probably a little nicer to really > encourage people to follow conventions more strictly. We would also > need a "tests/functional/common/" for tests which aren't target specific Hmm I'm a bit reluctant to both suggestions. Various files are added to cover a feature which ends being tested on various archs. Once I wanted to use Avocado tags like GitLab labels, and keep a file where developers subscribe to tags; doing the parsing and label to developer conversion in Python (or Rust), and having a ./get_maintainer.sh calling both the Perl one and anything we can add in Python/Rust. That said, wildcard pattern is a simpler start.
diff --git a/tests/avocado/riscv_opensbi.py b/tests/avocado/riscv_opensbi.py deleted file mode 100644 index bfff9cc3c3..0000000000 --- a/tests/avocado/riscv_opensbi.py +++ /dev/null @@ -1,63 +0,0 @@ -# OpenSBI boot test for RISC-V machines -# -# Copyright (c) 2022, Ventana Micro -# -# 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 avocado_qemu import QemuSystemTest -from avocado_qemu import wait_for_console_pattern - -class RiscvOpenSBI(QemuSystemTest): - """ - :avocado: tags=accel:tcg - """ - timeout = 5 - - def boot_opensbi(self): - self.vm.set_console() - self.vm.launch() - wait_for_console_pattern(self, 'Platform Name') - wait_for_console_pattern(self, 'Boot HART MEDELEG') - - def test_riscv32_spike(self): - """ - :avocado: tags=arch:riscv32 - :avocado: tags=machine:spike - """ - self.boot_opensbi() - - def test_riscv64_spike(self): - """ - :avocado: tags=arch:riscv64 - :avocado: tags=machine:spike - """ - self.boot_opensbi() - - def test_riscv32_sifive_u(self): - """ - :avocado: tags=arch:riscv32 - :avocado: tags=machine:sifive_u - """ - self.boot_opensbi() - - def test_riscv64_sifive_u(self): - """ - :avocado: tags=arch:riscv64 - :avocado: tags=machine:sifive_u - """ - self.boot_opensbi() - - def test_riscv32_virt(self): - """ - :avocado: tags=arch:riscv32 - :avocado: tags=machine:virt - """ - self.boot_opensbi() - - def test_riscv64_virt(self): - """ - :avocado: tags=arch:riscv64 - :avocado: tags=machine:virt - """ - self.boot_opensbi() diff --git a/tests/functional/meson.build b/tests/functional/meson.build index d6a1a3a116..55021c4e4d 100644 --- a/tests/functional/meson.build +++ b/tests/functional/meson.build @@ -55,6 +55,14 @@ tests_ppc_thorough = [ 'ppc_bamboo', ] +tests_riscv32_quick = [ + 'riscv_opensbi', +] + +tests_riscv64_quick = [ + 'riscv_opensbi', +] + tests_s390x_thorough = [ 's390x_ccw_virtio', 's390x_topology', diff --git a/tests/functional/test_riscv_opensbi.py b/tests/functional/test_riscv_opensbi.py new file mode 100755 index 0000000000..d077e40f42 --- /dev/null +++ b/tests/functional/test_riscv_opensbi.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python3 +# +# OpenSBI boot test for RISC-V machines +# +# Copyright (c) 2022, Ventana Micro +# +# 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 QemuSystemTest +from qemu_test import wait_for_console_pattern + +class RiscvOpenSBI(QemuSystemTest): + + timeout = 5 + + def boot_opensbi(self): + self.vm.set_console() + self.vm.launch() + wait_for_console_pattern(self, 'Platform Name') + wait_for_console_pattern(self, 'Boot HART MEDELEG') + + def test_riscv_spike(self): + self.set_machine('spike') + self.boot_opensbi() + + def test_riscv_sifive_u(self): + self.set_machine('sifive_u') + self.boot_opensbi() + + def test_riscv_virt(self): + self.set_machine('virt') + self.boot_opensbi() + +if __name__ == '__main__': + QemuSystemTest.main()