Hi Cleber, On Tue, Mar 3, 2020 at 12:40 AM Philippe Mathieu-Daudé <phi...@redhat.com> wrote: > On 3/2/20 9:58 PM, Aleksandar Markovic wrote: > >> From: Peter Maydell <peter.mayd...@linaro.org> > >> Sent: Monday, March 2, 2020 9:26 PM > >> To: Aleksandar Markovic > >> Cc: QEMU Developers; Aleksandar Markovic; Philippe Mathieu-Daudé > >> Subject: [EXTERNAL]Re: [PULL 5/5] tests/acceptance: Count multiple Tux > >> logos displayed on framebuffer > >> > >> On Thu, 27 Feb 2020 at 13:28, Aleksandar Markovic > >> <aleksandar.marko...@rt-rk.com> wrote: > >>> > >>> From: Philippe Mathieu-Daudé <f4...@amsat.org> > >>> > >>> Add a test that verifies that each core properly displays the Tux > >>> logo on the framebuffer device. > >>> > >>> 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 > >> > >> Hi -- this doesn't seem to work on my system: > >> > > > > Thank you for bringing this to our attention. > > > > It looks like an honest mistake to me. Too bad > > none of us tested the case of environment like > > yours, even though it looked reasonable to test it. > > I'm sorry I missed that, I'm pretty sure I tested it as we noticed this > "bug" in Avocado more than 1 year ago already (bug = class decorator not > working).
I see in commit 2fe6f4d9ba you moved the @skip decorators to the setUp() method. Is this a kind of kludge to not use it on all the test_*() methods? (since we can not use it on an AvocadoTest class) > I suppose I forgot to test that on Travis-CI and all my > systems have opencv2 installed. > > > > > Philippe, Peter's solution looks good to me. What > > do you think? > > Yes this is correct. Alex suggested it earlier and I resend his patch > fixed which is exactly the diff Peter pasted (I am just noticing it now): > https://lists.gnu.org/archive/html/qemu-devel/2020-03/msg00389.html > > > > > Peter, would you like me to submit a patch with your > > proposal, authored by you, and than soon send it as > > a part of a small pull request? > > > > Thanks again, > > Aleksandar > > > >> (38/74) > >> tests/acceptance/machine_arm_integratorcp.py:IntegratorMachine.test_integratorcp_console: > >> SKIP: untrusted code > >> (39/74) > >> tests/acceptance/machine_arm_integratorcp.py:IntegratorMachine.test_framebuffer_tux_logo: > >> SKIP: Python NumPy not installed > >> (40/74) tests/acceptance/machine_arm_n8x0.py:N8x0Machine.test_n800: > >> SKIP: untrusted code > >> (41/74) tests/acceptance/machine_arm_n8x0.py:N8x0Machine.test_n810: > >> SKIP: untrusted code > >> (42/74) > >> tests/acceptance/machine_m68k_nextcube.py:NextCubeMachine.test_bootrom_framebuffer_size: > >> PASS (3.47 s) > >> (43/74) > >> tests/acceptance/machine_m68k_nextcube.py:NextCubeMachine.test_bootrom_framebuffer_ocr_with_tesseract_v3: > >> SKIP: tesseract v3 OCR tool not available > >> (44/74) > >> tests/acceptance/machine_m68k_nextcube.py:NextCubeMachine.test_bootrom_framebuffer_ocr_with_tesseract_v4: > >> SKIP: tesseract v4 OCR tool not available > >> (45/74) > >> tests/acceptance/machine_mips_malta.py:MaltaMachineFramebuffer.test_mips_malta_i6400_framebuffer_logo_1core: > >> ERROR: name 'cv2' is not defined (5.43 s) > >> > >> It looks like the @skipUnless directive on the class didn't > >> have any effect. Moving it to the individual test functions seems > >> to cause them to be skipped as intended (as the integratorcp > >> framebuffer test is): > >> > >> diff --git a/tests/acceptance/machine_mips_malta.py > >> b/tests/acceptance/machine_mips_malta.py > >> index 92b4f28a112..98463f77573 100644 > >> --- a/tests/acceptance/machine_mips_malta.py > >> +++ b/tests/acceptance/machine_mips_malta.py > >> @@ -30,8 +30,6 @@ except ImportError: > >> CV2_AVAILABLE = False > >> > >> > >> -@skipUnless(NUMPY_AVAILABLE, 'Python NumPy not installed') > >> -@skipUnless(CV2_AVAILABLE, 'Python OpenCV not installed') > >> class MaltaMachineFramebuffer(Test): > >> > >> timeout = 30 > >> @@ -91,6 +89,8 @@ class MaltaMachineFramebuffer(Test): > >> cv2.imwrite(debug_png, screendump_bgr) > >> self.assertGreaterEqual(tuxlogo_count, cpu_cores_count) > >> > >> + @skipUnless(NUMPY_AVAILABLE, 'Python NumPy not installed') > >> + @skipUnless(CV2_AVAILABLE, 'Python OpenCV not installed') > >> def test_mips_malta_i6400_framebuffer_logo_1core(self): > >> """ > >> :avocado: tags=arch:mips64el > >> @@ -99,6 +99,8 @@ class MaltaMachineFramebuffer(Test): > >> """ > >> self.do_test_i6400_framebuffer_logo(1) > >> > >> + @skipUnless(NUMPY_AVAILABLE, 'Python NumPy not installed') > >> + @skipUnless(CV2_AVAILABLE, 'Python OpenCV not installed') > >> def test_mips_malta_i6400_framebuffer_logo_7cores(self): > >> """ > >> :avocado: tags=arch:mips64el > >> @@ -108,6 +110,8 @@ class MaltaMachineFramebuffer(Test): > >> """ > >> self.do_test_i6400_framebuffer_logo(7) > >> > >> + @skipUnless(NUMPY_AVAILABLE, 'Python NumPy not installed') > >> + @skipUnless(CV2_AVAILABLE, 'Python OpenCV not installed') > >> def test_mips_malta_i6400_framebuffer_logo_8cores(self): > >> """ > >> :avocado: tags=arch:mips64el > >> > >> thanks > >> -- PMM > > > >