* [Autotest] [KVM-AUTOTEST][PATCH V2] Patch to install cygwin and run autotest in windows
@ 2010-09-27 12:13 Yogananth Subramanian
2010-09-27 12:13 ` [PATCH] [PATCH V2] patch to enable installing cygwin and running autotest in windows guests Yogananth Subramanian
0 siblings, 1 reply; 3+ messages in thread
From: Yogananth Subramanian @ 2010-09-27 12:13 UTC (permalink / raw)
To: lmr; +Cc: anantyog, autotest, kvm
Hello Lucas,
I like to resubmit this patch, in the previous patch i had hard coded it for
doing local installation and had missed the remote installation part. So in
this patch i have fixed it, 'cyg_param' take different vlaues for local and
remote install, to avoid the error in previous patch.
Have also altered the commit message, to make it more lucid.
Thanks
yogi
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH] [PATCH V2] patch to enable installing cygwin and running autotest in windows guests
2010-09-27 12:13 [Autotest] [KVM-AUTOTEST][PATCH V2] Patch to install cygwin and run autotest in windows Yogananth Subramanian
@ 2010-09-27 12:13 ` Yogananth Subramanian
2010-10-27 21:00 ` Lucas Meneghel Rodrigues
0 siblings, 1 reply; 3+ messages in thread
From: Yogananth Subramanian @ 2010-09-27 12:13 UTC (permalink / raw)
To: lmr; +Cc: autotest, kvm
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 106068 bytes --]
The patch creates two new files 'scripts/cyg_install.py' and
'tests/cyg_install'. 'scripts/cyg_install.py' is used to install cygwin in
unattended mode. This patch also introduces a new parameter 'patch_file'to
run_autotest() in kvm_test_utils.py file, to install patch for autotest to
run in windows. The file 'autotest_control/autotest.patch' is base patch to
run any autotest test cases in windows and file 'autotest_control/iozone.patch'
is a patch to run iozone on windows.
[cyg_install]:
1)local install:
Folder denoted by 'cyg_path' should contain the cygwin setup file and a
dir called "repo" which would contain all the cygwin packages need to be
installed.
remote install:
'cyg_path' contains the link to download cygwin setup file
2)scripts/cyg_install.py creates cyg.iso,which contains "cyg_install.cmd"
script needed to install cygwin and set of files pointed by the
'cyg_path'
3)login to guest using telnet and run "cyg_install.cmd" to install
cygwin
[cygwin autotest]
1)the param 'test_patch_file' contains the list of patches for autotest
2)scp autotest to windows guest, apply the patch and run autotest
Signed-off-by: Yogananth Subramanian <anantyog@linux.vnet.ibm.com>
---
client/tests/kvm/autotest_control/autotest.patch | 15 +
client/tests/kvm/autotest_control/iozone.patch | 12 +
client/tests/kvm/kvm_test_utils.py | 10 +-
client/tests/kvm/scripts/cyg_install.py | 98 ++
client/tests/kvm/tests/autotest.py | 21 +-
client/tests/kvm/tests/cyg_install.py | 36 +
client/tests/kvm/tests_base.cfg.sample | 45 +-
client/tests/kvm/tests_base.cfg.sample.orig | 1884 ++++++++++++++++++++++
8 files changed, 2117 insertions(+), 4 deletions(-)
create mode 100644 client/tests/kvm/autotest_control/autotest.patch
create mode 100644 client/tests/kvm/autotest_control/iozone.patch
create mode 100644 client/tests/kvm/scripts/cyg_install.py
create mode 100644 client/tests/kvm/tests/cyg_install.py
create mode 100644 client/tests/kvm/tests_base.cfg.sample.orig
diff --git a/client/tests/kvm/autotest_control/autotest.patch b/client/tests/kvm/autotest_control/autotest.patch
new file mode 100644
index 0000000..f562f95
--- /dev/null
+++ b/client/tests/kvm/autotest_control/autotest.patch
@@ -0,0 +1,15 @@
+diff -aurpN client/bin/job.py client-new/bin/job.py
+--- client/bin/job.py 2010-08-25 01:42:27.000000000 -0400
++++ client-new/bin/job.py 2010-09-07 09:54:30.000000000 -0400
+@@ -296,7 +296,10 @@ class base_client_job(base_job.base_job)
+
+ # extract console= and other args from cmdline and add them into the
+ # base args that we use for all kernels we install
+- cmdline = utils.read_one_line('/proc/cmdline')
++ if os.path.exists('/proc/cmdline'):
++ cmdline = utils.read_one_line('/proc/cmdline')
++ else:
++ return
+ kernel_args = []
+ for karg in cmdline.split():
+ for param in copy_cmdline:
diff --git a/client/tests/kvm/autotest_control/iozone.patch b/client/tests/kvm/autotest_control/iozone.patch
new file mode 100644
index 0000000..6229205
--- /dev/null
+++ b/client/tests/kvm/autotest_control/iozone.patch
@@ -0,0 +1,12 @@
+diff -aurpN client/tests/iozone/iozone.py client-new/tests/iozone/iozone.py
+--- client/tests/iozone/iozone.py 2010-08-25 01:42:27.000000000 -0400
++++ client-new/tests/iozone/iozone.py 2010-09-02 11:38:42.000000000 -0400
+@@ -43,7 +43,7 @@ class iozone(test.test):
+ elif (arch == 'x86_64'):
+ utils.system('make linux-AMD64')
+ else:
+- utils.system('make linux')
++ utils.system('make Windows')
+
+
+ def run_once(self, dir=None, args=None):
diff --git a/client/tests/kvm/kvm_test_utils.py b/client/tests/kvm/kvm_test_utils.py
index 5412aac..34bccb8 100644
--- a/client/tests/kvm/kvm_test_utils.py
+++ b/client/tests/kvm/kvm_test_utils.py
@@ -336,7 +336,7 @@ def get_memory_info(lvms):
return meminfo
-def run_autotest(vm, session, control_path, timeout, outputdir):
+def run_autotest(vm, session, control_path, timeout, outputdir, patch_file):
"""
Run an autotest control file inside a guest (linux only utility).
@@ -346,6 +346,7 @@ def run_autotest(vm, session, control_path, timeout, outputdir):
@param timeout: Timeout under which the autotest control file must complete.
@param outputdir: Path on host where we should copy the guest autotest
results to.
+ @param patch_file: A path to an autotest patch file.
"""
def copy_if_hash_differs(vm, local_path, remote_path):
"""
@@ -460,12 +461,19 @@ def run_autotest(vm, session, control_path, timeout, outputdir):
os.path.join(autotest_path, 'control')):
raise error.TestFail("Could not copy the test control file to guest")
+ if not patch_file == "":
+ if not vm.copy_files_to(patch_file,
+ os.path.join(autotest_path, '../test.patch')):
+ raise error.TestFail("Could not copy the test patch file to guest")
+
# Run the test
logging.info("Running autotest control file %s on guest, timeout %ss",
os.path.basename(control_path), timeout)
session.get_command_output("cd %s" % autotest_path)
session.get_command_output("rm -f control.state")
session.get_command_output("rm -rf results/*")
+ if not patch_file == "":
+ session.get_command_output("patch -p1 <../test.patch")
logging.info("---------------- Test output ----------------")
status = session.get_command_status("bin/autotest control",
timeout=timeout,
diff --git a/client/tests/kvm/scripts/cyg_install.py b/client/tests/kvm/scripts/cyg_install.py
new file mode 100644
index 0000000..7213b90
--- /dev/null
+++ b/client/tests/kvm/scripts/cyg_install.py
@@ -0,0 +1,98 @@
+#!/usr/bin/python
+"""
+Script to install cygwin on KVM guests.
+"""
+# -*- coding: utf-8 -*-
+import os, sys, shutil, tempfile, re, ConfigParser, glob
+import common
+from autotest_lib.client.bin import utils
+
+class CygInstall(object):
+ """
+ Creates an iso image that will contain cygwin setup file for unattended
+ install. The setup and cygwin packages should be present on the host
+ under the path specified by 'cyg_path' for local install. For remote
+ install the setup will be downloaded from 'cyg_path'
+ """
+ def __init__(self):
+ """
+ Gets params from environment variables and sets class attributes.
+ """
+ script_dir = os.path.dirname(sys.modules[__name__].__file__)
+ kvm_test_dir = os.path.abspath(os.path.join(script_dir, ".."))
+ images_dir = os.path.join(kvm_test_dir, 'images')
+ self.deps_dir = os.path.join(kvm_test_dir, 'deps')
+ self.cachedir = os.path.join(kvm_test_dir, 'cyg_cache')
+ self.unattended_dir = os.path.join(kvm_test_dir, 'unattended')
+ self.cyg_type = os.environ.get('KVM_TEST_cyg_type')
+ self.cyg_path = os.environ.get('KVM_TEST_cyg_path')
+ self.cyg_param = os.environ.get('KVM_TEST_cyg_param')
+ self.cyg_iso = os.environ.get('KVM_TEST_cdrom_cd1')
+
+
+ def setup_local(self):
+ """
+ cygwin setup and packages are present locally.
+ """
+ self.cygsetup_file()
+ mkiso_cmd = "mkisofs -L -l -allow-lowercase -allow-multidot -relaxed-"\
+ "filenames -N -v -d -D -o %s %s"%(self.cyg_iso, self.cyg_path)
+ if os.system(mkiso_cmd):
+ raise SetupError('Could not create iso')
+
+
+ def setup_remote(self):
+ """
+ cygwin setup downloaded from 'cyg_path'
+ """
+
+ if not os.path.isdir(self.cachedir):
+ os.makedirs(self.cachedir)
+ self.cyg_md5 = os.environ.get('KVM_TEST_cyg_md5')
+ dacapo_pkg = utils.unmap_url_cache(self.cachedir, self.cyg_path, self.cyg_md5)
+ self.cyg_path = self.cachedir
+ self.cygsetup_file()
+ mkiso_cmd = "mkisofs -L -l -allow-lowercase -allow-multidot -relaxed"\
+ "-filenames -N -v -d -D -o %s %s"%(self.cyg_iso,self.cachedir)
+ if os.system(mkiso_cmd):
+ raise SetupError('Could not create iso')
+ shutil.rmtree(self.cachedir)
+
+ def cygsetup_file(self):
+ cyg_config_file = os.path.join(self.cyg_path, 'cyg_install.cmd')
+ cyg_config = open(cyg_config_file, 'w')
+ cyg_config.write('d:setup.exe -q -R '
+ '"%systemdrive%\\cygwin" '+self.cyg_param)
+ cyg_config.write('\n')
+ cyg_config.write('cd %systemdrive%\\cygwin\\bin\n')
+ cyg_config.write("""for /f "delims=" %%A in ('cygpath.exe -u %tmp%')"""
+ """ do set a=%%A\n""")
+ cyg_config.write('bash --login -i -c "chmod 777 %a%"\n')
+ cyg_config.write('ash.exe /usr/bin/rebaseall \n')
+ cyg_config.write('bash --login -i -c "ssh-host-config -y --pwd '
+ '1q2w3eP"\n')
+ cyg_config.write('net start sshd\n')
+ cyg_config.write('bash --login -i -c "ssh-user-config -y -p"\n')
+ cyg_config.close()
+
+ def setup(self):
+ print "Starting Cygwin install setup"
+
+ print "Variables set:"
+ print " cygwin instally type: " + str(self.cyg_type)
+ print " cygwin path: " + str(self.cyg_path)
+ print " cygwin iso: " + str(self.cyg_iso)
+
+ if self.cyg_type == "local":
+ self.setup_local()
+ elif self.cyg_type == "remote":
+ self.setup_remote()
+ else:
+ raise SetupError("Unexpected installation method %s" %
+ self.cyg_type)
+ print "Cygwin install setup finished successfuly"
+
+
+if __name__ == "__main__":
+ os_install = CygInstall()
+ os_install.setup()
diff --git a/client/tests/kvm/tests/autotest.py b/client/tests/kvm/tests/autotest.py
index 2916ebd..e40b26a 100644
--- a/client/tests/kvm/tests/autotest.py
+++ b/client/tests/kvm/tests/autotest.py
@@ -1,4 +1,4 @@
-import os, logging
+import os, logging, tempfile
from autotest_lib.client.common_lib import error
from autotest_lib.client.bin import utils
import kvm_subprocess, kvm_utils, kvm_test_utils
@@ -20,6 +20,23 @@ def run_autotest(test, params, env):
timeout = int(params.get("test_timeout", 300))
control_path = os.path.join(test.bindir, "autotest_control",
params.get("test_control_file"))
+ if not params.get("test_patch_file"):
+ patch_file = ""
+ else:
+ autotest_files = params.get("test_patch_file").split()
+ temp = []
+ for autotest_file in autotest_files:
+ patch_path = os.path.join(test.bindir, "autotest_control",
+ autotest_file)
+ f = open(patch_path, "r")
+ temp.extend(f.readlines())
+ f.close()
+
+ (fd,patch_file)=tempfile.mkstemp(prefix='patch_',dir='/tmp')
+ f = open(patch_file, "w")
+ f.writelines(temp)
+ f.close()
outputdir = test.outputdir
- kvm_test_utils.run_autotest(vm, session, control_path, timeout, outputdir)
+ kvm_test_utils.run_autotest(vm, session, control_path, timeout, outputdir,
+ patch_file)
diff --git a/client/tests/kvm/tests/cyg_install.py b/client/tests/kvm/tests/cyg_install.py
new file mode 100644
index 0000000..f038b2d
--- /dev/null
+++ b/client/tests/kvm/tests/cyg_install.py
@@ -0,0 +1,36 @@
+import logging, time, os
+from autotest_lib.client.common_lib import error
+from autotest_lib.client.bin import utils
+from autotest_lib.client.tests.iozone import postprocessing
+import kvm_subprocess, kvm_test_utils, kvm_utils
+
+
+def run_cyg_install(test, params, env):
+ """
+ Install cygwin on a windows guest:
+ 1) Log into a guest
+ 2) Install cygwin with the setup contained in the cyg.iso
+
+ @param test: kvm test object
+ @param params: Dictionary with the test parameters
+ @param env: Dictionary with test environment.
+ """
+ vm = kvm_test_utils.get_living_vm(env, params.get("main_vm"))
+ timeout = int(params.get("login_timeout", 360))
+ session = kvm_test_utils.wait_for_login(vm, 0,timeout,0,2)
+ results_path = os.path.join(test.resultsdir,
+ 'raw_output_%s' % test.iteration)
+
+ c = params.get("cyg_cmd")
+ t = int(params.get("cyg_timeout"))
+ logging.info("Installing cygwin on guest, timeout %ss", t)
+ results = session.get_command_output(command=c, timeout=t,
+ print_func=logging.debug)
+ utils.open_write_close(results_path, results)
+
+ logging.info("Installation succeed")
+ session.sendline(vm.get_params().get("shutdown_command"))
+ if not kvm_utils.wait_for(vm.is_dead, 240, 0, 1):
+ raise error.TestFail("Guest refuses to go down")
+ session.close()
+
diff --git a/client/tests/kvm/tests_base.cfg.sample b/client/tests/kvm/tests_base.cfg.sample
index 167e86d..70ab947 100644
--- a/client/tests/kvm/tests_base.cfg.sample
+++ b/client/tests/kvm/tests_base.cfg.sample
@@ -130,6 +130,25 @@ variants:
kill_vm_on_error = yes
login_timeout = 240
+ -cyg_install: install setup unattended_install.cdrom
+ type = cyg_install
+ pre_command = " scripts/cyg_install.py;"
+ cyg_param = " -P make,patch,bash,vim,openssh,python,gcc,binutils "
+ shutdown_method = shell
+ cyg_cmd = "cmd /c D:\cyg_install.cmd"
+ cyg_timeout = 3600
+ shutdown_command = shutdown /s /f /t 0
+ variants:
+ - local:
+ cyg_type = local
+ cyg_param += " -L -l d:\\repo "
+ cyg_path = "/root/sdb/images/cyg"
+ - remote:
+ cyg_type = remote
+ cyg_param += " -s http://cygwin.basemirror.de "
+ cyg_path = "http://www.cygwin.com/setup.exe"
+ cyg_md5 = "a4f5eaaa1096891b9812b81f104fc4d9"
+
- migrate: install setup unattended_install.cdrom
type = migration
migration_test_command = help
@@ -1236,7 +1255,7 @@ variants:
# Windows section
- @Windows:
- no autotest linux_s3 vlan_tag ioquit unattended_install.(url|nfs|remote_ks)
+ no linux_s3 vlan_tag ioquit unattended_install.(url|nfs|remote_ks)
shutdown_command = shutdown /s /f /t 0
reboot_command = shutdown /r /f /t 0
status_test_command = echo %errorlevel%
@@ -1327,6 +1346,30 @@ variants:
pci_test_cmd = echo select disk 1 > dt && echo online >> dt && echo detail disk >> dt && echo exit >> dt && diskpart /s dt
physical_resources_check:
catch_uuid_cmd =
+ cyg_install:
+ cdrom_cd1 = windows/cyg.iso
+ shell_prompt = "Administrator>$"
+ username = Administrator
+ password = 1q2w3eP
+ shell_client = telnet
+ shell_port = 23
+ guest_port_remote_shell = 23
+ autotest:
+ shell_prompt = "Administrator>$"
+ username = Administrator
+ password = 1q2w3eP
+ status_test_command = echo $?
+ shell_prompt = "\$ "
+ shell_client = ssh
+ shell_linesep = "\n"
+ shell_port = 22
+ file_transfer_client = scp
+ file_transfer_port = 22
+ guest_port_remote_shell = 22
+ guest_port_file_transfer = 23
+ test_patch_file = autotest.patch
+ autotest.iozone:
+ test_patch_file += " iozone.patch"
variants:
- Win2000:
diff --git a/client/tests/kvm/tests_base.cfg.sample.orig b/client/tests/kvm/tests_base.cfg.sample.orig
new file mode 100644
index 0000000..167e86d
--- /dev/null
+++ b/client/tests/kvm/tests_base.cfg.sample.orig
@@ -0,0 +1,1884 @@
+# Copy this file to tests_base.cfg and edit it.
+#
+# Define the objects we'll be using
+vms = vm1
+images = image1
+cdroms = cd1
+nics = nic1
+monitors = humanmonitor1
+
+# Choose the main VM and monitor
+main_vm = vm1
+main_monitor = humanmonitor1
+
+# Some preprocessor/postprocessor params
+start_vm = yes
+kill_vm = no
+kill_vm_gracefully = yes
+kill_unresponsive_vms = yes
+
+# Screendump specific stuff
+convert_ppm_files_to_png_on_error = yes
+#keep_ppm_files = yes
+#keep_ppm_files_on_error = yes
+take_regular_screendumps = yes
+keep_screendumps_on_error = yes
+screendump_delay = 5
+screendump_quality = 30
+screendump_temp_dir = /dev/shm
+screendump_verbose = no
+
+# Some default VM params
+qemu_binary = qemu
+qemu_img_binary = qemu-img
+smp = 1
+mem = 512
+image_size = 10G
+drive_index_image1 = 0
+shell_port = 22
+display = vnc
+drive_index_cd1 = 1
+
+# Monitor params
+monitor_type = human
+
+# Default scheduler params
+used_cpus = 1
+used_mem = 512
+
+# Port redirections
+redirs = remote_shell
+guest_port_remote_shell = 22
+
+# NIC parameters
+nic_mode = user
+#nic_mode = tap
+nic_script = scripts/qemu-ifup
+address_index = 0
+run_tcpdump = yes
+
+# Misc
+profilers = kvm_stat
+login_timeout = 360
+
+
+# Tests
+variants:
+ - install:
+ type = steps
+ fail_if_stuck_for = 300
+ stuck_detection_history = 2
+ keep_screendump_history = yes
+ force_create_image = yes
+ kill_vm = yes
+ kill_vm_timeout = 60
+ kill_vm_timeout_on_error = 0
+
+ - setup: install
+ type = steps
+ fail_if_stuck_for = 300
+ stuck_detection_history = 2
+ kill_vm_on_error = yes
+ keep_screendump_history = yes
+
+ - unattended_install:
+ type = unattended_install
+ kill_vm = yes
+ kill_vm_gracefully = yes
+ kill_vm_on_error = yes
+ force_create_image = yes
+ pre_command += " scripts/unattended.py;"
+ extra_params += " -boot d"
+ guest_port_unattended_install = 12323
+ kernel = vmlinuz
+ initrd = initrd.img
+ nic_mode = tap
+ variants:
+ # Install guest from cdrom
+ - cdrom:
+ medium = cdrom
+ nic_mode = user
+ redirs += " unattended_install"
+ kernel =
+ initrd =
+ # Install guest from http/ftp url
+ - url:
+ medium = url
+ extra_params += " --append ks=floppy"
+ url = REPLACE_THIS_WITH_TREE_URL
+ # Install guest from nfs nfs_server:nfs_dir
+ - nfs:
+ medium = nfs
+ extra_params += " --append ks=floppy"
+ nfs_server = REPLACE_THIS_WITH_NFS_SERVER
+ nfs_dir = REPLACE_THIS_WITH_NFS_DIRECTORY
+ # Install guest with a remote kickstart
+ - remote_ks:
+ medium = url
+ extra_params += " --append ks=REPLACE_THIS_WITH_URL_OF_KS"
+ url = REPLACE_THIS_WITH_TREE_URL
+
+ - boot: install setup unattended_install.cdrom
+ type = boot
+ restart_vm = yes
+ kill_vm_on_error = yes
+ login_timeout = 240
+
+ - reboot: install setup unattended_install.cdrom
+ type = boot
+ reboot_method = shell
+ kill_vm_on_error = yes
+ login_timeout = 240
+
+ - migrate: install setup unattended_install.cdrom
+ type = migration
+ migration_test_command = help
+ migration_bg_command = "cd /tmp; nohup tcpdump -q -t ip host localhost"
+ migration_bg_check_command = pgrep tcpdump
+ migration_bg_kill_command = pkill tcpdump
+ kill_vm_on_error = yes
+ iterations = 2
+ used_mem = 1024
+ mig_timeout = 3600
+ variants:
+ - tcp:
+ migration_protocol = "tcp"
+ - unix:
+ migration_protocol = "unix"
+ - exec:
+ migration_protocol = "exec"
+ - mig_cancel:
+ migration_protocol = "tcp"
+ mig_cancel = True
+
+ - boot_savevm: install setup unattended_install.cdrom
+ type = boot_savevm
+ savevm_delay = 0.3
+ savevm_login_delay = 120
+ savevm_timeout = 2000
+ kill_vm_on_error = yes
+ kill_vm_gracefully = yes
+ kill_vm = yes
+
+ - autotest: install setup unattended_install.cdrom
+ type = autotest
+ test_timeout = 1800
+ variants:
+ - sleeptest:
+ test_timeout = 120
+ test_control_file = sleeptest.control
+ - dbench:
+ test_control_file = dbench.control
+ - bonnie:
+ test_control_file = bonnie.control
+ - ebizzy:
+ test_control_file = ebizzy.control
+ - stress:
+ test_control_file = stress.control
+ - disktest:
+ test_control_file = disktest.control
+ - ctcs2:
+ # If you think this is too lengthy, please change the cerberus
+ # control file and set this timeout appropriately.
+ test_timeout = 3900
+ test_control_file = cerberus.control
+ - npb:
+ test_control_file = npb.control
+ - hackbench:
+ test_control_file = hackbench.control
+ - cpu_hotplug:
+ test_control_file = cpu_hotplug.control
+ - monotonic_time:
+ test_control_file = monotonic_time.control
+ - tsc:
+ test_control_file = tsc.control
+ - scrashme:
+ test_control_file = scrashme.control
+ - hwclock:
+ test_control_file = hwclock.control
+ - rtc:
+ test_control_file = rtc.control
+
+ - linux_s3: install setup unattended_install.cdrom
+ type = linux_s3
+
+ - timedrift: install setup unattended_install.cdrom
+ variants:
+ - ntp:
+ variants:
+ - with_load:
+ type = timedrift
+ # Pin the VM and host load to CPU #0
+ cpu_mask = 0x1
+ # Set the load and rest durations
+ load_duration = 20
+ rest_duration = 20
+ # Fail if the drift after load is higher than 50%
+ drift_threshold = 50
+ # Fail if the drift after the rest period is higher than 10%
+ drift_threshold_after_rest = 10
+ # For now, make sure this test is executed alone
+ used_cpus = 100
+ - with_migration:
+ type = timedrift_with_migration
+ migration_iterations = 3
+ drift_threshold = 10
+ drift_threshold_single = 3
+ - with_reboot:
+ type = timedrift_with_reboot
+ reboot_iterations = 1
+ drift_threshold = 10
+ drift_threshold_single = 3
+ - with_stop:
+ type = timedrift_with_stop
+ stop_interations = 1
+ drift_threshold = 10
+ drift_threshold_single = 3
+ - date:
+ variants:
+ - with_load:
+ type = timedrift
+ # Pin the VM and host load to CPU #0
+ cpu_mask = 0x1
+ # Set the load and rest durations
+ load_duration = 20
+ rest_duration = 20
+ # Fail if the drift after load is higher than 50%
+ drift_threshold = 50
+ # Fail if the drift after the rest period is higher than 10%
+ drift_threshold_after_rest = 10
+ # For now, make sure this test is executed alone
+ used_cpus = 100
+ - with_migration:
+ type = timedrift_with_migration
+ migration_iterations = 3
+ drift_threshold = 10
+ drift_threshold_single = 3
+ - with_reboot:
+ type = timedrift_with_reboot
+ reboot_iterations = 1
+ drift_threshold = 10
+ drift_threshold_single = 3
+ - with_stop:
+ type = timedrift_with_stop
+ stop_interations = 1
+ drift_threshold = 10
+ drift_threshold_single = 3
+
+ - balloon_check: install setup unattended_install.cdrom
+ type = balloon_check
+ extra_params += " -balloon virtio"
+ iterations = 5
+
+ - stress_boot: install setup unattended_install.cdrom
+ type = stress_boot
+ max_vms = 5
+ alive_test_cmd = uname -a
+ clone_address_index_base = 10
+ login_timeout = 240
+ kill_vm = yes
+ kill_vm_vm1 = no
+ kill_vm_gracefully = no
+ extra_params += " -snapshot"
+ used_cpus = 5
+ used_mem = 2560
+
+ - guest_test: install setup unattended_install.cdrom
+ type = guest_test
+ login_timeout = 360
+ test_timeout = 600
+ script_params =
+ reboot = yes
+ variants:
+ - autoit:
+ interpreter = D:\AutoIt3.exe
+ variants:
+ - notepad:
+ guest_script = autoit/notepad1.au3
+ dst_rsc_path = "C:\script.au3"
+ - stub:
+ download = yes
+ download_cmd = "git clone"
+ rsc_server = "git://the.resource.server/autoit"
+ dst_rsc_dir = "C:\"
+ dst_rsc_path = "C:\autoit\stub\stub.au3"
+ - powershell:
+ interpreter = "powershell.exe -File"
+ variants:
+ - stub:
+ download = yes
+ download_cmd = "git clone"
+ rsc_server = "git://the.resource.server/powershell"
+ dst_rsc_dir = "C:\"
+ dst_rsc_path = "C:\powershell\stub\stub.ps1"
+
+ - iozone_windows: unattended_install.cdrom
+ type = iozone_windows
+ iozone_cmd = "D:\IOzone\iozone.exe -a"
+ iozone_timeout = 3600
+
+ - @whql: install setup unattended_install.cdrom
+ nic_mode = tap
+ # Replace this with the address of an installed DTM server
+ server_address = 10.20.30.40
+ # The server should run rss.exe like a regular Windows VM, preferably
+ # with administrator privileges (or at least with permission to write
+ # to the DTM studio directory)
+ server_shell_port = 10022
+ server_file_transfer_port = 10023
+ server_studio_path = %programfiles%\Microsoft Driver Test Manager\Studio
+ wtt_services = wttsvc
+ variants:
+ - whql_client_install:
+ type = whql_client_install
+ dsso_delete_machine_binary = deps/whql_delete_machine_15.exe
+ # The username and password are required for accessing the DTM client
+ # installer binary shared by the server
+ server_username = administrator
+ server_password = 1q2w3eP
+ # This path refers to a shared directory on the server
+ # (the final cmd will be something like \\servername\DTMInstall\...)
+ install_cmd = \DTMInstall\Client\Setup.exe /passive
+ install_timeout = 3600
+ - whql_submission: whql_client_install
+ type = whql_submission
+ extra_params += " -snapshot"
+ dsso_test_binary = deps/whql_submission_15.exe
+ test_timeout = 3600
+ device_data = cat0 cat1 cat2 cat3 logoarch logoos whqlos whqlqual prog desc filter virt
+ descriptors = desc1 desc2 desc3
+ # DeviceData names
+ dd_name_cat0 = Category
+ dd_name_cat1 = Category
+ dd_name_cat2 = Category
+ dd_name_cat3 = Category
+ dd_name_logoarch = LogoProcessorArchitecture
+ dd_name_logoos = LogoOperatingSystem
+ dd_name_whqlos = WhqlOs
+ dd_name_whqlqual = WhqlQualification
+ dd_name_prog = LogoProgramId
+ dd_name_desc = LogoProgramDescription
+ dd_name_filter = WDKFilterAttribute
+ dd_name_virt = ParaVirtualizationDriver
+ # Common DeviceData data
+ dd_data_filter = FilterIfNoInf
+ dd_data_virt = True
+ variants:
+ - keyboard:
+ # test_device is a regular expression that should match a device's
+ # name as it appears in device manager. The first device that matches
+ # is used.
+ test_device = keyboard
+ # Set timeout to 10 hours
+ test_timeout = 36000
+ dd_data_cat0 = Input\Keyboard
+ dd_data_cat1 = Device Fundamentals
+ dd_data_cat2 = System Fundamentals\Dynamic Partitioning
+ dd_data_prog = InputKbd
+ dd_data_desc = Input > Keyboard
+ - hdd:
+ test_device = qemu harddisk
+ device_data += " ex0 ex1 ex2 ex3"
+ dd_data_cat0 = Storage\Device Class\Disk\Disk
+ dd_data_cat1 = Storage\Device Class\Disk\Fixed
+ dd_data_cat2 = Storage\Device Class\Disk\Bus\ATA
+ dd_data_cat3 = Device Fundamentals
+ dd_data_prog = StorHDD
+ dd_data_desc = Storage > Hard Disk Drive (HDD)
+ dd_name_ex0 = Storage_bus_type
+ dd_data_ex0 = ATA/ATAPI
+ dd_name_ex1 = Hybrid_HDD_Support
+ dd_data_ex1 = 0
+ dd_name_ex2 = Non_Rotating_Media
+ dd_data_ex2 = 0
+ dd_name_ex3 = Secure_Storage
+ dd_data_ex3 = 0
+ variants:
+ - full:
+ # Yes, 100 hours, this is not a mistake
+ test_timeout = 360000
+ - syscache_test:
+ job_filter = syscache test
+ test_timeout = 7200
+
+ - guest_s4: install setup unattended_install.cdrom
+ type = guest_s4
+ check_s4_support_cmd = grep -q disk /sys/power/state
+ test_s4_cmd = "cd /tmp; nohup tcpdump -q -t ip host localhost"
+ check_s4_cmd = pgrep tcpdump
+ set_s4_cmd = echo disk > /sys/power/state
+ kill_test_s4_cmd = pkill tcpdump
+ services_up_timeout = 30
+ relogin_timeout = 240
+
+ - nic_hotplug: install setup unattended_install.cdrom
+ type = pci_hotplug
+ pci_type = nic
+ reference_cmd = lspci
+ find_pci_cmd = 'lspci | tail -n1'
+ pci_test_cmd = 'nslookup www.redhat.com'
+ wait_secs_for_hook_up = 3
+ variants:
+ - nic_8139:
+ pci_model = rtl8139
+ match_string = "8139"
+ - nic_virtio:
+ pci_model = virtio
+ match_string = "Virtio network device"
+ - nic_e1000:
+ pci_model = e1000
+ match_string = "Gigabit Ethernet Controller"
+
+ - block_hotplug: install setup unattended_install.cdrom
+ type = pci_hotplug
+ pci_type = block
+ reference_cmd = lspci
+ find_pci_cmd = 'lspci | tail -n1'
+ images += " stg"
+ boot_drive_stg = no
+ image_name_stg = storage
+ image_size_stg = 1G
+ remove_image_stg = yes
+ force_create_image_stg = yes
+ pci_test_cmd = "yes | mke2fs `fdisk -l 2>&1 | awk '/\/dev\/[sv]d[a-z] doesn/ {print $2}'`"
+ wait_secs_for_hook_up = 3
+ kill_vm_on_error = yes
+ variants:
+ - block_virtio:
+ pci_model = virtio
+ match_string = "Virtio block device"
+ - block_scsi:
+ pci_model = scsi
+ match_string = "SCSI"
+ variants:
+ - fmt_qcow2:
+ image_format_stg = qcow2
+ - fmt_raw:
+ image_format_stg = raw
+
+ - vlan_tag: install setup unattended_install.cdrom
+ type = vlan_tag
+ # subnet should not be used by host
+ subnet = 192.168.123
+ vlans = "10 20"
+ nic_mode = tap
+ vms += " vm2"
+ extra_params_vm1 += " -snapshot"
+ extra_params_vm2 += " -snapshot"
+ kill_vm_gracefully_vm2 = no
+ address_index_vm2 = 1
+
+ - physical_resources_check: install setup unattended_install.cdrom
+ type = physical_resources_check
+ catch_uuid_cmd = dmidecode | awk -F: '/UUID/ {print $2}'
+
+ - ksm_overcommit:
+ # Don't preprocess any vms as we need to change its params
+ vms = ''
+ image_snapshot = yes
+ kill_vm_gracefully = no
+ type = ksm_overcommit
+ # Make host use swap (a value of 'no' will turn off host swap)
+ ksm_swap = yes
+ no hugepages
+ # Overcommit of host memmory
+ ksm_overcommit_ratio = 3
+ # Max paralel runs machine
+ ksm_parallel_ratio = 4
+ # Host memory reserve (default - best fit for used mem)
+ # ksm_host_reserve = 512
+ # ksm_guest_reserve = 1024
+ variants:
+ - ksm_serial:
+ ksm_mode = "serial"
+ - ksm_parallel:
+ ksm_mode = "parallel"
+
+ - iofuzz:
+ type = iofuzz
+
+ - virtio_console:
+ vms = ''
+ type = virtio_console
+ # smoke params - $console_type:data_string
+ # FIXME: test_smoke doesn't work with console yet (virtio_console bug)
+ # "serialport;console:Custom data"
+ virtio_console_smoke = "serialport"
+ # loopback params - '$source_console_type@buffer_length:$destination_console_type1@buffer_length:...:$loopback_buffer_length;...'
+ virtio_console_loopback = "serialport:serialport;serialport@1024:serialport@32:console@1024:console@8:16"
+ # perf params - $console_type@buffer_length:$test_duration
+ # FIXME: test_perf doesn't work with console yet (virtio_console bug)
+ # virtio_console_perf = "serialport;serialport@1000000:120;console@1024:60"
+ virtio_console_perf = "serialport;serialport@1000000:120"
+
+ # This unit test module is for older branches of KVM that use the
+ # kvmctl test harness (such as the code shipped with RHEL 5.x)
+ - unit_test_kvmctl:
+ type = unit_test
+ vms = ''
+ profilers = ''
+ variants:
+ - access:
+ case = access
+ - apic:
+ case = apic
+ - emulator:
+ case = emulator
+ - hypercall:
+ case = hypercall
+ - msr:
+ case = msr
+ - port80:
+ case = port80
+ - realmode:
+ case = realmode
+ - sieve:
+ case = sieve
+ - smptest:
+ case = smptest
+ - tsc:
+ case = tsc
+ - stringio:
+ case = stringio
+ - vmexit:
+ case = vmexit
+
+ - ioquit:
+ type = ioquit
+ background_cmd = "for i in 1 2 3 4; do (nohup dd if=/dev/urandom of=/tmp/file bs=102400 count=10000000 &) done"
+ check_cmd = ps -a |grep dd
+ login_timeout = 360
+
+ - qemu_img:
+ type = qemu_img
+ vms = ''
+ profilers = ''
+ take_regular_screendumps = no
+ variants:
+ - check:
+ subcommand = check
+ image_name_dd = dd_created_image
+ force_create_image_dd = no
+ remove_image_dd = yes
+ create_image_cmd = "dd if=/dev/zero of=%s bs=1G count=1"
+ # Test the convertion from 'dd_image_name' to specified format
+ supported_image_formats = qcow2 raw
+ - create:
+ subcommand = create
+ images += " large"
+ force_create_image_large = yes
+ image_size_large = 1G
+ image_name_large = create_large_image
+ remove_image_large = yes
+ - convert:
+ subcommand = convert
+ variants:
+ - to_qcow2:
+ dest_image_format = qcow2
+ compressed = no
+ encrypted = no
+ - to_raw:
+ dest_image_format = raw
+ - snapshot:
+ subcommand = snapshot
+ - commit:
+ subcommand = commit
+ - info:
+ subcommand = info
+ - rebase:
+ subcommand = rebase
+ rebase_mode = unsafe
+ image_name_snapshot1 = sn1
+ image_name_snapshot2 = sn2
+
+ # system_powerdown, system_reset and shutdown *must* be the last ones
+ # defined (in this order), since the effect of such tests can leave
+ # the VM on a bad state.
+ - system_powerdown: install setup unattended_install.cdrom
+ type = shutdown
+ shutdown_method = system_powerdown
+ sleep_before_powerdown = 20
+ kill_vm = yes
+
+ - system_reset: install setup unattended_install.cdrom
+ type = boot
+ reboot_method = system_reset
+ sleep_before_reset = 20
+ kill_vm_on_error = yes
+
+ - shutdown: install setup unattended_install.cdrom
+ type = shutdown
+ shutdown_method = shell
+ kill_vm = yes
+ kill_vm_gracefully = no
+ # Do not define test variants below shutdown
+
+
+# NICs
+variants:
+ - @rtl8139:
+ nic_model = rtl8139
+ - e1000:
+ nic_model = e1000
+ - virtio_net:
+ nic_model = virtio
+
+
+# Guests
+variants:
+ # Linux section
+ - @Linux:
+ no autoit iozone_windows whql
+ shutdown_command = shutdown -h now
+ reboot_command = shutdown -r now
+ status_test_command = echo $?
+ username = root
+ password = 123456
+ shell_client = ssh
+ shell_port = 22
+ file_transfer_client = scp
+ file_transfer_port = 22
+ mem_chk_cmd = dmidecode -t 17 | awk -F: '/Size/ {print $2}'
+ mem_chk_cur_cmd = grep MemTotal /proc/meminfo
+ cpu_chk_cmd = grep -c processor /proc/cpuinfo
+ unattended_install.cdrom:
+ # If you want to use floppy to hold kickstarts,
+ # comment the 3 lines below
+ cdroms += " unattended"
+ drive_index_unattended = 1
+ drive_index_cd1 = 2
+ timedrift:
+ extra_params += " -no-kvm-pit-reinjection"
+ time_command = date +'TIME: %a %m/%d/%Y %H:%M:%S.%N'
+ time_filter_re = "(?:TIME: \w\w\w )(.{19})(?:\.\d\d)"
+ time_format = "%m/%d/%Y %H:%M:%S"
+ guest_load_command = "dd if=/dev/urandom of=/dev/null"
+ guest_load_instances = 2
+ guest_load_stop_command = "killall -9 dd"
+ host_load_command = "bzip2 -c --best /dev/urandom > /dev/null"
+ host_load_instances = 8
+ ntp:
+ time_command = "ntpdate -d -q ns1.nay.redhat.com"
+ time_filter_re = "originate timestamp:.*, (.\w+\s+\d+\s+\d+\s+\d+:\d+:\d+)\.(.\d+)"
+ time_format = "%b %d %Y %H:%M:%S"
+ date:
+ time_command = date +'TIME: %a %m/%d/%Y %H:%M:%S.%N'
+ time_filter_re = "(?:TIME: \w\w\w )(.{19})(?:\.\d\d)"
+ time_format = "%m/%d/%Y %H:%M:%S"
+
+ variants:
+ - Fedora:
+ no setup
+ shell_prompt = "^\[.*\][\#\$]\s*$"
+ unattended_install.cdrom:
+ pxe_dir = "images/pxeboot"
+ pxe_image = "vmlinuz"
+ pxe_initrd = "initrd.img"
+ tftp = "images/tftpboot"
+ bootp = "/pxelinux.0"
+ extra_params += " -boot cn"
+ # You have to use ks=floppy if you want to use floppies to
+ # hold your kickstart file
+ #kernel_args = "ks=floppy nicdelay=60 console=ttyS0,115200 console=tty0"
+ kernel_args = "ks=cdrom nicdelay=60 console=ttyS0,115200 console=tty0"
+
+ variants:
+ - 8.32:
+ no setup
+ image_name = fc8-32
+ cdrom_cd1 = linux/Fedora-8-i386-DVD.iso
+ md5sum = dd6c79fddfff36d409d02242e7b10189
+ md5sum_1m = dabae451bb69fbbad0e505b25144b1f9
+ install:
+ steps = Fedora-8-i386.steps
+ unattended_install.cdrom:
+ unattended_file = unattended/Fedora-8.ks
+ tftp = images/f8-32/tftpboot
+ #floppy = images/f8-32/ks.vfd
+ cdrom_unattended = images/f8-32/ks.iso
+
+ - 8.64:
+ no setup
+ image_name = f8-64
+ cdrom_cd1 = linux/Fedora-8-x86_64-DVD.iso
+ md5sum = 2cb231a86709dec413425fd2f8bf5295
+ md5sum_1m = 145f6414e19492649a56c89f0a45e719
+ install:
+ steps = Fedora-8-64.steps
+ unattended_install.cdrom:
+ unattended_file = unattended/Fedora-8.ks
+ tftp = images/f8-64/tftpboot
+ #floppy = images/f8-64/ks.vfd
+ cdrom_unattended = images/f8-64/ks.iso
+
+ - 9.32:
+ image_name = f9-32
+ cdrom_cd1 = linux/Fedora-9-i386-DVD.iso
+ md5sum = 72601f685ea8c808c303353d8bf4d307
+ md5sum_1m = f24fa25689e5863f1b99984c6feb787f
+ install:
+ steps = Fedora-9-i386.steps
+ unattended_install.cdrom:
+ unattended_file = unattended/Fedora-9.ks
+ tftp = images/f9-32/tftpboot
+ #floppy = images/f9-32/ks.vfd
+ cdrom_unattended = images/f9-32/ks.iso
+
+ - 9.64:
+ image_name = f9-64
+ cdrom_cd1 = linux/Fedora-9-x86_64-DVD.iso
+ md5sum = 05b2ebeed273ec54d6f9ed3d61ea4c96
+ md5sum_1m = 9822ab5097e37e8fe306ef2192727db4
+ install:
+ steps = Fedora-9-64.steps
+ unattended_install.cdrom:
+ unattended_file = unattended/Fedora-9.ks
+ tftp = images/f9-64/tftpboot
+ #floppy = images/f9-64/ks.vfd
+ cdrom_unattended = images/f9-64/ks.iso
+
+ - 10.32:
+ image_name = f10-32
+ cdrom_cd1 = linux/Fedora-10-i386-DVD.iso
+ md5sum = 27e581edb392728c4a07d00d3fc5ced0
+ md5sum_1m = bd67c68bdf595e4ba7131ec702159181
+ unattended_install.cdrom:
+ unattended_file = unattended/Fedora-10.ks
+ tftp = images/f10-32/tftpboot
+ #floppy = images/f10-32/ks.vfd
+ cdrom_unattended = images/f10-32/ks.iso
+
+ - 10.64:
+ image_name = f10-64
+ cdrom_cd1 = linux/Fedora-10-x86_64-DVD.iso
+ sha1sum = f1e5ae7db6a1ba227de7294c4112385922388648
+ md5sum_1m = 732857cbf40c80c34683e874601d982c
+ unattended_install.cdrom:
+ unattended_file = unattended/Fedora-10.ks
+ tftp = images/f10-64/tftpboot
+ #floppy = images/f10-64/ks.vfd
+ cdrom_unattended = images/f10-64/ks.iso
+
+ - 11.32:
+ image_name = f11-32
+ cdrom_cd1 = linux/Fedora-11-i386-DVD.iso
+ md5sum = e3b1e2d1ba42aa4705fa5f41771b3927
+ md5sum_1m = dc8ddf90648c247339c721395aa49714
+ install:
+ steps = Fedora-11-32.steps
+ unattended_install.cdrom:
+ unattended_file = unattended/Fedora-11.ks
+ tftp = images/f11-32/tftpboot
+ #floppy = images/f11-32/ks.vfd
+ cdrom_unattended = images/f11-32/ks.iso
+
+ - 11.64:
+ image_name = f11-64
+ cdrom_cd1 = linux/Fedora-11-x86_64-DVD.iso
+ md5sum = 9d419844adeb93120215fe7505c9bce8
+ md5sum_1m = 405ee05e2387a2e4328b008d5bcbdd1e
+ unattended_install.cdrom:
+ unattended_file = unattended/Fedora-11.ks
+ tftp = images/f11-64/tftpboot
+ #floppy = images/f11-64/ks.vfd
+ cdrom_unattended = images/f11-64/ks.iso
+
+ - 12.32:
+ image_name = f12-32
+ cdrom_cd1 = linux/Fedora-12-i386-DVD.iso
+ md5sum = 2c4c1c0d09f2fbcfd8ee6a0c5542eeb2
+ md5sum_1m = eee935d7f0cf2ef03f6ddce3a2a50050
+ unattended_install.cdrom:
+ unattended_file = unattended/Fedora-12.ks
+ tftp = images/f12-32/tftpboot
+ #floppy = images/f12-32/ks.vfd
+ cdrom_unattended = images/f12-32/ks.iso
+
+ - 12.64:
+ image_name = f12-64
+ cdrom_cd1 = linux/Fedora-12-x86_64-DVD.iso
+ md5sum = 6dd31e292cc2eb1140544e9b1ba61c56
+ md5sum_1m = 514efbd7698b55ff6768c8605438bfc5
+ unattended_install.cdrom:
+ unattended_file = unattended/Fedora-12.ks
+ tftp = images/f12-64/tftpboot
+ #floppy = images/f12-64/ks.vfd
+ cdrom_unattended = images/f12-64/ks.iso
+
+ - 13.32:
+ image_name = f13-32
+ cdrom_cd1 = linux/Fedora-13-i386-DVD.iso
+ md5sum = 212fec517c2629b4b5eaf3662ac13136
+ md5sum_1m = 4e1578a6ed5a6e7cd03b8fb074030746
+ unattended_install.cdrom:
+ unattended_file = unattended/Fedora-13.ks
+ tftp = images/f13-32/tftpboot
+ #floppy = images/f13-32/ks.vfd
+ cdrom_unattended = images/f13-32/ks.iso
+
+ - 13.64:
+ image_name = f13-64
+ cdrom_cd1 = linux/Fedora-13-x86_64-DVD.iso
+ md5sum = 6fbae6379cf27f36e1f2c7827ba7dc35
+ md5sum_1m = 68821b9de4d3b5975d6634334e7f47a6
+ unattended_install.cdrom:
+ unattended_file = unattended/Fedora-13.ks
+ tftp = images/f13-64/tftpboot
+ #floppy = images/f13-64/ks.vfd
+ cdrom_unattended = images/f13-64/ks.iso
+
+
+ - DSL-4.2.5:
+ no setup dbench bonnie linux_s3
+ image_name = dsl-4.2.5
+ install:
+ steps = DSL-4.2.5.steps
+ cdrom_cd1 = linux/dsl-4.2.5.iso
+ md5sum = 61694888aede3e01229865b8e6acd4a1
+ md5sum_1m = 527f2481bd25310f2e3a6e5345ff3d12
+
+ - Mandriva-One-2007:
+ only install
+ image_name = mandriva-one-2007
+ steps = Mandriva-One-2007-32.steps
+ cdrom_cd1 = linux/mandriva-one-2007-i386.iso
+ md5sum = 7e9e183dc11b9d39f480238e4e12bb05
+ md5sum_1m = dc7865a75db665efc86d59bca7c1fe07
+
+ - OpenSUSE:
+ no setup
+ shell_prompt = ".*:.*\s#"
+ unattended_install.cdrom:
+ pxe_image = "linux"
+ pxe_initrd = "initrd"
+ tftp = "images/tftpboot"
+ bootp = "/pxelinux.0"
+ extra_params += " -boot cn"
+ # You have to use autoyast=floppy if you want to use floppies to
+ # hold your autoyast file
+ #kernel_args = "autoyast=floppy console=ttyS0,115200 console=tty0"
+ kernel_args = "autoyast=cdrom console=ttyS0,115200 console=tty0"
+ post_install_delay = 10
+
+ variants:
+ - 11.0.32:
+ image_name = openSUSE-11.0-32
+ cdrom_cd1 = linux/openSUSE-11.0-DVD-i386.iso
+ md5sum = ed6a5b3feb668866df812b1c2aed9d7f
+ md5sum_1m = c720b30557af758e69de450409516369
+ install:
+ steps = openSUSE-11.0-32.steps
+ unattended_install.cdrom:
+ unattended_file = unattended/OpenSUSE-11.xml
+ tftp = images/opensuse-11-0-32/tftpboot
+ floppy = images/opensuse-11-0-32/floppy.img
+ pxe_dir = boot/i386/loader
+
+ - 11.0.64:
+ image_name = openSUSE-11.0-64
+ cdrom_cd1 = linux/openSUSE-11.0-DVD-x86_64.iso
+ md5sum = 512c8346b0f8eb35f28c4eb96454d391
+ md5sum_1m = 661aa4cd031df2f25ea0102318a3f4d1
+ unattended_install.cdrom:
+ unattended_file = unattended/OpenSUSE-11.xml
+ tftp = images/opensuse-11-0-64/tftpboot
+ #floppy = images/opensuse-11-0-64/autoyast.vfd
+ cdrom_unattended = images/opensuse-11-0-64/autoyast.iso
+ pxe_dir = boot/x86_64/loader
+
+ - 11.1.32:
+ image_name = openSUSE-11.1-32
+ cdrom_cd1 = linux/openSUSE-11.1-DVD-i586.iso
+ md5sum = 8f51b278c0415be28c5699e465444bd3
+ md5sum_1m = b70217417468389083429f81ba7ce2bd
+ install:
+ steps=openSUSE-11.1-32-and-64.steps
+ unattended_install.cdrom:
+ unattended_file = unattended/OpenSUSE-11.xml
+ tftp = images/opensuse-11-1-32/tftpboot
+ #floppy = images/opensuse-11-1-32/autoyast.vfd
+ cdrom_unattended = images/opensuse-11-1-32/autoyast.iso
+ pxe_dir = boot/i386/loader
+
+ - 11.1.64:
+ image_name = openSUSE-11.1-64
+ cdrom_cd1 = linux/openSUSE-11.1-DVD-x86_64.iso
+ md5sum = 2afee1b8a87175e6dee2b8dbbd1ad8e8
+ md5sum_1m = 768ca32503ef92c28f2d144f2a87e4d0
+ install:
+ steps=openSUSE-11.1-32-and-64.steps
+ unattended_install.cdrom:
+ unattended_file = unattended/OpenSUSE-11.xml
+ tftp = images/opensuse-11-1-64/tftpboot
+ #floppy = images/opensuse-11-1-64/autoyast.vfd
+ cdrom_unattended = images/opensuse-11-1-64/autoyast.iso
+ pxe_dir = boot/x86_64/loader
+
+ - 11.2.32:
+ image_name = openSUSE-11.2-32
+ cdrom_cd1 = linux/openSUSE-11.2-DVD-i586.iso
+ md5sum = 295d713314a30ad017948f0d542c6d92
+ md5sum_1m = 1f8767d00acb492be5a5627c834e543f
+ unattended_install.cdrom:
+ unattended_file = unattended/OpenSUSE-11.xml
+ tftp = images/opensuse-11-2-32/tftpboot
+ #floppy = images/opensuse-11-2-32/autoyast.vfd
+ cdrom_unattended = images/opensuse-11-2-32/autoyast.iso
+ pxe_dir = boot/i386/loader
+
+ - 11.2.64:
+ image_name = openSUSE-11.2-64
+ cdrom_cd1 = linux/openSUSE-11.2-DVD-x86_64.iso
+ md5sum = 6a09295e34dc030319d040f67f4742c6
+ md5sum_1m = 11fd11d39744450b898f04c371dde2e7
+ unattended_install.cdrom:
+ unattended_file = unattended/OpenSUSE-11.xml
+ tftp = images/opensuse-11-2-64/tftpboot
+ #floppy = images/opensuse11-2-64/autoyast.vfd
+ cdrom_unattended = images/opensuse11-2-64/autoyast.iso
+ pxe_dir = boot/x86_64/loader
+
+ - 11.3.32:
+ image_name = openSUSE-11.3-32
+ cdrom_cd1 = linux/openSUSE-11.3-DVD-i586.iso
+ md5sum = 1a1da28c84e3cdad750d5cfa21c4fd17
+ md5sum_1m = 4dd26906ce6cb3946519cb0b0de4b0f8
+ unattended_install.cdrom:
+ unattended_file = unattended/OpenSUSE-11.xml
+ tftp = images/opensuse-11-3-32/tftpboot
+ #floppy = images/opensuse-11-3-32/autoyast.vfd
+ cdrom_unattended = images/opensuse-11-3-32/autoyast.iso
+ pxe_dir = boot/i386/loader
+
+ - 11.3.64:
+ image_name = openSUSE-11.3-64
+ cdrom_cd1 = linux/openSUSE-11.3-DVD-x86_64.iso
+ md5sum = adf5d2a0a03c1e3aaf102fd6a4771b87
+ md5sum_1m = e0dd12dac30d296417256775e1234c6e
+ unattended_install.cdrom:
+ unattended_file = unattended/OpenSUSE-11.xml
+ tftp = images/opensuse-11-3-64/tftpboot
+ #floppy = images/opensuse-11-3-64/autoyast.vfd
+ cdrom_unattended = images/opensuse-11-3-64/autoyast.iso
+ pxe_dir = boot/x86_64/loader
+
+ - SLES:
+ shell_prompt = "^root@.*[\#\$]\s*$|#"
+ unattended_install.cdrom:
+ pxe_image = "linux"
+ pxe_initrd = "initrd"
+ bootp = "/pxelinux.0"
+ extra_params += " -boot cn"
+ # You have to use autoyast=floppy if you want to use floppies to
+ # hold your autoyast file
+ #kernel_args = "autoyast=floppy console=ttyS0,115200 console=tty0"
+ kernel_args = "autoyast=cdrom console=ttyS0,115200 console=tty0"
+ post_install_delay = 10
+
+ variants:
+ - 11.0.32:
+ image_name = sles11-32
+ cdrom_cd1 = linux/SLES-11-DVD-i586-GM-DVD1.iso
+ md5sum = 4958d4dde2575666355c8a1c5858bab0
+ md5sum_1m = 1f19d4eff5bcead2a3e5b8b4212b6796
+ unattended_install.cdrom:
+ unattended_file = unattended/SLES-11.xml
+ tftp = images/sles-11-0-32/tftpboot
+ #floppy = images/sles-11-0-32/autoyast.vfd
+ cdrom_unattended = images/sles-11-0-32/autoyast.iso
+ pxe_dir = boot/i386/loader
+
+ - 11.0.64:
+ image_name = sles11-64
+ cdrom_cd1 = linux/SLES-11-DVD-x86_64-GM-DVD1.iso
+ md5sum = 50a2bd45cd12c3808c3ee48208e2586b
+ md5sum_1m = 00000951cab7c32e332362fc424c1054
+ unattended_install.cdrom:
+ unattended_file = unattended/SLES-11.xml
+ tftp = images/sles-11-0-64/tftpboot
+ #floppy = images/sles-11-0-64/autoyast.vfd
+ cdrom_unattended = images/sles-11-0-64/autoyast.iso
+ pxe_dir = boot/x86_64/loader
+
+ - 11.1.32:
+ image_name = sles11sp1-32
+ cdrom_cd1 = linux/SLES-11-SP1-DVD-i586-GM-DVD1.iso
+ md5sum = 0dd6886858d93501c38854552b9b1b0d
+ md5sum_1m = a626a3d50813410e3ac42794e05773bb
+ unattended_install:
+ unattended_file = unattended/SLES-11.xml
+ tftp = images/sles-11-1-32/tftpboot
+ #floppy = images/sles-11-1-32/autoyast.vfd
+ cdrom_unattended = images/sles-11-1-32/autoyast.iso
+ pxe_dir = boot/i386/loader
+
+ - 11.1.64:
+ image_name = sles11sp1-64
+ cdrom_cd1 = linux/SLES-11-SP1-DVD-x86_64-GM-DVD1.iso
+ md5sum = d2e10420f3689faa49a004b60fb396b7
+ md5sum_1m = f7f67b5da46923a9f01da8a2b6909654
+ unattended_install:
+ unattended_file = unattended/SLES-11.xml
+ tftp = images/sles-11-1-64/tftpboot
+ #floppy = images/sles-11-1-64/autoyast.vfd
+ cdrom_unattended = images/sles-11-1-64/autoyast.iso
+ pxe_dir = boot/x86_64/loader
+
+ - @Ubuntu:
+ shell_prompt = "^root@.*[\#\$]\s*$"
+
+ variants:
+ - Ubuntu-6.10-32:
+ only install
+ image_name = ubuntu-6.10-32
+ steps = Ubuntu-6.10-32.steps
+ cdrom_cd1 = linux/ubuntu-6.10-desktop-i386.iso
+ md5sum = 17fb825641571ce5888a718329efd016
+ md5sum_1m = 7531d0a84e7451d17c5d976f1c3f8509
+
+ - Ubuntu-8.04-32:
+ skip = yes
+ image_name = ubuntu-8.04-32
+ install:
+ steps = Ubuntu-8.04-32.steps
+ cdrom_cd1 = linux/ubuntu-8.04.1-desktop-i386.iso
+ setup:
+ steps = Ubuntu-8.04-32-setupssh.steps
+
+ - Ubuntu-8.10-server-32:
+ image_name = ubuntu-8.10-server-32
+ install:
+ steps = Ubuntu-8.10-server-32.steps
+ cdrom_cd1 = linux/ubuntu-8.10-server-i386.iso
+ md5sum = a2ec9975a91e1228c8292ed9799dc302
+ md5sum_1m = ea493eb8ef7722ead693492fd9f8a13f
+ setup:
+ steps = Ubuntu-8.10-server-32-gcc.steps
+
+ - RHEL:
+ no setup
+ shell_prompt = "^\[.*\][\#\$]\s*$"
+ nic_hotplug:
+ modprobe_module = acpiphp
+ block_hotplug:
+ modprobe_module = acpiphp
+ unattended_install.cdrom:
+ pxe_dir = "images/pxeboot"
+ pxe_image = "vmlinuz"
+ pxe_initrd = "initrd.img"
+ tftp = "images/tftpboot"
+ bootp = "/pxelinux.0"
+ extra_params += " -boot cn"
+ # You have to use ks=floppy if you want to use floppies to
+ # hold your kickstart file
+ #kernel_args = "ks=floppy nicdelay=60 console=ttyS0,115200 console=tty0"
+ kernel_args = "ks=cdrom nicdelay=60 console=ttyS0,115200 console=tty0"
+
+ variants:
+ - 3.9.i386:
+ no setup autotest linux_s3 guest_s4 shutdown
+ image_name = rhel3-32
+ mem_chk_cmd = dmidecode | awk -F: '/Maximum Capacity/ {print $2}'
+ cdrom_cd1 = linux/RHEL-3.9-i386-DVD.iso
+ md5sum = ddd11a1cb104119039b0fa05df6d52b8
+ md5sum_1m = 5f10c9417c7b8372b3456c1b5f3f9ed0
+ install:
+ steps=RHEL-3.9-i386.steps
+ unattended_install.cdrom:
+ unattended_file = unattended/RHEL-3-series.ks
+ tftp = images/rhel39-32/tftpboot
+ #floppy = images/rhel39-32/ks.vfd
+ cdrom_unattended = images/rhel39-32/ks.iso
+
+ - 3.9.x86_64:
+ no setup autotest linux_s3 guest_s4 shutdown
+ image_name = rhel3-64
+ mem_chk_cmd = dmidecode | awk -F: '/Maximum Capacity/ {print $2}'
+ cdrom_cd1 = linux/RHEL-3.9-x86_64-DVD.iso
+ md5sum = bf4635e4a4bd3b43838e72bc8c329d55
+ md5sum_1m = 18ecd37b639109f1b2af05cfb57dfeaf
+ install:
+ steps=RHEL-3.9-x86_64.steps
+ unattended_install.cdrom:
+ unattended_file = unattended/RHEL-3-series.ks
+ tftp = images/rhel39-64/tftpboot
+ #floppy = images/rhel39-64/ks.vfd
+ cdrom_unattended = images/rhel39-64/ks.iso
+
+ - 4.7.i386:
+ no setup autotest
+ image_name = rhel4-32
+ cdrom_cd1 = linux/RHEL-4.7-i386-DVD.iso
+ md5sum = ee5092653732a88ddbaf8eef2484c500
+ md5sum_1m = 127081cbed825d7232331a2083975528
+ install:
+ steps = RHEL-4.7-i386.steps
+ unattended_install.cdrom:
+ unattended_file = unattended/RHEL-4-series.ks
+ tftp = images/rhel47-32/tftpboot
+ #floppy = images/rhel47-32/ks.vfd
+ cdrom_unattended = images/rhel47-32/ks.iso
+
+ - 4.7.x86_64:
+ no setup autotest
+ image_name = rhel4-64
+ cdrom_cd1 = linux/RHEL-4.7-x86_64-DVD.iso
+ md5sum = ea9dae16dd86f7d94092d0e672333292
+ md5sum_1m = 58fa63eaee68e269f4cb1d2edf479792
+ install:
+ steps = RHEL-4.7-x86_64.steps
+ unattended_install.cdrom:
+ unattended_file = unattended/RHEL-4-series.ks
+ tftp = images/rhel47-64/tftpboot
+ #floppy = images/rhel47-64/ks.vfd
+ cdrom_unattended = images/rhel47-64/ks.iso
+
+ - 4.8.i386:
+ no setup autotest
+ image_name = rhel4-32
+ cdrom_cd1 = linux/RHEL-4.8-i386-DVD.iso
+ md5sum = b024f0af5079539d3ef51f71fed0b194
+ md5sum_1m = 969c197402b9058f28a278c1f807d15b
+ unattended_install.cdrom:
+ unattended_file = unattended/RHEL-4-series.ks
+ tftp = images/rhel48-32/tftpboot
+ #floppy = images/rhel48-32/ks.vfd
+ cdrom_unattended = images/rhel48-32/ks.iso
+
+ - 4.8.x86_64:
+ no setup autotest
+ image_name = rhel4-64
+ cdrom_cd1 = linux/RHEL-4.8-x86_64-DVD.iso
+ md5sum = 696bc877b0200cc942626673fcc3fc09
+ md5sum_1m = b11ac0ef7fd345ad712966972db63886
+ unattended_install.cdrom:
+ unattended_file = unattended/RHEL-4-series.ks
+ tftp = images/rhel48-64/tftpboot
+ #floppy = images/rhel48-64/ks.vfd
+ cdrom_unattended = images/rhel48-64/ks.iso
+
+ - 5.3.i386:
+ no setup
+ image_name = rhel5-32
+ cdrom_cd1 = linux/RHEL-5.3-i386-DVD.iso
+ md5sum = 371c62851611fd32ead440df6f24a296
+ md5sum_1m = 242318dd44152210f6ff6cdda1bfbf51
+ install:
+ steps = RHEL-5.3-i386.steps
+ unattended_install.cdrom:
+ unattended_file = unattended/RHEL-5-series.ks
+ tftp = images/rhel53-32/tftpboot
+ #floppy = images/rhel53-32/ks.vfd
+ cdrom_unattended = images/rhel53-32/ks.iso
+
+ - 5.3.x86_64:
+ no setup
+ image_name = rhel5-64
+ cdrom_cd1 = linux/RHEL-5.3-x86_64-DVD.iso
+ md5sum = c5ed6b284410f4d8212cafc78fd7a8c5
+ md5sum_1m = b999f437583098ea5bbd56fb1de1d011
+ install:
+ steps=RHEL-5.3-x86_64.steps
+ unattended_install.cdrom:
+ unattended_file = unattended/RHEL-5-series.ks
+ tftp = images/rhel53-64/tftpboot
+ #floppy = images/rhel53-64/ks.vfd
+ cdrom_unattended = images/rhel53-64/ks.iso
+
+ - 5.4.i386:
+ no setup
+ image_name = rhel5-32
+ cdrom_cd1 = linux/RHEL-5.4-i386-DVD.iso
+ md5sum = 7a12ec6599527e4f3d1790b51eadbfed
+ md5sum_1m = 0dbeb8f58d213752d8c029e8601abfbb
+ unattended_install.cdrom:
+ unattended_file = unattended/RHEL-5-series.ks
+ tftp = images/rhel54-32/tftpboot
+ #floppy = images/rhel54-32/ks.vfd
+ cdrom_unattended = images/rhel54-32/ks.iso
+
+ - 5.4.x86_64:
+ no setup
+ image_name = rhel5-64
+ cdrom_cd1 = linux/RHEL-5.4-x86_64-DVD.iso
+ md5sum = 04fe3c10202402d7b389528d2bad0210
+ md5sum_1m = 3e74112003e88a966754849dbb8f5c3f
+ unattended_install.cdrom:
+ unattended_file = unattended/RHEL-5-series.ks
+ tftp = images/rhel54-64/tftpboot
+ #floppy = images/rhel54-64/ks.vfd
+ cdrom_unattended = images/rhel54-64/ks.iso
+
+ - 5.5.i386:
+ no setup
+ image_name = rhel5-32
+ cdrom_cd1 = linux/RHEL-5.5-i386-DVD.iso
+ md5sum = 148858b157f275d9153797efddfc83c3
+ md5sum_1m = 2502cc7ddb9d0684fe08c4a83d247902
+ unattended_install.cdrom:
+ unattended_file = unattended/RHEL-5-series.ks
+ tftp = images/rhel55-32/tftpboot
+ #floppy = images/rhel55-32/ks.vfd
+ cdrom_unattended = images/rhel55-32/ks.iso
+
+ - 5.5.x86_64:
+ no setup
+ image_name = rhel5-64
+ cdrom_cd1 = linux/RHEL-5.5-x86_64-DVD.iso
+ md5sum = f3119f883257ef9041234feda2f1cad0
+ md5sum_1m = a744084a03f6a08627f71527fc107a1e
+ unattended_install.cdrom:
+ unattended_file = unattended/RHEL-5-series.ks
+ tftp = images/rhel55-64/tftpboot
+ #floppy = images/rhel55-64/ks.vfd
+ cdrom_unattended = images/rhel55-64/ks.iso
+
+
+ # Windows section
+ - @Windows:
+ no autotest linux_s3 vlan_tag ioquit unattended_install.(url|nfs|remote_ks)
+ shutdown_command = shutdown /s /f /t 0
+ reboot_command = shutdown /r /f /t 0
+ status_test_command = echo %errorlevel%
+ shell_prompt = "^\w:\\.*>\s*$"
+ username = Administrator
+ password = 123456
+ shell_linesep = "\r\n"
+ shell_client = nc
+ shell_port = 10022
+ file_transfer_client = rss
+ file_transfer_port = 10023
+ redirs += " file_transfer"
+ guest_port_remote_shell = 10022
+ guest_port_file_transfer = 10023
+
+ # This ISO will be used for all tests except install:
+ cdrom_cd1 = windows/winutils.iso
+
+ cpu_chk_cmd = echo %NUMBER_OF_PROCESSORS%
+ mem_chk_cmd = wmic memphysical
+ mem_chk_cur_cmd = wmic memphysical
+
+ unattended_install.cdrom:
+ timeout = 7200
+ finish_program = deps/finish.exe
+ cdroms += " winutils"
+ cdrom_winutils = windows/winutils.iso
+ drive_index_winutils = 2
+ # Turn install_virtio = yes if you want to install the
+ # Windows virtio drivers. It might be a lot of setup though :)
+ #install_virtio = no
+ #cdroms += " virtio"
+ #cdrom_virtio = windows/virtio-win.iso
+ #drive_index_virtio = 3
+ #virtio_floppy = /usr/share/virtio-win/virtio-drivers.vfd
+ migrate:
+ migration_test_command = ver && vol
+ migration_bg_command = start ping -t localhost
+ migration_bg_check_command = tasklist | find /I "ping.exe"
+ migration_bg_kill_command = taskkill /IM ping.exe /F
+ stress_boot:
+ alive_test_cmd = systeminfo
+ timedrift:
+ # Timedrift compensation on Windows with hpet does not happen
+ disable_hpet = yes
+ extra_params += " -rtc-td-hack"
+ time_command = "echo TIME: %date% %time%"
+ time_filter_re = "(?<=TIME: \w\w\w ).{19}(?=\.\d\d)"
+ time_format = "%m/%d/%Y %H:%M:%S"
+ # For this to work, the cdrom at d: should contain vlc (d:\vlc\vlc.exe) and a video (d:\ED_1024.avi)
+ guest_load_command = 'cmd /c "d:\vlc\vlc -f --loop --no-qt-privacy-ask --no-qt-system-tray d:\ED_1024.avi"'
+ # Alternative guest load:
+ #guest_load_command = "(dir /s && dir /s && dir /s && dir /s) > nul"
+ guest_load_stop_command = "taskkill /F /IM vlc.exe"
+ guest_load_instances = 2
+ host_load_command = "bzip2 -c --best /dev/urandom > /dev/null"
+ # Alternative host load:
+ #host_load_command = "dd if=/dev/urandom of=/dev/null"
+ host_load_instances = 8
+ ntp:
+ time_command = "w32tm /stripchart /samples:1 /computer:ns1.nay.redhat.com"
+ time_filter_re = "\d+/\d+/\d+\s\d+:\d+:\d+ [AP]M"
+ time_format = "%m/%d/%Y %H:%M:%S"
+ date:
+ time_command = "echo TIME: %date% %time%"
+ time_filter_re = "(?<=TIME: \w\w\w ).{19}(?=\.\d\d)"
+ time_format = "%m/%d/%Y %H:%M:%S"
+
+ guest_s4:
+ check_s4_support_cmd = powercfg /hibernate on
+ test_s4_cmd = start ping -t localhost
+ check_s4_cmd = tasklist | find /I "ping.exe"
+ set_s4_cmd = rundll32.exe PowrProf.dll, SetSuspendState
+ kill_test_s4_cmd = taskkill /IM ping.exe /F
+ services_up_timeout = 30
+ nic_hotplug:
+ reference_cmd = ipconfig /all
+ find_pci_cmd = ipconfig /all | find "Description"
+ wait_secs_for_hook_up = 10
+ nic_e1000:
+ match_string = "Intel(R) PRO/1000 MT Network Connection"
+ nic_virtio:
+ match_string = "VirtIO Ethernet"
+ block_hotplug:
+ wait_secs_for_hook_up = 10
+ reference_cmd = wmic diskdrive list brief
+ find_pci_cmd = wmic diskdrive list brief
+ pci_test_cmd = echo select disk 1 > dt && echo online >> dt && echo detail disk >> dt && echo exit >> dt && diskpart /s dt
+ physical_resources_check:
+ catch_uuid_cmd =
+
+ variants:
+ - Win2000:
+ no reboot whql
+ image_name = win2000-32
+ kill_vm_gracefully = no
+ install:
+ steps = Win2000-32.steps
+ cdrom_cd1 = windows/Windows2000_sp4.iso
+ md5sum = dda6039f3a9173f0f6bfae40f5efdfea
+ md5sum_1m = dd28fba196d366d56fe774bd93df5527
+ user = user
+ setup:
+ steps = Win2000-32-rss.steps
+ unattended_install.cdrom:
+ cdrom_cd1 = windows/Windows2000_sp4.iso
+ md5sum = dda6039f3a9173f0f6bfae40f5efdfea
+ md5sum_1m = dd28fba196d366d56fe774bd93df5527
+ unattended_file = unattended/win2000-32.sif
+ floppy = images/win2000-32/answer.vfd
+
+ - WinXP:
+ image_name = winXP
+ variants:
+ - 32:
+ image_name += -32
+ install:
+ cdrom_cd1 = windows/WindowsXP-sp2-vlk.iso
+ md5sum = 743450644b1d9fe97b3cf379e22dceb0
+ md5sum_1m = b473bf75af2d1269fec8958cf0202bfd
+ user = user
+ steps = WinXP-32.steps
+ setup:
+ steps = WinXP-32-rss.steps
+ unattended_install.cdrom:
+ cdrom_cd1 = windows/WindowsXP-sp2-vlk.iso
+ md5sum = 743450644b1d9fe97b3cf379e22dceb0
+ md5sum_1m = b473bf75af2d1269fec8958cf0202bfd
+ unattended_file = unattended/winxp32.sif
+ floppy = images/winXP-32/answer.vfd
+ # Uncomment virtio_network_installer_path line if
+ # you have an msi installer, also make sure the
+ # paths are properly set in your virtio driver iso.
+ virtio_oemsetup_id = WXP32
+ virtio_network_path = 'F:\NetKVM\xp\x86'
+ #virtio_network_installer_path = 'F:\RHEV-Network32.msi'
+ whql_submission:
+ desc_path_desc1 = $\WDK\Logo Type\Device Logo\Windows XP
+ desc_path_desc2 = $\WDK\Logo Type\Systems Logo\Windows XP
+ dd_data_logoarch = X86
+ dd_data_logoos = Windows XP
+ dd_data_whqlos = Windows XP
+ dd_data_whqlqual = Basic
+
+ - 64:
+ image_name += -64
+ install:
+ cdrom_cd1 = windows/WindowsXP-64.iso
+ md5sum = 8d3f007ec9c2060cec8a50ee7d7dc512
+ md5sum_1m = e812363ff427effc512b7801ee70e513
+ user = user
+ steps = WinXP-64.steps
+ setup:
+ steps = WinXP-64-rss.steps
+ unattended_install.cdrom:
+ cdrom_cd1 = windows/WindowsXP-64.iso
+ md5sum = 8d3f007ec9c2060cec8a50ee7d7dc512
+ md5sum_1m = e812363ff427effc512b7801ee70e513
+ unattended_file = unattended/winxp64.sif
+ floppy = images/winXP-64/answer.vfd
+ # Uncomment virtio_network_installer_path line if
+ # you have an msi installer, also make sure the
+ # paths are properly set in your virtio driver iso.
+ virtio_oemsetup_id = WNET64
+ virtio_network_path = 'F:\NetKVM\xp\amd64'
+ #virtio_network_installer_path = 'F:\RHEV-Network64.msi'
+ whql_submission:
+ desc_path_desc1 = $\WDK\Logo Type\Device Logo\Windows XP
+ desc_path_desc2 = $\WDK\Logo Type\Systems Logo\Windows XP
+ dd_data_logoarch = AMD64
+ dd_data_logoos = Windows XP 64-Bit Edition Version 2003
+ dd_data_whqlos = Windows XP x64
+ dd_data_whqlqual = Basic
+
+ - Win2003:
+ image_name = win2003
+ image_size = 20G
+
+ variants:
+ - 32:
+ image_name += -32
+ install:
+ cdrom_cd1 = windows/Windows2003_r2_VLK.iso
+ md5sum = 03e921e9b4214773c21a39f5c3f42ef7
+ md5sum_1m = 37c2fdec15ac4ec16aa10fdfdb338aa3
+ user = user
+ steps = Win2003-32.steps
+ setup:
+ steps = Win2003-32-rss.steps
+ unattended_install.cdrom:
+ cdrom_cd1 = windows/Windows2003_r2_VLK.iso
+ md5sum = 03e921e9b4214773c21a39f5c3f42ef7
+ md5sum_1m = 37c2fdec15ac4ec16aa10fdfdb338aa3
+ unattended_file = unattended/win2003-32.sif
+ floppy = images/win2003-32/answer.vfd
+ # Uncomment virtio_network_installer_path line if
+ # you have an msi installer, also make sure the
+ # paths are properly set in your virtio driver iso.
+ virtio_oemsetup_id = WNET32
+ virtio_network_path = 'F:\NetKVM\2k3\x86'
+ #virtio_network_installer_path = 'F:\RHEV-Network32.msi'
+ whql_submission:
+ desc_path_desc1 = $\WDK\Logo Type\Device Logo\Windows Server 2003
+ dd_data_logoarch = X86
+ dd_data_logoos = Windows Server 2003
+ dd_data_whqlos = Windows Server 2003
+ dd_data_whqlqual = Basic
+
+ - 64:
+ image_name += -64
+ install:
+ cdrom_cd1 = windows/Windows2003-x64.iso
+ md5sum = 5703f87c9fd77d28c05ffadd3354dbbd
+ md5sum_1m = 439393c384116aa09e08a0ad047dcea8
+ user = user
+ steps = Win2003-64.steps
+ setup:
+ steps = Win2003-64-rss.steps
+ unattended_install.cdrom:
+ cdrom_cd1 = windows/Windows2003-x64.iso
+ md5sum = 5703f87c9fd77d28c05ffadd3354dbbd
+ md5sum_1m = 439393c384116aa09e08a0ad047dcea8
+ unattended_file = unattended/win2003-64.sif
+ floppy = images/win2003-64/answer.vfd
+ # Uncomment virtio_network_installer_path line if
+ # you have an msi installer, also make sure the
+ # paths are properly set in your virtio driver iso.
+ virtio_oemsetup_id = WNET64
+ virtio_network_path = 'F:\NetKVM\2k3\amd64'
+ #virtio_network_installer_path = 'F:\RHEV-Network64.msi'
+
+ whql_submission:
+ desc_path_desc1 = $\WDK\Logo Type\Device Logo\Windows Server 2003
+ dd_data_logoarch = AMD64
+ dd_data_logoos = Windows Server 2003
+ dd_data_whqlos = Windows Server 2003 x64
+ dd_data_whqlqual = Basic
+
+ - WinVista:
+ image_name = winvista
+ image_size = 20G
+ whql_submission:
+ desc_path_desc1 = $\WDK\Logo Type\Device Logo\Vista Client\Device Premium
+ desc_path_desc2 = $\WDK\Logo Type\Device Logo\Vista Client\Device Standard
+ desc_path_desc3 = $\WDK\Logo Type\Device Logo\Vista Client
+
+ variants:
+ - 32:
+ whql_submission:
+ dd_data_logoarch = X86
+ dd_data_logoos = Windows Vista
+ dd_data_whqlos = Windows Vista Client
+ dd_data_whqlqual = Premium
+ variants:
+ - sp1:
+ image_name += -sp1-32
+ install:
+ cdrom_cd1 = windows/WindowsVista-32.iso
+ md5sum = 1008f323d5170c8e614e52ccb85c0491
+ md5sum_1m = c724e9695da483bc0fd59e426eaefc72
+ steps = Win-Vista-32.steps
+ setup:
+ steps = WinVista-32-rss.steps
+ unattended_install.cdrom:
+ cdrom_cd1 = windows/WindowsVista-32.iso
+ md5sum = 1008f323d5170c8e614e52ccb85c0491
+ md5sum_1m = c724e9695da483bc0fd59e426eaefc72
+ unattended_file = unattended/winvista-32-autounattend.xml
+ floppy = images/winvista-sp1-32/answer.vfd
+ # Uncomment virtio_network_installer_path line if
+ # you have an msi installer, also make sure the
+ # paths are properly set in your virtio driver iso.
+ virtio_storage_path = 'F:\viostor\w7\x86'
+ virtio_network_path = 'F:\NetKVM\w7\x86'
+ #virtio_network_installer_path = 'F:\RHEV-Network32.msi'
+
+ - sp2:
+ image_name += -sp2-32
+ unattended_install.cdrom:
+ cdrom_cd1 = windows/en_windows_vista_with_sp2_x86_dvd_342266.iso
+ md5sum = 19ca90a425667812977bab6f4ce24175
+ md5sum_1m = 89c15020e0e6125be19acf7a2e5dc614
+ sha1sum = 25ad9a776503e6a583bec07879dbcc5dfd20cd6e
+ sha1sum_1m = a2afa4cffdc1c362dbf9e62942337f4f875a22cf
+ unattended_file = unattended/winvista-32-autounattend.xml
+ floppy = images/winvista-sp2-32/answer.vfd
+ # Uncomment virtio_network_installer_path line if
+ # you have an msi installer, also make sure the
+ # paths are properly set in your virtio driver iso.
+ virtio_storage_path = 'F:\viostor\w7\x86'
+ virtio_network_path = 'F:\NetKVM\w7\x86'
+ #virtio_network_installer_path = 'F:\RHEV-Network32.msi'
+
+ - 64:
+ whql_submission:
+ dd_data_logoarch = AMD64
+ dd_data_logoos = Windows Vista
+ dd_data_whqlos = Windows Vista Client x64
+ dd_data_whqlqual = Premium
+ variants:
+ - sp1:
+ image_name += -sp1-64
+ install:
+ cdrom_cd1 = windows/WindowsVista-64.iso
+ md5sum = 11e2010d857fffc47813295e6be6d58d
+ md5sum_1m = 0947bcd5390546139e25f25217d6f165
+ steps = Win-Vista-64.steps
+ setup:
+ steps = WinVista-64-rss.steps
+ unattended_install.cdrom:
+ cdrom_cd1 = windows/WindowsVista-64.iso
+ md5sum = 11e2010d857fffc47813295e6be6d58d
+ md5sum_1m = 0947bcd5390546139e25f25217d6f165
+ unattended_file = unattended/winvista-64-autounattend.xml
+ floppy = images/winvista-sp1-64/answer.vfd
+ # Uncomment virtio_network_installer_path line if
+ # you have an msi installer, also make sure the
+ # paths are properly set in your virtio driver iso.
+ virtio_storage_path = 'F:\viostor\w7\amd64'
+ virtio_network_path = 'F:\NetKVM\w7\amd64'
+ #virtio_network_installer_path = 'F:\RHEV-Network64.msi'
+ - sp2:
+ image_name += -sp2-64
+ unattended_install.cdrom:
+ cdrom_cd1 = windows/en_windows_vista_sp2_x64_dvd_342267.iso
+ md5sum = a1c024d7abaf34bac3368e88efbc2574
+ md5sum_1m = 3d84911a80f3df71d1026f7adedc2181
+ sha1sum = aaee3c04533899f9f8c4ae0c4250ef5fafbe29a3
+ sha1sum_1m = 1fd21bd3ce2a4de8856c7b8fe6fdf80260f6d1c7
+ unattended_file = unattended/winvista-64-autounattend.xml
+ floppy = images/winvista-sp2-64/answer.vfd
+ # Uncomment virtio_network_installer_path line if
+ # you have an msi installer, also make sure the
+ # paths are properly set in your virtio driver iso.
+ virtio_storage_path = 'F:\viostor\w7\amd64'
+ virtio_network_path = 'F:\NetKVM\w7\amd64'
+ #virtio_network_installer_path = 'F:\RHEV-Network64.msi'
+
+ - Win2008:
+ no whql
+ image_name = win2008
+ image_size = 20G
+
+ variants:
+ - 32:
+ variants:
+ - sp1:
+ image_name += -sp1-32
+ install:
+ cdrom_cd1 = windows/Windows2008-x86.iso
+ #en_windows_server_2008_datacenter_enterprise_standard_x86_dvd_X14-26710.iso
+ md5sum=0bfca49f0164de0a8eba236ced47007d
+ md5sum_1m=07d7f5006393f74dc76e6e2e943e2440
+ sha1sum = 6ca018ff96f1e9b2b310a36546b6fded99a421e6
+ steps = Win2008-32.steps
+ setup:
+ steps = Win2008-32-rss.steps
+ unattended_install.cdrom:
+ cdrom_cd1 = windows/Windows2008-x86.iso
+ md5sum=0bfca49f0164de0a8eba236ced47007d
+ md5sum_1m=07d7f5006393f74dc76e6e2e943e2440
+ unattended_file = unattended/win2008-32-autounattend.xml
+ floppy = images/win2008-sp1-32/answer.vfd
+ # Uncomment virtio_network_installer_path line if
+ # you have an msi installer, also make sure the
+ # paths are properly set in your virtio driver iso.
+ virtio_storage_path = 'F:\viostor\2k8\x86'
+ virtio_network_path = 'F:\NetKVM\2k8\x86'
+ #virtio_network_installer_path = 'F:\RHEV-Network32.msi'
+
+ - sp2:
+ image_name += -sp2-32
+ unattended_install.cdrom:
+ cdrom_cd1 = windows/en_windows_server_2008_datacenter_enterprise_standard_sp2_x86_dvd_342333.iso
+ md5sum = b9201aeb6eef04a3c573d036a8780bdf
+ md5sum_1m = b7a9d42e55ea1e85105a3a6ad4da8e04
+ sha1sum = 49d0d6917c1256fe81048d414fa473bbc76a8724
+ sha1sum_1m = 9662ff7ed715faa00407e4befc484ea52a92a9fb
+ unattended_file = unattended/win2008-32-autounattend.xml
+ floppy = images/win2008-sp2-32/answer.vfd
+ # Uncomment virtio_network_installer_path line if
+ # you have an msi installer, also make sure the
+ # paths are properly set in your virtio driver iso.
+ virtio_storage_path = 'F:\viostor\2k8\x86'
+ virtio_network_path = 'F:\NetKVM\2k8\x86'
+ #virtio_network_installer_path = 'F:\RHEV-Network32.msi'
+
+ - 64:
+ variants:
+ -sp1:
+ image_name += -sp1-64
+ install:
+ steps = Win2008-64.steps
+ cdrom_cd1 = windows/Windows2008-x64.iso
+ #en_windows_server_2008_datacenter_enterprise_standard_x64_dvd_X14-26714.iso
+ md5sum=27c58cdb3d620f28c36333a5552f271c
+ md5sum_1m=efdcc11d485a1ef9afa739cb8e0ca766
+ sha1sum = bd000374709f67e9358814db6ec8f0ddaaa16f70
+ passwd = 1q2w3eP
+ setup:
+ steps = Win2008-64-rss.steps
+ unattended_install.cdrom:
+ cdrom_cd1 = windows/Windows2008-x64.iso
+ md5sum=27c58cdb3d620f28c36333a5552f271c
+ md5sum_1m=efdcc11d485a1ef9afa739cb8e0ca766
+ unattended_file = unattended/win2008-64-autounattend.xml
+ floppy = images/win2008-sp1-64/answer.vfd
+ # Uncomment virtio_network_installer_path line if
+ # you have an msi installer, also make sure the
+ # paths are properly set in your virtio driver iso.
+ virtio_storage_path = 'F:\viostor\2k8\amd64'
+ virtio_network_path = 'F:\NetKVM\2k8\amd64'
+ #virtio_network_installer_path = 'F:\RHEV-Network64.msi'
+
+ - sp2:
+ image_name += -sp2-64
+ unattended_install.cdrom:
+ cdrom_cd1 = windows/en_windows_server_2008_datacenter_enterprise_standard_sp2_x64_dvd_342336.iso
+ md5sum = e94943ef484035b3288d8db69599a6b5
+ md5sum_1m = ee55506823d0efffb5532ddd88a8e47b
+ sha1sum = 34c7d726c57b0f8b19ba3b40d1b4044c15fc2029
+ sha1sum_1m = 8fe08b03e3531906855a60a78020ac9577dff5ba
+ unattended_file = unattended/win2008-64-autounattend.xml
+ floppy = images/win2008-sp2-64/answer.vfd
+ # Uncomment virtio_network_installer_path line if
+ # you have an msi installer, also make sure the
+ # paths are properly set in your virtio driver iso.
+ virtio_storage_path = 'F:\viostor\2k8\amd64'
+ virtio_network_path = 'F:\NetKVM\2k8\amd64'
+ #virtio_network_installer_path = 'F:\RHEV-Network64.msi'
+
+ - r2:
+ image_name += -r2-64
+ unattended_install.cdrom:
+ cdrom_cd1 = windows/en_windows_server_2008_r2_standard_enterprise_datacenter_and_web_x64_dvd_x15-59754.iso
+ md5sum = 0207ef392c60efdda92071b0559ca0f9
+ md5sum_1m = a5a22ce25008bd7109f6d830d627e3ed
+ sha1sum = ad855ea913aaec3f1d0e1833c1aef7a0de326b0a
+ sha1sum_1m = 9194a3aabae25b36e5f73cad001314b2c8d07d14
+ unattended_file = unattended/win2008-r2-autounattend.xml
+ floppy = images/win2008-r2-64/answer.vfd
+ # Uncomment virtio_network_installer_path line if
+ # you have an msi installer, also make sure the
+ # paths are properly set in your virtio driver iso.
+ virtio_storage_path = 'F:\viostor\2k8\amd64'
+ virtio_network_path = 'F:\NetKVM\2k8\amd64'
+ #virtio_network_installer_path = 'F:\RHEV-Network64.msi'
+
+ - Win7:
+ image_name = win7
+ image_size = 20G
+ whql_submission:
+ desc_path_desc1 = $\WDK\Logo Type\Device Logo\Windows 7 Client\Logo
+ desc_path_desc2 = $\WDK\Logo Type\Device Logo\Windows 7 Client
+ device_data += " adq"
+ dd_name_adq = AdditionalQualificationGroup
+ dd_data_adq = Windows 7
+
+ variants:
+ - 32:
+ image_name += -32
+ unattended_install.cdrom:
+ cdrom_cd1 = windows/en_windows_7_ultimate_x86_dvd_x15-65921.iso
+ md5sum = d0b8b407e8a3d4b75ee9c10147266b89
+ md5sum_1m = 2b0c2c22b1ae95065db08686bf83af93
+ sha1sum = 5395dc4b38f7bdb1e005ff414deedfdb16dbf610
+ sha1sum_1m = 9f9c3780aebeb28a9bf22188eed6bc15475dc9c5
+ unattended_file = unattended/win7-32-autounattend.xml
+ floppy = images/win7-32/answer.vfd
+ # Uncomment virtio_network_installer_path line if
+ # you have an msi installer, also make sure the
+ # paths are properly set in your virtio driver iso.
+ virtio_storage_path = 'F:\viostor\w7\x86'
+ virtio_network_path = 'F:\NetKVM\w7\x86'
+ #virtio_network_installer_path = 'F:\RHEV-Network32.msi'
+ whql_submission:
+ dd_data_logoarch = X86
+ dd_data_logoos = Windows 7
+ dd_data_whqlos = Windows 7 Client
+ dd_data_whqlqual = Logo
+
+ - 64:
+ image_name += -64
+ install:
+ cdrom_cd1 = windows/en_windows_7_ultimate_x64_dvd_x15-65922.iso
+ md5sum=f43d22e4fb07bf617d573acd8785c028
+ md5sum_1m=b44d8cf99dbed2a5cb02765db8dfd48f
+ passwd = 1q2w3eP
+ steps = Win7-64.steps
+ setup:
+ steps = Win7-64-rss.steps
+ unattended_install.cdrom:
+ cdrom_cd1 = windows/en_windows_7_ultimate_x64_dvd_x15-65922.iso
+ md5sum = f43d22e4fb07bf617d573acd8785c028
+ md5sum_1m = b44d8cf99dbed2a5cb02765db8dfd48f
+ sha1sum = 326327cc2ff9f05379f5058c41be6bc5e004baa7
+ sha1sum_1m = 4a3903bd5157de54f0702e5263e0a683c5775515
+ unattended_file = unattended/win7-64-autounattend.xml
+ floppy = images/win7-64/answer.vfd
+ # Uncomment virtio_network_installer_path line if
+ # you have an msi installer, also make sure the
+ # paths are properly set in your virtio driver iso.
+ virtio_storage_path = 'F:\viostor\w7\amd64'
+ virtio_network_path = 'F:\NetKVM\w7\amd64'
+ #virtio_network_installer_path = 'F:\RHEV-Network64.msi'
+ whql_submission:
+ dd_data_logoarch = AMD64
+ dd_data_logoos = Windows 7
+ dd_data_whqlos = Windows 7 Client x64
+ dd_data_whqlqual = Logo
+
+
+ # Unix/BSD section
+ - @Unix:
+ only install
+ kill_vm = yes
+ kill_vm_gracefully = no
+ kill_vm_timeout = 0
+
+ variants:
+ - NetBSD-1.6.2:
+ image_name = NetBSD-1.6.2
+ image_size = 4G
+ steps = NetBSD-1.6.2.steps
+ cdrom_cd1 = bsd/netbsd-1.6.2-i386.iso
+ md5sum=72eb680300f77d529bfbc880ba8208f3
+ md5sum_1m=f1a9e1e825c90adfb1be35c6177bd9ac
+
+ - OpenBSD-4.1:
+ image_name = OpenBSD-4.1
+ steps = OpenBSD-4.1-32.steps
+ cdrom_cd1 = unix/openbsd41-i386-07-05-06.iso
+ md5sum = 984790db10ebdd6fc7a9cf97abc7c967
+ md5sum_1m = 8fc234b4b0ecfe56843a32ac1d26ed55
+
+ # Live CD section
+ - @livecd:
+ only install
+ kill_vm = yes
+ kill_vm_gracefully = no
+ kill_vm_timeout = 0
+
+ variants:
+ - Belenix:
+ steps = Belenix-0.7.1.steps
+ cdrom_cd1 = unix/belenix_0.7.1.iso
+ md5sum = 29cea6160cf5250de138e2820e53e342
+ md5sum_1m = 427bbef1b85d6d051799b825d686ae94
+
+ - Slax:
+ steps = Slax-6.0.7.steps
+ cdrom_cd1 = linux/slax-6.0.7.iso
+ md5sum = cde0ecba3c8289d786e12c44666ded6e
+ md5sum_1m = ddf02bc7444f22d1160a6e5a8fc8723f
+
+ - FreeSBIE-2.0.1:
+ steps = FreeSBIE-2.0.1.steps
+ cdrom_cd1 = unix/FreeSBIE-2.0.1-RELEASE.iso
+ md5sum = b2f680d27c21bbfaf4fb90dce090a118
+ md5sum_1m = 4d81ee7fe0101b0a14225963bfff60c1
+
+ - memtest:
+ mem = 128
+ steps = memtest86+.steps
+ cdrom_cd1 = misc/memtest86+-2.01.iso
+ md5sum = 9fae22f2666369968a76ef59e9a81ced
+
+
+variants:
+ - @up:
+ no autotest.npb autotest.tsc
+ - smp2:
+ smp = 2
+ used_cpus = 2
+ stress_boot: used_cpus = 10
+ timedrift.with_load: used_cpus = 100
+
+
+variants:
+ - @ide:
+ drive_format=ide
+ - scsi:
+ drive_format=scsi
+ - virtio_blk:
+ drive_format=virtio
+ image_boot=yes
+
+
+virtio_net|virtio_blk|e1000|balloon_check:
+ only Fedora.11 Fedora.12 Fedora.13 RHEL.5 OpenSUSE.11 SLES.11 Ubuntu-8.10-server
+ # only WinXP Win2003 Win2008 WinVista Win7 Fedora.11 Fedora.12 Fedora.13 RHEL.5 OpenSUSE.11 SLES.11 Ubuntu-8.10-server
+
+
+variants:
+ - @qcow2:
+ image_format = qcow2
+ post_command += " python scripts/check_image.py;"
+ post_command_timeout = 600
+ post_command_noncritical = yes
+ ioquit:
+ post_command_noncritical = no
+ - vmdk:
+ no ioquit
+ only Fedora Ubuntu Windows
+ only smp2
+ only rtl8139
+ image_format = vmdk
+ - raw:
+ no ioquit
+ only Fedora Ubuntu Windows
+ only smp2
+ only rtl8139
+ image_format = raw
+
+
+variants:
+ - @smallpages:
+ - hugepages:
+ pre_command += " scripts/hugepage.py /mnt/kvm_hugepage;"
+ post_command += " umount /mnt/kvm_hugepage && echo 0 > /proc/sys/vm/nr_hugepages;"
+ extra_params += " -mem-path /mnt/kvm_hugepage"
+
+
+variants:
+ - @no_pci_assignable:
+ pci_assignable = no
+ - pf_assignable:
+ pci_assignable = pf
+ device_names = eth1
+ - vf_assignable:
+ pci_assignable = vf
+ # Driver (kernel module) that supports SR-IOV hardware.
+ # As of today (30-11-2009), we have 2 drivers for this type of hardware:
+ # Intel® 82576 Gigabit Ethernet Controller - igb
+ # Neterion® X3100™ - vxge
+ driver = igb
+ # Driver option to specify the maximum number of virtual functions
+ # (on vxge the option is , for example, is max_config_dev)
+ # the default below is for the igb driver
+ driver_option = "max_vfs=7"
+ # Number of devices that are going to be requested.
+ devices_requested = 7
+
+
+steps ?<= steps/
--
1.7.0.4
[-- Attachment #2: Type: text/plain, Size: 152 bytes --]
_______________________________________________
Autotest mailing list
Autotest@test.kernel.org
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] [PATCH V2] patch to enable installing cygwin and running autotest in windows guests
2010-09-27 12:13 ` [PATCH] [PATCH V2] patch to enable installing cygwin and running autotest in windows guests Yogananth Subramanian
@ 2010-10-27 21:00 ` Lucas Meneghel Rodrigues
0 siblings, 0 replies; 3+ messages in thread
From: Lucas Meneghel Rodrigues @ 2010-10-27 21:00 UTC (permalink / raw)
To: Yogananth Subramanian; +Cc: autotest, kvm
On Mon, 2010-09-27 at 17:43 +0530, Yogananth Subramanian wrote:
> The patch creates two new files 'scripts/cyg_install.py' and
> 'tests/cyg_install'. 'scripts/cyg_install.py' is used to install cygwin in
> unattended mode. This patch also introduces a new parameter 'patch_file'to
> run_autotest() in kvm_test_utils.py file, to install patch for autotest to
> run in windows. The file 'autotest_control/autotest.patch' is base patch to
> run any autotest test cases in windows and file 'autotest_control/iozone.patch'
> is a patch to run iozone on windows.
Yoganath, I have some comments to make, would you please look into them
and provide me an updated patch? Thanks!
> [cyg_install]:
> 1)local install:
> Folder denoted by 'cyg_path' should contain the cygwin setup file and a
> dir called "repo" which would contain all the cygwin packages need to be
> installed.
> remote install:
> 'cyg_path' contains the link to download cygwin setup file
> 2)scripts/cyg_install.py creates cyg.iso,which contains "cyg_install.cmd"
> script needed to install cygwin and set of files pointed by the
> 'cyg_path'
> 3)login to guest using telnet and run "cyg_install.cmd" to install
> cygwin
>
> [cygwin autotest]
> 1)the param 'test_patch_file' contains the list of patches for autotest
> 2)scp autotest to windows guest, apply the patch and run autotest
>
> Signed-off-by: Yogananth Subramanian <anantyog@linux.vnet.ibm.com>
> ---
> client/tests/kvm/autotest_control/autotest.patch | 15 +
> client/tests/kvm/autotest_control/iozone.patch | 12 +
> client/tests/kvm/kvm_test_utils.py | 10 +-
> client/tests/kvm/scripts/cyg_install.py | 98 ++
> client/tests/kvm/tests/autotest.py | 21 +-
> client/tests/kvm/tests/cyg_install.py | 36 +
> client/tests/kvm/tests_base.cfg.sample | 45 +-
> client/tests/kvm/tests_base.cfg.sample.orig | 1884 ++++++++++++++++++++++
> 8 files changed, 2117 insertions(+), 4 deletions(-)
> create mode 100644 client/tests/kvm/autotest_control/autotest.patch
> create mode 100644 client/tests/kvm/autotest_control/iozone.patch
> create mode 100644 client/tests/kvm/scripts/cyg_install.py
> create mode 100644 client/tests/kvm/tests/cyg_install.py
> create mode 100644 client/tests/kvm/tests_base.cfg.sample.orig
>
> diff --git a/client/tests/kvm/autotest_control/autotest.patch b/client/tests/kvm/autotest_control/autotest.patch
> new file mode 100644
> index 0000000..f562f95
> --- /dev/null
> +++ b/client/tests/kvm/autotest_control/autotest.patch
> @@ -0,0 +1,15 @@
> +diff -aurpN client/bin/job.py client-new/bin/job.py
> +--- client/bin/job.py 2010-08-25 01:42:27.000000000 -0400
> ++++ client-new/bin/job.py 2010-09-07 09:54:30.000000000 -0400
> +@@ -296,7 +296,10 @@ class base_client_job(base_job.base_job)
> +
> + # extract console= and other args from cmdline and add them into the
> + # base args that we use for all kernels we install
> +- cmdline = utils.read_one_line('/proc/cmdline')
> ++ if os.path.exists('/proc/cmdline'):
> ++ cmdline = utils.read_one_line('/proc/cmdline')
> ++ else:
> ++ return
^ I am happy and surprised that this is the only autotest modification
needed to run autotest under cygwin. However it's a more proper solution
to actually integrate it in autotest, in case this does not regress
functionality for existing clients (I tend to think it won't, since
every linux will have /proc/cmdline. Those could be my last words
though).
> + kernel_args = []
> + for karg in cmdline.split():
> + for param in copy_cmdline:
> diff --git a/client/tests/kvm/autotest_control/iozone.patch b/client/tests/kvm/autotest_control/iozone.patch
> new file mode 100644
> index 0000000..6229205
> --- /dev/null
> +++ b/client/tests/kvm/autotest_control/iozone.patch
> @@ -0,0 +1,12 @@
> +diff -aurpN client/tests/iozone/iozone.py client-new/tests/iozone/iozone.py
> +--- client/tests/iozone/iozone.py 2010-08-25 01:42:27.000000000 -0400
> ++++ client-new/tests/iozone/iozone.py 2010-09-02 11:38:42.000000000 -0400
> +@@ -43,7 +43,7 @@ class iozone(test.test):
> + elif (arch == 'x86_64'):
> + utils.system('make linux-AMD64')
> + else:
> +- utils.system('make linux')
> ++ utils.system('make Windows')
^ IOzone has changed, now it uses utils.make (see
client/common_lib/utils.py), so need to take this into account. Perhaps
we could get rid of all the patching altogether somehow. Looking at the
current code of IOzone:
arch = utils.get_current_kernel_arch()
if (arch == 'ppc'):
utils.make('linux-powerpc')
elif (arch == 'ppc64'):
utils.make('linux-powerpc64')
elif (arch == 'x86_64'):
utils.make('linux-AMD64')
else:
utils.make('linux')
^ If cygwin reports some different value for
utils.get_current_kernel_arch(), we could even code an additional else
clause that allows for executing
elif (arch =='cygwin-thing'):
utils.make('windows')
Would you please look into that?
> +
> +
> + def run_once(self, dir=None, args=None):
> diff --git a/client/tests/kvm/kvm_test_utils.py b/client/tests/kvm/kvm_test_utils.py
> index 5412aac..34bccb8 100644
> --- a/client/tests/kvm/kvm_test_utils.py
> +++ b/client/tests/kvm/kvm_test_utils.py
> @@ -336,7 +336,7 @@ def get_memory_info(lvms):
> return meminfo
>
>
> -def run_autotest(vm, session, control_path, timeout, outputdir):
> +def run_autotest(vm, session, control_path, timeout, outputdir, patch_file):
> """
> Run an autotest control file inside a guest (linux only utility).
>
> @@ -346,6 +346,7 @@ def run_autotest(vm, session, control_path, timeout, outputdir):
> @param timeout: Timeout under which the autotest control file must complete.
> @param outputdir: Path on host where we should copy the guest autotest
> results to.
> + @param patch_file: A path to an autotest patch file.
^ I am really hoping to get rid of patch_file.
> """
> def copy_if_hash_differs(vm, local_path, remote_path):
> """
> @@ -460,12 +461,19 @@ def run_autotest(vm, session, control_path, timeout, outputdir):
> os.path.join(autotest_path, 'control')):
> raise error.TestFail("Could not copy the test control file to guest")
>
> + if not patch_file == "":
> + if not vm.copy_files_to(patch_file,
> + os.path.join(autotest_path, '../test.patch')):
> + raise error.TestFail("Could not copy the test patch file to guest")
> +
> # Run the test
> logging.info("Running autotest control file %s on guest, timeout %ss",
> os.path.basename(control_path), timeout)
> session.get_command_output("cd %s" % autotest_path)
> session.get_command_output("rm -f control.state")
> session.get_command_output("rm -rf results/*")
> + if not patch_file == "":
> + session.get_command_output("patch -p1 <../test.patch")
> logging.info("---------------- Test output ----------------")
> status = session.get_command_status("bin/autotest control",
> timeout=timeout,
> diff --git a/client/tests/kvm/scripts/cyg_install.py b/client/tests/kvm/scripts/cyg_install.py
> new file mode 100644
> index 0000000..7213b90
> --- /dev/null
> +++ b/client/tests/kvm/scripts/cyg_install.py
> @@ -0,0 +1,98 @@
> +#!/usr/bin/python
> +"""
> +Script to install cygwin on KVM guests.
> +"""
> +# -*- coding: utf-8 -*-
> +import os, sys, shutil, tempfile, re, ConfigParser, glob
> +import common
> +from autotest_lib.client.bin import utils
> +
> +class CygInstall(object):
> + """
> + Creates an iso image that will contain cygwin setup file for unattended
> + install. The setup and cygwin packages should be present on the host
> + under the path specified by 'cyg_path' for local install. For remote
> + install the setup will be downloaded from 'cyg_path'
> + """
> + def __init__(self):
> + """
> + Gets params from environment variables and sets class attributes.
> + """
> + script_dir = os.path.dirname(sys.modules[__name__].__file__)
> + kvm_test_dir = os.path.abspath(os.path.join(script_dir, ".."))
> + images_dir = os.path.join(kvm_test_dir, 'images')
> + self.deps_dir = os.path.join(kvm_test_dir, 'deps')
> + self.cachedir = os.path.join(kvm_test_dir, 'cyg_cache')
> + self.unattended_dir = os.path.join(kvm_test_dir, 'unattended')
> + self.cyg_type = os.environ.get('KVM_TEST_cyg_type')
> + self.cyg_path = os.environ.get('KVM_TEST_cyg_path')
> + self.cyg_param = os.environ.get('KVM_TEST_cyg_param')
> + self.cyg_iso = os.environ.get('KVM_TEST_cdrom_cd1')
> +
> +
> + def setup_local(self):
> + """
> + cygwin setup and packages are present locally.
> + """
> + self.cygsetup_file()
> + mkiso_cmd = "mkisofs -L -l -allow-lowercase -allow-multidot -relaxed-"\
> + "filenames -N -v -d -D -o %s %s"%(self.cyg_iso, self.cyg_path)
> + if os.system(mkiso_cmd):
> + raise SetupError('Could not create iso')
> +
> +
> + def setup_remote(self):
> + """
> + cygwin setup downloaded from 'cyg_path'
> + """
> +
> + if not os.path.isdir(self.cachedir):
> + os.makedirs(self.cachedir)
> + self.cyg_md5 = os.environ.get('KVM_TEST_cyg_md5')
> + dacapo_pkg = utils.unmap_url_cache(self.cachedir, self.cyg_path, self.cyg_md5)
> + self.cyg_path = self.cachedir
> + self.cygsetup_file()
> + mkiso_cmd = "mkisofs -L -l -allow-lowercase -allow-multidot -relaxed"\
> + "-filenames -N -v -d -D -o %s %s"%(self.cyg_iso,self.cachedir)
> + if os.system(mkiso_cmd):
> + raise SetupError('Could not create iso')
> + shutil.rmtree(self.cachedir)
> +
> + def cygsetup_file(self):
> + cyg_config_file = os.path.join(self.cyg_path, 'cyg_install.cmd')
> + cyg_config = open(cyg_config_file, 'w')
> + cyg_config.write('d:setup.exe -q -R '
> + '"%systemdrive%\\cygwin" '+self.cyg_param)
> + cyg_config.write('\n')
> + cyg_config.write('cd %systemdrive%\\cygwin\\bin\n')
> + cyg_config.write("""for /f "delims=" %%A in ('cygpath.exe -u %tmp%')"""
> + """ do set a=%%A\n""")
> + cyg_config.write('bash --login -i -c "chmod 777 %a%"\n')
> + cyg_config.write('ash.exe /usr/bin/rebaseall \n')
> + cyg_config.write('bash --login -i -c "ssh-host-config -y --pwd '
> + '1q2w3eP"\n')
> + cyg_config.write('net start sshd\n')
> + cyg_config.write('bash --login -i -c "ssh-user-config -y -p"\n')
> + cyg_config.close()
> +
> + def setup(self):
> + print "Starting Cygwin install setup"
> +
> + print "Variables set:"
> + print " cygwin instally type: " + str(self.cyg_type)
> + print " cygwin path: " + str(self.cyg_path)
> + print " cygwin iso: " + str(self.cyg_iso)
> +
> + if self.cyg_type == "local":
> + self.setup_local()
> + elif self.cyg_type == "remote":
> + self.setup_remote()
> + else:
> + raise SetupError("Unexpected installation method %s" %
> + self.cyg_type)
> + print "Cygwin install setup finished successfuly"
> +
> +
> +if __name__ == "__main__":
> + os_install = CygInstall()
> + os_install.setup()
> diff --git a/client/tests/kvm/tests/autotest.py b/client/tests/kvm/tests/autotest.py
> index 2916ebd..e40b26a 100644
> --- a/client/tests/kvm/tests/autotest.py
> +++ b/client/tests/kvm/tests/autotest.py
> @@ -1,4 +1,4 @@
> -import os, logging
> +import os, logging, tempfile
> from autotest_lib.client.common_lib import error
> from autotest_lib.client.bin import utils
> import kvm_subprocess, kvm_utils, kvm_test_utils
> @@ -20,6 +20,23 @@ def run_autotest(test, params, env):
> timeout = int(params.get("test_timeout", 300))
> control_path = os.path.join(test.bindir, "autotest_control",
> params.get("test_control_file"))
> + if not params.get("test_patch_file"):
> + patch_file = ""
> + else:
> + autotest_files = params.get("test_patch_file").split()
> + temp = []
> + for autotest_file in autotest_files:
> + patch_path = os.path.join(test.bindir, "autotest_control",
> + autotest_file)
> + f = open(patch_path, "r")
> + temp.extend(f.readlines())
> + f.close()
> +
> + (fd,patch_file)=tempfile.mkstemp(prefix='patch_',dir='/tmp')
> + f = open(patch_file, "w")
> + f.writelines(temp)
> + f.close()
> outputdir = test.outputdir
>
> - kvm_test_utils.run_autotest(vm, session, control_path, timeout, outputdir)
> + kvm_test_utils.run_autotest(vm, session, control_path, timeout, outputdir,
> + patch_file)
> diff --git a/client/tests/kvm/tests/cyg_install.py b/client/tests/kvm/tests/cyg_install.py
> new file mode 100644
> index 0000000..f038b2d
> --- /dev/null
> +++ b/client/tests/kvm/tests/cyg_install.py
> @@ -0,0 +1,36 @@
> +import logging, time, os
> +from autotest_lib.client.common_lib import error
> +from autotest_lib.client.bin import utils
> +from autotest_lib.client.tests.iozone import postprocessing
> +import kvm_subprocess, kvm_test_utils, kvm_utils
> +
> +
> +def run_cyg_install(test, params, env):
> + """
> + Install cygwin on a windows guest:
> + 1) Log into a guest
> + 2) Install cygwin with the setup contained in the cyg.iso
> +
> + @param test: kvm test object
> + @param params: Dictionary with the test parameters
> + @param env: Dictionary with test environment.
> + """
> + vm = kvm_test_utils.get_living_vm(env, params.get("main_vm"))
> + timeout = int(params.get("login_timeout", 360))
> + session = kvm_test_utils.wait_for_login(vm, 0,timeout,0,2)
> + results_path = os.path.join(test.resultsdir,
> + 'raw_output_%s' % test.iteration)
> +
> + c = params.get("cyg_cmd")
> + t = int(params.get("cyg_timeout"))
> + logging.info("Installing cygwin on guest, timeout %ss", t)
> + results = session.get_command_output(command=c, timeout=t,
> + print_func=logging.debug)
> + utils.open_write_close(results_path, results)
> +
> + logging.info("Installation succeed")
> + session.sendline(vm.get_params().get("shutdown_command"))
> + if not kvm_utils.wait_for(vm.is_dead, 240, 0, 1):
> + raise error.TestFail("Guest refuses to go down")
> + session.close()
> +
> diff --git a/client/tests/kvm/tests_base.cfg.sample b/client/tests/kvm/tests_base.cfg.sample
> index 167e86d..70ab947 100644
> --- a/client/tests/kvm/tests_base.cfg.sample
> +++ b/client/tests/kvm/tests_base.cfg.sample
> @@ -130,6 +130,25 @@ variants:
> kill_vm_on_error = yes
> login_timeout = 240
>
> + -cyg_install: install setup unattended_install.cdrom
> + type = cyg_install
> + pre_command = " scripts/cyg_install.py;"
> + cyg_param = " -P make,patch,bash,vim,openssh,python,gcc,binutils "
> + shutdown_method = shell
> + cyg_cmd = "cmd /c D:\cyg_install.cmd"
> + cyg_timeout = 3600
> + shutdown_command = shutdown /s /f /t 0
> + variants:
> + - local:
> + cyg_type = local
> + cyg_param += " -L -l d:\\repo "
> + cyg_path = "/root/sdb/images/cyg"
> + - remote:
> + cyg_type = remote
> + cyg_param += " -s http://cygwin.basemirror.de "
> + cyg_path = "http://www.cygwin.com/setup.exe"
> + cyg_md5 = "a4f5eaaa1096891b9812b81f104fc4d9"
> +
> - migrate: install setup unattended_install.cdrom
> type = migration
> migration_test_command = help
> @@ -1236,7 +1255,7 @@ variants:
>
> # Windows section
> - @Windows:
> - no autotest linux_s3 vlan_tag ioquit unattended_install.(url|nfs|remote_ks)
> + no linux_s3 vlan_tag ioquit unattended_install.(url|nfs|remote_ks)
> shutdown_command = shutdown /s /f /t 0
> reboot_command = shutdown /r /f /t 0
> status_test_command = echo %errorlevel%
> @@ -1327,6 +1346,30 @@ variants:
> pci_test_cmd = echo select disk 1 > dt && echo online >> dt && echo detail disk >> dt && echo exit >> dt && diskpart /s dt
> physical_resources_check:
> catch_uuid_cmd =
> + cyg_install:
> + cdrom_cd1 = windows/cyg.iso
> + shell_prompt = "Administrator>$"
> + username = Administrator
> + password = 1q2w3eP
> + shell_client = telnet
> + shell_port = 23
> + guest_port_remote_shell = 23
> + autotest:
> + shell_prompt = "Administrator>$"
> + username = Administrator
> + password = 1q2w3eP
> + status_test_command = echo $?
> + shell_prompt = "\$ "
> + shell_client = ssh
> + shell_linesep = "\n"
> + shell_port = 22
> + file_transfer_client = scp
> + file_transfer_port = 22
> + guest_port_remote_shell = 22
> + guest_port_file_transfer = 23
> + test_patch_file = autotest.patch
> + autotest.iozone:
> + test_patch_file += " iozone.patch"
>
> variants:
> - Win2000:
> diff --git a/client/tests/kvm/tests_base.cfg.sample.orig b/client/tests/kvm/tests_base.cfg.sample.orig
^ Here, this file was added by accident. Would you please get rid of it
in a future patch? Thanks!
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-10-27 21:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-27 12:13 [Autotest] [KVM-AUTOTEST][PATCH V2] Patch to install cygwin and run autotest in windows Yogananth Subramanian
2010-09-27 12:13 ` [PATCH] [PATCH V2] patch to enable installing cygwin and running autotest in windows guests Yogananth Subramanian
2010-10-27 21:00 ` Lucas Meneghel Rodrigues
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox