]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
tests/vm: avoid re-building the VM images all the time
authorAlex Bennée <alex.bennee@linaro.org>
Tue, 27 Feb 2024 14:43:09 +0000 (14:43 +0000)
committerMichael Tokarev <mjt@tls.msk.ru>
Wed, 28 Feb 2024 18:21:07 +0000 (21:21 +0300)
The main problem is that "check-venv" is a .PHONY target will always
evaluate and trigger a full re-build of the VM images. While its
tempting to drop it from the dependencies that does introduce a
breakage on freshly configured builds.

Fortunately we do have the otherwise redundant --force flag for the
script which up until now was always on. If we make the usage of
--force conditional on dependencies other than check-venv triggering
the update we can avoid the costly rebuild and still run cleanly on a
fresh checkout.

Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2118
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20240227144335.1196131-4-alex.bennee@linaro.org>
(cherry picked from commit 151b7dba391fab64cc008a1fdba6ddcf6f8c39c8)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
tests/vm/Makefile.include
tests/vm/basevm.py

index 2cc2203d0916f693be5034502a50460ba64685b9..e332fd13c3cc2f0daf6f08f4dee2d4dbbab0856e 100644 (file)
@@ -103,7 +103,7 @@ $(IMAGES_DIR)/%.img:        $(SRC_PATH)/tests/vm/% \
                $(if $(LOG_CONSOLE),--log-console) \
                --source-path $(SRC_PATH) \
                --image "$@" \
-               --force \
+               $(if $(filter-out check-venv, $?), --force) \
                --build-image $@, \
                "  VM-IMAGE $*")
 
index 2276364c42f4f17ec49fe0a54db096ff5a31d211..6a54d9d4e0a08d6cb130de266c55b3ce277e120e 100644 (file)
@@ -634,9 +634,9 @@ def main(vmcls, config=None):
         vm = vmcls(args, config=config)
         if args.build_image:
             if os.path.exists(args.image) and not args.force:
-                sys.stderr.writelines(["Image file exists: %s\n" % args.image,
+                sys.stderr.writelines(["Image file exists, skipping build: %s\n" % args.image,
                                       "Use --force option to overwrite\n"])
-                return 1
+                return 0
             return vm.build_image(args.image)
         if args.build_qemu:
             vm.add_source_dir(args.build_qemu)