diff options
author | Markus Armbruster <armbru@redhat.com> | 2021-09-22 14:56:19 +0200 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2021-09-27 08:23:25 +0200 |
commit | f333681c6e277004796b0bed808697da1280d140 (patch) | |
tree | 5dc9bd53716c0b6d55bc3e305f9c2dac21d7f16a /tests | |
parent | 436911c2a16c1c2b4d1248f0d5a720f0a9decaad (diff) | |
download | qemu-f333681c6e277004796b0bed808697da1280d140.zip qemu-f333681c6e277004796b0bed808697da1280d140.tar.gz qemu-f333681c6e277004796b0bed808697da1280d140.tar.bz2 |
tests/qapi-schema: Make test-qapi.py -u work when files are absent
test-qapi.py -u updates the expected files. Since it fails when they
are absent, users have to create them manually before they can use
test-qapi.py to fill in the contents, say for a new test. Silly.
Improve -u to create them.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20210922125619.670673-3-armbru@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/qapi-schema/test-qapi.py | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/tests/qapi-schema/test-qapi.py b/tests/qapi-schema/test-qapi.py index 2e384f5..c717a7a 100755 --- a/tests/qapi-schema/test-qapi.py +++ b/tests/qapi-schema/test-qapi.py @@ -132,6 +132,17 @@ def test_frontend(fname): print(' section=%s\n%s' % (section.name, section.text)) +def open_test_result(dir_name, file_name, update): + mode = 'r+' if update else 'r' + try: + fp = open(os.path.join(dir_name, file_name), mode) + except FileNotFoundError: + if not update: + raise + fp = open(os.path.join(dir_name, file_name), 'w+') + return fp + + def test_and_diff(test_name, dir_name, update): sys.stdout = StringIO() try: @@ -148,10 +159,9 @@ def test_and_diff(test_name, dir_name, update): sys.stdout.close() sys.stdout = sys.__stdout__ - mode = 'r+' if update else 'r' try: - outfp = open(os.path.join(dir_name, test_name + '.out'), mode) - errfp = open(os.path.join(dir_name, test_name + '.err'), mode) + outfp = open_test_result(dir_name, test_name + '.out', update) + errfp = open_test_result(dir_name, test_name + '.err', update) expected_out = outfp.readlines() expected_err = errfp.readlines() except OSError as err: |