[libvirt] [PATCH] libvirt-tck: Update hook syntax for libvirt 0.9.0+
Osier Yang
jyang at redhat.com
Fri Mar 7 09:02:00 UTC 2014
On 07/03/14 00:27, Mike Latimer wrote:
> Starting with libvirt 0.9.0+, hook scripts can be called from several new
> locations. These locations must also be reflected in the expected logs of
> the hook tests.
>
> The final test in 052-domain-hook.t intentionally produces a failed start,
> which should show the first stage in the startup hook process, followed by
> all the stages in the destroy process.
>
> In addition to the above changes, libvirtd init scripts can return daemon
> status in several different ways (due to distribution differences,
> sysvinit vs. systemd, etc). This patch allows for 'running|active', and
> 'stopped|unused|inactive' responses which the hook tests rely on.
>
> ---
> lib/Sys/Virt/TCK/Hooks.pm | 17 ++++++++++++-----
> scripts/hooks/051-daemon-hook.t | 2 +-
> scripts/hooks/052-domain-hook.t | 6 +++---
> 3 files changed, 16 insertions(+), 9 deletions(-)
>
> diff --git a/lib/Sys/Virt/TCK/Hooks.pm b/lib/Sys/Virt/TCK/Hooks.pm
> index 75f98e9..2ae2c2a 100644
> --- a/lib/Sys/Virt/TCK/Hooks.pm
> +++ b/lib/Sys/Virt/TCK/Hooks.pm
> @@ -73,10 +73,10 @@ sub libvirtd_status {
> my $status = `service libvirtd status`;
> my $_ = $status;
>
> - if (/running/) {
> - $self->{libvirtd_status} = 'running';
> - } elsif (/stopped/) {
> + if (/stopped|unused|inactive/) {
> $self->{libvirtd_status} = 'stopped';
> + } elsif (/running|active/) {
> + $self->{libvirtd_status} = 'running';
> }
>
> return $self;
> @@ -146,13 +146,20 @@ sub expect_log {
> } elsif ($self->{type} eq 'qemu' or $self->{type} eq 'lxc') {
> if ($domain_state eq &Sys::Virt::Domain::STATE_RUNNING) {
> if ($action eq 'destroy') {
> - $expect_log = "$hook $domain_name stopped end -";
> + $expect_log = "$hook $domain_name stopped end -\n".
> + "$hook $domain_name release end -";
> } else {
> die "hooks testing doesn't support $action running domain";
> }
> } elsif ($domain_state eq &Sys::Virt::Domain::STATE_SHUTOFF) {
> if ($action eq 'start') {
> - $expect_log = "$hook $domain_name start begin -";
> + $expect_log = "$hook $domain_name prepare begin -\n".
> + "$hook $domain_name start begin -\n".
> + "$hook $domain_name started begin -";
> + } elsif ($action eq 'failstart') {
> + $expect_log = "$hook $domain_name prepare begin -\n".
> + "$hook $domain_name stopped end -\n".
> + "$hook $domain_name release end -";
> } else {
> die "hooks testing doesn't support $action shutoff domain";
> }
> diff --git a/scripts/hooks/051-daemon-hook.t b/scripts/hooks/051-daemon-hook.t
> index d9cfb3a..165cf4e 100644
> --- a/scripts/hooks/051-daemon-hook.t
> +++ b/scripts/hooks/051-daemon-hook.t
> @@ -85,7 +85,7 @@ SKIP: {
> ok($hook->compare_log(), "$hook->{name} is invoked correctly while $hook->{action} libvirtd");
>
> diag "check if libvirtd is stopped";
> - ok(`service libvirtd status` =~ /stopped/, "libvirtd is stopped");
> + ok(`service libvirtd status` =~ /stopped|unused|inactive/, "libvirtd is stopped");
>
> # start libvirtd
> $hook->action('start');
> diff --git a/scripts/hooks/052-domain-hook.t b/scripts/hooks/052-domain-hook.t
> index e3b55ec..90b8a48 100644
> --- a/scripts/hooks/052-domain-hook.t
> +++ b/scripts/hooks/052-domain-hook.t
> @@ -90,7 +90,7 @@ SKIP: {
> ok(-f "$hook->{name}", "$hook->{name} is invoked");
>
> my $actual_log_data = slurp($hook->{log_name});
> - diag "acutal log: $hook->{log_name} '$actual_log_data'";
> + diag "actual log: $hook->{log_name} '$actual_log_data'";
>
> diag "expect log:\n $hook->{expect_log}";
>
> @@ -147,7 +147,7 @@ SKIP: {
>
> $hook->domain_name($domain_name);
> $hook->domain_state($domain_state);
> - $hook->action('start');
> + $hook->action('failstart');
> $hook->expect_log();
>
> diag "start $domain_name";
> @@ -170,7 +170,7 @@ SKIP: {
> diag "expect log:\n $hook->{expect_log}";
>
> diag "check if the actual log is same with expected log";
> - ok($hook->compare_log, "$hook->{name} is invoked correctly while start $domain_name");
> + ok($hook->compare_log, "$hook->{name} is invoked correctly while failing to start $domain_name");
>
> # undefine domain
> diag "undefine $domain_name";
ACK, but wondering why we didn't discover it, according to the log for
the hook scripts have been changed.
Osier
More information about the libvir-list
mailing list