qapi: Improve source file read error handlingpull-qapi-2019-09-28
commitc615550df306a7b16e75d21f65ee38898c756bac
authorMarkus Armbruster <armbru@redhat.com>
Fri, 27 Sep 2019 13:46:39 +0000 (27 15:46 +0200)
committerMarkus Armbruster <armbru@redhat.com>
Sat, 28 Sep 2019 15:17:48 +0000 (28 17:17 +0200)
tree1d2de035c046909657471164f51fddf51890457d
parent56d2df5e65d873ca0e9841f7bb7676cab759f8da
qapi: Improve source file read error handling

qapi-gen.py crashes when it can't open the main schema file, and when
it can't read from any schema file.  Lazy.

Change QAPISchema.__init__() to take a file name instead of a file
object.  Move the open code from _include() to __init__(), so it's
used for the main schema file, too.

Move the read into the try for good measure, and rephrase the error
message.

Reporting open or read failure for the main schema file needs a
QAPISourceInfo representing "no source".  Make QAPISourceInfo cope
with fname=None.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20190927134639.4284-27-armbru@redhat.com>
scripts/qapi/common.py
tests/qapi-schema/include-no-file.err