qapi: switch to use QEMU_TEST_REGENERATE env var

The QAPI_TEST_UPDATE env var can be set when running the QAPI
schema tests to regenerate the reference output. For consistent
naming with the tracetool test, change the env var name to
QEMU_TEST_REGENERATE.

The test is modified to provide a hint about use of the new
env var and it is also added to the developer documentation.document its usage.

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Message-id: 20250916081638.764020-8-berrange@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Daniel P. Berrangé
2025-09-16 09:16:37 +01:00
committed by Stefan Hajnoczi
parent c47db9b1db
commit 4b1e715912
2 changed files with 17 additions and 2 deletions

View File

@@ -178,6 +178,18 @@ parser (either fixing a bug or extending/modifying the syntax). To do this:
``qapi-schema += foo.json``
The reference output can be automatically updated to match the latest QAPI
code generator by running the tests with the QEMU_TEST_REGENERATE environment
variable set.
.. code::
QEMU_TEST_REGENERATE=1 make check-qapi-schema
The resulting changes must be reviewed by the author to ensure they match
the intended results before adding the updated reference output to the
same commit that alters the generator code.
.. _tracetool-tests:
Tracetool tests

View File

@@ -165,7 +165,7 @@ def test_and_diff(test_name, dir_name, update):
if actual_out == expected_out and actual_err == expected_err:
return 0
print("%s %s" % (test_name, 'UPDATE' if update else 'FAIL'),
print("%s: %s" % (test_name, 'UPDATE' if update else 'FAIL'),
file=sys.stderr)
out_diff = difflib.unified_diff(expected_out, actual_out, outfp.name)
err_diff = difflib.unified_diff(expected_err, actual_err, errfp.name)
@@ -173,6 +173,9 @@ def test_and_diff(test_name, dir_name, update):
sys.stdout.writelines(err_diff)
if not update:
print(("\n%s: set QEMU_TEST_REGENERATE=1 to recreate reference output" +
"if the QAPI schema generator was intentionally changed") % test_name,
file=sys.stderr)
return 1
try:
@@ -197,7 +200,7 @@ def main(argv):
parser.add_argument('-d', '--dir', action='store', default='',
help="directory containing tests")
parser.add_argument('-u', '--update', action='store_true',
default='QAPI_TEST_UPDATE' in os.environ,
default='QEMU_TEST_REGENERATE' in os.environ,
help="update expected test results")
parser.add_argument('tests', nargs='*', metavar='TEST', action='store')
args = parser.parse_args()