On 1/25/19 3:34 PM, Philippe Mathieu-Daudé wrote:
> Since the ahci-test uses qemu-img, add a dependency to build it
> before using it.
> This fixes:
>
> $ gmake check-qtest V=1
> QTEST_QEMU_BINARY=x86_64-softmmu/qemu-system-x86_64 QTEST_QEMU_IMG=qemu-img
> tests/ahci-test
> Failed to execute child process "/tmp/qemu-test.19tMRF/qemu-img" (No such
> file or directory)
> ERROR:tests/libqos/libqos.c:192:mkimg: assertion failed: (ret && !err)
>
> Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com>
> ---
> RFC because while this dependency is valid, I don't think this is the
> clever way to solve this problem (which is, assuming the host
> distribution has the qemu-tools installed).
> I guess remember a thread about it (Eric, John?) where it was asked
> "What do we want to test, qemu-img or AHCI? Can we trust an unstable
> version of a tool to verify a device?"
>
Yeah, these discussions have a great track record of preventing us from
fixing problems.
Here's my two cents: "make check" already exports QTEST_QEMU_IMG as the
one we're building and gets passed to ahci-test -- might as well make
the dependency explicit in that same way.
> Slighly related is when vm-tests expect qemu-img available:
> https://lists.gnu.org/archive/html/qemu-devel/2018-06/msg08415.html
>
> $ make vm-build-ubuntu.i386
> Traceback (most recent call last):
> File "source/qemu/tests/vm/basevm.py", line 236, in main
> return vm.build_image(args.image)
> File "tests/vm/ubuntu.i386", line 67, in build_image
> subprocess.check_call(["qemu-img", "resize", img_tmp, "50G"])
> OSError: [Errno 2] No such file or directory
> tests/vm/Makefile.include:23: recipe for target 'tests/vm/ubuntu.i386.img'
> failed
> make: *** [tests/vm/ubuntu.i386.img] Error 2
>
> A better fix would be checking those tools via ./configure...
> ---
> tests/Makefile.include | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tests/Makefile.include b/tests/Makefile.include
> index 19b4c0a696..5e03416c81 100644
> --- a/tests/Makefile.include
> +++ b/tests/Makefile.include
> @@ -706,7 +706,7 @@ tests/prom-env-test$(EXESUF): tests/prom-env-test.o
> $(libqos-obj-y)
> tests/rtas-test$(EXESUF): tests/rtas-test.o $(libqos-spapr-obj-y)
> tests/fdc-test$(EXESUF): tests/fdc-test.o
> tests/ide-test$(EXESUF): tests/ide-test.o $(libqos-pc-obj-y)
> -tests/ahci-test$(EXESUF): tests/ahci-test.o $(libqos-pc-obj-y)
> +tests/ahci-test$(EXESUF): tests/ahci-test.o $(libqos-pc-obj-y)
> qemu-img$(EXESUF)
> tests/ipmi-kcs-test$(EXESUF): tests/ipmi-kcs-test.o
> tests/ipmi-bt-test$(EXESUF): tests/ipmi-bt-test.o
> tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o
>
Reviewed-by: John Snow <js...@redhat.com>