From nobody Tue Feb 10 16:58:05 2026 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 Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1512032147176591.7259878347666; Thu, 30 Nov 2017 00:55:47 -0800 (PST) Received: from localhost ([::1]:46861 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eKKd1-0006QU-0M for importer@patchew.org; Thu, 30 Nov 2017 03:55:31 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48968) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eKKat-0005AC-Co for qemu-devel@nongnu.org; Thu, 30 Nov 2017 03:53:20 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eKKas-0006fy-MS for qemu-devel@nongnu.org; Thu, 30 Nov 2017 03:53:19 -0500 Received: from mx1.redhat.com ([209.132.183.28]:60156) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eKKap-0006dE-Ni; Thu, 30 Nov 2017 03:53:15 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id BAABFC04AC41; Thu, 30 Nov 2017 08:53:14 +0000 (UTC) Received: from thh440s.redhat.com (ovpn-116-158.ams2.redhat.com [10.36.116.158]) by smtp.corp.redhat.com (Postfix) with ESMTP id D239E5D6A5; Thu, 30 Nov 2017 08:53:11 +0000 (UTC) From: Thomas Huth To: qemu-devel@nongnu.org Date: Thu, 30 Nov 2017 09:53:02 +0100 Message-Id: <1512031988-32490-2-git-send-email-thuth@redhat.com> In-Reply-To: <1512031988-32490-1-git-send-email-thuth@redhat.com> References: <1512031988-32490-1-git-send-email-thuth@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Thu, 30 Nov 2017 08:53:14 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH for-2.12 1/7] tests/boot-serial-test: Make sure that we check the timeout regularly 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: Anthony Green , Laurent Vivier , qemu-arm@nongnu.org, Edgar Iglesias , Paolo Bonzini , Richard Henderson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" If the guest continuesly writes characters to the UART, we never leave the inner while loop and thus never check whether we've reached the timeout value. So if we fail to find the expected string in the UART output, the test just hangs and never finishs. Use a counter to regularly break out of the while loop to check the timeout. Signed-off-by: Thomas Huth --- tests/boot-serial-test.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/boot-serial-test.c b/tests/boot-serial-test.c index c935d69..fa4183d 100644 --- a/tests/boot-serial-test.c +++ b/tests/boot-serial-test.c @@ -43,12 +43,13 @@ static testdef_t tests[] =3D { static void check_guest_output(const testdef_t *test, int fd) { bool output_ok =3D false; - int i, nbr, pos =3D 0; + int i, nbr, pos =3D 0, ccnt; char ch; =20 /* Poll serial output... Wait at most 60 seconds */ for (i =3D 0; i < 6000; ++i) { - while ((nbr =3D read(fd, &ch, 1)) =3D=3D 1) { + ccnt =3D 0; + while ((nbr =3D read(fd, &ch, 1)) =3D=3D 1 && ccnt++ < 512) { if (ch =3D=3D test->expect[pos]) { pos +=3D 1; if (test->expect[pos] =3D=3D '\0') { --=20 1.8.3.1