On Mon, Feb 21, 2011 at 01:49:53PM +0800, ya...@redhat.com wrote: > From: yacui <ya...@redhat.com> > > Comments: > This patch is primarily made to support adding a floppy using the > -drive -global syntax. and the number of floppies is limited to 2. > The 3 places being changed are: > 1 the add_drive function > 2 a global counter of fdc_unit > 3 the part of making qemu command for the floppy, now the primary > method has been substituted by the "-drive -global" instead of > the conventional "-fda method" > > Signed-off-by: yacui <ya...@redhat.com> Hi Yacui,
24483 Feb 21 ya...@redhat.co (5.1K) [Autotest] [PATCH 1/2] KVM-test : change on the VM class to support "-drive -global" syntax 24484 Feb 21 ya...@redhat.co (5.4K) [Autotest] [PATCH 2/2] KVM-test : readonly_floppy testcase Your patches don't depend on Upstream tree(git://github.com/autotest/autotest.git). Can you produce patches based on it? Thanks Amos. > --- > client/tests/kvm/kvm_vm.py | 49 ++++++++++++++++++++++++++++++++++--------- > 1 files changed, 38 insertions(+), 11 deletions(-) > > diff --git a/client/tests/kvm/kvm_vm.py b/client/tests/kvm/kvm_vm.py > index 67aa276..20a0125 100755 > --- a/client/tests/kvm/kvm_vm.py > +++ b/client/tests/kvm/kvm_vm.py > @@ -301,7 +301,9 @@ class VM(object): > def add_drive(help, filename, index=None, format=None, cache=None, > werror=None, serial=None, snapshot=False, boot=False, > imgfmt="raw", aio=None, media="disk", ide_bus=None, > - ide_unit=None, vdisk=None, pci_addr=None): > + ide_unit=None, vdisk=None, pci_addr=None, > + fdc_unit=None,readonly=False): > + > free_pci_addr = get_free_pci_addr(pci_addr) > > dev = {"virtio" : "virtio-blk-pci", > @@ -315,6 +317,8 @@ class VM(object): > vdisk += 1 > blkdev_id ="virtio-disk%s" % vdisk > id = "virtio-disk%s" % vdisk > + elif format == "floppy": > + id ="fdc0-0-%s" % fdc_unit > blkdev_id = "drive-%s" % id > > # -drive part > @@ -327,18 +331,19 @@ class VM(object): > else: > if format: cmd += ",if=%s" % format > > - cmd += ",media=%s" % media > + if media: > + cmd += ",media=%s" % media > if cache: cmd += ",cache=%s" % cache > if werror: cmd += ",werror=%s" % werror > if serial: cmd += ",serial='%s'" % serial > if snapshot: cmd += ",snapshot=on" > if boot: cmd += ",boot=on" > - if media == "cdrom": cmd += ",readonly=on" > + if media == "cdrom" or readonly : cmd += ",readonly=on" > cmd += ",format=%s" % imgfmt > if ",aio=" in help and aio : cmd += ",aio=%s" % aio > > # -device part > - if has_option(help, "device"): > + if has_option(help, "device") and format != "floppy" : > cmd += " -device %s" % dev[format] > if format == "ide": > cmd += ",bus=%s" % ide_bus > @@ -348,6 +353,11 @@ class VM(object): > cmd += ",drive=%s" % blkdev_id > cmd += ",id=%s" % id > > + # -global part > + drivelist = ['driveA','driveB'] > + if has_option(help,"global") and format == "floppy" : > + cmd += " -global isa-fdc.%s=drive-%s" \ > + % (drivelist[fdc_unit] , id) > return cmd > > def add_nic(help, vlan, model=None, mac=None, netdev_id=None, > @@ -556,6 +566,7 @@ class VM(object): > # global counters > ide_bus = 0 > ide_unit = 0 > + fdc_unit = 0 > vdisk = 0 > self.pci_addr_list = [0, 1, 2] > > @@ -722,13 +733,29 @@ class VM(object): > if "2.6.32" not in commands.getoutput("uname -r"): > qemu_cmd += " -soundhw %s" % soundhw > > - > - # We may want to add {floppy_otps} parameter for -fda > - # {fat:floppy:}/path/. However vvfat is not usually recommended. > - floppy = params.get("floppy") > - if floppy: > - floppy = kvm_utils.get_path(root_dir, floppy) > - qemu_cmd += add_floppy(help, floppy) > + # We may want to add the floppy using the "-drive -global " format > + # and the current script allow the nums of the floppies to be 2 > + # Readonly floppy is supported by adding the parameter > + # of floppy_readonly > + floppies = params.get("floppy") > + floppies_readonly = params.get("floppy_readonly") > + if floppies: > + floppy_list = floppies.split() > + fl_readonly_list = floppies_readonly.split() > + for index in range(len(fl_readonly_list)): > + fl_readonly_list[index] = eval(fl_readonly_list[index]) > + if len(floppy_list) > 2 : > + raise error.TestError("Only the maximum of 2 floppies" > + " can be supported here") > + for (floppy,fl_readonly) in zip(floppy_list,fl_readonly_list): > + floppy = kvm_utils.get_path(root_dir, floppy) > + if has_option(help,"global"): > + qemu_cmd += add_drive(help,floppy,None,"floppy", > + media=None,fdc_unit=fdc_unit, > + readonly=fl_readonly) > + else: > + qemu_cmd += add_floppy(help, floppy) > + fdc_unit ^= 1 > > usbdevice = params.get("usbdevice") > if usbdevice: > -- > 1.7.1 > > _______________________________________________ > Autotest mailing list > Autotest@test.kernel.org > http://test.kernel.org/cgi-bin/mailman/listinfo/autotest _______________________________________________ Autotest mailing list Autotest@test.kernel.org http://test.kernel.org/cgi-bin/mailman/listinfo/autotest