[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 11/29] qapi: Improve include file name report
From: |
Michael Roth |
Subject: |
Re: [Qemu-devel] [PATCH v2 11/29] qapi: Improve include file name reporting in error messages |
Date: |
Sun, 18 Feb 2018 17:11:07 -0600 |
User-agent: |
alot/0.6 |
Quoting Markus Armbruster (2018-02-11 03:35:49)
> Error messages print absolute file names of included files even if the
> user gave a relative one on the command line:
>
> $ PYTHONPATH=scripts python -B tests/qapi-schema/test-qapi.py
> tests/qapi-schema/include-cycle.json
> In file included from tests/qapi-schema/include-cycle.json:1:
> In file included from
> /work/armbru/qemu/tests/qapi-schema/include-cycle-b.json:1:
> /work/armbru/qemu/tests/qapi-schema/include-cycle-c.json:1: Inclusion
> loop for include-cycle.json
>
> Improve this to
>
> In file included from tests/qapi-schema/include-cycle.json:1:
> In file included from tests/qapi-schema/include-cycle-b.json:1:
> tests/qapi-schema/include-cycle-c.json:1: Inclusion loop for
> include-cycle.json
>
> The error message when an include file can't be opened prints the
> include directive's file name, which is relative to the including
> file. Change this to print the file name relative to the working
> directory. Visible in tests/qapi-schema/include-no-file.err.
>
> Signed-off-by: Markus Armbruster <address@hidden>
> Reviewed-by: Eric Blake <address@hidden>
> Reviewed-by: Marc-André Lureau <address@hidden>
Reviewed-by: Michael Roth <address@hidden>
> ---
> scripts/qapi/common.py | 12 ++++++------
> tests/qapi-schema/include-no-file.err | 2 +-
> 2 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/scripts/qapi/common.py b/scripts/qapi/common.py
> index 2e58573a39..3e92b38ade 100644
> --- a/scripts/qapi/common.py
> +++ b/scripts/qapi/common.py
> @@ -259,9 +259,8 @@ class QAPIDoc(object):
> class QAPISchemaParser(object):
>
> def __init__(self, fp, previously_included=[], incl_info=None):
> - abs_fname = os.path.abspath(fp.name)
> self.fname = fp.name
> - previously_included.append(abs_fname)
> + previously_included.append(os.path.abspath(fp.name))
> self.incl_info = incl_info
> self.src = fp.read()
> if self.src == '' or self.src[-1] != '\n':
> @@ -292,7 +291,7 @@ class QAPISchemaParser(object):
> if not isinstance(include, str):
> raise QAPISemError(info,
> "Value of 'include' must be a string")
> - self._include(include, info, os.path.dirname(abs_fname),
> + self._include(include, info, os.path.dirname(self.fname),
> previously_included)
> elif "pragma" in expr:
> self.reject_expr_doc(cur_doc)
> @@ -325,7 +324,8 @@ class QAPISchemaParser(object):
> % doc.symbol)
>
> def _include(self, include, info, base_dir, previously_included):
> - incl_abs_fname = os.path.join(base_dir, include)
> + incl_fname = os.path.join(base_dir, include)
> + incl_abs_fname = os.path.abspath(incl_fname)
> # catch inclusion cycle
> inf = info
> while inf:
> @@ -337,9 +337,9 @@ class QAPISchemaParser(object):
> if incl_abs_fname in previously_included:
> return
> try:
> - fobj = open(incl_abs_fname, 'r')
> + fobj = open(incl_fname, 'r')
> except IOError as e:
> - raise QAPISemError(info, '%s: %s' % (e.strerror, include))
> + raise QAPISemError(info, '%s: %s' % (e.strerror, incl_fname))
> exprs_include = QAPISchemaParser(fobj, previously_included, info)
> self.exprs.extend(exprs_include.exprs)
> self.docs.extend(exprs_include.docs)
> diff --git a/tests/qapi-schema/include-no-file.err
> b/tests/qapi-schema/include-no-file.err
> index d5b9b22d85..e42bcf4bc1 100644
> --- a/tests/qapi-schema/include-no-file.err
> +++ b/tests/qapi-schema/include-no-file.err
> @@ -1 +1 @@
> -tests/qapi-schema/include-no-file.json:1: No such file or directory:
> include-no-file-sub.json
> +tests/qapi-schema/include-no-file.json:1: No such file or directory:
> tests/qapi-schema/include-no-file-sub.json
> --
> 2.13.6
>
- Re: [Qemu-devel] [PATCH v2 20/29] qapi/types qapi/visit: Generate built-in stuff into separate files, (continued)
- [Qemu-devel] [PATCH v2 14/29] qapi: Concentrate QAPISchemaParser.exprs updates in .__init__(), Markus Armbruster, 2018/02/11
- [Qemu-devel] [PATCH v2 02/29] qapi: Streamline boilerplate comment generation, Markus Armbruster, 2018/02/11
- [Qemu-devel] [PATCH v2 11/29] qapi: Improve include file name reporting in error messages, Markus Armbruster, 2018/02/11
- Re: [Qemu-devel] [PATCH v2 11/29] qapi: Improve include file name reporting in error messages,
Michael Roth <=
- [Qemu-devel] [PATCH v2 05/29] qapi: New classes QAPIGenC, QAPIGenH, QAPIGenDoc, Markus Armbruster, 2018/02/11
- [Qemu-devel] [PATCH v2 17/29] qapi: Record 'include' directives in intermediate representation, Markus Armbruster, 2018/02/11
- [Qemu-devel] [PATCH v2 18/29] qapi: Rename generated qmp-marshal.c to qmp-commands.c, Markus Armbruster, 2018/02/11