On 4/29/21 3:22 PM, Markus Armbruster wrote: > Philippe Mathieu-Daudé <phi...@redhat.com> writes: >>>> Now than we can probe if the TCG accelerator is available >>>> at runtime with a QMP command, do it once at the beginning >>>> and only register the tests we can run. >>>> We can then replace the #ifdef'ry by a runtime check. >>>> >>>> Suggested-by: Paolo Bonzini <pbonz...@redhat.com> >>>> Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> >>> >>> Please read the last remark first. The other ones are detail; feel free >>> to skip them until we're done with the last one. >>> >>>> --- >>>> tests/qtest/qmp-cmd-test.c | 18 ++++++++++++++---- >>>> 1 file changed, 14 insertions(+), 4 deletions(-) >> >>>> + tcg_accel_available = qtest_has_accel("tcg"); >>>> + >>> >>> When does tcg_accel_available differ from defined(CONFIG_TCG)? >> >> qtest_has_accel("tcg") is a runtime check, while defined(CONFIG_TCG) >> is build-time. > > Let me rephrase my question: under what conditions can the values of > qtest_has_accel("tcg") and defined(CONFIG_TCG) differ?
They are currently the same, so this patch is a no-op. *But* it allows us to remove the global dependence on CONFIG_TCG in the Meson machinery (see the last commit in this series). Is that missing part of the commit description? "This will allow us to remove the global CONFIG_TCG dependency in our Meson machinery in a pair of commits."? >> Having tests doing runtime checking allow to: >> >> - have easier reviews, having less #ifdef'ry >> - build them once for all targets >> - build them once for all ./configure options >> (thinking about CI, the a single job could build the tests, then >> we run them using the QEMU binaries from other jobs) >> - use the same binaries to test the built binary and the distribution >> installed one >> - remove the dependencies between tests and binaries >> >>> >>>> g_test_init(&argc, &argv, NULL); >>>> >>>> qmp_schema_init(&schema); >>> >