[libvirt] [tck PATCH 3/3] Allow tests to be listed as positional arguments
Laine Stump
laine at laine.org
Sat Nov 3 17:06:33 UTC 2018
On 11/2/18 11:52 AM, Daniel P. Berrangé wrote:
> The -t argument accepts the path to a test file or a test directory. It
> would be useful if shell wildcards could be used to specify test files,
> but this doesn't work when using optional arguments.
>
> By changing the test path(s) to be positional arguments we can easily
> allow for shell wildcards.
>
> Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
I don't have experience with whatever is doing the commandline parsing,
but it looks like it ought to work, and the few things I threw at it
worked as expected.
Reviewed-by: Laine Stump <laine at laine.org>
> ---
> bin/libvirt-tck | 35 +++++++++++++++++++++--------------
> 1 file changed, 21 insertions(+), 14 deletions(-)
>
> diff --git a/bin/libvirt-tck b/bin/libvirt-tck
> index d5519dd..bd332a4 100644
> --- a/bin/libvirt-tck
> +++ b/bin/libvirt-tck
> @@ -8,7 +8,7 @@ libvirt-tck - libvirt Technology Compatability Kit
>
> =head1 SYNOPSIS
>
> - # libvirt-tck [OPTIONS]
> + # libvirt-tck [OPTIONS] [TESTS..]
>
> Run with default config, probing for URI to use
>
> @@ -62,8 +62,15 @@ the default configuration file from C</etc/libvirt-tck/default.cfg>
> and will allow libvirt to probe for the hypervisor driver to
> run. If a reliably repeatable test result set is desired, it is
> recommended to always give an explicit libvirt connection URI
> -to choose the driver. The following options are available when
> -running the C<libvirt-tck> command
> +to choose the driver.
> +
> +Any command line arguments that are not parsed as options will
> +be considered paths to test scripts to invoke. If no paths are
> +given, all tests under C</usr/share/libvirt-tck/tests> will be
> +executed.
> +
> +The following options are available when running the C<libvirt-tck>
> +command
>
> =over 4
>
> @@ -98,11 +105,6 @@ networks, storage pools, etc which have a "tck" name prefix.
> User created objects whose name does not start with "tck" will be
> left untouched.
>
> -=item -t, --testdir PATH
> -
> -Specify an alternate directory path in which to find the test
> -scripts to be run. If omitted, defaults to C</usr/share/libvirt-tck/tests>
> -
> =item -a, --archive FILE
>
> Generate an archive containing all the raw test results. The
> @@ -144,7 +146,6 @@ my $timer = 0;
> my $archive;
> my $config = catfile($confdir, "default.cfg");
> my $format = "text";
> -my $testdir = catdir($datadir, "tests");
>
> if (!GetOptions("verbose" => \$verbose,
> "debug" => \$debug,
> @@ -154,7 +155,6 @@ if (!GetOptions("verbose" => \$verbose,
> "config=s" => \$config,
> "force" => \$force,
> "format=s" => \$format,
> - "testdir=s" => \$testdir,
> "timer" => \$timer) || $help) {
> pod2usage(-verbose => $help,
> -output => $help ? \*STDOUT : \*STDERR,
> @@ -181,12 +181,19 @@ if ($verbose && $quiet) {
> -output => \*STDERR);
> }
>
> -unless (-e $testdir) {
> - print STDERR "$0: test directory '$testdir' does not exist\n";
> - exit 2;
> +my @testdirs = @ARGV;
> +unless (@testdirs) {
> + push @testdirs, catdir($datadir, "tests");
> +}
> +
> +foreach (@testdirs) {
> + unless (-e $_) {
> + print STDERR "$0: test path '$_' does not exist\n";
> + exit 2;
> + }
> }
>
> -my @newargv = ("-r", "--norc", "--merge", $testdir);
> +my @newargv = ("-r", "--norc", "--merge", @testdirs);
>
> if ($archive) {
> push @newargv, "-a", $archive;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pEpkey.asc
Type: application/pgp-keys
Size: 1757 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20181103/e629ae4a/attachment-0001.bin>
More information about the libvir-list
mailing list