Hi, This series aims at having accelerator-independent qtests by querying a QEMU instance at runtime to check the list of built-in accelerators.
First we add the 'query-accels' QMP command, then we add the qtest_has_accel() method to libqtest, finally we use this new method to allow running bios-tables-test on KVM-only builds. This series is expected to be merged via the ARM tree. Since v7: - Include Markus code (see patch #2) Since v6: - Fixed a typo (Eric) - Added R-b tags Since v5: - Rename bios-tables tests (Igor) - Do not restrict bios-tables tests to TCG (Igor) - Reset bios-tables-test R-b tags Since v4: - Removed patch 10 (Markus, patch justification not clear) 'qtest/qmp-cmd-test: Make test build-independent from accelerator' - Removed patch 12 (Alex, icount / record/replay issue) 'tests/meson: Only build softfloat objects if TCG is selected (again)' - Sorted @Accelerator QAPI enum (Eric) - Added R-b/T-b Since v3: - Added Markus review comments - Added R-b/A-b tags Since v2: - Addressed Markus & Drew review comments - Added qtest/migration-test patch Since v1: - Addressed Eric & Paolo review comments Since v0: - kept over-engineered union (I don't how to do simple enum) - dropped arm-cpu-features patches for now - fixed typos (Eric) - rename qtest_has_accel (Thomas) - probe accel with machine none previous qtest (Paolo) - iterate over QAPI enum (Markus) Eric's suggestion of conditional QAPI didn't worked out, as accelerator definitions are poisoned. Phil. $ git backport-diff v6 Key: [----] : patches are identical [####] : number of functional differences between upstream/downstream patch [down] : patch is downstream-only The flags [FC] indicate (F)unctional and (C)ontextual differences, respective= ly 001/12:[----] [--] 'MAINTAINERS: Add qtest/arm-cpu-features.c to ARM TCG CPUs= section' 002/12:[0048] [FC] 'accel: Introduce 'query-accels' QMP command' 003/12:[----] [--] 'qtest: Add qtest_has_accel() method' 004/12:[----] [--] 'qtest/arm-cpu-features: Use generic qtest_has_accel() to = check for KVM' 005/12:[----] [--] 'qtest/arm-cpu-features: Restrict sve_tests_sve_off_kvm te= st to KVM' 006/12:[----] [--] 'qtest/arm-cpu-features: Remove TCG fallback to KVM specif= ic tests' 007/12:[----] [--] 'qtest/arm-cpu-features: Use generic qtest_has_accel() to = check for TCG' 008/12:[----] [--] 'qtest/migration-test: Skip tests if KVM not builtin on s3= 90x/ppc64' 009/12:[----] [--] 'qtest/bios-tables-test: Rename tests not TCG specific' 010/12:[----] [--] 'qtest/bios-tables-test: Rename TCG specific tests' 011/12:[----] [--] 'qtest/bios-tables-test: Make test build-independent from = accelerator' 012/12:[----] [--] 'qtest: Do not restrict bios-tables-test to Aarch64 hosts = anymore' Philippe Mathieu-Daud=C3=A9 (12): MAINTAINERS: Add qtest/arm-cpu-features.c to ARM TCG CPUs section accel: Introduce 'query-accels' QMP command qtest: Add qtest_has_accel() method qtest/arm-cpu-features: Use generic qtest_has_accel() to check for KVM qtest/arm-cpu-features: Restrict sve_tests_sve_off_kvm test to KVM qtest/arm-cpu-features: Remove TCG fallback to KVM specific tests qtest/arm-cpu-features: Use generic qtest_has_accel() to check for TCG qtest/migration-test: Skip tests if KVM not builtin on s390x/ppc64 qtest/bios-tables-test: Rename tests not TCG specific qtest/bios-tables-test: Rename TCG specific tests qtest/bios-tables-test: Make test build-independent from accelerator qtest: Do not restrict bios-tables-test to Aarch64 hosts anymore qapi/machine-target.json | 54 ++++++++++++ tests/qtest/libqos/libqtest.h | 8 ++ accel/accel-qmp.c | 32 +++++++ tests/qtest/arm-cpu-features.c | 55 ++++-------- tests/qtest/bios-tables-test.c | 156 ++++++++++++++++----------------- tests/qtest/libqtest.c | 29 ++++++ tests/qtest/migration-test.c | 4 +- MAINTAINERS | 1 + accel/meson.build | 2 +- tests/qtest/meson.build | 3 +- 10 files changed, 222 insertions(+), 122 deletions(-) create mode 100644 accel/accel-qmp.c --=20 2.26.3