Message ID | 20190117185628.21862-14-crosa@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Acceptance Tests: target architecture support | expand |
On Thu, Jan 17, 2019 at 01:56:23PM -0500, 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é <f4bug@amsat.org> > Signed-off-by: Cleber Rosa <crosa@redhat.com> Reviewed-by: Caio Carrara <ccarrara@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) > + > + 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' > + > + 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) > -- > 2.20.1 >
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é <f4bug@amsat.org> > Signed-off-by: Cleber Rosa <crosa@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é <philmd@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) >
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é <f4bug@amsat.org> > Signed-off-by: Cleber Rosa <crosa@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) > + > + 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' > + > + self.vm.set_machine('malta') > + self.vm.set_console() > + kernel_command_line = 'console=ttyS0 printk.time=0' What about having a generic KERNEL_COMMON_COMMAND_LINE='printk.time=0 ' then using kernel_command_line = KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0' in each tests of this series? > + 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) >
On 1/22/19 5:19 AM, Philippe Mathieu-Daudé wrote: > 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é <f4bug@amsat.org> >> Signed-off-by: Cleber Rosa <crosa@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? > Yes. In fact, because of the kernel change in the previous patch, I've added it there. > Can be follow-up patch, so: > Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > In the longer term, I expect to add deb (and RPM, etc) support to the avocado.utils.archive module: https://trello.com/c/bQBnvkjv/1437-avocadoutilsarchive-support-rpm-deb-etc Thanks! - Cleber.
On 1/22/19 5:57 AM, Philippe Mathieu-Daudé wrote: > 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é <f4bug@amsat.org> >> Signed-off-by: Cleber Rosa <crosa@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) >> + >> + 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' >> + >> + self.vm.set_machine('malta') >> + self.vm.set_console() >> + kernel_command_line = 'console=ttyS0 printk.time=0' > > What about having a generic KERNEL_COMMON_COMMAND_LINE='printk.time=0 ' > then using > kernel_command_line = KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0' > in each tests of this series? > Not sure... I do like the fact that it's more uniform, but I don't like the locality aspect. Having to refer back to something defined either in the module or class level for something so small is a big con, IMO. I'll keep it AS IS for now, and if more people feel like it's a good idea, or you feel stronger that it's a good idea, I can add it in the next version. Thanks! - Cleber. >> + 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) >>
On 1/31/19 2:26 AM, Cleber Rosa wrote: > On 1/22/19 5:19 AM, Philippe Mathieu-Daudé wrote: >> 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é <f4bug@amsat.org> >>> Signed-off-by: Cleber Rosa <crosa@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? >> > > Yes. In fact, because of the kernel change in the previous patch, I've > added it there. > >> Can be follow-up patch, so: >> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> >> > > In the longer term, I expect to add deb (and RPM, etc) support to the > avocado.utils.archive module: > > https://trello.com/c/bQBnvkjv/1437-avocadoutilsarchive-support-rpm-deb-etc Awesome, thanks!
On 1/31/19 2:34 AM, Cleber Rosa wrote: > On 1/22/19 5:57 AM, Philippe Mathieu-Daudé wrote: >> 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é <f4bug@amsat.org> >>> Signed-off-by: Cleber Rosa <crosa@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) >>> + >>> + 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' >>> + >>> + self.vm.set_machine('malta') >>> + self.vm.set_console() >>> + kernel_command_line = 'console=ttyS0 printk.time=0' >> >> What about having a generic KERNEL_COMMON_COMMAND_LINE='printk.time=0 ' >> then using >> kernel_command_line = KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0' >> in each tests of this series? >> > > Not sure... I do like the fact that it's more uniform, but I don't like > the locality aspect. Having to refer back to something defined either > in the module or class level for something so small is a big con, IMO. > > I'll keep it AS IS for now, and if more people feel like it's a good > idea, or you feel stronger that it's a good idea, I can add it in the > next version. I'm fine with that, however I'd really like all the Linux tests to use "printk.time=0" in their kernel cmdline, it really simplify parsing/diffing the console output. >>> + 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) >>> >
On 1/31/19 5:26 AM, Philippe Mathieu-Daudé wrote: > On 1/31/19 2:34 AM, Cleber Rosa wrote: >> On 1/22/19 5:57 AM, Philippe Mathieu-Daudé wrote: >>> 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é <f4bug@amsat.org> >>>> Signed-off-by: Cleber Rosa <crosa@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) >>>> + >>>> + 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' >>>> + >>>> + self.vm.set_machine('malta') >>>> + self.vm.set_console() >>>> + kernel_command_line = 'console=ttyS0 printk.time=0' >>> >>> What about having a generic KERNEL_COMMON_COMMAND_LINE='printk.time=0 ' >>> then using >>> kernel_command_line = KERNEL_COMMON_COMMAND_LINE + 'console=ttyS0' >>> in each tests of this series? >>> >> >> Not sure... I do like the fact that it's more uniform, but I don't like >> the locality aspect. Having to refer back to something defined either >> in the module or class level for something so small is a big con, IMO. >> >> I'll keep it AS IS for now, and if more people feel like it's a good >> idea, or you feel stronger that it's a good idea, I can add it in the >> next version. > > I'm fine with that, however I'd really like all the Linux tests to use > "printk.time=0" in their kernel cmdline, it really simplify > parsing/diffing the console output. > OK, I'll include that in v2. Thanks! - Cleber. >>>> + 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) >>>> >>
On 01/17/2019 04: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. s/arch:mips/arch:mips64el > > 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é <f4bug@amsat.org> > Signed-off-by: Cleber Rosa <crosa@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 There references 1 and 2 are inverted. - Wainer > + > + :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) > + > + 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' > + > + 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)
On 1/31/19 1:14 PM, Wainer dos Santos Moschetta wrote: > > On 01/17/2019 04: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. > > s/arch:mips/arch:mips64el > Good catch! >> >> 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é <f4bug@amsat.org> >> Signed-off-by: Cleber Rosa <crosa@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 >> > > There references 1 and 2 are inverted. > And yet another one good catch! Your proofreading is awesome! - Cleber. > - Wainer > >> + >> + :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) >> + >> + 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' >> + >> + 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) >
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) + + 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' + + 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)