[libvirt] [PATCH] libvirt-tck: prefer kvm if multiple domain types exist

Osier Yang jyang at redhat.com
Fri Mar 7 09:55:34 UTC 2014


On 07/03/14 01:39, Mike Latimer wrote:
> When matching capabilities of a guest, if multiple domain types exist (for
> example, 'qemu' and 'kvm') the order in which they are returned can change.
>
> To avoid unpredictable test results, this patch prefers kvm if that domain
> type exists. If not, the behavior matches what existed before, and the first
> domain type is returned.
>
> ---
>   lib/Sys/Virt/TCK.pm | 12 +++++++++++-
>   1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/lib/Sys/Virt/TCK.pm b/lib/Sys/Virt/TCK.pm
> index b2c16e7..56547c6 100644
> --- a/lib/Sys/Virt/TCK.pm
> +++ b/lib/Sys/Virt/TCK.pm
> @@ -502,7 +502,17 @@ sub match_kernel {
>   	    my @domains = $caps->guest_domain_types($i);
>   	    next unless int(@domains);
>   
> -	    return ($domains[0],
> +        # Prefer kvm if multiple domain types are returned
> +        my $domain;
> +        if (int(@domains) gt 1) {
> +            for (my $j = 0 ; $j < int(@domains) ; $j++) {

I would use "grep" instead of iterating over all the elements:

$domain = "kvm" if (grep /^kvm$/, @domains);

> +                $domain = "kvm" if ($domains[$j] eq "kvm");
> +            }
> +        }
> +        # If kvm was not found, default to the first one
> +        $domain = $domains[0] if (!defined($domain));
> +
> +        return ($domain,
>   		    $caps->guest_domain_emulator($i, $domains[0]),

Indention problem.

Osier




More information about the libvir-list mailing list