[libvirt] [libvirt-test-API][PATCH] Add connection_cpu_models test case
hongming
honzhang at redhat.com
Thu Jan 22 08:09:20 UTC 2015
On 01/09/2015 03:58 PM, jiahu wrote:
> The connection_cpu_models.py uses getCPUModelNames() to validate
> new API virConnectGetCPUModelNames of libvirt.
> ---
> cases/test_connection.conf | 12 +++++
> repos/virconn/connection_cpu_models.py | 82 ++++++++++++++++++++++++++++++++++
> 2 files changed, 94 insertions(+)
> create mode 100644 repos/virconn/connection_cpu_models.py
>
> diff --git a/cases/test_connection.conf b/cases/test_connection.conf
> index ccde119..e916886 100644
> --- a/cases/test_connection.conf
> +++ b/cases/test_connection.conf
> @@ -29,3 +29,15 @@ virconn:connection_nodeinfo
> virconn:connection_version
> conn
> lxc:///
> +
> +virconn:connection_cpu_models
> + arch
> + x86_64
> +
> +virconn:connection_cpu_models
> + arch
> + i686
> +
> +virconn:connection_cpu_models
> + arch
> + ppc64
> diff --git a/repos/virconn/connection_cpu_models.py b/repos/virconn/connection_cpu_models.py
> new file mode 100644
> index 0000000..4588188
> --- /dev/null
> +++ b/repos/virconn/connection_cpu_models.py
> @@ -0,0 +1,82 @@
> +#!/usr/bin/env python
> +# test getCPUModelNames() API for libvirt
> +
> +import os
> +import libvirt
> +
> +from xml.dom import minidom
> +from libvirt import libvirtError
> +from src import sharedmod
> +from utils import utils
> +
> +required_params = ('arch',)
> +optional_params = {}
> +
> +CPU_MAP_FILE = "/usr/share/libvirt/cpu_map.xml"
> +
> +def get_cpu_archs_from_xml(logger):
> + """
> + return supported cpu archs from cpu_map.xml
> + """
> + cpu_archs_from_xml = []
> + xml = minidom.parse(CPU_MAP_FILE)
> + for arch in xml.getElementsByTagName('arch'):
> + cpu_archs_from_xml.append(str(arch.getAttribute('name')))
> + return cpu_archs_from_xml
> +
> +def get_cpu_models_from_xml(arch, logger):
> + """
> + return supported cpu models from cpu_map.xml
> + """
> + cpu_models_from_xml = []
> + if arch == 'x86_64' or arch == 'i686':
> + real_arch = 'x86'
> + else:
> + real_arch = arch
> +
> + xml = minidom.parse(CPU_MAP_FILE)
> + for model in xml.getElementsByTagName('model'):
> + if model.parentNode.getAttribute('name') == real_arch:
> + cpu_models_from_xml.append(str(model.getAttribute('name')))
> + return cpu_models_from_xml
> +
> +def connection_cpu_models(params):
> + """
> + test API for getCPUModelNames in class virConnect
> + """
> + logger = params['logger']
> + arch_value = params['arch']
> + try:
> + logger.info("get cpu archs from cpu_map.xml")
> + if not os.path.exists(CPU_MAP_FILE):
> + logger.error("%s is not exist" % CPU_MAP_FILE)
> + return 1
> + cpu_archs_from_xml = get_cpu_archs_from_xml(logger)
> + logger.info("The supported cpu archs in xml are %s" \
> + % cpu_archs_from_xml)
> + cpu_models_from_xml = get_cpu_models_from_xml(arch_value, logger)
> + logger.info("The supported cpu models in xml are %s" \
> + % cpu_models_from_xml)
> +
> + conn = sharedmod.libvirtobj['conn']
> +
> + cpu_models_from_libvirt = conn.getCPUModelNames(arch_value ,0)
> + logger.info("The specified architecture is %s" \
> + % arch_value)
> + logger.info("The supported cpu models is %s" \
> + % cpu_models_from_libvirt)
> +
> + #compare with cpu_map.xml
> + for cpu_model in cpu_models_from_libvirt:
> + if cpu_model in cpu_models_from_xml:
> + logger.debug("'%s' model: PASS" % cpu_model)
> + else:
> + logger.debug("'%s' model: FAIL, not in libvirt"\
> + % cpu_model)
> + return 1
> + logger.debug("check all cpu models: PASS")
> + except libvirtError, e:
> + logger.error("API error message: %s" % e.message)
> + return 1
> +
> + return 0
ACK and Pushed
Please note to remove the trailing spaces next time. Thanks.
Appending the following two lines into /etc/vimrc could highlights them,
then remove them.
"highlight RedundantSpaces ctermbg=red guibg=red
match RedundantSpaces /\s\+$\| \+\ze\t/
"
More information about the libvir-list
mailing list