diff mbox series

[v1,2/2] tests/vm: pass --genisoimage to basevm script

Message ID 20200515172831.8439-3-alex.bennee@linaro.org (mailing list archive)
State New, archived
Headers show
Series some fixes for genisoimage usage | expand

Commit Message

Alex Bennée May 15, 2020, 5:28 p.m. UTC
If we have an alternative to genisoimage we really need to tell the
script about it as well so it can use it. It will still default to
genisoimage in case it is run outside our build machinery.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/vm/Makefile.include |  1 +
 tests/vm/basevm.py        | 16 ++++++++++------
 2 files changed, 11 insertions(+), 6 deletions(-)

Comments

Philippe Mathieu-Daudé May 15, 2020, 5:32 p.m. UTC | #1
On 5/15/20 7:28 PM, Alex Bennée wrote:
> If we have an alternative to genisoimage we really need to tell the
> script about it as well so it can use it. It will still default to
> genisoimage in case it is run outside our build machinery.

Maybe worth mentioning it is a follow-up to commit 39d87c8c0c1.

> 
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> ---
>   tests/vm/Makefile.include |  1 +
>   tests/vm/basevm.py        | 16 ++++++++++------
>   2 files changed, 11 insertions(+), 6 deletions(-)
> 
> diff --git a/tests/vm/Makefile.include b/tests/vm/Makefile.include
> index 1bf9693d195..74ab522c55d 100644
> --- a/tests/vm/Makefile.include
> +++ b/tests/vm/Makefile.include
> @@ -56,6 +56,7 @@ $(IMAGES_DIR)/%.img:	$(SRC_PATH)/tests/vm/% \
>   	$(call quiet-command, \
>   		$(PYTHON) $< \
>   		$(if $(V)$(DEBUG), --debug) \
> +		$(if $(GENISOIMAGE),--genisoimage $(GENISOIMAGE)) \
>   		--image "$@" \
>   		--force \
>   		--build-image $@, \
> diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
> index 756ccf7acae..a2d4054d72b 100644
> --- a/tests/vm/basevm.py
> +++ b/tests/vm/basevm.py
> @@ -61,8 +61,9 @@ class BaseVM(object):
>       # 4 is arbitrary, but greater than 2,
>       # since we found we need to wait more than twice as long.
>       tcg_ssh_timeout_multiplier = 4
> -    def __init__(self, debug=False, vcpus=None):
> +    def __init__(self, debug=False, vcpus=None, genisoimage=None):
>           self._guest = None
> +        self._genisoimage = genisoimage
>           self._tmpdir = os.path.realpath(tempfile.mkdtemp(prefix="vm-test-",
>                                                            suffix=".tmp",
>                                                            dir="."))
> @@ -381,12 +382,12 @@ class BaseVM(object):
>               udata.writelines(["apt:\n",
>                                 "  proxy: %s" % proxy])
>           udata.close()
> -        subprocess.check_call(["genisoimage", "-output", "cloud-init.iso",
> +        subprocess.check_call([self._genisoimage, "-output", "cloud-init.iso",
>                                  "-volid", "cidata", "-joliet", "-rock",
>                                  "user-data", "meta-data"],
> -                               cwd=cidir,
> -                               stdin=self._devnull, stdout=self._stdout,
> -                               stderr=self._stdout)
> +                              cwd=cidir,
> +                              stdin=self._devnull, stdout=self._stdout,
> +                              stderr=self._stdout)
>   
>           return os.path.join(cidir, "cloud-init.iso")
>   
> @@ -424,6 +425,8 @@ def parse_args(vmcls):
>                         help="Interactively run command")
>       parser.add_option("--snapshot", "-s", action="store_true",
>                         help="run tests with a snapshot")
> +    parser.add_option("--genisoimage", default="genisoimage",
> +                      help="iso imaging tool")
>       parser.disable_interspersed_args()
>       return parser.parse_args()
>   
> @@ -435,7 +438,8 @@ def main(vmcls):
>               return 1
>           logging.basicConfig(level=(logging.DEBUG if args.debug
>                                      else logging.WARN))
> -        vm = vmcls(debug=args.debug, vcpus=args.jobs)
> +        vm = vmcls(debug=args.debug, vcpus=args.jobs,
> +                   genisoimage=args.genisoimage)
>           if args.build_image:
>               if os.path.exists(args.image) and not args.force:
>                   sys.stderr.writelines(["Image file exists: %s\n" % args.image,
> 

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
diff mbox series

Patch

diff --git a/tests/vm/Makefile.include b/tests/vm/Makefile.include
index 1bf9693d195..74ab522c55d 100644
--- a/tests/vm/Makefile.include
+++ b/tests/vm/Makefile.include
@@ -56,6 +56,7 @@  $(IMAGES_DIR)/%.img:	$(SRC_PATH)/tests/vm/% \
 	$(call quiet-command, \
 		$(PYTHON) $< \
 		$(if $(V)$(DEBUG), --debug) \
+		$(if $(GENISOIMAGE),--genisoimage $(GENISOIMAGE)) \
 		--image "$@" \
 		--force \
 		--build-image $@, \
diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
index 756ccf7acae..a2d4054d72b 100644
--- a/tests/vm/basevm.py
+++ b/tests/vm/basevm.py
@@ -61,8 +61,9 @@  class BaseVM(object):
     # 4 is arbitrary, but greater than 2,
     # since we found we need to wait more than twice as long.
     tcg_ssh_timeout_multiplier = 4
-    def __init__(self, debug=False, vcpus=None):
+    def __init__(self, debug=False, vcpus=None, genisoimage=None):
         self._guest = None
+        self._genisoimage = genisoimage
         self._tmpdir = os.path.realpath(tempfile.mkdtemp(prefix="vm-test-",
                                                          suffix=".tmp",
                                                          dir="."))
@@ -381,12 +382,12 @@  class BaseVM(object):
             udata.writelines(["apt:\n",
                               "  proxy: %s" % proxy])
         udata.close()
-        subprocess.check_call(["genisoimage", "-output", "cloud-init.iso",
+        subprocess.check_call([self._genisoimage, "-output", "cloud-init.iso",
                                "-volid", "cidata", "-joliet", "-rock",
                                "user-data", "meta-data"],
-                               cwd=cidir,
-                               stdin=self._devnull, stdout=self._stdout,
-                               stderr=self._stdout)
+                              cwd=cidir,
+                              stdin=self._devnull, stdout=self._stdout,
+                              stderr=self._stdout)
 
         return os.path.join(cidir, "cloud-init.iso")
 
@@ -424,6 +425,8 @@  def parse_args(vmcls):
                       help="Interactively run command")
     parser.add_option("--snapshot", "-s", action="store_true",
                       help="run tests with a snapshot")
+    parser.add_option("--genisoimage", default="genisoimage",
+                      help="iso imaging tool")
     parser.disable_interspersed_args()
     return parser.parse_args()
 
@@ -435,7 +438,8 @@  def main(vmcls):
             return 1
         logging.basicConfig(level=(logging.DEBUG if args.debug
                                    else logging.WARN))
-        vm = vmcls(debug=args.debug, vcpus=args.jobs)
+        vm = vmcls(debug=args.debug, vcpus=args.jobs,
+                   genisoimage=args.genisoimage)
         if args.build_image:
             if os.path.exists(args.image) and not args.force:
                 sys.stderr.writelines(["Image file exists: %s\n" % args.image,