Add sched-credit xm tests but don't run them by default yet...
authorack@localhost.localdomain <ack@localhost.localdomain>
Thu, 8 Jun 2006 10:35:27 +0000 (11:35 +0100)
committerack@localhost.localdomain <ack@localhost.localdomain>
Thu, 8 Jun 2006 10:35:27 +0000 (11:35 +0100)
Signed-off-by: Emmanuel Ackaouy <ack@xensource.com>
tools/xm-test/configure.ac
tools/xm-test/tests/Makefile.am
tools/xm-test/tests/sched-credit/01_sched_credit_weight_cap_pos.py [new file with mode: 0644]
tools/xm-test/tests/sched-credit/Makefile.am [new file with mode: 0644]

index 96ef23a398e6de44df24e30650795eb2c8becc5a..291ed1e86ebc2e52b9d87381281217648e2db718 100644 (file)
@@ -118,6 +118,7 @@ AC_CONFIG_FILES([
     tests/reboot/Makefile
     tests/restore/Makefile
     tests/save/Makefile
+    tests/sched-credit/Makefile
     tests/sedf/Makefile
     tests/shutdown/Makefile
     tests/sysrq/Makefile
index cfdd6e4a50775492919f0ef0bc8bc4240ea70751..c01cdd244dc0e5f6fe44eca486b0a8b08001aabb 100644 (file)
@@ -18,6 +18,7 @@ SUBDIRS =                     \
                network-attach  \
                pause           \
                reboot          \
+               sched-credit    \
                sedf            \
                shutdown        \
                sysrq           \
diff --git a/tools/xm-test/tests/sched-credit/01_sched_credit_weight_cap_pos.py b/tools/xm-test/tests/sched-credit/01_sched_credit_weight_cap_pos.py
new file mode 100644 (file)
index 0000000..e0b1fe5
--- /dev/null
@@ -0,0 +1,65 @@
+#!/usr/bin/python
+#
+# Sched-credit tests modified from SEDF tests
+#
+from XmTestLib import *
+
+def get_sched_credit_params(domain):
+    status, output = traceCommand("xm sched-credit -d %s" %(domain.getName()))
+    params = output.strip('{}').split(', ')
+    cap = int(params[0].split(':')[1].strip(' '))
+    weight = int(params[1].split(':')[1].strip(' '))
+    return (status, (weight, cap))
+
+def set_sched_credit_weight(domain, weight):
+    status, output = traceCommand("xm sched-credit -d %s -w %d" %(domain.getName(), weight))
+    return status
+
+def set_sched_credit_cap(domain, cap):
+    status, output = traceCommand("xm sched-credit -d %s -c %d" %(domain.getName(), cap))
+    return status
+
+
+domain = XmTestDomain()
+
+try:
+    domain.start(noConsole=True)
+except DomainError, e:
+    if verbose:
+        print "Failed to create test domain because:"
+        print e.extra
+    FAIL(str(e))
+
+# check default param values
+(status, params) = get_sched_credit_params(domain)
+if status != 0:
+    FAIL("Getting sched-credit parameters return non-zero rv (%d)", status)
+
+(weight, cap) = params
+if weight != 256:
+    FAIL("default weight is 256 (got %d)", weight)
+if cap != 0:
+    FAIL("default cap is 0 (got %d)", cap)
+
+# set new parameters
+status = set_sched_credit_weight(domain, 512)
+if status != 0:
+    FAIL("Setting sched-credit weight return non-zero rv (%d)", status)
+
+status = set_sched_credit_cap(domain, 100)
+if status != 0:
+    FAIL("Setting sched-credit cap return non-zero rv (%d)", status)
+
+# check new param values
+(status, params) = get_sched_credit_params(domain)
+if status != 0:
+    FAIL("Getting sched-credit parameters return non-zero rv (%d)", status)
+
+(weight, cap) = params
+if weight != 512:
+    FAIL("expected weight of 512 (got %d)", weight)
+if cap != 100:
+    FAIL("expected cap of 100 (got %d)", cap)
+
+# Stop the domain (nice shutdown)
+domain.stop()
diff --git a/tools/xm-test/tests/sched-credit/Makefile.am b/tools/xm-test/tests/sched-credit/Makefile.am
new file mode 100644 (file)
index 0000000..d37cc64
--- /dev/null
@@ -0,0 +1,20 @@
+SUBDIRS =
+
+TESTS = 01_sched_credit_weight_cap_pos.test
+
+XFAIL_TESTS = 
+
+EXTRA_DIST = $(TESTS) $(XFAIL_TESTS)
+
+TESTS_ENVIRONMENT=@TENV@
+
+%.test: %.py
+       cp $< $@
+       chmod +x $@
+
+clean-local: am_config_clean-local
+
+am_config_clean-local:
+       rm -f *test
+       rm -f *log
+       rm -f *~