def get_flags_full_name(cpu_flag): """ Get all name of Flag. :param cpu_flag: Flag :return: all name of Flag. """ cpu_flag = utils_misc.Flag(cpu_flag) for f in get_all_qemu_flags(): if f == cpu_flag: return utils_misc.Flag(f) return []
def test(self): # This is virtual cpu flags which are supported by # qemu but no with host cpu. cpu_model, extra_flags = parse_cpu_model() flags = HgFlags(cpu_model, extra_flags) logging.debug("Unsupported flags %s.", str(flags.host_all_unsupported_flags)) cpuf_model = cpu_model + ",check" # Add unsupported flags. for fadd in flags.host_all_unsupported_flags: cpuf_model += ",+" + str(fadd) vnc_port = utils_misc.find_free_port(5900, 6100) - 5900 cmd = "%s -cpu %s -vnc :%d -enable-kvm" % (qemu_binary, cpuf_model, vnc_port) out = None try: try: out = utils.run(cmd, timeout=5, ignore_status=True).stderr raise error.TestFail("Guest not boot with unsupported " "flags.") except error.CmdError, e: out = e.result_obj.stderr finally: uns_re = re.compile(r"^warning:.*flag '(.+)'", re.MULTILINE) nf_re = re.compile( r"^CPU feature (.+) not found", re.MULTILINE) warn_flags = set([utils_misc.Flag(x) for x in uns_re.findall(out)]) not_found = set([utils_misc.Flag(x) for x in nf_re.findall(out)]) fwarn_flags = flags.host_all_unsupported_flags - warn_flags fwarn_flags -= not_found if fwarn_flags: raise error.TestFail("Qemu did not warn the use of " "flags %s" % str(fwarn_flags))