diff --git a/nova/tests/test_libvirt.py b/nova/tests/test_libvirt.py
index 77c27f4c..b482ea8c 100644
--- a/nova/tests/test_libvirt.py
+++ b/nova/tests/test_libvirt.py
@@ -5135,6 +5135,105 @@ class LibvirtDriverTestCase(test.TestCase):
self.libvirtconnection.get_instance_disk_info,
instance_name)
+ def test_get_cpuset_ids(self):
+ # correct syntax
+ self.flags(vcpu_pin_set="1")
+ cpuset_ids = self.libvirtconnection._get_cpuset_ids()
+ self.assertEqual([1], cpuset_ids)
+
+ self.flags(vcpu_pin_set="1,2")
+ cpuset_ids = self.libvirtconnection._get_cpuset_ids()
+ self.assertEqual([1, 2], cpuset_ids)
+
+ self.flags(vcpu_pin_set=", , 1 , ,, 2, ,")
+ cpuset_ids = self.libvirtconnection._get_cpuset_ids()
+ self.assertEqual([1, 2], cpuset_ids)
+
+ self.flags(vcpu_pin_set="1-1")
+ cpuset_ids = self.libvirtconnection._get_cpuset_ids()
+ self.assertEqual([1], cpuset_ids)
+
+ self.flags(vcpu_pin_set=" 1 - 1, 1 - 2 , 1 -3")
+ cpuset_ids = self.libvirtconnection._get_cpuset_ids()
+ self.assertEqual([1, 2, 3], cpuset_ids)
+
+ self.flags(vcpu_pin_set="1,^2")
+ cpuset_ids = self.libvirtconnection._get_cpuset_ids()
+ self.assertEqual([1], cpuset_ids)
+
+ self.flags(vcpu_pin_set="1-2, ^1")
+ cpuset_ids = self.libvirtconnection._get_cpuset_ids()
+ self.assertEqual([2], cpuset_ids)
+
+ self.flags(vcpu_pin_set="1-3,5,^2")
+ cpuset_ids = self.libvirtconnection._get_cpuset_ids()
+ self.assertEqual([1, 3, 5], cpuset_ids)
+
+ self.flags(vcpu_pin_set=" 1 - 3 , ^2, 5")
+ cpuset_ids = self.libvirtconnection._get_cpuset_ids()
+ self.assertEqual([1, 3, 5], cpuset_ids)
+
+ # invalid syntax
+ self.flags(vcpu_pin_set=" -1-3,5,^2")
+ self.assertRaises(exception.Invalid,
+ self.libvirtconnection._get_cpuset_ids)
+
+ self.flags(vcpu_pin_set="1-3-,5,^2")
+ self.assertRaises(exception.Invalid,
+ self.libvirtconnection._get_cpuset_ids)
+
+ self.flags(vcpu_pin_set="-3,5,^2")
+ self.assertRaises(exception.Invalid,
+ self.libvirtconnection._get_cpuset_ids)
+
+ self.flags(vcpu_pin_set="1-,5,^2")
+ self.assertRaises(exception.Invalid,
+ self.libvirtconnection._get_cpuset_ids)
+
+ self.flags(vcpu_pin_set="1-3,5,^2^")
+ self.assertRaises(exception.Invalid,
+ self.libvirtconnection._get_cpuset_ids)
+
+ self.flags(vcpu_pin_set="1-3,5,^2-")
+ self.assertRaises(exception.Invalid,
+ self.libvirtconnection._get_cpuset_ids)
+
+ self.flags(vcpu_pin_set="--13,^^5,^2")
+ self.assertRaises(exception.Invalid,
+ self.libvirtconnection._get_cpuset_ids)
+
+ self.flags(vcpu_pin_set="a-3,5,^2")
+ self.assertRaises(exception.Invalid,
+ self.libvirtconnection._get_cpuset_ids)
+
+ self.flags(vcpu_pin_set="1-a,5,^2")
+ self.assertRaises(exception.Invalid,
+ self.libvirtconnection._get_cpuset_ids)
+
+ self.flags(vcpu_pin_set="1-3,b,^2")
+ self.assertRaises(exception.Invalid,
+ self.libvirtconnection._get_cpuset_ids)
+
+ self.flags(vcpu_pin_set="1-3,5,^c")
+ self.assertRaises(exception.Invalid,
+ self.libvirtconnection._get_cpuset_ids)
+
+ self.flags(vcpu_pin_set="3 - 1, 5 , ^ 2 ")
+ self.assertRaises(exception.Invalid,
+ self.libvirtconnection._get_cpuset_ids)
+
+ self.flags(vcpu_pin_set=" 1,1, ^1")
+ self.assertRaises(exception.Invalid,
+ self.libvirtconnection._get_cpuset_ids)
+
+ self.flags(vcpu_pin_set=" 1,^1,^1,2, ^2")
+ self.assertRaises(exception.Invalid,
+ self.libvirtconnection._get_cpuset_ids)
+
+ self.flags(vcpu_pin_set="^2")
+ self.assertRaises(exception.Invalid,
+ self.libvirtconnection._get_cpuset_ids)
+
class LibvirtVolumeUsageTestCase(test.TestCase):
"""Test for nova.virt.libvirt.libvirt_driver.LibvirtDriver
diff --git a/nova/tests/test_libvirt_config.py b/nova/tests/test_libvirt_config.py
index f98e6dd5..8eed7136 100644
--- a/nova/tests/test_libvirt_config.py
+++ b/nova/tests/test_libvirt_config.py
@@ -699,6 +699,7 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest):
obj.virt_type = "lxc"
obj.memory = 1024 * 1024 * 100
obj.vcpus = 2
+ obj.cpuset = "0-3,^2,4-5"
obj.name = "demo"
obj.uuid = "b38a3f43-4be2-4046-897f-b67c2f5e0147"
obj.os_type = "exe"
@@ -716,7 +717,7 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest):
b38a3f43-4be2-4046-897f-b67c2f5e0147
demo
104857600
- 2
+ 2
exe
/sbin/init
@@ -734,6 +735,7 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest):
obj.virt_type = "xen"
obj.memory = 1024 * 1024 * 100
obj.vcpus = 2
+ obj.cpuset = "0-3,^2,4-5"
obj.name = "demo"
obj.uuid = "b38a3f43-4be2-4046-897f-b67c2f5e0147"
obj.os_type = "linux"
@@ -756,7 +758,7 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest):
b38a3f43-4be2-4046-897f-b67c2f5e0147
demo
104857600
- 2
+ 2
linux
/tmp/vmlinuz
@@ -777,6 +779,7 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest):
obj.virt_type = "xen"
obj.memory = 1024 * 1024 * 100
obj.vcpus = 2
+ obj.cpuset = "0-3,^2,4-5"
obj.name = "demo"
obj.uuid = "b38a3f43-4be2-4046-897f-b67c2f5e0147"
obj.os_type = "hvm"
@@ -800,7 +803,7 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest):
b38a3f43-4be2-4046-897f-b67c2f5e0147
demo
104857600
- 2
+ 2
hvm
/usr/lib/xen/boot/hvmloader
@@ -824,6 +827,7 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest):
obj.virt_type = "kvm"
obj.memory = 1024 * 1024 * 100
obj.vcpus = 2
+ obj.cpuset = "0-3,^2,4-5"
obj.cpu_shares = 100
obj.cpu_quota = 50000
obj.cpu_period = 25000
@@ -853,7 +857,7 @@ class LibvirtConfigGuestTest(LibvirtConfigBaseTest):
b38a3f43-4be2-4046-897f-b67c2f5e0147
demo
104857600
- 2
+ 2
Acme