aboutsummaryrefslogtreecommitdiffstats
path: root/tools/xm-test/tests/cpupool/01_cpupool_basic_pos.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/xm-test/tests/cpupool/01_cpupool_basic_pos.py')
-rw-r--r--tools/xm-test/tests/cpupool/01_cpupool_basic_pos.py72
1 files changed, 72 insertions, 0 deletions
diff --git a/tools/xm-test/tests/cpupool/01_cpupool_basic_pos.py b/tools/xm-test/tests/cpupool/01_cpupool_basic_pos.py
new file mode 100644
index 0000000000..66d1bf76cc
--- /dev/null
+++ b/tools/xm-test/tests/cpupool/01_cpupool_basic_pos.py
@@ -0,0 +1,72 @@
+#!/usr/bin/python
+
+import sys
+import re
+import time
+
+from XmTestLib import *
+
+
+#
+# Check output of xm info. It must include field 'free_cpus'
+# The value must be between 0 - nr_cpus
+#
+free_cpus = getInfo("free_cpus")
+if free_cpus == "":
+ FAIL("Missing 'free_cpus' entry in xm info output")
+if int(free_cpus) not in range(int(getInfo("nr_cpus")) + 1):
+ FAIL("Wrong value of 'free_cpus' (%s)" % int(free_cpus))
+
+
+#
+# Check output of xm list -l. It must contain the key 'pool_name'
+# If XM_USES_API is set, output must also contain 'cpu_pool'.
+#
+status, output = traceCommand("xm list -l Domain-0")
+if status != 0 or "Traceback" in output:
+ raise XmError("xm failed", trace=output, status=status)
+if not re.search("pool_name Pool-0", output):
+ FAIL("Missing or wrong attribute 'pool_name' in output of 'xm list -l'")
+if os.getenv("XM_USES_API"):
+ if not re.search("cpu_pool (.+)", output):
+ FAIL("Missing or wrong attribute 'cpu_pool' in output of 'xm list -l'")
+
+#
+# Test pool selection option of xm list.
+#
+status, output = traceCommand("xm list --pool=Pool-0")
+if status != 0 or "Traceback" in output:
+ raise XmError("xm failed", trace=output, status=status)
+if not re.search("Domain-0 +0 +", output):
+ FAIL("Missing 'Domain-0' in Pool-0")
+
+status, output = traceCommand("xm list --pool=Dummy-Pool")
+if status != 0 or "Traceback" in output:
+ raise XmError("xm failed", trace=output, status=status)
+if len(output.splitlines()) != 1:
+ FAIL("Wrong pool selection; output must be empty")
+
+
+#
+# Create a Domain without pool specification.
+# Default pool is Pool-0
+#
+name = "TestDomPool-1"
+domain = XmTestDomain(name=name)
+try:
+ domain.start(noConsole=True)
+except DomainError, ex:
+ FAIL(str(e))
+
+if not isDomainRunning(name):
+ FAIL("Couldn't start domain without pool specification")
+
+status, output = traceCommand("xm list -l %s" % name)
+if status != 0 or "Traceback" in output:
+ raise XmError("xm failed", trace=output, status=status)
+if not re.search("pool_name Pool-0", output):
+ FAIL("Missing or wrong attribute 'pool_name' in output of 'xm list -l %s'" % name)
+
+destroyAllDomUs()
+
+