Hi Cleber, On 1/17/19 7:56 PM, Cleber Rosa wrote: > Similar to the x86_64 + pc test, it boots a Linux kernel on a Malta > board and verify the serial is working. > > If mips64el is a target being built, "make check-acceptance" will > automatically include this test by the use of the "arch:mips" tags. > > Alternatively, this test can be run using: > > $ avocado run -t arch:mips64el tests/acceptance > $ avocado run -t machine:malta tests/acceptance > > Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> > Signed-off-by: Cleber Rosa <cr...@redhat.com> > --- > .travis.yml | 2 +- > tests/acceptance/boot_linux_console.py | 39 ++++++++++++++++++++++++++ > 2 files changed, 40 insertions(+), 1 deletion(-) > > diff --git a/.travis.yml b/.travis.yml > index 49f9016e6a..28648f7a61 100644 > --- a/.travis.yml > +++ b/.travis.yml > @@ -187,7 +187,7 @@ matrix: > > # Acceptance (Functional) tests > - env: > - - CONFIG="--python=/usr/bin/python3 > --target-list=x86_64-softmmu,mips-softmmu" > + - CONFIG="--python=/usr/bin/python3 > --target-list=x86_64-softmmu,mips-softmmu,mips64el-softmmu" > - TEST_CMD="make check-acceptance" > addons: > apt: > diff --git a/tests/acceptance/boot_linux_console.py > b/tests/acceptance/boot_linux_console.py > index 0678ec91d2..20b845fce1 100644 > --- a/tests/acceptance/boot_linux_console.py > +++ b/tests/acceptance/boot_linux_console.py > @@ -9,8 +9,11 @@ > # later. See the COPYING file in the top-level directory. > > import logging > +import os > > from avocado_qemu import Test > +from avocado.utils import process > +from avocado.utils import archive > > > class BootLinuxConsole(Test): > @@ -80,3 +83,39 @@ class BootLinuxConsole(Test): > self.vm.launch() > console_pattern = 'Kernel command line: %s' % kernel_command_line > self.wait_for_console_pattern(console_pattern) > + > + def test_mips64el_malta(self): > + """ > + This test requires the ar tool to extract "data.tar.gz" from > + the Debian package. > + > + The kernel can be rebuilt using this Debian kernel source [1] and > + following the instructions on [2]. > + > + [1] > https://kernel-team.pages.debian.net/kernel-handbook/ch-common-tasks.html#s-common-official > + [2] > http://snapshot.debian.org/package/linux-2.6/2.6.32-48/#linux-source-2.6.32_2.6.32-48 > + > + :avocado: tags=arch:mips64el > + :avocado: tags=machine:malta > + """ > + deb_url = > ('http://snapshot.debian.org/archive/debian/20130217T032700Z/' > + 'pool/main/l/linux-2.6/' > + 'linux-image-2.6.32-5-5kc-malta_2.6.32-48_mipsel.deb') > + deb_hash = '1aaec92083bf22fda31e0d27fa8d9a388e5fc3d5' > + deb_path = self.fetch_asset(deb_url, asset_hash=deb_hash) > +
Can you refactor this code ... > + cwd = os.getcwd() > + os.chdir(self.workdir) > + process.run("ar x %s data.tar.gz" % deb_path) > + archive.extract("data.tar.gz", self.workdir) > + os.chdir(cwd) > + kernel_path = self.workdir + '/boot/vmlinux-2.6.32-5-5kc-malta' ... as an helper function? Can be follow-up patch, so: Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> > + > + self.vm.set_machine('malta') > + self.vm.set_console() > + kernel_command_line = 'console=ttyS0 printk.time=0' > + self.vm.add_args('-kernel', kernel_path, > + '-append', kernel_command_line) > + self.vm.launch() > + console_pattern = 'Kernel command line: %s' % kernel_command_line > + self.wait_for_console_pattern(console_pattern) >