qapi: Fix file name in error messages for included files

We print the name as it appears in the include expression.  Tools
processing error messages want it relative to the working directory.
Make it so.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
Markus Armbruster 2015-06-09 18:32:29 +02:00
parent 54414047ec
commit 8608d25251
3 changed files with 6 additions and 7 deletions

View File

@ -101,14 +101,13 @@ class QAPIExprError(Exception):
class QAPISchema:
def __init__(self, fp, fname = None, include_hist = [],
def __init__(self, fp, include_hist = [],
previously_included = [], incl_info = None):
""" include_hist is a stack used to detect inclusion cycles
previously_included is a global state used to avoid multiple
inclusions of the same file"""
abs_fname = os.path.abspath(fp.name)
if fname is None:
fname = fp.name
fname = fp.name
self.fname = fname
self.include_hist = include_hist + [(fname, abs_fname)]
previously_included.append(abs_fname)
@ -148,7 +147,7 @@ class QAPISchema:
except IOError, e:
raise QAPIExprError(expr_info,
'%s: %s' % (e.strerror, include))
exprs_include = QAPISchema(fobj, include, self.include_hist,
exprs_include = QAPISchema(fobj, self.include_hist,
previously_included, expr_info)
self.exprs.extend(exprs_include.exprs)
else:

View File

@ -1,3 +1,3 @@
In file included from tests/qapi-schema/include-cycle.json:1:
In file included from include-cycle-b.json:1:
include-cycle-c.json:1: Inclusion loop for include-cycle.json
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

View File

@ -1,2 +1,2 @@
In file included from tests/qapi-schema/include-nested-err.json:1:
missing-colon.json:1:10: Expected ":"
tests/qapi-schema/missing-colon.json:1:10: Expected ":"