On 26/02/2024 20.50, Alex Bennée wrote:
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
Signed-off-by: Alex Bennée <alex.ben...@linaro.org>
---
  tests/vm/Makefile.include | 2 +-
  tests/vm/basevm.py        | 4 ++--
  2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/tests/vm/Makefile.include b/tests/vm/Makefile.include
index bf12e0fa3c5..ac56824a87d 100644
--- a/tests/vm/Makefile.include
+++ b/tests/vm/Makefile.include
@@ -102,7 +102,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 $*")
diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
index c0d62c08031..f8fd751eb14 100644
--- a/tests/vm/basevm.py
+++ b/tests/vm/basevm.py
@@ -646,9 +646,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)

Reviewed-by: Thomas Huth <th...@redhat.com>


Reply via email to