``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
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)
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:
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()