Message ID | 20240726134438.14720-10-crosa@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Bump Avocado to 103.0 LTS and update tests for compatibility and new features | expand |
On Fri, Jul 26, 2024 at 09:44:34AM -0400, Cleber Rosa wrote: > The kernel is a common blob used in all tests. By moving it to the > setUp() method, the "fetch asset" plugin will recognize the kernel and > attempt to fetch it and cache it before the tests are started. The other tests don't call fetch_asset() from their setUp method - what's different about this test that prevents the asset caching working ? > > Signed-off-by: Cleber Rosa <crosa@redhat.com> > --- > tests/avocado/boot_xen.py | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) > > diff --git a/tests/avocado/boot_xen.py b/tests/avocado/boot_xen.py > index f29bc58b9e..490a127a3e 100644 > --- a/tests/avocado/boot_xen.py > +++ b/tests/avocado/boot_xen.py > @@ -30,23 +30,22 @@ class BootXen(LinuxKernelTest): > timeout = 90 > XEN_COMMON_COMMAND_LINE = 'dom0_mem=128M loglvl=all guest_loglvl=all' > > - def fetch_guest_kernel(self): > + def setUp(self): > + super(BootXen, self).setUp() > + > # Using my own built kernel - which works > kernel_url = ('https://fileserver.linaro.org/' > 's/JSsewXGZ6mqxPr5/download?path=%2F&files=' > 'linux-5.9.9-arm64-ajb') > kernel_sha1 = '4f92bc4b9f88d5ab792fa7a43a68555d344e1b83' > - kernel_path = self.fetch_asset(kernel_url, > - asset_hash=kernel_sha1) > - > - return kernel_path > + self.kernel_path = self.fetch_asset(kernel_url, > + asset_hash=kernel_sha1) > > def launch_xen(self, xen_path): > """ > Launch Xen with a dom0 guest kernel > """ > self.log.info("launch with xen_path: %s", xen_path) > - kernel_path = self.fetch_guest_kernel() > > self.vm.set_console() > > @@ -56,7 +55,7 @@ def launch_xen(self, xen_path): > '-append', self.XEN_COMMON_COMMAND_LINE, > '-device', > 'guest-loader,addr=0x47000000,kernel=%s,bootargs=console=hvc0' > - % (kernel_path)) > + % (self.kernel_path)) > > self.vm.launch() > > -- > 2.45.2 > > With regards, Daniel
On Mon, Jul 29, 2024 at 7:01 AM Daniel P. Berrangé <berrange@redhat.com> wrote: > > On Fri, Jul 26, 2024 at 09:44:34AM -0400, Cleber Rosa wrote: > > The kernel is a common blob used in all tests. By moving it to the > > setUp() method, the "fetch asset" plugin will recognize the kernel and > > attempt to fetch it and cache it before the tests are started. > > The other tests don't call fetch_asset() from their setUp > method - what's different about this test that prevents the > asset caching working ? > The "wizardry" of the "fetch asset" plugin limits itself to analyzing test methods and the setUp() method. This test currently does that in the "fetch_guest_kernel()" method, which makes it blind to the "fetch asset" plugin. If there are other tests doing that (in custom methods), then a similar change would be desirable. Regards, - Cleber.
diff --git a/tests/avocado/boot_xen.py b/tests/avocado/boot_xen.py index f29bc58b9e..490a127a3e 100644 --- a/tests/avocado/boot_xen.py +++ b/tests/avocado/boot_xen.py @@ -30,23 +30,22 @@ class BootXen(LinuxKernelTest): timeout = 90 XEN_COMMON_COMMAND_LINE = 'dom0_mem=128M loglvl=all guest_loglvl=all' - def fetch_guest_kernel(self): + def setUp(self): + super(BootXen, self).setUp() + # Using my own built kernel - which works kernel_url = ('https://fileserver.linaro.org/' 's/JSsewXGZ6mqxPr5/download?path=%2F&files=' 'linux-5.9.9-arm64-ajb') kernel_sha1 = '4f92bc4b9f88d5ab792fa7a43a68555d344e1b83' - kernel_path = self.fetch_asset(kernel_url, - asset_hash=kernel_sha1) - - return kernel_path + self.kernel_path = self.fetch_asset(kernel_url, + asset_hash=kernel_sha1) def launch_xen(self, xen_path): """ Launch Xen with a dom0 guest kernel """ self.log.info("launch with xen_path: %s", xen_path) - kernel_path = self.fetch_guest_kernel() self.vm.set_console() @@ -56,7 +55,7 @@ def launch_xen(self, xen_path): '-append', self.XEN_COMMON_COMMAND_LINE, '-device', 'guest-loader,addr=0x47000000,kernel=%s,bootargs=console=hvc0' - % (kernel_path)) + % (self.kernel_path)) self.vm.launch()
The kernel is a common blob used in all tests. By moving it to the setUp() method, the "fetch asset" plugin will recognize the kernel and attempt to fetch it and cache it before the tests are started. Signed-off-by: Cleber Rosa <crosa@redhat.com> --- tests/avocado/boot_xen.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-)