def METHOD_NAME(test, params, env):
    """
    Test cpu models with full flags that libvirt generates
    1) start a default configuration xml by virsh
    2) get the cpu elements from libvirt xml by 'virsh dumpxml $domain'
    3) parse the cpu_flags and store into libvirt_cpu_flags
    4) get the cpu flags from qemu process and stroe to qemu_cpu_flags
    5) Compare the cpu flags, model of xml and qemu process, should be same
    6) Boot guest with combined flags, model, guest works well without crash
    :param test: QEMU test object
    :param params: Dictionary with the test parameters
    :param env: Dictionary with test environment.
    """
    if not compare_cpu_info(test, params):
        test.log.error("\ncpu libvirt flags are %s\n", (str(libvirt_cpu_info)))
        test.log.error("\ncpu qemu cli flags are %s\n", (str(qemu_cpu_info)))
        test.fail("CPU info is different between dumpxml and qemu cli")
    cpu_flags = params.get("cpu_model_flags")
    params["cpu_model_flags"] = cpu.recombine_qemu_cpu_flags(
        qemu_proc_cpu_flags, cpu_flags)
    params["start_vm"] = "yes"
    vm_name = params['main_vm']
    env_process.preprocess_vm(test, params, env, vm_name)
    vm = env.get_vm(vm_name)
    error_context.context("Try to log into guest", test.log.info)
    vm.wait_for_login()
    vm.verify_kernel_crash()