This series implements "-cpu feature=force", to allow a feature to be forcefully enabled even if the underlying accelerator report it as unsupported. This feature should be used only for testing and debugging.
We use a new QAPI alternate type to keep command-line compatibility, and to keep compatibility with code that reads the existing feature QOM properties and expects boolean values. Eduardo Habkost (4): visitor: Add 'supported_qtypes' parameter to visit_start_alternate() string-input-visitor: Support alternate types tests: Add [+-]feature and feature=on|off test cases x86: Support feature=force on the command-line qapi-schema.json | 32 +++++++++ include/qapi/visitor.h | 5 +- include/qapi/visitor-impl.h | 2 +- scripts/qapi-visit.py | 14 ++-- target/i386/cpu.h | 2 + qapi/qapi-visit-core.c | 7 +- qapi/qapi-clone-visitor.c | 3 +- qapi/qapi-dealloc-visitor.c | 3 +- qapi/qobject-input-visitor.c | 6 +- qapi/string-input-visitor.c | 71 ++++++++++++++++--- target/i386/cpu.c | 55 +++++++++++---- tests/test-string-input-visitor.c | 89 ++++++++++++++++++++++++ tests/test-x86-cpuid-compat.c | 119 ++++++++++++++++++++++++++++++++ qapi/trace-events | 2 +- tests/qapi-schema/qapi-schema-test.json | 8 +++ 15 files changed, 379 insertions(+), 39 deletions(-) -- 2.11.0.259.g40922b1