On 4/29/21 7:43 AM, 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. 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); >