To make sure the domain config is not broken after the API calls.
---
This depends on
https://www.redhat.com/archives/libvir-list/2012-August/msg01792.html
---
scripts/domain/202-numa-set-parameters.t | 99 ++++++++++++++++++++++++++++++
1 files changed, 99 insertions(+), 0 deletions(-)
create mode 100644 scripts/domain/202-numa-set-parameters.t
diff --git a/scripts/domain/202-numa-set-parameters.t
b/scripts/domain/202-numa-set-parameters.t
new file mode 100644
index 0000000..fd96866
--- /dev/null
+++ b/scripts/domain/202-numa-set-parameters.t
@@ -0,0 +1,99 @@
+# -*- perl -*-
+#
+# Copyright (C) 2009-2012 Red Hat, Inc.
+# Copyright (C) 2012 Osier Yang
+#
+# This program is free software; You can redistribute it and/or modify
+# it under the GNU General Public License as published by the Free
+# Software Foundation; either version 2, or (at your option) any
+# later version
+#
+# The file "LICENSE" distributed along with this file provides full
+# details of the terms and conditions
+#
+
+=pod
+
+=head1 NAME
+
+domain/212-set-numa-parameters.t - Set NUMA parameters
+
+=head1 DESCRIPTION
+
+The test case validates the internal data structure is consistent
+after the API call to set NUMA parameters for a domain.
+
+=cut
+
+use strict;
+use warnings;
+
+use Test::More tests => 10;
+
+use Sys::Virt::TCK;
+use Test::Exception;
+
+my $tck = Sys::Virt::TCK->new();
+my $conn = eval { $tck->setup(); };
+BAIL_OUT "failed to setup test harness: $@" if $@;
+END {
+ $tck->cleanup if $tck;
+ unlink "tck.img" if -f "tck.img";
+}
+
+
+my $xml = $tck->generic_domain("tck")->as_xml;
+
+diag "Creating a new persistent domain";
+my $dom;
+ok_domain(sub { $dom = $conn->define_domain($xml) }, "created persistent domain
object");
+
+diag "Starting inactive domain";
+$dom->create;
+ok($dom->get_id > 0, "running domain with ID > 0");
+
+# NUMA mode can't be changed for a live domain
+my %params = (
+ Sys::Virt::Domain::NUMA_NODESET => '0',
+);
+
+diag "Set numa parameters, affects live config";
+lives_ok(sub {$dom->set_numa_parameters(\%params, Sys::Virt::Domain::AFFECT_LIVE)},
"set_numa_parameters");
+
+diag "Destroy the domain";
+$dom->destroy;
+
+diag "Make sure the domain can be started after setting numa parameters";
+$dom->create;
+ok($dom->get_id > 0, "running domain with ID > 0");
+
+diag "Get numa parameters";
+my $params = $dom->get_numa_parameters(Sys::Virt::Domain::AFFECT_LIVE);
+ok($params->{Sys::Virt::Domain::NUMA_NODESET} eq '0', 'Check
nodeset');
+
+diag "Destroy the domain";
+$dom->destroy;
+
+$params{Sys::Virt::Domain::NUMA_MODE} = Sys::Virt::Domain::NUMATUNE_MEM_STRICT;
+
+diag "Set numa parameters, affects next boot";
+lives_ok(sub {$dom->set_numa_parameters(\%params, Sys::Virt::Domain::AFFECT_CONFIG)},
"set_numa_parameters");
+
+diag "Get numa parameters";
+my $params = $dom->get_numa_parameters(Sys::Virt::Domain::AFFECT_LIVE);
it should be Sys::Virt::Domain::AFFECT_CURRENT?
ACK with this fixed
Guannan