From nobody Mon Feb 9 23:40:22 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1594106314; cv=none; d=zohomail.com; s=zohoarc; b=IFs5qt/bXK09r0SSKWRM5y+xABrfyteC6u9Ab//4tqxCTCPbpUEyh6YUztfkOomxJSF/Avi8ussIfr0o6AcXtHSQA8c5oxpFsyICMiX0cAYIvq8FnBLy6OMBkH5zO+XBc8k9hJbIznKWwhKTQZ26zlaDFhd6H/Pc6THM3EUOjPQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1594106314; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=msa/RJrC+RYm3qouK0hknnnvEiN6J+9sLGN+6EdqCHk=; b=VA46c27Wnrt+xBbb4N6/4PnnLW07kRYdmvHMqBH2HXH+CmVmEoCCBFhnEzrBRPnBFb7OjPpsi6pMhPQXbEBnLCZtHj0ZVzX66o2DyPQrbIUUfs8D2mvrG3dfwIzOSrKrwoIDnJaOSW9KM3JQ0nbjIJC2tJzAKd+YqzrCCYiOLy4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1594106314938527.5599701864317; Tue, 7 Jul 2020 00:18:34 -0700 (PDT) Received: from localhost ([::1]:47794 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jshs9-0005an-Fh for importer@patchew.org; Tue, 07 Jul 2020 03:18:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42592) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jshjC-0004pe-4b for qemu-devel@nongnu.org; Tue, 07 Jul 2020 03:09:18 -0400 Received: from mail-wr1-x442.google.com ([2a00:1450:4864:20::442]:38876) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jshjA-00045k-2y for qemu-devel@nongnu.org; Tue, 07 Jul 2020 03:09:17 -0400 Received: by mail-wr1-x442.google.com with SMTP id z13so43975376wrw.5 for ; Tue, 07 Jul 2020 00:09:15 -0700 (PDT) Received: from zen.linaroharston ([51.148.130.216]) by smtp.gmail.com with ESMTPSA id y77sm2348715wmd.36.2020.07.07.00.09.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jul 2020 00:09:10 -0700 (PDT) Received: from zen.lan (localhost [127.0.0.1]) by zen.linaroharston (Postfix) with ESMTP id A82311FF9B; Tue, 7 Jul 2020 08:08:59 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=msa/RJrC+RYm3qouK0hknnnvEiN6J+9sLGN+6EdqCHk=; b=P51U85xkjm5rkv3t994vGXWYkv5dEUj9rrCJdNqKW1W0TIjFBIPjIWDG/nYSSz9qsM nPu0MTnjBF0RwfQmzAGCUFbOtJNnN/yH0Ww/x6/zgAmUJ7yHlnd/2jbZ8fqevI1rFg3a rCkSpcjQMklHWJIeWkN0EimpGInHtfk2gPEkiDferloFiSqBe5OmpMcXuXxiCPDZjh7A xdjq7p0UC9R7VHFfPfhBJKTLBRDv+V4W/bMhE5kVjVFYAZNNir32DN3q/26Jwou0nZRb RLaMPiG5NgIvp0lxgxaKVxzUFN9oDsR/HrEmHingsiGeMEORcxJelk+Vg+GCneU0o8K+ tV8g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=msa/RJrC+RYm3qouK0hknnnvEiN6J+9sLGN+6EdqCHk=; b=Qvd3y3W1UQFFYgyWUOsCuICJI3Jl+5llFIXRdwzbJ6NHyCN64Yqp+fv9JekcZWt9tj KyVBnRM4tiSvZPECHAiIj4RAjSzmD+0iS36xub/Yy3+i1KuL42Ms1D5EAQPKrMO+FixZ U5DZrzpwC11omR8NRmvjjTArc9vgF2JZrnPvxyEJ/vlCwuLxWgAvS/LvyIkLKjM60W8x +vLN0UdsyRrMRQOx788PY2xqV83KdwfqEoe6euuX/mD9sKQaNIhlohhvmANGQAD/R2RA romllR8gyFTZJRXbqhVMfIC2r1+7uhue9s0jSVlXof28CG/NSeYvkSTLlu4Y4zixvYWh fOiw== X-Gm-Message-State: AOAM532/BaytjT+BVMTM6zFGHUBNTlGpSrfEdh2VyqFS1AvUjC23jKnu K/E9ncgZuL1Tg7+cRkkfbZ8JJx0u7As= X-Google-Smtp-Source: ABdhPJwCxcBSZWrfTscCTmKW8KGQdjuuCgIlHUtx9NFwO5uZKdSTmb/+LNF9Vtt2JCwuJ6Ld0GJp2A== X-Received: by 2002:a5d:4611:: with SMTP id t17mr49727837wrq.243.1594105754647; Tue, 07 Jul 2020 00:09:14 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Subject: [PULL 12/41] tests/vm: switch from optsparse to argparse Date: Tue, 7 Jul 2020 08:08:29 +0100 Message-Id: <20200707070858.6622-13-alex.bennee@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200707070858.6622-1-alex.bennee@linaro.org> References: <20200707070858.6622-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2a00:1450:4864:20::442; envelope-from=alex.bennee@linaro.org; helo=mail-wr1-x442.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Fam Zheng , =?UTF-8?q?Daniel=20P=20=2E=20Berrang=C3=A9?= , Robert Foley , =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-devel@nongnu.org, =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) optparse has been deprecated since version 3.2 and argparse is the blessed replacement. Take the opportunity to enhance our help output showing defaults when called. Signed-off-by: Alex Benn=C3=A9e Reviewed-by: Daniel P. Berrang=C3=A9 Reviewed-by: Robert Foley Message-Id: <20200701135652.1366-15-alex.bennee@linaro.org> diff --git a/tests/vm/aarch64vm.py b/tests/vm/aarch64vm.py index bb04cb19c911..d70ab843b6b8 100644 --- a/tests/vm/aarch64vm.py +++ b/tests/vm/aarch64vm.py @@ -46,7 +46,7 @@ def get_config_defaults(vmcls, default_config): def aarch_get_config_defaults(vmcls): """Set the defaults for current version of QEMU.""" config =3D CURRENT_CONFIG - args, argv =3D basevm.parse_args(vmcls) + args =3D basevm.parse_args(vmcls) qemu_path =3D basevm.get_qemu_path(vmcls.arch, args.build_path) qemu_version =3D basevm.get_qemu_version(qemu_path) if qemu_version < QEMU_AARCH64_MIN_VERSION: diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py index 04d083409a5f..890bbc5549a6 100644 --- a/tests/vm/basevm.py +++ b/tests/vm/basevm.py @@ -23,7 +23,7 @@ from qemu.accel import kvm_available from qemu.machine import QEMUMachine import subprocess import hashlib -import optparse +import argparse import atexit import tempfile import shutil @@ -556,54 +556,57 @@ def parse_args(vmcls): else: return 1 =20 - parser =3D optparse.OptionParser( - description=3D"VM test utility. Exit codes: " - "0 =3D success, " - "1 =3D command line error, " - "2 =3D environment initialization failed, " - "3 =3D test command failed") - parser.add_option("--debug", "-D", action=3D"store_true", - help=3D"enable debug output") - parser.add_option("--image", "-i", default=3D"%s.img" % vmcls.name, - help=3D"image file name") - parser.add_option("--force", "-f", action=3D"store_true", - help=3D"force build image even if image exists") - parser.add_option("--jobs", type=3Dint, default=3Dget_default_jobs(), - help=3D"number of virtual CPUs") - parser.add_option("--verbose", "-V", action=3D"store_true", - help=3D"Pass V=3D1 to builds within the guest") - parser.add_option("--build-image", "-b", action=3D"store_true", - help=3D"build image") - parser.add_option("--build-qemu", - help=3D"build QEMU from source in guest") - parser.add_option("--build-target", - help=3D"QEMU build target", default=3D"check") - parser.add_option("--build-path", default=3DNone, - help=3D"Path of build directory, "\ - "for using build tree QEMU binary. ") - parser.add_option("--interactive", "-I", action=3D"store_true", - help=3D"Interactively run command") - parser.add_option("--snapshot", "-s", action=3D"store_true", - help=3D"run tests with a snapshot") - parser.add_option("--genisoimage", default=3D"genisoimage", - help=3D"iso imaging tool") - parser.add_option("--config", "-c", default=3DNone, - help=3D"Provide config yaml for configuration. "\ - "See config_example.yaml for example.") - parser.add_option("--efi-aarch64", - default=3D"/usr/share/qemu-efi-aarch64/QEMU_EFI.fd", - help=3D"Path to efi image for aarch64 VMs.") - parser.add_option("--log-console", action=3D"store_true", - help=3D"Log console to file.") - parser.disable_interspersed_args() + parser =3D argparse.ArgumentParser( + formatter_class=3Dargparse.ArgumentDefaultsHelpFormatter, + description=3D"Utility for provisioning VMs and running builds", + epilog=3D"""Remaining arguments are passed to the command. + Exit codes: 0 =3D success, 1 =3D command line error, + 2 =3D environment initialization failed, + 3 =3D test command failed""") + parser.add_argument("--debug", "-D", action=3D"store_true", + help=3D"enable debug output") + parser.add_argument("--image", "-i", default=3D"%s.img" % vmcls.name, + help=3D"image file name") + parser.add_argument("--force", "-f", action=3D"store_true", + help=3D"force build image even if image exists") + parser.add_argument("--jobs", type=3Dint, default=3Dget_default_jobs(), + help=3D"number of virtual CPUs") + parser.add_argument("--verbose", "-V", action=3D"store_true", + help=3D"Pass V=3D1 to builds within the guest") + parser.add_argument("--build-image", "-b", action=3D"store_true", + help=3D"build image") + parser.add_argument("--build-qemu", + help=3D"build QEMU from source in guest") + parser.add_argument("--build-target", + help=3D"QEMU build target", default=3D"check") + parser.add_argument("--build-path", default=3DNone, + help=3D"Path of build directory, "\ + "for using build tree QEMU binary. ") + parser.add_argument("--interactive", "-I", action=3D"store_true", + help=3D"Interactively run command") + parser.add_argument("--snapshot", "-s", action=3D"store_true", + help=3D"run tests with a snapshot") + parser.add_argument("--genisoimage", default=3D"genisoimage", + help=3D"iso imaging tool") + parser.add_argument("--config", "-c", default=3DNone, + help=3D"Provide config yaml for configuration. "\ + "See config_example.yaml for example.") + parser.add_argument("--efi-aarch64", + default=3D"/usr/share/qemu-efi-aarch64/QEMU_EFI.fd= ", + help=3D"Path to efi image for aarch64 VMs.") + parser.add_argument("--log-console", action=3D"store_true", + help=3D"Log console to file.") + parser.add_argument("commands", nargs=3D"*", help=3D"""Remaining + commands after -- are passed to command inside the VM""") + return parser.parse_args() =20 def main(vmcls, config=3DNone): try: if config =3D=3D None: config =3D {} - args, argv =3D parse_args(vmcls) - if not argv and not args.build_qemu and not args.build_image: + args =3D parse_args(vmcls) + if not args.commands and not args.build_qemu and not args.build_im= age: print("Nothing to do?") return 1 config =3D parse_config(config, args) @@ -619,12 +622,12 @@ def main(vmcls, config=3DNone): if args.build_qemu: vm.add_source_dir(args.build_qemu) cmd =3D [vm.BUILD_SCRIPT.format( - configure_opts =3D " ".join(argv), + configure_opts =3D " ".join(args.commands), jobs=3Dint(args.jobs), target=3Dargs.build_target, verbose =3D "V=3D1" if args.verbose else "")] else: - cmd =3D argv + cmd =3D args.commands img =3D args.image if args.snapshot: img +=3D ",snapshot=3Don" --=20 2.20.1