From patchwork Tue Sep 10 12:02:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Jackson X-Patchwork-Id: 11139337 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D7EA013BD for ; Tue, 10 Sep 2019 12:06:58 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B42512089F for ; Tue, 10 Sep 2019 12:06:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="Q3Hb/8q/" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B42512089F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=eu.citrix.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i7etb-0007rZ-NK; Tue, 10 Sep 2019 12:05:19 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i7eta-0007r7-HP for xen-devel@lists.xenproject.org; Tue, 10 Sep 2019 12:05:18 +0000 X-Inumbo-ID: 40f69a7e-d3c3-11e9-b76c-bc764e2007e4 Received: from esa3.hc3370-68.iphmx.com (unknown [216.71.145.155]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 40f69a7e-d3c3-11e9-b76c-bc764e2007e4; Tue, 10 Sep 2019 12:05:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1568117118; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version; bh=vkywOB2ALmY05LTCZ9whL88lySWzpu7NrDNLs1ESLMA=; b=Q3Hb/8q/Nus3mq5RYoCsefnuC5zAjJ9k0y6kBuUBmfW2jg7ThqrpuZ8o Hd5DvnsshXlno01r3ZMkoFHZgQoG7SChUWyDx0a0ylQWoU1PaY9UoFkZv WzSass53D9cGpl37sHEWxMGHq3V/ayT9YV+XHQ0ZvjExVEYq5u/a0iE8t Y=; Authentication-Results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=ian.jackson@eu.citrix.com; spf=Pass smtp.mailfrom=Ian.Jackson@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa3.hc3370-68.iphmx.com: no sender authenticity information available from domain of ian.jackson@eu.citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa3.hc3370-68.iphmx.com; envelope-from="Ian.Jackson@citrix.com"; x-sender="ian.jackson@eu.citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa3.hc3370-68.iphmx.com: domain of Ian.Jackson@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa3.hc3370-68.iphmx.com; envelope-from="Ian.Jackson@citrix.com"; x-sender="Ian.Jackson@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ~all" Received-SPF: None (esa3.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa3.hc3370-68.iphmx.com; envelope-from="Ian.Jackson@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: ZmfNl+92b5GJ7EwT0bR0c1qad+Qh6gPgrTQMTVvTMYwOLtk97EsuCIWNG2sxSzG/B/3bQzOGCq GZFkmBga6826CdX1nfljmaGvDb9dnLYZN6oRKQIpMjWSDIKM7KpLF+2p+lZek0iWWK8a8TPQPO 8eU2XRXWPyIziqcsNqfVdEcfowr0qi41sMa3SN4AsnJC8dEKJv8KdeJNTh5BU53pHHQh8eJGnr N36dphuKF9ElIxHMSS9J6begAhNgygYDvn+oooQHwK0zPDj2FuQVtgkZ0I2z3ozgX7s89ruhHO MoA= X-SBRS: 2.7 X-MesageID: 5370634 X-Ironport-Server: esa3.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.64,489,1559534400"; d="scan'208";a="5370634" From: Ian Jackson To: Date: Tue, 10 Sep 2019 13:02:05 +0100 Message-ID: <20190910120207.10358-11-ian.jackson@eu.citrix.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190910120207.10358-1-ian.jackson@eu.citrix.com> References: <20190910120207.10358-1-ian.jackson@eu.citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v3 10/12] tools/ocaml: abi-check: Check properly. X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Andrew Cooper , Ian Jackson , Christian Lindig , Wei Liu , David Scott Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Fix a broken regexp which would mention `$/' when it ought to have mentioned `$'. The result would be that it would match lines like type some_ocaml_type = Thing | Other_Thing but ignore everything but the type name, giving wrong answers. Check that we check mentioned types. Otherwise if we fail to spot some suitable thing in the ocaml, we would just omit checking this type ! Signed-off-by: Ian Jackson --- tools/ocaml/libs/xc/abi-check | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tools/ocaml/libs/xc/abi-check b/tools/ocaml/libs/xc/abi-check index abcd6ce6f1..d532f37271 100755 --- a/tools/ocaml/libs/xc/abi-check +++ b/tools/ocaml/libs/xc/abi-check @@ -47,6 +47,7 @@ while () { } elsif ($cline == 1 && @vals == 1) { my ($otype) = @vals; die "reference to undefined OType $otype" unless $enums{$otype}; + $cline = -1; } elsif ($cline == 1 && @vals == 3) { $ei->{$_} = shift @vals foreach qw(OType OPrefix Mangle); } elsif ($cline == 2 && @vals == 3) { @@ -70,7 +71,7 @@ $ei = undef; my $bitnum = 0; while () { if (!$ei) { - if (m{^type \s+ (\w+) \s* \= \s* $/}x && $enums{$1}) { + if (m{^type \s+ (\w+) \s* \= \s* $}x && $enums{$1}) { print "// found ocaml type $1 at $o:$.\n" or die $!; $ei = $enums{$1}; $cval = ''; @@ -96,6 +97,7 @@ while () { } else { die Dumper($ei)." ?"; } + $ei->{Checked} = 1; $ei = undef; } elsif (!m{\S}) { } else { @@ -104,4 +106,9 @@ while () { } } +foreach $ei (values %enums) { + next if $ei->{Checked}; + die "did not find ocaml type definition for $ei->{OType} in $o"; +} + close STDOUT or die $!;