All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: Robert Foley <robert.foley@linaro.org>
Cc: peter.puhov@linaro.org, philmd@redhat.com, qemu-devel@nongnu.org
Subject: Re: [PATCH v4 04/10] tests/vm: add --boot-console switch
Date: Mon, 11 May 2020 10:13:06 +0100	[thread overview]
Message-ID: <87mu6erg0t.fsf@linaro.org> (raw)
In-Reply-To: <20200312142728.12285-5-robert.foley@linaro.org>


Robert Foley <robert.foley@linaro.org> writes:

> Added ability to view console during boot via
> --boot-console switch to basevm.py.  This helps debug issues that occur
> during the boot sequence.
> Also added a new special variable to vm-build:
> BOOT_CONSOLE=1 will cause this new --boot-console switch to be set.

Hmm why isn't this output covered by DEBUG=1? I'm wary of adding another
debug knob rather than just including the extra information under our
existing DEBUG output.

> Signed-off-by: Robert Foley <robert.foley@linaro.org>
> ---
>  tests/vm/Makefile.include |  4 ++++
>  tests/vm/basevm.py        | 11 +++++++++--
>  2 files changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/tests/vm/Makefile.include b/tests/vm/Makefile.include
> index 78a2de1f82..d921ee14cf 100644
> --- a/tests/vm/Makefile.include
> +++ b/tests/vm/Makefile.include
> @@ -40,6 +40,7 @@ endif
>  	@echo '    EXTRA_CONFIGURE_OPTS="..."'
>  	@echo "    J=[0..9]*            	 - Override the -jN parameter for make commands"
>  	@echo "    DEBUG=1              	 - Enable verbose output on host and interactive debugging"
> +	@echo "    BOOT_CONSOLE=1        	 - Show the console output at boot time. "
>  	@echo "    V=1				 - Enable verbose ouput on host and guest commands"
>  	@echo "    QEMU=/path/to/qemu		 - Change path to QEMU binary"
>  	@echo "    QEMU_IMG=/path/to/qemu-img	 - Change path to qemu-img tool"
> @@ -62,6 +63,7 @@ $(IMAGES_DIR)/%.img:	$(SRC_PATH)/tests/vm/% \
>  	$(call quiet-command, \
>  		$(PYTHON) $< \
>  		$(if $(V)$(DEBUG), --debug) \
> +		$(if $(BOOT_CONSOLE),--boot-console) \
>  		--image "$@" \
>  		--force \
>  		--build-image $@, \
> @@ -76,6 +78,7 @@ vm-build-%: $(IMAGES_DIR)/%.img
>  		$(if $(DEBUG), --interactive) \
>  		$(if $(J),--jobs $(J)) \
>  		$(if $(V),--verbose) \
> +		$(if $(BOOT_CONSOLE),--boot-console) \
>  		--image "$<" \
>  		$(if $(BUILD_TARGET),--build-target $(BUILD_TARGET)) \
>  		--snapshot \
> @@ -96,6 +99,7 @@ vm-boot-ssh-%: $(IMAGES_DIR)/%.img
>  	$(call quiet-command, \
>  		$(PYTHON) $(SRC_PATH)/tests/vm/$* \
>  		$(if $(J),--jobs $(J)) \
> +		$(if $(BOOT_CONSOLE),--boot-console) \
>  		--image "$<" \
>  		--interactive \
>  		false, \
> diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
> index dd545d3d1d..aab3d98edf 100644
> --- a/tests/vm/basevm.py
> +++ b/tests/vm/basevm.py
> @@ -85,8 +85,10 @@ 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, config=None):
> +    def __init__(self, debug=False, vcpus=None, config=None,
> +                 boot_console=None):
>          self._guest = None
> +        self._boot_console = boot_console
>          # Allow input config to override defaults.
>          self._config = DEFAULT_CONFIG.copy()
>          if config != None:
> @@ -535,6 +537,8 @@ def parse_args(vmcls):
>      parser.add_option("--config", "-c", default=None,
>                        help="Provide config yaml for configuration. "\
>                             "See config_example.yaml for example.")
> +    parser.add_option("--boot-console", action="store_true",
> +                      help="Show console during boot. ")
>      parser.disable_interspersed_args()
>      return parser.parse_args()
>  
> @@ -549,7 +553,8 @@ def main(vmcls, config=None):
>          config = parse_config(config, args)
>          logging.basicConfig(level=(logging.DEBUG if args.debug
>                                     else logging.WARN))
> -        vm = vmcls(debug=args.debug, vcpus=args.jobs, config=config)
> +        vm = vmcls(debug=args.debug, vcpus=args.jobs, config=config,
> +                   boot_console=args.boot_console)
>          if args.build_image:
>              if os.path.exists(args.image) and not args.force:
>                  sys.stderr.writelines(["Image file exists: %s\n" % args.image,
> @@ -569,6 +574,8 @@ def main(vmcls, config=None):
>          if args.snapshot:
>              img += ",snapshot=on"
>          vm.boot(img)
> +        if vm._boot_console:
> +            vm.wait_boot()
>          vm.wait_ssh()
>      except Exception as e:
>          if isinstance(e, SystemExit) and e.code == 0:


-- 
Alex Bennée


  reply	other threads:[~2020-05-11  9:14 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-12 14:27 [PATCH v4 00/10] tests/vm: Add support for aarch64 VMs Robert Foley
2020-03-12 14:27 ` [PATCH v4 01/10] tests/vm: Fix issues in gen_cloud_init_iso Robert Foley
2020-03-12 14:27 ` [PATCH v4 02/10] tests/vm: Add configuration to basevm.py Robert Foley
2020-03-12 14:27 ` [PATCH v4 03/10] tests/vm: Added configuration file support Robert Foley
2020-03-12 14:27 ` [PATCH v4 04/10] tests/vm: add --boot-console switch Robert Foley
2020-05-11  9:13   ` Alex Bennée [this message]
2020-05-11 12:00     ` Robert Foley
2020-03-12 14:27 ` [PATCH v4 05/10] tests/vm: Add ability to select QEMU from current build Robert Foley
2020-03-12 14:27 ` [PATCH v4 06/10] tests/vm: allow wait_ssh() to specify command Robert Foley
2020-05-11  9:15   ` Alex Bennée
2020-03-12 14:27 ` [PATCH v4 07/10] tests/vm: Added a new script for ubuntu.aarch64 Robert Foley
2020-03-12 14:27 ` [PATCH v4 08/10] tests/vm: Added a new script for centos.aarch64 Robert Foley
2020-03-12 14:27 ` [PATCH v4 09/10] tests/vm: change scripts to use self._config Robert Foley
2020-03-12 14:27 ` [PATCH v4 10/10] tests/vm: Add workaround to consume console Robert Foley
2020-05-11  9:21 ` [PATCH v4 00/10] tests/vm: Add support for aarch64 VMs Alex Bennée
2020-05-11 12:11   ` Robert Foley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87mu6erg0t.fsf@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=peter.puhov@linaro.org \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=robert.foley@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.