[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 1/3] qapi: Use an explicit input file
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH v4 1/3] qapi: Use an explicit input file |
Date: |
Mon, 03 Mar 2014 16:42:39 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) |
Lluís Vilanova <address@hidden> writes:
> Markus Armbruster writes:
>
>> Lluís Vilanova <address@hidden> writes:
> [...]
>>> diff --git a/scripts/qapi.py b/scripts/qapi.py
>>> index 9b3de4c..59c2b9b 100644
>>> --- a/scripts/qapi.py
>>> +++ b/scripts/qapi.py
>>> @@ -12,6 +12,7 @@
>>> # See the COPYING.LIB file in the top-level directory.
>>>
>>> from ordereddict import OrderedDict
>>> +import os
>>> import sys
>>>
>>> builtin_types = [
>>> @@ -37,6 +38,7 @@ builtin_type_qtypes = {
>>>
>>> class QAPISchemaError(Exception):
>>> def __init__(self, schema, msg):
>>> + self.base = schema.error_base
>
>> Non-obvious identifiers. Took me some reading on to figure out that
>> this is a directory.
>
> Will fix.
>
>
>>> self.fp = schema.fp
>>> self.msg = msg
>>> self.line = self.col = 1
>>> @@ -50,12 +52,17 @@ class QAPISchemaError(Exception):
>>> self.col += 1
>>>
>>> def __str__(self):
>>> - return "%s:%s:%s: %s" % (self.fp.name, self.line, self.col,
>>> self.msg)
>>> + name = os.path.relpath(self.fp.name, self.base)
>>> + return "%s:%s:%s: %s" % (name, self.line, self.col, self.msg)
>
>> Can you explain what this change does, and why it's wanted?
>
> Paths are shown as relative so that the test outputs (stderr) can be verified
> with diff. Otherwise the actual message depends on the path from which you're
> running the tests.
Hmm. This is the applicable make rule:
$(patsubst %, check-%, $(check-qapi-schema-y)): check-%.json: $(SRC_PATH)/%.json
$(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts $(PYTHON)
$(SRC_PATH)/tests/qapi-schema/test-qapi.py "$^" >$*.test.out 2>$*.test.err;
echo $$? >$*.test.exit, " TEST $*.out")
@diff -q $(SRC_PATH)/$*.out $*.test.out
@diff -q $(SRC_PATH)/$*.err $*.test.err
@diff -q $(SRC_PATH)/$*.exit $*.test.exit
Since $^ is in $(SRC_PATH), it's like $(SRC_PATH)/foo.json. If
$(SRC_PATH)/foo.json has an error, the error messages duly points to
$(SRC_PATH)/foo.json.
The "diff -q $(SRC_PATH)/$*.err $*.test.err" fails unless your SRC_PATH
matches the one that's encoded in tests/qapi-schema/foo.err. Is that
the problem you're trying to solve?
[...]