1# Copy this file to subtests.cfg and edit it.
2#
3# Subtests
4variants:
5    - install:
6        type = steps
7        fail_if_stuck_for = 300
8        stuck_detection_history = 2
9        keep_screendump_history = yes
10        force_create_image = yes
11        kill_vm = yes
12        kill_vm_timeout = 60
13        kill_vm_timeout_on_error = 0
14
15    - setup: install
16        type = steps
17        fail_if_stuck_for = 300
18        stuck_detection_history = 2
19        kill_vm_on_error = yes
20        keep_screendump_history = yes
21
22    - image_copy:
23        type = image_copy
24        vms = ''
25        parallel = no
26        profilers =
27
28    - unattended_install:
29        type = unattended_install
30        start_vm = no
31        kill_vm = yes
32        kill_vm_gracefully = yes
33        kill_vm_on_error = yes
34        shutdown_cleanly = yes
35        shutdown_cleanly_timeout = 120
36        force_create_image = yes
37        extra_params += " -boot d"
38        guest_port_unattended_install = 12323
39        kernel = vmlinuz
40        initrd = initrd.img
41        # Set migrate_background to yes to run migration in parallel
42        migrate_background = no
43
44        variants:
45            # Install guest from cdrom
46            - cdrom:
47                medium = cdrom
48                redirs += " unattended_install"
49            # Install guest from http/ftp url
50            - url:
51                only Linux
52                medium = url
53                url = REPLACE_THIS_WITH_TREE_URL
54            # Install guest from nfs nfs_server:nfs_dir
55            - nfs:
56                only Linux
57                medium = nfs
58                nfs_server = REPLACE_THIS_WITH_NFS_SERVER
59                nfs_dir = REPLACE_THIS_WITH_NFS_DIRECTORY
60            # Install guest with a remote kickstart
61            - remote_ks:
62                only Linux
63                medium = url
64                extra_params = " --append ks=REPLACE_THIS_WITH_URL_OF_KS"
65                url = REPLACE_THIS_WITH_TREE_URL
66
67    - qemu_img:
68        type = qemu_img
69        vms = ''
70        profilers = ''
71        take_regular_screendumps = no
72        variants:
73            - check:
74                subcommand = check
75                image_name_dd = dd_created_image
76                force_create_image_dd = no
77                remove_image_dd = yes
78                create_image_cmd = "dd if=/dev/zero of=%s bs=1G count=1"
79                # Test the convertion from 'dd_image_name' to specified format
80                supported_image_formats = qcow2 raw
81            - create:
82                subcommand = create
83                images += " large"
84                force_create_image_large = yes
85                image_size_large = 1G
86                image_name_large = create_large_image
87                remove_image_large = yes
88            - convert:
89                subcommand = convert
90                variants:
91                    - to_qcow2:
92                        dest_image_format = qcow2
93                        compressed = no
94                        encrypted = no
95                    - to_raw:
96                        dest_image_format = raw
97            - snapshot:
98                subcommand = snapshot
99            - info:
100                subcommand = info
101            - rebase:
102                subcommand = rebase
103                rebase_mode = unsafe
104                image_name_snapshot1 = sn1
105                image_name_snapshot2 = sn2
106
107    - pxe:
108        type = pxe
109        images = pxe
110        image_name_pxe = pxe-test
111        image_size_pxe = 1G
112        force_create_image_pxe = yes
113        remove_image_pxe = yes
114        extra_params += ' -boot n'
115        kill_vm_on_error = yes
116        network = bridge
117        restart_vm = yes
118        pxe_timeout = 60
119
120    - module_probe:
121        type = module_probe
122        # You can specify your own module list, though it is not needed usually.
123        # mod_list = kvm
124        load_count = 100
125        vms = ''
126        profilers = ''
127        take_regular_screendumps = no
128
129# Tests that do need installed guests to run
130    - boot: install setup image_copy unattended_install.cdrom
131        type = boot
132        restart_vm = yes
133        kill_vm_on_error = yes
134        login_timeout = 240
135
136    - reboot: install setup image_copy unattended_install.cdrom
137        type = boot
138        reboot_method = shell
139        kill_vm_on_error = yes
140        login_timeout = 240
141
142    - migrate: install setup image_copy unattended_install.cdrom
143        type = migration
144        migration_test_command = help
145        migration_bg_command = "cd /tmp; nohup tcpdump -q -t ip host localhost"
146        migration_bg_check_command = pgrep tcpdump
147        migration_bg_kill_command = pkill tcpdump
148        kill_vm_on_error = yes
149        iterations = 2
150        used_mem = 1024
151        mig_timeout = 3600
152        # you can uncomment the following line to enable the state
153        # check
154        # vmstate_check = yes
155        variants:
156            - tcp:
157                migration_protocol = "tcp"
158            - unix:
159                migration_protocol = "unix"
160            - exec:
161                migration_protocol = "exec"
162            - mig_cancel:
163                migration_protocol = "tcp"
164                mig_cancel = yes
165        variants:
166            - @default:
167            - with_set_speed:
168                mig_speed = 1G
169                pre_migrate = "mig_set_speed"
170            - with_reboot:
171                iterations = 1
172                type = migration_with_reboot
173            - with_file_transfer:
174                iterations = 1
175                type = migration_with_file_transfer
176            - with_autotest:
177                only Linux
178                type = autotest
179                migrate_background = yes
180                test_timeout = 1800
181                variants:
182                    - dbench:
183                        test_control_file = dbench.control
184                    - stress:
185                        test_control_file = stress.control
186                    - monotonic_time:
187                        test_control_file = monotonic_time.control
188
189    - migrate_multi_host: install setup image_copy unattended_install.cdrom
190        type = migration_multi_host
191        migration_test_command = help
192        migration_bg_command = "cd /tmp; nohup tcpdump -q -t ip host localhost"
193        migration_bg_check_command = pgrep tcpdump
194        migration_bg_kill_command = pkill tcpdump
195        kill_vm_on_error = yes
196        iterations = 2
197        used_mem = 1024
198        mig_timeout = 3600
199        comm_port = 13234
200        regain_ip_cmd = dhclient
201
202    - boot_savevm: install setup image_copy unattended_install.cdrom
203        type = boot_savevm
204        savevm_delay = 0.3
205        savevm_login_delay = 120
206        savevm_timeout = 2000
207        kill_vm_on_error = yes
208        kill_vm_gracefully = yes
209        kill_vm = yes
210
211    - autotest: install setup image_copy unattended_install.cdrom
212        only Linux
213        type = autotest
214        test_timeout = 1800
215        variants:
216            - sleeptest:
217                test_timeout = 120
218                test_control_file = sleeptest.control
219            - dbench:
220                test_control_file = dbench.control
221            - bonnie:
222                test_control_file = bonnie.control
223            - ebizzy:
224                test_control_file = ebizzy.control
225            - ffsb:
226                test_control_file = ffsb.control
227            - stress:
228                test_control_file = stress.control
229            - disktest:
230                test_control_file = disktest.control
231            - ctcs:
232                # If you think this is too lengthy, please change the cerberus
233                # control file and set this timeout appropriately.
234                test_timeout = 3900
235                test_control_file = ctcs.control
236            - npb:
237                test_control_file = npb.control
238            - hackbench:
239                test_control_file = hackbench.control
240            - cpu_hotplug:
241                test_control_file = cpu_hotplug.control
242            - monotonic_time:
243                test_control_file = monotonic_time.control
244            - tsc:
245                test_control_file = tsc.control
246            - scrashme:
247                test_control_file = scrashme.control
248            - hwclock:
249                test_control_file = hwclock.control
250            - rtc:
251                test_control_file = rtc.control
252            - iozone:
253                test_control_file = iozone.control
254            - flail:
255                test_control_file = flail.control
256            - systemtap:
257                test_control_file = systemtap.control
258
259    - qemu_img_commit:  install setup image_copy unattended_install.cdrom
260        type = qemu_img
261        subcommand = commit
262
263    - stop_continue: install setup image_copy unattended_install.cdrom
264        type = stop_continue
265        kill_vm_on_error = yes
266
267    - linux_s3: install setup image_copy unattended_install.cdrom
268        only Linux
269        type = linux_s3
270
271    - timedrift: install setup image_copy unattended_install.cdrom
272        variants:
273            - ntp:
274                variants:
275                    - with_load:
276                        type = timedrift
277                        # Pin the VM and host load to CPU #0
278                        cpu_mask = 0x1
279                        # Set the load and rest durations
280                        load_duration = 20
281                        rest_duration = 20
282                        # Fail if the drift after load is higher than 50%
283                        drift_threshold = 50
284                        # Fail if the drift after the rest period is higher than 10%
285                        drift_threshold_after_rest = 10
286                        # For now, make sure this test is executed alone
287                        used_cpus = 100
288                    - with_migration:
289                        type = timedrift_with_migration
290                        migration_iterations = 3
291                        drift_threshold = 10
292                        drift_threshold_single = 3
293                    - with_reboot:
294                        type = timedrift_with_reboot
295                        reboot_iterations = 1
296                        drift_threshold = 10
297                        drift_threshold_single = 3
298                    - with_stop:
299                        type = timedrift_with_stop
300                        stop_interations = 1
301                        drift_threshold = 10
302                        drift_threshold_single = 3
303            - date:
304                variants:
305                    - with_load:
306                        type = timedrift
307                        # Pin the VM and host load to CPU #0
308                        cpu_mask = 0x1
309                        # Set the load and rest durations
310                        load_duration = 20
311                        rest_duration = 20
312                        # Fail if the drift after load is higher than 50%
313                        drift_threshold = 50
314                        # Fail if the drift after the rest period is higher than 10%
315                        drift_threshold_after_rest = 10
316                        # For now, make sure this test is executed alone
317                        used_cpus = 100
318                    - with_migration:
319                        type = timedrift_with_migration
320                        migration_iterations = 3
321                        drift_threshold = 10
322                        drift_threshold_single = 3
323                    - with_reboot:
324                        type = timedrift_with_reboot
325                        reboot_iterations = 1
326                        drift_threshold = 10
327                        drift_threshold_single = 3
328                    - with_stop:
329                        type = timedrift_with_stop
330                        stop_interations = 1
331                        drift_threshold = 10
332                        drift_threshold_single = 3
333
334    - balloon_check: install setup image_copy unattended_install.cdrom
335        no Win2000, Fedora.8, Fedora.9, Fedora.10, RHEL.3, RHEL.4, Unix, livecd
336        type = balloon_check
337        extra_params += " -balloon virtio"
338        iterations = 5
339
340    - watchdog: install setup image_copy unattended_install.cdrom
341        only RHEL.5, RHEL.6
342        type = watchdog
343        extra_params += " -watchdog i6300esb -watchdog-action reset"
344        relogin_timeout = 240
345
346    - smbios_table: install setup image_copy unattended_install.cdrom
347        only Linux
348        type = smbios_table
349        start_vm = no
350
351    - softlockup: install setup unattended_install.cdrom
352        only Linux
353        type = softlockup
354        softlockup_files = stress-1.0.4.tar.gz
355        stress_setup_cmd = "cd %s && tar xvf stress-1.0.4.tar.gz && cd stress-1.0.4 && ./configure && make && cd src"
356        server_setup_cmd = "%s/heartbeat_slu.py --server --threshold %s --file %s --port %s --verbose --check-drift"
357        client_setup_cmd = "%s/heartbeat_slu.py --client --address %s --file %s --port %s --interval 1"
358        stress_cmd  = "cd %s && cd stress-1.0.4 && cd src && nohup ./stress -c %s > /dev/null 2>&1&"
359        kill_monitor_cmd = "ps aux | grep heart | grep -v grep | awk '{print$2}' | xargs kill -9 > /dev/null 2>&1"
360        kill_stress_cmd = "pkill -f stress > /dev/null 2>&1"
361        drift_cmd = "tail -1 %s | awk '{print $7}'"
362        monitor_log_file_server = /tmp/heartbeat_server.log
363        monitor_log_file_client = /tmp/heartbeat_client.log
364        monitor_port = 13330
365        stress_threshold = 10
366        # time_to_run (hours) = 12, 18, 24, 48 hours
367        test_length = 0.10
368
369    - stress_boot: install setup image_copy unattended_install.cdrom
370        type = stress_boot
371        max_vms = 5
372        alive_test_cmd = uname -a
373        login_timeout = 240
374        kill_vm = yes
375        kill_vm_vm1 = no
376        kill_vm_gracefully = no
377        extra_params += " -snapshot"
378        used_cpus = 5
379        used_mem = 2560
380
381    - guest_test: install setup image_copy unattended_install.cdrom
382        only Windows
383        type = guest_test
384        login_timeout = 360
385        test_timeout = 600
386        script_params =
387        reboot = yes
388        variants:
389            - autoit:
390                interpreter = "cmd /c D:\AutoIt3.exe"
391                variants:
392                    - notepad:
393                        guest_script = autoit/notepad1.au3
394                        dst_rsc_path = "C:\script.au3"
395                    - stub:
396                        download = yes
397                        download_cmd = "git clone"
398                        rsc_server = "git://the.resource.server/autoit"
399                        dst_rsc_dir = "C:\"
400                        dst_rsc_path = "C:\autoit\stub\stub.au3"
401            - powershell:
402                interpreter = "cmd /c powershell.exe -File"
403                variants:
404                    - stub:
405                        download = yes
406                        download_cmd = "git clone"
407                        rsc_server = "git://the.resource.server/powershell"
408                        dst_rsc_dir = "C:\"
409                        dst_rsc_path = "C:\powershell\stub\stub.ps1"
410
411    - iozone_windows: install setup image_copy unattended_install.cdrom
412        only Windows
413        type = iozone_windows
414        iozone_cmd = "D:\IOzone\iozone.exe -a"
415        iozone_timeout = 3600
416
417    - whql: install setup image_copy unattended_install.cdrom
418        only Windows
419        nic_mode = tap
420        # Replace this with the address of an installed DTM server
421        server_address = 10.20.30.40
422        # The server should run rss.exe like a regular Windows VM, preferably
423        # with administrator privileges (or at least with permission to write
424        # to the DTM studio directory)
425        server_shell_port = 10022
426        server_file_transfer_port = 10023
427        server_studio_path = %programfiles%\Microsoft Driver Test Manager\Studio
428        dsso_test_binary = deps/whql_submission_15.exe
429        dsso_delete_machine_binary = deps/whql_delete_machine_15.exe
430        wtt_services = wttsvc
431        variants:
432            - support_vm_install:
433                # The support VM is identical to the tested VM in every way
434                # except for the image name which ends with '-supportvm'.
435                type = unattended_install
436                image_name += -supportvm
437                extra_params += " -boot d"
438                force_create_image = yes
439                kill_vm = yes
440                nic_mode = user
441                redirs += " unattended_install"
442                guest_port_unattended_install = 12323
443                medium = cdrom
444                kernel =
445                initrd =
446            - client_install:    support_vm_install
447                type = whql_client_install
448                # The username and password are required for accessing the DTM client
449                # installer binary shared by the server
450                server_username = administrator
451                server_password = 1q2w3eP
452                # This path refers to a shared directory on the server
453                # (the final cmd will be something like \\servername\DTMInstall\...)
454                install_cmd = \DTMInstall\Client\Setup.exe /passive
455                install_timeout = 3600
456                # The test will setup auto logon on the client machine using the
457                # following username and password:
458                client_username = DTMLLUAdminUser
459                client_password = Testpassword,1
460                # (These are created by the DTM client installer and should probably not
461                # be changed.)
462                variants:
463                    - @original:
464                    - support_vm:
465                        image_name += -supportvm
466            - submission:    client_install support_vm_install
467                type = whql_submission
468                extra_params += " -snapshot"
469                restart_vm = yes
470                cdroms =
471                test_timeout = 3600
472                device_data = cat0 cat1 cat2 cat3 prog desc virt filter logoarch logoos whqlos whqlqual
473                descriptors = desc1 desc2 desc3
474                # DeviceData names
475                dd_name_cat0     = Category
476                dd_name_cat1     = Category
477                dd_name_cat2     = Category
478                dd_name_cat3     = Category
479                dd_name_logoarch = LogoProcessorArchitecture
480                dd_name_logoos   = LogoOperatingSystem
481                dd_name_whqlos   = WhqlOs
482                dd_name_whqlqual = WhqlQualification
483                dd_name_prog     = LogoProgramId
484                dd_name_desc     = LogoProgramDescription
485                dd_name_filter   = WDKFilterAttribute
486                dd_name_virt     = ParaVirtualizationDriver
487                # Common DeviceData data
488                dd_data_filter   = FilterIfNoInf
489                dd_data_virt     = True
490                # Exclude jobs that have '(Manual)' in their names
491                job_filter = ^((?!\(Manual\)).)*$
492                variants:
493                    - unclassified:
494                        dd_data_cat0 = Device Fundamentals
495                        dd_data_cat1 = System Fundamentals\Dynamic Partitioning
496                        dd_data_prog = Unclassified
497                        dd_data_desc = Unclassified
498                        dd_data_whqlqual = Unclassified Signature
499                        variants:
500                            - tablet:
501                                submission_name = tablet
502                                extra_params += " -usbdevice tablet"
503                                test_device = HID-compliant mouse
504                                test_timeout = 36000
505                    - device:
506                        variants:
507                            - keyboard:
508                                submission_name = keyboard
509                                # test_device is a regular expression that should match a device's
510                                # name as it appears in device manager.  The first device that matches
511                                # is used.
512                                test_device = keyboard
513                                # Set timeout to 10 hours
514                                test_timeout = 36000
515                                dd_data_cat0 = Input\Keyboard
516                                dd_data_cat1 = Device Fundamentals
517                                dd_data_cat2 = System Fundamentals\Dynamic Partitioning
518                                dd_data_prog = InputKbd
519                                dd_data_desc = Input > Keyboard
520                            - net:
521                                submission_name = net
522                                # Add a support machine and extra NICs
523                                vms += " supportvm"
524                                nics += " nic2 nic3"
525                                test_device = RTL8139.*NIC$
526                                test_timeout = 86400
527                                dd_data_cat0 = Network\LAN (Ethernet)
528                                dd_data_cat1 = Device Fundamentals
529                                dd_data_cat2 = System Fundamentals\Dynamic Partitioning
530                                dd_data_prog = NetLan
531                                dd_data_desc = Network > LAN (Ethernet)
532                                # Machine dimensions
533                                dimensions = testrole
534                                dim_name_testrole = NetDevice\TestRole
535                                dim_value_testrole_vm1 = NdistestLanClient
536                                dim_value_testrole_supportvm = NdistestLanServer
537                                # Device selection for the NDISTest client machine
538                                device_params_vm1 = testdev clientmsgdev clientsupportdev
539                                dp_name_testdev = NdistestLanClientTestDevice
540                                dp_regex_testdev = RTL8139.*NIC$
541                                dp_name_clientmsgdev = NdistestLanClientMessageDevice
542                                dp_regex_clientmsgdev = RTL8139.*NIC #2$
543                                dp_name_clientsupportdev = NdistestLanClientSupportDevice0
544                                dp_regex_clientsupportdev = RTL8139.*NIC #3$
545                                # Device selection for the NDISTest server machine
546                                device_params_supportvm = servermsgdev serversupportdev
547                                dp_name_servermsgdev = NdistestLanServerMessageDevice
548                                dp_regex_servermsgdev = RTL8139.*NIC$
549                                dp_name_serversupportdev = NdistestLanServerSupportDevice0
550                                dp_regex_serversupportdev = RTL8139.*NIC #2$
551                            - hdd:
552                                submission_name = hdd
553                                # Run the tests on a non-system drive
554                                # (match device names that contain 'QEMU HARDDISK' and do not contain '[C]')
555                                test_device = ^(?=.*?\bQEMU HARDDISK\b)((?!\[C\]).)*$
556                                device_data += " ex0 ex1 ex2 ex3"
557                                dd_data_cat0 = Storage\Device Class\Disk\Disk
558                                dd_data_cat1 = Storage\Device Class\Disk\Fixed
559                                dd_data_cat2 = Storage\Device Class\Disk\Bus\ATA
560                                dd_data_cat3 = Device Fundamentals
561                                dd_data_prog = StorHDD
562                                dd_data_desc = Storage > Hard Disk Drive (HDD)
563                                dd_name_ex0 = Storage_bus_type
564                                dd_data_ex0 = ATA/ATAPI
565                                dd_name_ex1 = Hybrid_HDD_Support
566                                dd_data_ex1 = 0
567                                dd_name_ex2 = Non_Rotating_Media
568                                dd_data_ex2 = 0
569                                dd_name_ex3 = Secure_Storage
570                                dd_data_ex3 = 0
571                                # Add a 2nd disk which will become D:
572                                images += " tmp"
573                                image_name_tmp = tmp
574                                image_size_tmp = 4G
575                                force_create_image_tmp = yes
576                                # Run diskpart to partition the 2nd disk
577                                whql_pre_command = "echo select disk=1 > dp.txt && "
578                                whql_pre_command += "echo create partition primary >> dp.txt && "
579                                whql_pre_command += "echo assign letter=d >> dp.txt && "
580                                whql_pre_command += "diskpart /s dp.txt & "
581                                whql_pre_command += "format d: /fs:ntfs /q /y"
582                                variants:
583                                    - full:
584                                        # Yes, 100 hours, this is not a mistake
585                                        test_timeout = 360000
586                                    - syscache_test:
587                                        job_filter = syscache test
588                                        test_timeout = 7200
589
590    - guest_s4: install setup image_copy unattended_install.cdrom
591        type = guest_s4
592        check_s4_support_cmd = grep -q disk /sys/power/state
593        test_s4_cmd = "cd /tmp; nohup tcpdump -q -t ip host localhost"
594        check_s4_cmd = pgrep tcpdump
595        set_s4_cmd = echo disk > /sys/power/state
596        kill_test_s4_cmd = pkill tcpdump
597        services_up_timeout = 30
598        relogin_timeout = 240
599
600    - nic_hotplug: install setup image_copy unattended_install.cdrom
601        pci_type = nic
602        reference_cmd = lspci
603        find_pci_cmd = 'lspci | tail -n1'
604        pci_test_cmd = 'nslookup www.redhat.com'
605        wait_secs_for_hook_up = 3
606        variants:
607            - nic_8139:
608                pci_model = rtl8139
609                match_string = "8139"
610            - nic_virtio:
611                pci_model = virtio
612                match_string = "Virtio network device"
613            - nic_e1000:
614                pci_model = e1000
615                match_string = "Gigabit Ethernet Controller"
616        variants:
617            - default:
618                type = pci_hotplug
619            - additional:
620                type = nic_hotplug
621
622
623    - block_hotplug: install setup image_copy unattended_install.cdrom
624        type = pci_hotplug
625        pci_type = block
626        reference_cmd = lspci
627        find_pci_cmd = 'lspci | tail -n1'
628        images += " stg"
629        boot_drive_stg = no
630        image_name_stg = storage
631        image_size_stg = 1G
632        remove_image_stg = yes
633        force_create_image_stg = yes
634        pci_test_cmd = "yes | mke2fs `fdisk -l 2>&1 | awk '/\/dev\/[sv]d[a-z] doesn/ {print $2}'`"
635        wait_secs_for_hook_up = 3
636        kill_vm_on_error = yes
637        variants:
638            - block_virtio:
639                pci_model = virtio
640                match_string = "Virtio block device"
641            - block_scsi:
642                pci_model = scsi
643                match_string = "LSI Logic"
644        variants:
645            - fmt_qcow2:
646                image_format_stg = qcow2
647            - fmt_raw:
648                image_format_stg = raw
649
650    - enospc: install setup image_copy unattended_install.cdrom
651        type = enospc
652        start_vm = no
653        images += " stg"
654        drive_werror = stop
655        drive_cache = none
656        image_name_stg = enospc
657        image_format_stg = qcow2
658        image_boot_stg = no
659        image_snapshot_stg = no
660        check_image_stg = no
661        vgtest_name = vg_kvm_test_enospc
662        lvtest_name = lv_kvm_test_enospc
663        background_cmd = "nohup dd if=/dev/zero of=%s bs=1024 &"
664        kill_vm = yes
665
666    - qmp_basic: install setup image_copy unattended_install.cdrom
667        type = qmp_basic
668
669    - qmp_basic_rhel6: install setup image_copy unattended_install.cdrom
670        type = qmp_basic_rhel6
671
672    - vlan: install setup image_copy unattended_install.cdrom
673        only Linux
674        type = vlan
675        # subnet should not be used by host
676        subnet = "192.168"
677        vlan_num = 5
678        file_size = 10
679        maximal = 4094
680        listen_cmd = "nc -l %s > %s"
681        send_cmd = "nc %s %s < %s"
682        nic_mode = tap
683        vms += " vm2"
684        image_snapshot = yes
685        kill_vm_vm2 = yes
686        kill_vm_gracefully_vm2 = no
687
688    - ping: install setup image_copy unattended_install.cdrom
689        type = ping
690        counts = 100
691        flood_minutes = 10
692        nics += ' nic2'
693
694    - jumbo: install setup image_copy unattended_install.cdrom
695        only Linux
696        type = jumbo
697
698    - file_transfer: install setup image_copy unattended_install.cdrom
699        type = file_transfer
700        filesize = 4000
701        transfer_timeout = 1000
702        variants:
703            - remote:
704                transfer_type = remote
705
706    - nicdriver_unload: install setup image_copy unattended_install.cdrom
707        only Linux
708        type = nicdriver_unload
709        nic_mode = tap
710        filesize = 100
711        transfer_timeout = 100
712        transfer_type = remote
713        sessions_num = 10
714
715    - nic_promisc: install setup image_copy unattended_install.cdrom
716        only Linux
717        type = nic_promisc
718        filesize = 400
719        transfer_timeout = 100
720        transfer_type = remote
721
722    - multicast: install setup image_copy unattended_install.cdrom
723        only Linux
724        type = multicast
725        nic_mode = tap
726        mcast = 225.0.0.1
727        mgroup_count = 20
728        flood_minutes = 1
729
730    - mac_change: install setup image_copy unattended_install.cdrom
731        only Linux
732        type = mac_change
733        kill_vm = yes
734
735    - netperf: install setup image_copy unattended_install.cdrom
736        only Linux
737        type = netperf
738        nics += ' nic2 nic3 nic4'
739        nic_mode = tap
740        netperf_files = netperf-2.4.5.tar.bz2 wait_before_data.patch
741        packet_size = 1500
742        setup_cmd = "cd %s && tar xvfj netperf-2.4.5.tar.bz2 && cd netperf-2.4.5 && patch -p0 < ../wait_before_data.patch && ./configure && make"
743        netserver_cmd =  %s/netperf-2.4.5/src/netserver
744        variants:
745            - stream:
746                netperf_cmd = %s/netperf-2.4.5/src/netperf -t %s -H %s -l 60 -- -m %s
747                protocols = "TCP_STREAM TCP_MAERTS TCP_SENDFILE UDP_STREAM"
748            - rr:
749                netperf_cmd = %s/netperf-2.4.5/src/netperf -t %s -H %s -l 60 -- -r %s
750                protocols = "TCP_RR TCP_CRR UDP_RR"
751
752    - ethtool: install setup image_copy unattended_install.cdrom
753        only Linux
754        type = ethtool
755        filesize = 512
756        nic_mode = tap
757
758    - nic_bonding: install setup image_copy unattended_install.cdrom
759        only Linux
760        type = nic_bonding
761        nics += ' nic2 nic3 nic4'
762        image_snapshot = yes
763        serial_login = yes
764        test_timeout = 1000
765        filesize = 4000
766        transfer_timeout = 1000
767        transfer_type = remote
768        kill_vm = yes
769        # you can specify the parameters of bonding module here
770        # bonding_params = "mode=active-backup"
771
772    - set_link: install setup image_copy unattended_install.cdrom
773        type = set_link
774        test_timeout = 1000
775        filesize = 4000
776        transfer_timeout = 1000
777        transfer_type = remote
778        kill_vm =yes
779
780    - netstress_kill_guest: install setup unattended_install.cdrom
781        only Linux
782        type = netstress_kill_guest
783        image_snapshot = yes
784        nic_mode = tap
785        # There should be enough vms for build topology.
786        variants:
787            -driver:
788                mode = driver
789            -load:
790                mode = load
791                netperf_files = netperf-2.4.5.tar.bz2 wait_before_data.patch
792                packet_size = 1500
793                setup_cmd = "cd %s && tar xvfj netperf-2.4.5.tar.bz2 && cd netperf-2.4.5 && patch -p0 < ../wait_before_data.patch && ./configure && make"
794                clean_cmd = " while killall -9 netserver; do True test; done;"
795                netserver_cmd =  %s/netperf-2.4.5/src/netserver
796                netperf_cmd = %s/netperf-2.4.5/src/netperf -t %s -H %s -l 60 -- -m %s
797
798    - physical_resources_check: install setup image_copy unattended_install.cdrom
799        type = physical_resources_check
800        catch_uuid_cmd = dmidecode | awk -F: '/UUID/ {print $2}'
801
802    - ksm_overcommit: install setup image_copy unattended_install.cdrom
803        only Linux
804        # Don't preprocess any vms as we need to change its params
805        vms = ''
806        image_snapshot = yes
807        kill_vm_gracefully = no
808        type = ksm_overcommit
809        # Make host use swap (a value of 'no' will turn off host swap)
810        ksm_swap = yes
811        no hugepages
812        # Overcommit of host memmory
813        ksm_overcommit_ratio = 3
814        # Max paralel runs machine
815        ksm_parallel_ratio = 4
816        # Host memory reserve (default - best fit for used mem)
817        # ksm_host_reserve = 512
818        # ksm_guest_reserve = 1024
819        variants:
820            - ksm_serial:
821                ksm_mode = "serial"
822            - ksm_parallel:
823                ksm_mode = "parallel"
824
825    - iofuzz: install setup image_copy unattended_install.cdrom
826        only Linux
827        type = iofuzz
828
829    - virtio_console: install setup image_copy unattended_install.cdrom
830        only Linux
831        vms = ''
832        type = virtio_console
833        # Default number of consoles
834        virtio_console_no_serialports = 0
835        virtio_console_no_consoles = 0
836
837        # smoke params - $console_type:data_string
838        # FIXME: test_smoke doesn't work with console yet (virtio_console bug)
839        # "serialport;console:Custom data"
840        smoke_test = yes
841        virtio_console_smoke = "serialport"
842        # loopback params - '$source_console_type@buffer_length:$destination_console_type1@buffer_length:...:$loopback_buffer_length;...'
843        loopback_test = yes
844        virtio_console_loopback = "serialport:serialport;serialport@1024:serialport@32:console@1024:console@8:16"
845        # perf params - $console_type@buffer_length:$test_duration
846        # FIXME: test_perf doesn't work with console yet (virtio_console bug)
847        # virtio_console_perf = "serialport;serialport@1000000:120;console@1024:60"
848        perf_test = yes
849        virtio_console_perf = "serialport;serialport@1000000:120"
850        # Enable destructive tests: "test_name  = yes"
851        # Disable test: change yes or delete key.
852        rmmod_test = yes
853        max_ports_test = yes
854        shutdown_test = yes
855
856        # Offline migration params - '$console_type:$no_migrations:$send-:$recv-$loopback-buffer_length'
857        migrate_offline_test = yes
858        virtio_console_migration_offline = "serialport:1:2048:2048:2048;serialport:5:4096:4096:4096"
859
860        # Online migration params - '$console_type:$no_migrations:$send-:$recv-$loopback-buffer_length'
861        migrate_online_test = yes
862        virtio_console_migration_online = "serialport:1:2048:2048:2048;serialport:5:4096:4096:4096"
863
864        hotplug_test = yes
865        hotplug_serial_test = yes
866        hotplug_console_test = no
867
868    # This unit test module is for older branches of KVM that use the
869    # kvmctl test harness (such as the code shipped with RHEL 5.x)
870    - unit_test_kvmctl:
871        type = unit_test
872        vms = ''
873        profilers = ''
874        variants:
875            - access:
876                case = access
877            - apic:
878                case = apic
879            - emulator:
880                case = emulator
881            - hypercall:
882                case = hypercall
883            - msr:
884                case = msr
885            - port80:
886                case = port80
887            - realmode:
888                case = realmode
889            - sieve:
890                case = sieve
891            - smptest:
892                case = smptest
893            - tsc:
894                case = tsc
895            - stringio:
896                case = stringio
897            - vmexit:
898                case = vmexit
899
900    - fillup_disk: install setup image_copy unattended_install.cdrom
901        only Linux
902        only qcow2
903        type = fillup_disk
904        fillup_timeout = 120
905        fillup_size = 200
906        fillup_cmd = "dd if=/dev/zero of=/%s/fillup.%d bs=%dM count=1 oflag=direct"
907        kill_vm = yes
908
909    - lvm: install setup image_copy unattended_install.cdrom
910        only Linux
911        images += ' stg1 stg2'
912        image_name_stg1 = storage_4k
913        image_cluster_size_stg1 = 4096
914        image_size_stg1 = 1G
915        image_format_stg1 = qcow2
916        image_name_stg2 = storage_64k
917        image_cluster_size_stg2 = 65536
918        image_size_stg2 = 1G
919        image_format_stg2 = qcow2
920        guest_testdir = /mnt
921        disks = "/dev/sdb /dev/sdc"
922        kill_vm = no
923        post_command_noncritical = no
924        variants:
925            lvm_create:
926                type = lvm
927                force_create_image_stg1 = yes
928                force_create_image_stg2 = yes
929                clean = no
930            lvm_fill: lvm_create
931                type = fillup_disk
932                force_create_image_stg1 = no
933                force_create_image_stg2 = no
934                guest_testdir = /mnt/kvm_test_lvm
935                fillup_timeout = 120
936                fillup_size = 20
937                fillup_cmd = "dd if=/dev/zero of=%s/fillup.%d bs=%dM count=1 oflag=direct"
938            lvm_ioquit: lvm_create
939                type = ioquit
940                force_create_image_stg1 = no
941                force_create_image_stg2 = no
942                kill_vm = yes
943                background_cmd = "for i in 1 2 3 4; do (dd if=/dev/urandom of=/mnt/kvm_test_lvm/file bs=102400 count=10000000 &); done"
944                check_cmd = pgrep dd
945                clean = yes
946                remove_image_stg1 = yes
947                remove_image_stg2 = yes
948
949    - ioquit: install setup image_copy unattended_install.cdrom
950        only Linux
951        type = ioquit
952        background_cmd = "for i in 1 2 3 4; do (dd if=/dev/urandom of=/tmp/file bs=102400 count=10000000 &); done"
953        check_cmd = ps -a |grep dd
954        login_timeout = 360
955
956    - multi_disk: install setup image_copy unattended_install.cdrom
957        type = multi_disk
958        force_create_image = yes
959        force_create_image_image1 = no
960        remove_image = yes
961        remove_image_image1 = no
962        cmd_timeout = 1000
963        block_list = C: D: vda vda1 vda2 hda hda1 hda2 sda sda1 sda2
964        variants:
965            - signal_repeat:
966                images += " stg"
967                image_format_stg = qcow2
968                image_name_stg = storage
969                image_size_stg = 1G
970                n_repeat = 10
971            - max_disk:
972                only virtio_blk
973                images += " stg stg2 stg3 stg4 stg5 stg6 stg7 stg8 stg9 stg10 stg11 stg12 stg13 stg14 stg15 stg16 stg17 stg18 stg19 stg20 stg21 stg22 stg23"
974                image_name_stg = storage
975                image_name_stg2 = storage2
976                image_name_stg3 = storage3
977                image_name_stg4 = storage4
978                image_name_stg5 = storage5
979                image_name_stg6 = storage6
980                image_name_stg7 = storage7
981                image_name_stg8 = storage8
982                image_name_stg9 = storage9
983                image_name_stg10 = storage10
984                image_name_stg11 = storage11
985                image_name_stg12 = storage12
986                image_name_stg13 = storage13
987                image_name_stg14 = storage14
988                image_name_stg15 = storage15
989                image_name_stg16 = storage16
990                image_name_stg17 = storage17
991                image_name_stg18 = storage18
992                image_name_stg19 = storage19
993                image_name_stg20 = storage20
994                image_name_stg21 = storage21
995                image_name_stg22 = storage22
996                image_name_stg23 = storage23
997
998    - clock_getres: install setup image_copy unattended_install.cdrom
999        only Linux
1000        type = clock_getres
1001
1002    - yum_update: install setup image_copy unattended_install.cdrom
1003        only Fedora, RHEL
1004        type = yum_update
1005        shell_prompt = "Is this ok"
1006
1007    - kdump: install setup image_copy unattended_install.cdrom
1008        only RHEL.5, RHEL.6
1009        type = kdump
1010        # time waited for the completion of crash dump
1011        # crash_timeout = 360
1012        # command to add the crashkernel=X@Y to kernel cmd line
1013        # kernel_param_cmd = "grubby --update-kernel=`grubby --default-kernel` --args=crashkernel=128M@64M"
1014        # command to enable kdump service
1015        # kdump_enable_cmd = chkconfig kdump on && service kdump start
1016        # command to probe the crash kernel
1017        # crash_kernel_prob_cmd = "grep -q 1 /sys/kernel/kexec_crash_loaded"
1018
1019    - vmstop: install setup image_copy unattended_install.cdrom
1020        type = vmstop
1021        # the path used to store the saved vm state
1022        # save_path = /tmp
1023        # clean the state file?
1024        clean_save = yes
1025
1026    - cdrom_test: install setup image_copy unattended_install.cdrom
1027        only Linux
1028        start_vm = no
1029        type = cdrom
1030        cdrom_cd1 = orig.iso
1031        max_times = 20
1032
1033    - nmi_watchdog: install setup image_copy unattended_install.cdrom
1034        type = nmi_watchdog
1035        get_nmi_cmd = grep NMI /proc/interrupts
1036        nmi_watchdog_type = 1
1037        image_snapshot = yes
1038        only Linux
1039
1040    - floppy: install setup image_copy unattended_install.cdrom
1041        type = floppy
1042        start_vm = no
1043        floppy = images/test_floppy.img
1044
1045    - trans_hugepage: install setup image_copy unattended_install.cdrom
1046        thp_test_config = ""
1047        kill_vm = yes
1048        login_timeout = 360
1049        variants:
1050            - base:
1051                type = trans_hugepage
1052                dd_timeout = 900
1053            - defrag:
1054                type = trans_hugepage_defrag
1055            - swapping:
1056                type = trans_hugepage_swapping
1057                dd_timeout = 900
1058                check_cmd_timeout = 900
1059
1060    - cpu_hotplug_test:
1061        type = cpu_hotplug
1062        cpu_hotplug_timeout = 600
1063        n_cpus_add = 1
1064        kill_vm = yes
1065        iterations = 5
1066        onoff_iterations = 100
1067
1068    - usb: install setup image_copy unattended_install.cdrom
1069        only Linux
1070        type = usb
1071        kill_vm = yes
1072        format_timeout = 400
1073        images += " stg"
1074        image_name_stg = "usbdevice"
1075        image_format_stg = "qcow2"
1076        image_boot_stg = no
1077        drive_format_stg = "usb2"
1078        drive_index_stg = 1
1079        create_image_stg = yes
1080        image_size_stg = 10M
1081        fdisk_string = "10 MB, 10485760 bytes"
1082
1083    - hdparm:
1084        only Linux
1085        type = hdparm
1086        get_disk_cmd = \ls /dev/[vhs]da
1087        low_status_cmd = hdparm -a64 -d0 -u0 %s
1088        device_cache_read_cmd = hdparm -tT %s
1089        high_status_cmd = hdparm -a256 -d1 -u1 %s
1090        cmd_timeout = 540
1091        virtio_blk:
1092            get_disk_cmd = \ls /dev/vda
1093            low_status_cmd = hdparm -a32 -r0 %s
1094            high_status_cmd = hdparm -a256 -r1 %s
1095
1096    # system_powerdown, system_reset and shutdown *must* be the last ones
1097    # defined (in this order), since the effect of such tests can leave
1098    # the VM on a bad state.
1099    - system_powerdown: install setup image_copy unattended_install.cdrom
1100        type = shutdown
1101        shutdown_method = system_powerdown
1102        sleep_before_powerdown = 20
1103        kill_vm = yes
1104
1105    - system_reset: install setup image_copy unattended_install.cdrom
1106        type = boot
1107        reboot_method = system_reset
1108        sleep_before_reset = 20
1109        kill_vm_on_error = yes
1110
1111    - system_reset_bootable: install setup image_copy unattended_install.cdrom
1112        type = system_reset_bootable
1113        interval = 1
1114        reset_times = 20
1115        wait_time_for_reset = 120
1116        kill_vm_on_error = yes
1117
1118    - shutdown: install setup image_copy unattended_install.cdrom
1119        type = shutdown
1120        shutdown_method = shell
1121        kill_vm = yes
1122        kill_vm_gracefully = no
1123