From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35319) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZkZNM-0001Y6-PI for qemu-devel@nongnu.org; Fri, 09 Oct 2015 11:14:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZkZNK-0006wE-Pq for qemu-devel@nongnu.org; Fri, 09 Oct 2015 11:14:28 -0400 Received: from mx1.redhat.com ([209.132.183.28]:40103) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZkZNK-0006w2-K2 for qemu-devel@nongnu.org; Fri, 09 Oct 2015 11:14:26 -0400 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (Postfix) with ESMTPS id 366873824FA for ; Fri, 9 Oct 2015 15:14:26 +0000 (UTC) From: Markus Armbruster Date: Fri, 9 Oct 2015 17:14:06 +0200 Message-Id: <1444403661-29161-6-git-send-email-armbru@redhat.com> In-Reply-To: <1444403661-29161-1-git-send-email-armbru@redhat.com> References: <1444403661-29161-1-git-send-email-armbru@redhat.com> Subject: [Qemu-devel] [PULL 05/20] qapi: Improve 'include' error message List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org From: Eric Blake Use of '"...%s" % include' to print non-strings can lead to ugly messages, such as this (if the .json change is applied without the qapi.py change): Expected a file name (string), got: OrderedDict() Better is to just omit the actual non-string value in the message. Signed-off-by: Eric Blake Message-Id: <1443565276-4535-3-git-send-email-eblake@redhat.com> Signed-off-by: Markus Armbruster --- scripts/qapi.py | 3 +-- tests/qapi-schema/include-non-file.err | 2 +- tests/qapi-schema/include-non-file.json | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/scripts/qapi.py b/scripts/qapi.py index 06478bb..362e007 100644 --- a/scripts/qapi.py +++ b/scripts/qapi.py @@ -132,8 +132,7 @@ class QAPISchemaParser(object): include = expr["include"] if not isinstance(include, str): raise QAPIExprError(expr_info, - 'Expected a file name (string), got: %s' - % include) + "Value of 'include' must be a string") incl_abs_fname = os.path.join(os.path.dirname(abs_fname), include) # catch inclusion cycle diff --git a/tests/qapi-schema/include-non-file.err b/tests/qapi-schema/include-non-file.err index 9658c78..faae1ea 100644 --- a/tests/qapi-schema/include-non-file.err +++ b/tests/qapi-schema/include-non-file.err @@ -1 +1 @@ -tests/qapi-schema/include-non-file.json:1: Expected a file name (string), got: ['foo', 'bar'] +tests/qapi-schema/include-non-file.json:1: Value of 'include' must be a string diff --git a/tests/qapi-schema/include-non-file.json b/tests/qapi-schema/include-non-file.json index cd43c3f..4711aa4 100644 --- a/tests/qapi-schema/include-non-file.json +++ b/tests/qapi-schema/include-non-file.json @@ -1 +1 @@ -{ 'include': [ 'foo', 'bar' ] } +{ 'include': {} } -- 2.4.3