# This is a cleaned up version of the daily KVM testing jobs.
# You should go over this config file and make changes according to your test lab.

# There are 3 sets defined here:
# 1) Sanity - basic OS install for Fedora, boot, reboot, simple migration
# 2) Unstable - Everything else. You *don't* run this routinely, takes days
# 3) Performance - Disk benchmarks. Use it on a dedicated machine with fast storage

# This file won't be commented out to excruciating detail, just a few comments
# indicating proeminent places that require your action.

variants:
    - build:
        vm_type = qemu
        type = build
        save_results = yes
        # It is preferable that you keep one mirror local to your lab
        git_repo_kvm_unit_tests_uri = git://git.kernel.org/pub/scm/virt/kvm/kvm-unit-tests.git
        installers = git_repo_kvm_unit_tests
        preserve_srcdir = no
        install_debug_info = yes

    - unittests: build
        type = unittest
        vms = unittest_vm
        main_vm = unittest_vm
        vm_type = qemu
        unittest_test_blacklist = access apic emulator
        start_vm = no
        unittest_timeout = 600
        testdev = yes
        extra_params += " -S"
        kill_vm = yes
        kill_vm_gracefully = no
        monitors = hmp1
        main_monitor = hmp1
        monitor_type = human
        take_regular_screendumps = no
        mem = 512
        display = vnc
        run_tcpdump = no
        run_kvm_stat = no
        isa_serials = "serial1"

    - @tests: build
        include tests-shared.cfg
        vm_type = qemu
        malloc_perturb = yes
        backup_image = no
        backup_image_on_check_error = yes
        restore_image_on_check_error = yes
        backup_dir = /var/lib/virt_test/images_archive
        mem = 2048
        login_timeout = 720
        file_transfer:
            filesize = 1000
            transfer_timeout = 250
        hugepages:
            no ksm_overcommit, migrate, stress_boot
        autotest:
            test_timeout = 7200
        autotest.iozone:
            test_control_file = iozone.control
        iozone_windows:
            iozone_cmd = "D:\IOzone\iozone.exe -aI"
        ethtool:
            no rtl8139
        nic_bonding:
            start_vm = yes
        balloon_check:
            only Linux
        physical_resources_check:
            vio_driver_chk_cmd = ""
        Linux:
            no unattended_install..floppy_ks, unattended_install..http_ks, unattended_install..in_cdrom_ks, unattended_install..no_ks
            unattended_install:
                backup_image = yes
                backup_image_on_check_error = yes
                restore_image_on_check_error = no
            unattended_install.cdrom:
                timeout = 6000
            ntp:
                # Replace [your-ntp-server] with the hostname of your ntp server
                time_command = "ntpdate -d -q [your-ntp-server]"
        Windows:
            no qemu_img_commit
            unattended_install:
                floppies = fl
                backup_image = yes
                backup_image_on_check_error = yes
                restore_image_on_check_error = no
            unattended_install.cdrom, whql.support_vm_install:
                timeout = 14400
            ntp:
                # Replace [your-ntp-server] with the hostname of your ntp server
                time_command = "w32tm /stripchart /samples:1 /computer:[your-ntp-server]"

        virtio_floppy ?<= /var/lib/virt_test/

