提交 8608d252 编写于 作者: M Markus Armbruster

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: NMarkus Armbruster <armbru@redhat.com>
Reviewed-by: NEric Blake <eblake@redhat.com>
上级 54414047
...@@ -101,14 +101,13 @@ class QAPIExprError(Exception): ...@@ -101,14 +101,13 @@ class QAPIExprError(Exception):
class QAPISchema: class QAPISchema:
def __init__(self, fp, fname = None, include_hist = [], def __init__(self, fp, include_hist = [],
previously_included = [], incl_info = None): previously_included = [], incl_info = None):
""" include_hist is a stack used to detect inclusion cycles """ include_hist is a stack used to detect inclusion cycles
previously_included is a global state used to avoid multiple previously_included is a global state used to avoid multiple
inclusions of the same file""" inclusions of the same file"""
abs_fname = os.path.abspath(fp.name) abs_fname = os.path.abspath(fp.name)
if fname is None: fname = fp.name
fname = fp.name
self.fname = fname self.fname = fname
self.include_hist = include_hist + [(fname, abs_fname)] self.include_hist = include_hist + [(fname, abs_fname)]
previously_included.append(abs_fname) previously_included.append(abs_fname)
...@@ -148,7 +147,7 @@ class QAPISchema: ...@@ -148,7 +147,7 @@ class QAPISchema:
except IOError, e: except IOError, e:
raise QAPIExprError(expr_info, raise QAPIExprError(expr_info,
'%s: %s' % (e.strerror, include)) '%s: %s' % (e.strerror, include))
exprs_include = QAPISchema(fobj, include, self.include_hist, exprs_include = QAPISchema(fobj, self.include_hist,
previously_included, expr_info) previously_included, expr_info)
self.exprs.extend(exprs_include.exprs) self.exprs.extend(exprs_include.exprs)
else: else:
......
In file included from tests/qapi-schema/include-cycle.json:1: In file included from tests/qapi-schema/include-cycle.json:1:
In file included from include-cycle-b.json:1: In file included from tests/qapi-schema/include-cycle-b.json:1:
include-cycle-c.json:1: Inclusion loop for include-cycle.json tests/qapi-schema/include-cycle-c.json:1: Inclusion loop for include-cycle.json
In file included from tests/qapi-schema/include-nested-err.json:1: 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 ":"
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册