Feature request: using different/multiple QEMU executables for different jobs (likely, devices)
In LITE, we're facing the case that QEMU as used by standard LAVA distro (i.e. coming from Debian package) is too old. We'd need to use QEMU from Zephyr SDK for at least some of tests. It doesn't stop there, because for other tests, we may need to use QEMU with changes which aren't yet upstream, but coming from vendor repos.
It seems that a natural way to achieve that would be able to define a particular device which uses overriden path to QEMU executable, while still base on the common and standard device type "qemu". Looking at qemu.jinja2, I don't see such a feature though. I also tried to (quickly) trace processing thru .py files, to see if such a feature is available on "metalevel" (i.e. not specific to qemu.jinja2, but I don't see anything like that either.
So, I'd like to consult about the best way to achieve this (adhering to existing LAVA conventions etc.). The simplest way would be to allow to override the entire executable name in a device dictionary, and for non-default QEMUs, just provide a full path to where it's installed. But looking at the qemu.jinja2, it tries to operate with higher-level metadata (like architecture), and constructs executable name from that. I guess it makes sense to preserve that (for as long as we can assume that QEMU variants which can be used by various users will follow upstream naming). And then, it makes sense to allow to override just executable directory, while constructing executable name like before. Default for directory would be empty, which means "search in PATH", like before. Otherwise, if non-empty dir is provided, executable will be looked up just in it.
How does all that sound, is there a better way to deal with that which I missed?