>
> >>+
> >>+ output = session.get_command_output("cat /proc/meminfo")
>
> /bin/grep MemTotal /proc/meminfo
> Y.
>
> >For catching memory size of Linux guests, I prefer command 'dmidecode' which can
> >catch memory size exactly in MB.
> >
> >>+ for line in output.split('\n'):
> >>+ if 'MemTotal' in line:
> >>+ real_mem_kb = long(line.split()[1])
> >>+ real_mem_mb = real_mem_kb / 1024
> >>+
> >>+ elif params.get("guest_os_type") == "Windows":
> >>+ # Windows takes long time to display output for systeminfo
> >>+ output = session.get_command_output("systeminfo", timeout =
> >>150, internal_timeout = 50)
> >>+ for line in output.split('\n'):
> >>+ if 'Processor' in line:
> >>+ real_vcpus = int(line.split()[1])
> >>+
> >>+ for line in output.split('\n'):
> >>+ if 'Total Physical Memory' in line:
> >>+ real_mem_mb = long("".join("%s" % k for k in
> >>line.split()[3].split(',')))
> >So many slice and split operations can easy results in problems.
> >To catch memory of Windows guests, I recommend we use 'wmic memphysical' which
> >can dump memory size in KB exactly.
> >
> >
> >Meanwhile, we also need to verify guest's NICs' count and their(its) model,
> >hard disk(s)'s count& model etc. Therefore I think we need a case to verify
> >them together.
> >
> >I had wrote such test couples of days before. I also ran it several times.
> >Please comment on it when I post it here later. Thanks,
> >
> >>+
> >>+ else:
> >>+ raise error.TestFail("Till date this test is supported only
> >>for Linux and Windows")
> >>+
> >>+ logging.info("The guest has cpus: %s" % real_vcpus)
> >>+ logging.info("The guest has mem: %s MB" % real_mem_mb)
> >>+ if exp_vcpus != real_vcpus or real_mem_mb< exp_mem_mb:
> >>+ raise error.TestFail("Actual resources(cpu ='%s' memory ='%s' MB) "
> >>+ "differ from Allocated resources(cpu = '%s' memory ='%s' MB"
> >>+ % (real_vcpus, real_mem_mb, exp_vcpus, exp_mem_mb))
> >>+
> >>+ session.close()
> >>
> >>
> >>
> >>
> >>Sending the patch as an attachment too. Please review and provide your comments.
> >>--
> >>Sudhir Kumar
> >>This patch adds a test for verifying whether the number of cpus and amount
> >>of memory as seen inside a guest is same as allocated to it on the qemu
> >>command line.
> >>
> >>Signed-off-by: Sudhir Kumar<skumar@linux.vnet.ibm.com>
> >>
> >>Index: kvm/tests/verify_resources.py
> >>===================================================================
> >>--- /dev/null
> >>+++ kvm/tests/verify_resources.py
> >>@@ -0,0 +1,74 @@
> >>+import logging, time
> >>+from autotest_lib.client.common_lib import error
> >>+import kvm_subprocess, kvm_test_utils, kvm_utils
> >>+
> >>+"""
> >>+Test to verify if the guest has the equal amount of resources
> >>+as allocated through the qemu command line
> >>+
> >>+@Copyright: 2009 IBM Corporation
> >>+@author: Sudhir Kumar<skumar@linux.vnet.ibm.com>
> >>+
> >>+"""
> >>+
> >>+def run_verify_resources(test, params, env):
> >>+ """
> >>+ KVM test for verifying VM resources(#vcpu, memory):
> >>+ 1) Get resources from the VM parameters
> >>+ 2) Log into the guest
> >>+ 3) Get actual resources, compare and report the pass/failure
> >>+
> >>+ @param test: kvm test object
> >>+ @param params: Dictionary with the test parameters
> >>+ @param env: Dictionary with test environment.
> >>+ """
> >>+ vm = kvm_test_utils.get_living_vm(env, params.get("main_vm"))
> >>+
> >>+ # Get info about vcpu and memory from dictionary
> >>+ exp_vcpus = int(params.get("smp"))
> >>+ exp_mem_mb = long(params.get("mem"))
> >>+ real_vcpus = 0
> >>+ real_mem_kb = 0
> >>+ real_mem_mb = 0
> >>+ # Some memory is used by bios and all, so lower the expected value say by 5%
> >>+ exp_mem_mb = long(exp_mem_mb * 0.95)
> >>+ logging.info("The guest should have vcpus: %s" % exp_vcpus)
> >>+ logging.info("The guest should have min mem: %s MB" % exp_mem_mb)
> >>+
> >>+ session = kvm_test_utils.wait_for_login(vm)
> >>+
> >>+ # Get info about vcpu and memory from within guest
> >>+ if params.get("guest_os_type") == "Linux":
> >>+ output = session.get_command_output("cat /proc/cpuinfo|grep processor")
> >>+ for line in output.split('\n'):
> >>+ if 'processor' in line:
> >>+ real_vcpus = real_vcpus + 1
> >>+
> >>+ output = session.get_command_output("cat /proc/meminfo")
> >>+ for line in output.split('\n'):
> >>+ if 'MemTotal' in line:
> >>+ real_mem_kb = long(line.split()[1])
> >>+ real_mem_mb = real_mem_kb / 1024
> >>+
> >>+ elif params.get("guest_os_type") == "Windows":
> >>+ # Windows takes long time to display output for systeminfo
> >>+ output = session.get_command_output("systeminfo", timeout = 150, internal_timeout = 50)
> >>+ for line in output.split('\n'):
> >>+ if 'Processor' in line:
> >>+ real_vcpus = int(line.split()[1])
> >>+
> >>+ for line in output.split('\n'):
> >>+ if 'Total Physical Memory' in line:
> >>+ real_mem_mb = long("".join("%s" % k for k in line.split()[3].split(',')))
> >>+
> >>+ else:
> >>+ raise error.TestFail("Till date this test is supported only for Linux and Windows")
> >>+
> >>+ logging.info("The guest has cpus: %s" % real_vcpus)
> >>+ logging.info("The guest has mem: %s MB" % real_mem_mb)
> >>+ if exp_vcpus != real_vcpus or real_mem_mb< exp_mem_mb:
> >>+ raise error.TestFail("Actual resources(cpu ='%s' memory ='%s' MB) "
> >>+ "differ from Allocated resources(cpu = '%s' memory ='%s' MB"
> >>+ % (real_vcpus, real_mem_mb, exp_vcpus, exp_mem_mb))
> >>+
> >>+ session.close()
> >--
> >To unsubscribe from this list: send the line "unsubscribe kvm" in
> >the body of a message to
majordomo@vger.kernel.org
> >More majordomo info at
http://vger.kernel.org/majordomo-info.html
>
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to
majordomo@vger.kernel.org
> More majordomo info at
http://vger.kernel.org/majordomo-info.html