KVM Test: Add qemu_has_option() helper function in kvm_utils

Same function with has_option() in vm.make_qemu_command.

Signed-off-by: Feng Yang <fyang@redhat.com>
KVM-test: Add '-soundhw' into guest booting command line

We can specify multiple sound cards seperated by comma
in config file, like:

soundcards = sb16,adlib

or assign 'all' by:
soundcards = all

By default it's ac97.

Signed-off-by: Yolkfull Chow <yzhou@redhat.com>
KVM-test: Add more cpu parameters to qemu-kvm cmd line

Add support for things like,
"-smp 4,cores=2,threads=1,socket=2"

Changes from v2:
 - Cleanup add_smp function.

Changes from v1:
 - Set the default value of cores and threads to 1,
   and the value of sockets equal to smp.

   Check the value of the parameter, if it's none,
   the vaule will be calculated.
   eg. cores=smp/cores/threads

   1). if smp >8 and threads=1, set threads=2
   2). if one of the vaule is not set in config file,
       it will be calculated with other params.

Signed-off-by: Chen Cao <kcao@redhat.com>
Signed-off-by: Suqin Huang <shuang@redhat.com>
Signed-off-by: Qingtang Zhou <qzhou@redhat.com>
KVM Test: Add support for the new rtc cmdline

Newer qemu support a -rtc option, this patch enable
it when qemu binary supports it.

The rtc_base option is use to specify for base of
rtc (utc|localtime|date)
The rtc_clock is specified the clock (host|vm)

Changes from v2:
 - Check if qemu-kvm binary supports '-rtc-td-hack'
   option.

Changes from v1:
 - Remove -rtc-td-hack and add option driftfix
   According to bug 611229, -rtc-td-hack can not be
   used anymore, it is replaced by
   "-rtc base=xxx,clock=yy,driftfix=xx"
 - 'driftfix=slew' is used to test timedrift,
    in other cases set driftfix=none.

Signed-off-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Suqin Huang <shuang@redhat.com>
Signed-off-by: Qingtang Zhou <qzhou@redhat.com>
KVM-test: update command line for monitor

Changes from V4:
 - Code cleanup.
 - Add 'monitor_name' argument.
 - Use '_add_option' function to paste option.
 - Create human monitor if qmp is unsupported
   in VM.create method.

Changes from V3:
 - Fix of random monitor id
    Random serial/monitor id causes qemu cmdline
    comparison always failed, we could not combin
    many tests together.
    Add unique monitor_name to monitor ID

Changes from V2:
 - Create human monitor when host doesn't
   support qmp monitor

Changes from V1:
 - Check qmp option support when dealing with
   qmp monitor. Some qemu-kvm do not support
   qmp option. So we should check qmp option
   support first.

Signed-off-by: Chen Cao <kcao@redhat.com>
Signed-off-by: Feng Yang <fyang@redhat.com>
Signed-off-by: Amos Kong <akong@redhat.com>
Signed-off-by: Qingtang Zhou <qzhou@redhat.com>
KVM-test: update command line for serial

tested with unattened_install.*

Changes from V2:
 - Code cleanup.
 - Use '_add_option' function to paste option.

Changes from V1:
 - Fix of random serial id
    Random serial/monitor id causes qemu cmdline
    comparison always failed, we could not combin
    many tests together.
    Guest only has one serial, so replace randome
    string in serial_id with 'self.instance'.

Signed-off-by: Chen Cao <kcao@redhat.com>
Signed-off-by: Amos Kong <akong@redhat.com>
Signed-off-by: Qingtang Zhou <qzhou@redhat.com>
KVM-test: make pci_addr in make_qemu_command configurable

Changes from V1:
 - Introduce some VMPCIError classes for PCI device error.

Signed-off-by: Chen Cao <kcao@redhat.com>
Signed-off-by: Qingtang Zhou <qzhou@redhat.com>
KVM-test: Add -enable-kvm to command line

'-enable-kvm' only exists on qemu-kvm-rhel6

Chnage from V1:
 - Use has_option() to check enable-kvm support.

Signed-off-by: Amos Kong <akong@redhat.com>
Signed-off-by: Feng Yang <fyang@redhat.com>
virt.kvm_vm: Add the "menu" options to -boot

This patch adds the "-boot" option instead of using
'extra_params' parameter. There are there new variants
added:
 - boot_order
 - boot_once
 - boot_menu

It's different in different kvm version to use -boot,
so we need to check the usage of the "-boot".

Signed-off-by: slei <slei@redhat.com>
Signed-off-by: Qingtang Zhou <qzhou@redhat.com>
KVM Test: Add support for VNC extra params

This patch also adds get_vnc_port function in VM class

Signed-off-by: Feng Yang <fyang@redhat.com>
Acked-by: Qingtang Zhou <qzhou@redhat.com>
Acked-by: Golita Yue <gyue@redhat.com>
KVM-test: Add family to cpu for whql

WHQL test need add family in cpu options.

Signed-off-by: Yiqiao Pu <ypu@redhat.com>
Acked-by: Feng Yang <fyang@redhat.com>
Acked-by: Xiaoqing Wei <xwei@redhat.com>
Acked-by: Qingtang Zhou <qzhou@redhat.com>
KVM Test: Update vm.reboot function

Do not need session when reboot by system_reset.
Test this patch with reboot test case.

Changes from v1:
 - Make this patch works for merged tree.

Signed-off-by: Feng Yang <fyang@redhat.com>
KVM-test: Kill VM more gracefully through monitor

Check the guest status util it changed to paused before timeout,
then send quit to monitor. By this way may ignore some qcow2 image
problems in tests. The parameter kill_vm_in_paused can be set to
"no" if some damage tests. Also make the destroy timeout
configurable.

Changes from V1:
 - Update log message.
 - Put 'kill_timeout' && 'kill_vm_only_when_paused' in config file

Signed-off-by: Yiqiao Pu <ypu@redhat.com>
Signed-off-by: Qingtang Zhou <qzhou@redhat.com>
virt: Move PciAssignable out of virt_utils module

This PciAssignable class depends kvm_control module which will raise
an exception in guest. Thus move this class to virt_test_setup module
so that we can use virt_utils in client tests.

Signed-off-by: Qingtang Zhou <qzhou@redhat.com>
Acked-by: Yiqiao Pu <ypu@redhat.com>
virt: Shorten name of the default HMP monitor

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>