* [PATCH 0/2] tests/acceptance/integratorcp: Verify Tux is displayed on framebuffer
@ 2020-01-31 21:11 Philippe Mathieu-Daudé
2020-01-31 21:11 ` [PATCH 1/2] tests/acceptance: Extract boot_integratorcp() from test_integratorcp() Philippe Mathieu-Daudé
2020-01-31 21:11 ` [PATCH 2/2] tests/acceptance/integratorcp: Verify Tux is displayed on framebuffer Philippe Mathieu-Daudé
0 siblings, 2 replies; 8+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-01-31 21:11 UTC (permalink / raw)
To: qemu-devel
Cc: Peter Maydell, Thomas Huth, Eduardo Habkost,
Dr . David Alan Gilbert, Wainer dos Santos Moschetta,
Philippe Mathieu-Daudé, qemu-arm, Gerd Hoffmann, Cleber Rosa
Hi,
This is a simple Avocado test that use OpenCV to find the
Tux logo on the framebuffer screen dump.
It is very fast, around 4 seconds on my laptop.
Tux found by OpenCV: https://pasteboard.co/ISz7kr8.png
Regards,
Phil.
Based-on: <20200131170233.14584-1-thuth@redhat.com>
"tests/acceptance: Add a test for the integratorcp arm machine"
https://www.mail-archive.com/qemu-devel@nongnu.org/msg675828.html
Philippe Mathieu-Daudé (2):
tests/acceptance: Extract boot_integratorcp() from test_integratorcp()
tests/acceptance/integratorcp: Verify Tux is displayed on framebuffer
tests/acceptance/machine_arm_integratorcp.py | 67 ++++++++++++++++++--
1 file changed, 61 insertions(+), 6 deletions(-)
--
2.21.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/2] tests/acceptance: Extract boot_integratorcp() from test_integratorcp()
2020-01-31 21:11 [PATCH 0/2] tests/acceptance/integratorcp: Verify Tux is displayed on framebuffer Philippe Mathieu-Daudé
@ 2020-01-31 21:11 ` Philippe Mathieu-Daudé
2020-02-01 7:06 ` Thomas Huth
2020-02-03 14:00 ` Wainer dos Santos Moschetta
2020-01-31 21:11 ` [PATCH 2/2] tests/acceptance/integratorcp: Verify Tux is displayed on framebuffer Philippe Mathieu-Daudé
1 sibling, 2 replies; 8+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-01-31 21:11 UTC (permalink / raw)
To: qemu-devel
Cc: Peter Maydell, Thomas Huth, Eduardo Habkost,
Dr . David Alan Gilbert, Wainer dos Santos Moschetta,
Philippe Mathieu-Daudé, qemu-arm, Gerd Hoffmann, Cleber Rosa
As we want to re-use this code, extract it as a new function.
Since we are using the PL011 serial console, add a Avocado tag
to ease filtering of tests.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
tests/acceptance/machine_arm_integratorcp.py | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/tests/acceptance/machine_arm_integratorcp.py b/tests/acceptance/machine_arm_integratorcp.py
index 4f9ab40f2f..748819916d 100644
--- a/tests/acceptance/machine_arm_integratorcp.py
+++ b/tests/acceptance/machine_arm_integratorcp.py
@@ -19,12 +19,7 @@ class IntegratorMachine(Test):
timeout = 90
- @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code')
- def test_integratorcp(self):
- """
- :avocado: tags=arch:arm
- :avocado: tags=machine:integratorcp
- """
+ def boot_integratorcp(self):
kernel_url = ('https://github.com/zayac/qemu-arm/raw/master/'
'arm-test/kernel/zImage.integrator')
kernel_hash = '0d7adba893c503267c946a3cbdc63b4b54f25468'
@@ -40,4 +35,13 @@ class IntegratorMachine(Test):
'-initrd', initrd_path,
'-append', 'printk.time=0 console=ttyAMA0')
self.vm.launch()
+
+ @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code')
+ def test_integratorcp(self):
+ """
+ :avocado: tags=arch:arm
+ :avocado: tags=machine:integratorcp
+ :avocado: tags=device:pl011
+ """
+ self.boot_integratorcp()
wait_for_console_pattern(self, 'Log in as root')
--
2.21.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/2] tests/acceptance/integratorcp: Verify Tux is displayed on framebuffer
2020-01-31 21:11 [PATCH 0/2] tests/acceptance/integratorcp: Verify Tux is displayed on framebuffer Philippe Mathieu-Daudé
2020-01-31 21:11 ` [PATCH 1/2] tests/acceptance: Extract boot_integratorcp() from test_integratorcp() Philippe Mathieu-Daudé
@ 2020-01-31 21:11 ` Philippe Mathieu-Daudé
2020-02-01 7:24 ` Thomas Huth
2020-02-03 14:05 ` Wainer dos Santos Moschetta
1 sibling, 2 replies; 8+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-01-31 21:11 UTC (permalink / raw)
To: qemu-devel
Cc: Peter Maydell, Thomas Huth, Eduardo Habkost,
Dr . David Alan Gilbert, Wainer dos Santos Moschetta,
Philippe Mathieu-Daudé, qemu-arm, Gerd Hoffmann, Cleber Rosa
Add a test that verifies the Tux logo is displayed on the framebuffer.
We simply follow the OpenCV "Template Matching with Multiple Objects"
tutorial, replacing Lionel Messi by Tux:
https://docs.opencv.org/4.2.0/d4/dc6/tutorial_py_template_matching.html
When OpenCV and NumPy are installed, this test can be run using:
$ AVOCADO_ALLOW_UNTRUSTED_CODE=hmmm \
avocado --show=app,framebuffer run -t device:framebuffer \
tests/acceptance/machine_arm_integratorcp.py
JOB ID : 8c46b0f8269242e87d738247883ea2a470df949e
JOB LOG : avocado/job-results/job-2020-01-31T21.38-8c46b0f/job.log
(1/1) tests/acceptance/machine_arm_integratorcp.py:IntegratorMachine.test_framebuffer_tux_logo:
framebuffer: found Tux at position [x, y] = (0, 0)
PASS (3.96 s)
RESULTS : PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0
JOB TIME : 4.23 s
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
The resulting match is https://pasteboard.co/ISz7kr8.png
For matching SMP machines, these suggestion might work:
https://stackoverflow.com/questions/50579050/template-matching-with-multiple-objects-in-opencv-python
---
tests/acceptance/machine_arm_integratorcp.py | 51 ++++++++++++++++++++
1 file changed, 51 insertions(+)
diff --git a/tests/acceptance/machine_arm_integratorcp.py b/tests/acceptance/machine_arm_integratorcp.py
index 748819916d..a706fe1b44 100644
--- a/tests/acceptance/machine_arm_integratorcp.py
+++ b/tests/acceptance/machine_arm_integratorcp.py
@@ -9,11 +9,26 @@
# later. See the COPYING file in the top-level directory.
import os
+import logging
from avocado import skipUnless
from avocado_qemu import Test
from avocado_qemu import wait_for_console_pattern
+
+NUMPY_AVAILABLE = True
+try:
+ import numpy as np
+except ImportError:
+ NUMPY_AVAILABLE = False
+
+CV2_AVAILABLE = True
+try:
+ import cv2
+except ImportError:
+ CV2_AVAILABLE = False
+
+
class IntegratorMachine(Test):
"""Boots the Linux kernel and checks that the console is operational"""
@@ -45,3 +60,39 @@ class IntegratorMachine(Test):
"""
self.boot_integratorcp()
wait_for_console_pattern(self, 'Log in as root')
+
+ @skipUnless(NUMPY_AVAILABLE, 'Python NumPy not installed')
+ @skipUnless(CV2_AVAILABLE, 'Python OpenCV not installed')
+ @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code')
+ def test_framebuffer_tux_logo(self):
+ """
+ :avocado: tags=arch:arm
+ :avocado: tags=machine:integratorcp
+ :avocado: tags=device:pl110
+ :avocado: tags=device:framebuffer
+ """
+ screendump_path = os.path.join(self.workdir, "screendump.pbm")
+ tuxlogo_url = ('https://github.com/torvalds/linux/raw/v2.6.12/'
+ 'drivers/video/logo/logo_linux_vga16.ppm')
+ tuxlogo_hash = '3991c2ddbd1ddaecda7601f8aafbcf5b02dc86af'
+ tuxlogo_path = self.fetch_asset(tuxlogo_url, asset_hash=tuxlogo_hash)
+
+ self.boot_integratorcp()
+ framebuffer_ready = 'Console: switching to colour frame buffer device'
+ wait_for_console_pattern(self, framebuffer_ready)
+ self.vm.command('human-monitor-command', command_line='stop')
+ self.vm.command('human-monitor-command',
+ command_line='screendump %s' % screendump_path)
+ logger = logging.getLogger('framebuffer')
+
+ cpu_count = 1
+ match_threshold = 0.92
+ screendump_bgr = cv2.imread(screendump_path)
+ screendump_gray = cv2.cvtColor(screendump_bgr, cv2.COLOR_BGR2GRAY)
+ result = cv2.matchTemplate(screendump_gray, cv2.imread(tuxlogo_path, 0),
+ cv2.TM_CCOEFF_NORMED)
+ loc = np.where(result >= match_threshold)
+ tux_count = 0
+ for tux_count, pt in enumerate(zip(*loc[::-1]), start=1):
+ logger.debug('found Tux at position [x, y] = %s', pt)
+ self.assertGreaterEqual(tux_count, cpu_count)
--
2.21.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] tests/acceptance: Extract boot_integratorcp() from test_integratorcp()
2020-01-31 21:11 ` [PATCH 1/2] tests/acceptance: Extract boot_integratorcp() from test_integratorcp() Philippe Mathieu-Daudé
@ 2020-02-01 7:06 ` Thomas Huth
2020-02-11 10:08 ` Philippe Mathieu-Daudé
2020-02-03 14:00 ` Wainer dos Santos Moschetta
1 sibling, 1 reply; 8+ messages in thread
From: Thomas Huth @ 2020-02-01 7:06 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Peter Maydell, Eduardo Habkost, Dr . David Alan Gilbert,
Wainer dos Santos Moschetta, qemu-arm, Gerd Hoffmann, Cleber Rosa
On 31/01/2020 22.11, Philippe Mathieu-Daudé wrote:
> As we want to re-use this code, extract it as a new function.
> Since we are using the PL011 serial console, add a Avocado tag
> to ease filtering of tests.
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> tests/acceptance/machine_arm_integratorcp.py | 16 ++++++++++------
> 1 file changed, 10 insertions(+), 6 deletions(-)
>
> diff --git a/tests/acceptance/machine_arm_integratorcp.py b/tests/acceptance/machine_arm_integratorcp.py
> index 4f9ab40f2f..748819916d 100644
> --- a/tests/acceptance/machine_arm_integratorcp.py
> +++ b/tests/acceptance/machine_arm_integratorcp.py
> @@ -19,12 +19,7 @@ class IntegratorMachine(Test):
>
> timeout = 90
>
> - @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code')
> - def test_integratorcp(self):
> - """
> - :avocado: tags=arch:arm
> - :avocado: tags=machine:integratorcp
> - """
> + def boot_integratorcp(self):
> kernel_url = ('https://github.com/zayac/qemu-arm/raw/master/'
> 'arm-test/kernel/zImage.integrator')
> kernel_hash = '0d7adba893c503267c946a3cbdc63b4b54f25468'
> @@ -40,4 +35,13 @@ class IntegratorMachine(Test):
> '-initrd', initrd_path,
> '-append', 'printk.time=0 console=ttyAMA0')
I wonder whether you might want to move the "console=ttyAMA0" to the
test_integratorcp(), too, to get the text in the framebuffer in the
second test instead?
> self.vm.launch()
> +
> + @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code')
> + def test_integratorcp(self):
> + """
> + :avocado: tags=arch:arm
> + :avocado: tags=machine:integratorcp
> + :avocado: tags=device:pl011
> + """
> + self.boot_integratorcp()
> wait_for_console_pattern(self, 'Log in as root')
>
Anyway, patch looks fine,
Reviewed-by: Thomas Huth <thuth@redhat.com>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] tests/acceptance/integratorcp: Verify Tux is displayed on framebuffer
2020-01-31 21:11 ` [PATCH 2/2] tests/acceptance/integratorcp: Verify Tux is displayed on framebuffer Philippe Mathieu-Daudé
@ 2020-02-01 7:24 ` Thomas Huth
2020-02-03 14:05 ` Wainer dos Santos Moschetta
1 sibling, 0 replies; 8+ messages in thread
From: Thomas Huth @ 2020-02-01 7:24 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Peter Maydell, Eduardo Habkost, Dr . David Alan Gilbert,
Wainer dos Santos Moschetta, qemu-arm, Gerd Hoffmann,
Aleksandar Markovic, Cleber Rosa
On 31/01/2020 22.11, Philippe Mathieu-Daudé wrote:
> Add a test that verifies the Tux logo is displayed on the framebuffer.
>
> We simply follow the OpenCV "Template Matching with Multiple Objects"
> tutorial, replacing Lionel Messi by Tux:
> https://docs.opencv.org/4.2.0/d4/dc6/tutorial_py_template_matching.html
What a cool idea :-)
If you like, there are some more images with Tux in the QEMU advent
calendar 2018 which you could use for testing the framebuffer:
https://www.qemu-advent-calendar.org/2018/download/day13.tar.xz
https://www.qemu-advent-calendar.org/2018/download/day15.tar.xz
https://www.qemu-advent-calendar.org/2018/download/day16.tar.xz
https://www.qemu-advent-calendar.org/2018/download/day19.tar.xz
These two use a slightly different tux:
https://www.qemu-advent-calendar.org/2018/download/day09.tar.xz
https://www.qemu-advent-calendar.org/2018/download/day11.tar.xz
And day 22 (MIPS64) and 23 (SPARC64) use a framebuffer, too, but they
seem to be broken with the current version from the git master branch.
Thomas
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] tests/acceptance: Extract boot_integratorcp() from test_integratorcp()
2020-01-31 21:11 ` [PATCH 1/2] tests/acceptance: Extract boot_integratorcp() from test_integratorcp() Philippe Mathieu-Daudé
2020-02-01 7:06 ` Thomas Huth
@ 2020-02-03 14:00 ` Wainer dos Santos Moschetta
1 sibling, 0 replies; 8+ messages in thread
From: Wainer dos Santos Moschetta @ 2020-02-03 14:00 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Peter Maydell, Thomas Huth, Eduardo Habkost,
Dr . David Alan Gilbert, qemu-arm, Gerd Hoffmann, Cleber Rosa
On 1/31/20 7:11 PM, Philippe Mathieu-Daudé wrote:
> As we want to re-use this code, extract it as a new function.
> Since we are using the PL011 serial console, add a Avocado tag
> to ease filtering of tests.
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> tests/acceptance/machine_arm_integratorcp.py | 16 ++++++++++------
> 1 file changed, 10 insertions(+), 6 deletions(-)
Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
>
> diff --git a/tests/acceptance/machine_arm_integratorcp.py b/tests/acceptance/machine_arm_integratorcp.py
> index 4f9ab40f2f..748819916d 100644
> --- a/tests/acceptance/machine_arm_integratorcp.py
> +++ b/tests/acceptance/machine_arm_integratorcp.py
> @@ -19,12 +19,7 @@ class IntegratorMachine(Test):
>
> timeout = 90
>
> - @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code')
> - def test_integratorcp(self):
> - """
> - :avocado: tags=arch:arm
> - :avocado: tags=machine:integratorcp
> - """
> + def boot_integratorcp(self):
> kernel_url = ('https://github.com/zayac/qemu-arm/raw/master/'
> 'arm-test/kernel/zImage.integrator')
> kernel_hash = '0d7adba893c503267c946a3cbdc63b4b54f25468'
> @@ -40,4 +35,13 @@ class IntegratorMachine(Test):
> '-initrd', initrd_path,
> '-append', 'printk.time=0 console=ttyAMA0')
> self.vm.launch()
> +
> + @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code')
> + def test_integratorcp(self):
> + """
> + :avocado: tags=arch:arm
> + :avocado: tags=machine:integratorcp
> + :avocado: tags=device:pl011
> + """
> + self.boot_integratorcp()
> wait_for_console_pattern(self, 'Log in as root')
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] tests/acceptance/integratorcp: Verify Tux is displayed on framebuffer
2020-01-31 21:11 ` [PATCH 2/2] tests/acceptance/integratorcp: Verify Tux is displayed on framebuffer Philippe Mathieu-Daudé
2020-02-01 7:24 ` Thomas Huth
@ 2020-02-03 14:05 ` Wainer dos Santos Moschetta
1 sibling, 0 replies; 8+ messages in thread
From: Wainer dos Santos Moschetta @ 2020-02-03 14:05 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Peter Maydell, Thomas Huth, Eduardo Habkost,
Dr . David Alan Gilbert, qemu-arm, Gerd Hoffmann, Cleber Rosa
On 1/31/20 7:11 PM, Philippe Mathieu-Daudé wrote:
> Add a test that verifies the Tux logo is displayed on the framebuffer.
>
> We simply follow the OpenCV "Template Matching with Multiple Objects"
> tutorial, replacing Lionel Messi by Tux:
So Tux > Messi??!! I knew that!
> https://docs.opencv.org/4.2.0/d4/dc6/tutorial_py_template_matching.html
>
> When OpenCV and NumPy are installed, this test can be run using:
>
> $ AVOCADO_ALLOW_UNTRUSTED_CODE=hmmm \
> avocado --show=app,framebuffer run -t device:framebuffer \
> tests/acceptance/machine_arm_integratorcp.py
> JOB ID : 8c46b0f8269242e87d738247883ea2a470df949e
> JOB LOG : avocado/job-results/job-2020-01-31T21.38-8c46b0f/job.log
> (1/1) tests/acceptance/machine_arm_integratorcp.py:IntegratorMachine.test_framebuffer_tux_logo:
> framebuffer: found Tux at position [x, y] = (0, 0)
> PASS (3.96 s)
> RESULTS : PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0
> JOB TIME : 4.23 s
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> The resulting match is https://pasteboard.co/ISz7kr8.png
>
> For matching SMP machines, these suggestion might work:
> https://stackoverflow.com/questions/50579050/template-matching-with-multiple-objects-in-opencv-python
> ---
> tests/acceptance/machine_arm_integratorcp.py | 51 ++++++++++++++++++++
> 1 file changed, 51 insertions(+)
Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
>
> diff --git a/tests/acceptance/machine_arm_integratorcp.py b/tests/acceptance/machine_arm_integratorcp.py
> index 748819916d..a706fe1b44 100644
> --- a/tests/acceptance/machine_arm_integratorcp.py
> +++ b/tests/acceptance/machine_arm_integratorcp.py
> @@ -9,11 +9,26 @@
> # later. See the COPYING file in the top-level directory.
>
> import os
> +import logging
>
> from avocado import skipUnless
> from avocado_qemu import Test
> from avocado_qemu import wait_for_console_pattern
>
> +
> +NUMPY_AVAILABLE = True
> +try:
> + import numpy as np
> +except ImportError:
> + NUMPY_AVAILABLE = False
> +
> +CV2_AVAILABLE = True
> +try:
> + import cv2
> +except ImportError:
> + CV2_AVAILABLE = False
> +
> +
> class IntegratorMachine(Test):
> """Boots the Linux kernel and checks that the console is operational"""
>
> @@ -45,3 +60,39 @@ class IntegratorMachine(Test):
> """
> self.boot_integratorcp()
> wait_for_console_pattern(self, 'Log in as root')
> +
> + @skipUnless(NUMPY_AVAILABLE, 'Python NumPy not installed')
> + @skipUnless(CV2_AVAILABLE, 'Python OpenCV not installed')
> + @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code')
> + def test_framebuffer_tux_logo(self):
> + """
> + :avocado: tags=arch:arm
> + :avocado: tags=machine:integratorcp
> + :avocado: tags=device:pl110
> + :avocado: tags=device:framebuffer
> + """
> + screendump_path = os.path.join(self.workdir, "screendump.pbm")
> + tuxlogo_url = ('https://github.com/torvalds/linux/raw/v2.6.12/'
> + 'drivers/video/logo/logo_linux_vga16.ppm')
> + tuxlogo_hash = '3991c2ddbd1ddaecda7601f8aafbcf5b02dc86af'
> + tuxlogo_path = self.fetch_asset(tuxlogo_url, asset_hash=tuxlogo_hash)
> +
> + self.boot_integratorcp()
> + framebuffer_ready = 'Console: switching to colour frame buffer device'
> + wait_for_console_pattern(self, framebuffer_ready)
> + self.vm.command('human-monitor-command', command_line='stop')
> + self.vm.command('human-monitor-command',
> + command_line='screendump %s' % screendump_path)
> + logger = logging.getLogger('framebuffer')
> +
> + cpu_count = 1
> + match_threshold = 0.92
> + screendump_bgr = cv2.imread(screendump_path)
> + screendump_gray = cv2.cvtColor(screendump_bgr, cv2.COLOR_BGR2GRAY)
> + result = cv2.matchTemplate(screendump_gray, cv2.imread(tuxlogo_path, 0),
> + cv2.TM_CCOEFF_NORMED)
> + loc = np.where(result >= match_threshold)
> + tux_count = 0
> + for tux_count, pt in enumerate(zip(*loc[::-1]), start=1):
> + logger.debug('found Tux at position [x, y] = %s', pt)
> + self.assertGreaterEqual(tux_count, cpu_count)
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] tests/acceptance: Extract boot_integratorcp() from test_integratorcp()
2020-02-01 7:06 ` Thomas Huth
@ 2020-02-11 10:08 ` Philippe Mathieu-Daudé
0 siblings, 0 replies; 8+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-02-11 10:08 UTC (permalink / raw)
To: Thomas Huth, Philippe Mathieu-Daudé, qemu-devel,
Peter Maydell
Cc: Eduardo Habkost, Dr . David Alan Gilbert,
Wainer dos Santos Moschetta, qemu-arm, Gerd Hoffmann, Cleber Rosa
On 2/1/20 8:06 AM, Thomas Huth wrote:
> On 31/01/2020 22.11, Philippe Mathieu-Daudé wrote:
>> As we want to re-use this code, extract it as a new function.
>> Since we are using the PL011 serial console, add a Avocado tag
>> to ease filtering of tests.
>>
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> ---
>> tests/acceptance/machine_arm_integratorcp.py | 16 ++++++++++------
>> 1 file changed, 10 insertions(+), 6 deletions(-)
>>
>> diff --git a/tests/acceptance/machine_arm_integratorcp.py b/tests/acceptance/machine_arm_integratorcp.py
>> index 4f9ab40f2f..748819916d 100644
>> --- a/tests/acceptance/machine_arm_integratorcp.py
>> +++ b/tests/acceptance/machine_arm_integratorcp.py
>> @@ -19,12 +19,7 @@ class IntegratorMachine(Test):
>>
>> timeout = 90
>>
>> - @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code')
>> - def test_integratorcp(self):
>> - """
>> - :avocado: tags=arch:arm
>> - :avocado: tags=machine:integratorcp
>> - """
>> + def boot_integratorcp(self):
>> kernel_url = ('https://github.com/zayac/qemu-arm/raw/master/'
>> 'arm-test/kernel/zImage.integrator')
>> kernel_hash = '0d7adba893c503267c946a3cbdc63b4b54f25468'
>> @@ -40,4 +35,13 @@ class IntegratorMachine(Test):
>> '-initrd', initrd_path,
>> '-append', 'printk.time=0 console=ttyAMA0')
>
> I wonder whether you might want to move the "console=ttyAMA0" to the
> test_integratorcp(), too, to get the text in the framebuffer in the
> second test instead?
This is not a test, but a common method used by both tests, so both use it.
>
>> self.vm.launch()
>> +
>> + @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code')
>> + def test_integratorcp(self):
>> + """
>> + :avocado: tags=arch:arm
>> + :avocado: tags=machine:integratorcp
>> + :avocado: tags=device:pl011
>> + """
>> + self.boot_integratorcp()
>> wait_for_console_pattern(self, 'Log in as root')
>>
>
> Anyway, patch looks fine,
>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
Thanks!
Peter, Thomas previous patch and these series are reviewed. Can you
queue them in your target-arm.next tree?
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2020-02-11 10:09 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-01-31 21:11 [PATCH 0/2] tests/acceptance/integratorcp: Verify Tux is displayed on framebuffer Philippe Mathieu-Daudé
2020-01-31 21:11 ` [PATCH 1/2] tests/acceptance: Extract boot_integratorcp() from test_integratorcp() Philippe Mathieu-Daudé
2020-02-01 7:06 ` Thomas Huth
2020-02-11 10:08 ` Philippe Mathieu-Daudé
2020-02-03 14:00 ` Wainer dos Santos Moschetta
2020-01-31 21:11 ` [PATCH 2/2] tests/acceptance/integratorcp: Verify Tux is displayed on framebuffer Philippe Mathieu-Daudé
2020-02-01 7:24 ` Thomas Huth
2020-02-03 14:05 ` Wainer dos Santos Moschetta
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).