qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [RFC PATCH 0/9] tests: run python tests under the build/tests/venv e


From: Paolo Bonzini
Subject: Re: [RFC PATCH 0/9] tests: run python tests under the build/tests/venv environment
Date: Fri, 13 May 2022 11:45:06 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.8.0

On 5/13/22 10:35, Daniel P. Berrangé wrote:
The tests is an area where we still have too much taking place in
Makefiles, as opposed to meson. Can we put a rule in
tests/meson.build to trigger the ven creation ? Gets us closer to
being able to run ninja without using make as a wrapper.

I don't think this is or even should be a goal, because we have multiple projects under the QEMU tree:

- the QEMU binaries proper (emulators, tools, etc.)

- the firmware (pc-bios/{vof,s390-ccw,optionrom} with sources, the rest as submodules)

- tests/tcg


Each of these has its own build system and it's not possible to unify them under a single meson-based build:

- tests/tcg supports cross compilation for a different target, and pc-bios/ firmware will soon follow suit (which is why these directories haven't been converted to Meson, even though patches exist)

- firmware outside pc-bios/ consists of many external projects each with its own build system; right now it is not even buildable except by magic invocations that no one really knows

On top of this, there's support for building Docker images for cross-compilation which obviously doesn't fit the Meson usecases either.

In other words, Meson is the build system for QEMU *executables* (and that's why tests for the QEMU executables are being moved from configure to meson), but not for QEMU as a whole.


So I don't expect configure and Make to disappear. Meson is great at building a C program as big as QEMU; but QEMU is not just a C program, and isolating the C parts into Meson lets Make handle the rest of the complexity better than before, for example with cross compiled firmware support.

Likewise, we're now using "meson test" for "make check" and a custom runner for "make check-block"; but perhaps one day Avocado could replace both runners via custom Avocado resolvers (basically JSON emitters similar to Meson introspection data). That of course depends on whether Avocado has feature parity with "meson test".

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]