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