variants:
    - @sanity:
        # Basic sanity, or smoke testing. Runs in about a couple of hours
        # (quad core xeon, 8GB RAM, 300 GB HD)
        tests:
            only qcow2
            only virtio_blk
            only virtio_net
            only no_pci_assignable
            only no_9p_export
            only Fedora.18.64
            no migrate..mig_cancel
            only unattended_install.cdrom, boot, reboot, physical_resources_check, migrate..default, shutdown

    - @stable:
        # More thorough test. Runs in about 8 hours
        # (quad core xeon, 8GB RAM, 300 GB HD)
        no unittests
        tests:
            only qcow2
            only virtio_blk
            only virtio_net
            only no_pci_assignable
            only no_9p_export
            only smallpages
            only Fedora.18.64
            only unattended_install.cdrom, migrate, autotest.monotonic_time, autotest.hwclock, autotest.rtc, autotest.cpu_hotplug, autotest.npb, timedrift.ntp, clock_getres, file_transfer, getfd, hdparm, ioquit, jumbo, mac_change, netstress_kill_guest, balloon_check, nic_hotplug, nic_promisc, ping, qemu_img_commit, stop_continue, system_powerdown, system_reset, vlan, smbios_table, floppy_test, hdparm, boot_with_usb, reboot_with_usb, shutdown, dd_test

    - @unstable:
        # On unstable, we just exclude tests that we know are very long,
        # not useful for our purposes, leaving all others enabled. May take
        # days to finish. Tweak according to your needs.
        no unittests, qemu_img
        tests:
            only smp2..qcow2..no_pci_assignable..no_9p_export..smallpages..virtio_blk..virtio_net
            only Fedora.18.64
            unattended_install:
                only unattended_install.cdrom
            no install, setup, image_copy, yum_update, unit_test_kvmctl, migrate_multi_host, whql, autotest..ctcs, autotest..scrashme
            no migrate, autotest.monotonic_time, autotest.tsc, autotest.hwclock, autotest.rtc, timedrift, guest_s4, ksm_overcommit, clock_getres, linux_s3, stress_boot, pxe, module_probe

    - @performance:
        tests:
            image_raw_device = yes
            # You need a scratch device, the vm will install to this
            image_name = [replace_with_raw_device eg. /dev/sdb1]
            image_size = 28G
            only qcow2
            only virtio_blk
            only virtio_net
            only smallpages
            only no_pci_assignable
            only no_9p_export
            only Fedora.18.64
            only unattended_install.cdrom, autotest.iozone, iozone_windows


variants:
    - @qemu-kvm:
        tests:
            only smp2
            only rtl8139, virtio_net

        variants:
            - @fedora:
                no hugepages
                no qmp_basic, migrate..with_blkdebug
                monitors += " qmp1"
                monitor_type_qmp1 = qmp
                modprobe_module =
                qemu_binary = /usr/bin/qemu-kvm
                qemu_img_binary = /usr/bin/qemu-img
                qemu_io_binary = /usr/bin/qemu-io
                host_kernel_install_type = koji
                host_kernel_koji_cmd = /usr/bin/koji
                koji_qemu_kvm_cmd = /usr/bin/koji
                build:
                    koji_qemu_kvm_pkgs = :qemu:qemu-system-x86,qemu-img,qemu-common seabios vgabios :gpxe:gpxe-roms-qemu :spice-server:spice-server :sgabios:sgabios,sgabios-bin
                    # It is preferable that you keep one mirror local to your lab
                    git_repo_kvm_unit_tests_uri = git://git.kernel.org/pub/scm/virt/kvm/kvm-unit-tests.git
                    installers = koji_qemu_kvm git_repo_kvm_unit_tests
                variants:
                    - f17:
                        koji_qemu_kvm_tag = f17-updates-testing
                        host_install_profile = f17-autotest-kvm
                        host_kernel_koji_tag = f17-updates-testing
                    - f18:
                        koji_qemu_kvm_pkgs = :qemu:qemu-system-x86,qemu-img,qemu-common seabios vgabios libseccomp :gpxe:gpxe-roms-qemu :spice-server:spice-server :sgabios:sgabios,sgabios-bin
                        koji_qemu_kvm_tag = f18-updates-testing
                        host_install_profile = f18-autotest-kvm
                        host_kernel_koji_tag = f18-updates-testing

    - @qemu:
        no unittests
        tests:
            no hugepages
            no qmp_basic_rhel6, migrate..stress, trans_hugepage, migrate..with_blkdebug
            only smp2
            timedrift:
                # There's no -kvm-pit-reinjection option for qemu.git, so keep it only -enable-kvm
                extra_params = ""

        variants:
            - qemu-git:
                monitors += " qmp1"
                monitor_type_qmp1 = qmp
                build:
                    # It is preferable that you keep one mirror local to your lab
                    git_repo_qemu_kvm_uri = git://git.qemu-project.org/qemu.git
                    git_repo_qemu_kvm_configure_options = --target-list=x86_64-softmmu
                    installers = git_repo_qemu_kvm


qemu-git:
    host_install_profile = f18-autotest-kvm
    host_kernel_install_type = git
    # It is preferable that you keep one mirror local to your lab
    host_kernel_git_repo = git://git.kernel.org/pub/scm/virt/kvm/kvm.git
    host_kernel_git_branch = 'master'
    host_kernel_git_commit =
    host_kernel_patch_list =
    host_kernel_firmware_rpm =
