qemu-devel
[Top][All Lists]
Advanced

[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?

[...]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]