From nobody Thu Nov 6 01:19:37 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1538094915196811.2513699389725; Thu, 27 Sep 2018 17:35:15 -0700 (PDT) Received: from localhost ([::1]:40453 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g5gkU-0006mn-4J for importer@patchew.org; Thu, 27 Sep 2018 20:35:14 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34794) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g5gh2-0003j9-3U for qemu-devel@nongnu.org; Thu, 27 Sep 2018 20:31:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g5gh0-0008H1-6Y for qemu-devel@nongnu.org; Thu, 27 Sep 2018 20:31:39 -0400 Received: from mx1.redhat.com ([209.132.183.28]:36194) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1g5ggz-0008FR-5S for qemu-devel@nongnu.org; Thu, 27 Sep 2018 20:31:37 -0400 Received: from smtp.corp.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.26]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 8356188E51 for ; Fri, 28 Sep 2018 00:31:36 +0000 (UTC) Received: from x1w.redhat.com (ovpn-116-44.ams2.redhat.com [10.36.116.44]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 50DC03091375; Fri, 28 Sep 2018 00:31:34 +0000 (UTC) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: Cleber Rosa , Eduardo Habkost , Caio Carrara Date: Fri, 28 Sep 2018 01:30:57 +0100 Message-Id: <20180928003058.12786-3-philmd@redhat.com> In-Reply-To: <20180928003058.12786-1-philmd@redhat.com> References: <20180928003058.12786-1-philmd@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.26 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Fri, 28 Sep 2018 00:31:36 +0000 (UTC) Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [RFC PATCH 2/3] acceptance tests: Add EDK2 OVMF boot and debug console checking test X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, Laszlo Ersek Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RDMRC_1 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" This test boots OVMF and check the debug console (I/O port on the ISA bus) report enough information on the initialized devices. Example: $ avocado --show=3DQMP,serial run tests/acceptance/boot_firmware.py Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- - how to refactor common code from test_seabios() (previous patch)? --- tests/acceptance/boot_firmware.py | 52 +++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/tests/acceptance/boot_firmware.py b/tests/acceptance/boot_firm= ware.py index a41e04936d..05f6728212 100644 --- a/tests/acceptance/boot_firmware.py +++ b/tests/acceptance/boot_firmware.py @@ -70,3 +70,55 @@ class BootFirmwareX86(Test): if line + '\n' not in lines: self.fail('missing: %s' % line) shutil.rmtree(tmpdirname, ignore_errors=3DTrue) + + def test_ovmf(self): + tmpdirname =3D tempfile.mkdtemp() + debugcon_path =3D os.path.join(tmpdirname, 'debugconsole.log') + serial_logger =3D logging.getLogger('serial') + debugcon_logger =3D logging.getLogger('debugcon') + + self.vm.set_machine('pc') + self.vm.set_console() + self.vm.add_args('-nographic', + '-net', 'none', + '-global', 'isa-debugcon.iobase=3D0x402', + '-debugcon', 'file:%s' % debugcon_path, + '--bios', '/usr/share/OVMF/OVMF_CODE.fd') + self.vm.launch() + console =3D self.vm.console_socket.makefile() + + # serial console checks + timeout =3D time.time() + 15 + while True: + msg =3D console.readline() + if not '\x1b' in msg: # ignore ANSI sequences + serial_logger.debug(msg.strip()) + if 'EDK II' in msg: + break + if time.time() > timeout: + self.fail('OVMF failed to boot?') + + # debug console checks + expected =3D [ + 'SEC: Normal boot', + 'S3 support was detected on QEMU', + 'Platform PEI Firmware Volume Initialization', + 'DXE IPL Entry', + 'Installing FVB for EMU Variable support', + 'DetectSmbiosVersion: SMBIOS version from QEMU: 0x0208', + 'SmbiosCreateTable: Initialize 32-bit entry point structure', + 'PlatformBootManagerBeforeConsole', + 'OnRootBridgesConnected: root bridges have been connected, ' + 'installing ACPI tables', + 'Found LPC Bridge device', + 'PlatformBootManagerAfterConsole', + 'EfiBootManagerConnectAll', + '[Bds]Booting EFI Internal Shell', + ] + lines =3D open(debugcon_path).readlines() + for msg in lines: + debugcon_logger.debug(msg.strip()) + for line in expected: + if line + '\r\n' not in lines: + self.fail('missing: %s' % line) + shutil.rmtree(tmpdirname, ignore_errors=3DTrue) --=20 2.17.1