From nobody Fri May 10 09:21:59 2024 Delivered-To: importer@patchew.org Received-SPF: temperror (zoho.com: Error in retrieving data from DNS) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1561996152; cv=none; d=zoho.com; s=zohoarc; b=TAvdNbMg378ehcn3eFdfksnxeK2Vo0OtI8Yz1ThSawcLFRmYYZmGR7a121iRsCrkId9A6Ffe13NY7Q5qsOlDEHhGrj2zFEXZ/z6JMrbxm9ijt0Tb+uggeyzQ85LG6ReV60h+Y6L/p25kvo1MYClrQEhc3Kj0EKU9qwb0GU1Qkik= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1561996152; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=uK5bPKqQSOVaNTPYWlOvXm0O51fNBjeVOdDX+K+ANYs=; b=inAGaC5d+YldOju7IqFee9zZPtH8FijtscUE7Afy8cMJQoKoqpVcsoDr6/gxfbgNqWuVpWA5zuQesA/xALZMLmsu/u8Tmn9JgjkViNyCn63nBxwu0Wi2nf9mwbJyV0iI1XQQzqgGqsXlZFQLFePMPEuZgY/+tBO6Iran65/Ki3M= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=temperror (zoho.com: Error in retrieving data from DNS) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1561996152360990.6635098440358; Mon, 1 Jul 2019 08:49:12 -0700 (PDT) Received: from localhost ([::1]:60274 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hhyY8-00087N-B5 for importer@patchew.org; Mon, 01 Jul 2019 11:49:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41185) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hhyKS-0000Qx-LC for qemu-devel@nongnu.org; Mon, 01 Jul 2019 11:34:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hhyKL-0003YL-LS for qemu-devel@nongnu.org; Mon, 01 Jul 2019 11:34:47 -0400 Received: from mail-wr1-x443.google.com ([2a00:1450:4864:20::443]:40906) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hhyKJ-0003WG-Ot for qemu-devel@nongnu.org; Mon, 01 Jul 2019 11:34:43 -0400 Received: by mail-wr1-x443.google.com with SMTP id p11so14367338wre.7 for ; Mon, 01 Jul 2019 08:34:42 -0700 (PDT) Received: from x1.local (183.red-88-21-202.staticip.rima-tde.net. [88.21.202.183]) by smtp.gmail.com with ESMTPSA id w24sm8922341wmc.30.2019.07.01.08.34.39 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Mon, 01 Jul 2019 08:34:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=uK5bPKqQSOVaNTPYWlOvXm0O51fNBjeVOdDX+K+ANYs=; b=aA6bVM03lga4HuYVODqmDwmjWd+pkfPTFIcAN9i9wf7gEgNoX6s7cg1E58PJ5OavcN wpqaXnZzEAy+ErLa5CloUz6/Ikt3KIqkwyDjl4G4CfF6aI6Y4iyz3ise2zSeizNNvn8+ 3mvRwN4Qu2QIFDCuWe6EAsgGTpMK7z5WXSBIW664bTWUJJcvemwJMeN/R5jR9yERP6D6 8tD1VWM+Qz/FgVkar67pVfxdUzZdZ0GAL4+QhEPa18CITOtiEC9SXO9KV9MfNJ3cQ7v4 e4VIpqa26JcqGezenHE/wEbsHuh3xV6bOSlDHlw23JPv3IckzI8NRE2teDwYe5GvZs/U ZhPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=uK5bPKqQSOVaNTPYWlOvXm0O51fNBjeVOdDX+K+ANYs=; b=Fo8oR7/d7drJieNz+AlORAnSvJOEWu/filR7p9LsV+KgJ6NydeMXD7XkGgfmJZfwPb kAM2a9boj7QwjTatcXv2uf8ooX9OVN+2DfZFYFfbVmuiZE71PKLyz9x5528zSPZPbDis pETQwSeHROAFZ6MAl755P93XwfTwzWqSBOFhgkicAmSm6KxnBjt+aQlOgbk/o/7s5v1S ctuyyuHDBgZgHsAM1fPJEDs4I5KqwEk1mRZjiqbmdDq+xXQYc9cgUxY12sC9vtaLDcod yuohrmp+lnGEJ5bnFLtqX3eR/DnC8wya9/xBCqEBW1nBYV50qBTNvs7886daVMh7USrA a03w== X-Gm-Message-State: APjAAAURdmoTI/oMsjH6uELzDZ93FNTQOENxf37aVktI8jlOG4kKt1vs sEdcEI1kiaGEvsDSkC5L+Ec1UkGk X-Google-Smtp-Source: APXvYqyA007tv98QFkZF3pkS+nMyLMzIgRF4/hjuQYsw8az7khP7FOxMU4iLbdkPl4cPsKArGArAmA== X-Received: by 2002:a5d:6449:: with SMTP id d9mr1574721wrw.192.1561995280895; Mon, 01 Jul 2019 08:34:40 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Date: Mon, 1 Jul 2019 17:34:35 +0200 Message-Id: <20190701153436.16579-2-f4bug@amsat.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190701153436.16579-1-f4bug@amsat.org> References: <20190701153436.16579-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::443 Subject: [Qemu-devel] [PATCH v2 1/2] tests/acceptance: Add test of NeXTcube framebuffer using OCR X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Fam Zheng , Eduardo Habkost , Thomas Huth , =?UTF-8?q?Alex=20Benn=C3=A9e?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Gerd Hoffmann , Cleber Rosa , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Add a test of the NeXTcube framebuffer using the Tesseract OCR engine on a screenshot of the framebuffer device. The test is very quick: $ avocado --show=3Dapp,ocr run tests/acceptance/machine_m68k_nextcube.py JOB ID : f7d3c27976047036dc568183baf64c04863d9985 JOB LOG : ~/avocado/job-results/job-2019-06-29T16.18-f7d3c27/job.log (1/1) tests/acceptance/machine_m68k_nextcube.py:NextCubeMachine.test_boot= rom_framebuffer: |ocr: ue r pun Honl'=EF=AC=82x ; 5=E2=80=98 55=E2=80=98 avg ncaaaaa 25 MHZ, memary jag m Backplane slat =C2=ABa Ethernet address a a r a r3 2 Memgry sackets aea canflqured far 16MB Darlly page made stMs but have 16M= B page made stMs )nstalled Memgry sackets a and 1 canflqured far 16MB Darlly page made stMs but have= 16MB page made stMs )nstalled [...] Yestlnq the rpu, 5:: system test raneg Errar egge 51 Egg: cammand Default pggc devlce nut fauna NEXY>I PASS (3.59 s) RESULTS : PASS 1 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | = CANCEL 0 JOB TIME : 3.97 s Documentation on how to install tesseract: https://github.com/tesseract-ocr/tesseract/wiki#installation Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- v2: - test fb sizes - handle 2 versions of teseract --- tests/acceptance/machine_m68k_nextcube.py | 102 ++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 tests/acceptance/machine_m68k_nextcube.py diff --git a/tests/acceptance/machine_m68k_nextcube.py b/tests/acceptance/m= achine_m68k_nextcube.py new file mode 100644 index 0000000000..f8e514a058 --- /dev/null +++ b/tests/acceptance/machine_m68k_nextcube.py @@ -0,0 +1,102 @@ +# Functional test that boots a VM and run OCR on the framebuffer +# +# Copyright (c) Philippe Mathieu-Daud=C3=A9 +# +# This work is licensed under the terms of the GNU GPL, version 2 or +# later. See the COPYING file in the top-level directory. + +import logging +import time +import distutils.spawn + +from avocado import skipUnless +from avocado_qemu import Test +from avocado.utils import process + +try: + from PIL import Image + pil_available =3D True +except ImportError: + pil_available =3D False + + +def tesseract_available(expected_version): + if not distutils.spawn.find_executable('tesseract'): + return False + res =3D process.run('tesseract --version') + try: + version =3D res.stdout_text.split()[1] + except IndexError: + version =3D res.stderr_text.split()[1] + return int(version.split('.')[0]) =3D=3D expected_version + + +class NextCubeMachine(Test): + + timeout =3D 15 + + def check_bootrom_framebuffer(self, screenshot_path): + rom_url =3D ('http://www.nextcomputers.org/NeXTfiles/Software/ROM_= Files/' + '68040_Non-Turbo_Chipset/Rev_2.5_v66.BIN') + rom_hash =3D 'b3534796abae238a0111299fc406a9349f7fee24' + rom_path =3D self.fetch_asset(rom_url, asset_hash=3Drom_hash) + + self.vm.set_machine('next-cube') + self.vm.add_args('-bios', rom_path) + self.vm.launch() + + self.log.info('VM launched, waiting for display') + # FIXME how to catch the 'displaysurface_create 1120x832' trace-ev= ent? + time.sleep(2) + + self.vm.command('human-monitor-command', + command_line=3D'screendump %s' % screenshot_path) + + @skipUnless(pil_available, 'Python PIL not installed') + def test_bootrom_framebuffer_size(self): + """ + :avocado: tags=3Darch:m68k + :avocado: tags=3Dmachine:next-cube + :avocado: tags=3Ddevice:framebuffer + """ + screenshot_path =3D self.workdir + "dump" + self.check_bootrom_framebuffer(screenshot_path) + + width, height =3D Image.open(screenshot_path).size + self.assertEqual(width, 1120) + self.assertEqual(height, 832) + + @skipUnless(tesseract_available(3), 'tesseract v3 OCR tool not availab= le') + def test_bootrom_framebuffer_ocr_with_tesseract_v3(self): + """ + :avocado: tags=3Darch:m68k + :avocado: tags=3Dmachine:next-cube + :avocado: tags=3Ddevice:framebuffer + """ + screenshot_path =3D self.workdir + "dump" + self.check_bootrom_framebuffer(screenshot_path) + + console_logger =3D logging.getLogger('ocr') + text =3D process.run("tesseract %s stdout" % screenshot_path).stdo= ut_text + console_logger.debug(text) + self.assertIn('Backplane', text) + self.assertIn('Ethernet address', text) + + @skipUnless(tesseract_available(4), 'tesseract v4 OCR tool not availab= le') + def test_bootrom_framebuffer_ocr_with_tesseract_v4(self): + """ + :avocado: tags=3Darch:m68k + :avocado: tags=3Dmachine:next-cube + :avocado: tags=3Ddevice:framebuffer + """ + screenshot_path =3D self.workdir + "dump" + self.check_bootrom_framebuffer(screenshot_path) + + console_logger =3D logging.getLogger('ocr') + proc =3D process.run("tesseract --oem 1 %s stdout" % screenshot_pa= th) + text =3D proc.stdout_text + console_logger.debug(text) + self.assertIn('Testing the FPU, SCC', text) + self.assertIn('System test failed. Error code 51', text) + self.assertIn('Boot command', text) + self.assertIn('Next>', text) --=20 2.19.1 From nobody Fri May 10 09:21:59 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1561995527; cv=none; d=zoho.com; s=zohoarc; b=HsUzsk60CbCvAooHMnGFpU7BTaAm7pB7hhyszz0qaK/YdHyl4x+tooguAyhu0iDM4Qce+/OkbnMoq/68O0bb068vjKph6vhUk+cb6Q8Gng2ZArMgk2cMxn7TJf2DxN+s5CTUelSbfTREjNczAQZU/uBjBeHzxlGobASwZy+dw8w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1561995527; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=cxCjEB5zKdWfSZxX3+j2v2ItnSTW3coA+RW/5hRm9LQ=; b=HurwJyBQUIeXUOv9ozEo58Ed6jCHXNxDwU6UybFn3pP67BEAyO8IZFCLXUPEYj40kFMAQ+L+emzQMWcZRROQzn9tDXBWQObR/0BsZbdz5ql65s+rsVbf6EWPhZhAV3UZFstzV2D7g1Nki122nZQbQYnENiuKTXdGNgUeaJj1DNk= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1561995527461916.6001170190909; Mon, 1 Jul 2019 08:38:47 -0700 (PDT) Received: from localhost ([::1]:60208 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hhyOC-0001av-Ha for importer@patchew.org; Mon, 01 Jul 2019 11:38:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:41186) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hhyKS-0000Qy-LI for qemu-devel@nongnu.org; Mon, 01 Jul 2019 11:34:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hhyKL-0003YX-Me for qemu-devel@nongnu.org; Mon, 01 Jul 2019 11:34:47 -0400 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]:33413) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hhyKJ-0003Wk-Rh for qemu-devel@nongnu.org; Mon, 01 Jul 2019 11:34:43 -0400 Received: by mail-wm1-x32c.google.com with SMTP id h19so314047wme.0 for ; Mon, 01 Jul 2019 08:34:43 -0700 (PDT) Received: from x1.local (183.red-88-21-202.staticip.rima-tde.net. [88.21.202.183]) by smtp.gmail.com with ESMTPSA id w24sm8922341wmc.30.2019.07.01.08.34.40 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Mon, 01 Jul 2019 08:34:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=cxCjEB5zKdWfSZxX3+j2v2ItnSTW3coA+RW/5hRm9LQ=; b=qDA1jQSuCgcMlqiAvOoPnUFwvoKCAD4oPTXzpCqT63Rhkix/iEuHCP/Fpy4DgHPDPs DNzXKO8LXbUoBoMFz/psKzLQUANRqW8k8w+zFMThPxavUmwiqNqPOGdp7IpCza2WDnN7 bgYjxCSUtQd50ev2brEo+QQ1FGclh63MNYTlVhChhAP4qmMUMWNGu+WLMvvRVJrfFIYL H7VBRx6N+c+8q9UqE4NBH2vz0shJxeZLNXK6nBHaCSO/lq9bIbUGw3LMlEFhqwvKQF0W l/JRvHoknpTX7ssXltPFTCw1VMnNotTO5bdddU/WRTV8BcQkXTsRWki0g4+TLyOggVDC djCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=cxCjEB5zKdWfSZxX3+j2v2ItnSTW3coA+RW/5hRm9LQ=; b=KCQUOiNWB0YuJswPEOAlUQ48igika9Y1KU5L/s1NOU4HaXF11q3f69MYV3HWBPD/Xm f8tCs2RpDT3m+Ia5jJ2lnsTDnlPrIXUya6P25rm4on/74BgbmjIv2FnkQ+3gnO1TwoJs oHaIMV02/XQRA/sjb/dvhWjG4dqm4zmLPXKGuIQRtub2jwsISx0xvECoxOgg0fbhf9Ck dQWlhJWD2HDMPOK8tlyxG6s1/R3K1bTmtLo1aGQFwUOgF+6zPl3LH+vBAPOL+eEg88pc WD/YgWknYbedt4OzdfSFQWu/UEw4XqOocGsikB22Gguo+eKARkPA8wBQaDoiO69RMfyX fMGg== X-Gm-Message-State: APjAAAUlGixKsM1VpkizkXnJMNu0zgCJeETkvK/ZM+JJcgN25Vdm+yht RZJ9H5uSrIGRby5KAUnlMccgV/dr X-Google-Smtp-Source: APXvYqyAQY3CiwKUCIfgWGScUWWHOJzMjSok2hbZPbgBb8+kayPRtsdNrekXQUm7vq/cLT+r3aZ7jg== X-Received: by 2002:a1c:448b:: with SMTP id r133mr18259488wma.114.1561995282370; Mon, 01 Jul 2019 08:34:42 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Date: Mon, 1 Jul 2019 17:34:36 +0200 Message-Id: <20190701153436.16579-3-f4bug@amsat.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190701153436.16579-1-f4bug@amsat.org> References: <20190701153436.16579-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::32c Subject: [Qemu-devel] [PATCH v2 2/2] .travis.yml: Let the avocado job run the NeXTcube tests X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Fam Zheng , Eduardo Habkost , Thomas Huth , =?UTF-8?q?Alex=20Benn=C3=A9e?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Wainer dos Santos Moschetta , Gerd Hoffmann , Cleber Rosa , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- v2: - install tesseract English package (Thomas) - install PIL --- .travis.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index aeb9b211cd..0980f65ec5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -231,15 +231,20 @@ matrix: =20 # Acceptance (Functional) tests - env: - - CONFIG=3D"--python=3D/usr/bin/python3 --target-list=3Dx86_64-sof= tmmu,mips-softmmu,mips64el-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmm= u,alpha-softmmu" + - CONFIG=3D"--python=3D/usr/bin/python3 --target-list=3Dx86_64-sof= tmmu,mips-softmmu,mips64el-softmmu,aarch64-softmmu,arm-softmmu,s390x-softmm= u,alpha-softmmu,m68k-softmmu" - TEST_CMD=3D"make check-acceptance" after_failure: - cat tests/results/latest/job.log addons: apt: packages: + - python3-pil - python3-pip - python3.5-venv + - tesseract-ocr + - tesseract-ocr-eng + + # Using newer GCC with sanitizers - addons: apt: --=20 2.19.1