Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Unified Diff: client/tests/kvm/tests/pci_hotplug.py

Issue 3541002: Revert "Merge remote branch 'cros/upstream' into tempbranch2" (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/autotest.git
Patch Set: Created 10 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « client/tests/kvm/tests/ksm_overcommit.py ('k') | client/tests/kvm/tests/unittest.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: client/tests/kvm/tests/pci_hotplug.py
diff --git a/client/tests/kvm/tests/pci_hotplug.py b/client/tests/kvm/tests/pci_hotplug.py
index 55cf66680bfdd9ddfc37bdbcd91bd3f23f77a498..2c459d73bcb3850cbdcce75a4e3053b72e83e0c8 100644
--- a/client/tests/kvm/tests/pci_hotplug.py
+++ b/client/tests/kvm/tests/pci_hotplug.py
@@ -1,22 +1,20 @@
-import logging, os, commands, re
+import logging, os
from autotest_lib.client.common_lib import error
import kvm_subprocess, kvm_test_utils, kvm_utils, kvm_vm
def run_pci_hotplug(test, params, env):
"""
- Test hotplug of PCI devices.
-
- (Elements between [] are configurable test parameters)
+ Test pci devices' hotplug
1) PCI add a deivce (NIC / block)
- 2) Compare output of monitor command 'info pci'.
- 3) Compare output of guest command [reference_cmd].
- 4) Verify whether pci_model is shown in [pci_find_cmd].
- 5) Check whether the newly added PCI device works fine.
- 6) PCI delete the device, verify whether could remove the PCI device.
-
- @param test: KVM test object.
- @param params: Dictionary with the test parameters.
+ 2) Compare output of hypervisor command `info pci`
+ 3) Compare output of guest command `reference_cmd`
+ 4) Verify whether pci_model is shown in `pci_find_cmd`
+ 5) Check whether the newly added pci device works fine
+ 6) PCI delete the device, verify whether could remove the pci device
+
+ @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"))
@@ -37,79 +35,26 @@ def run_pci_hotplug(test, params, env):
tested_model = params.get("pci_model")
test_type = params.get("pci_type")
- image_format = params.get("image_format_stg")
-
- # Probe qemu to verify what is the supported syntax for PCI hotplug
- cmd_output = vm.monitor.cmd("?")
- if len(re.findall("\ndevice_add", cmd_output)) > 0:
- cmd_type = "device_add"
- elif len(re.findall("\npci_add", cmd_output)) > 0:
- cmd_type = "pci_add"
- else:
- raise error.TestError("Unknow version of qemu")
-
- if cmd_type == "pci_add":
- if test_type == "nic":
- pci_add_cmd = "pci_add pci_addr=auto nic model=%s" % tested_model
- elif test_type == "block":
- image_params = kvm_utils.get_sub_dict(params, "stg")
- image_filename = kvm_vm.get_image_filename(image_params,
- test.bindir)
- pci_add_cmd = ("pci_add pci_addr=auto storage file=%s,if=%s" %
- (image_filename, tested_model))
- # Execute pci_add (should be replaced by a proper monitor method call)
- add_output = vm.monitor.cmd(pci_add_cmd)
- if not "OK domain" in add_output:
- raise error.TestFail("Add PCI device failed. "
- "Monitor command is: %s, Output: %r" %
- (pci_add_cmd, add_output))
- after_add = vm.monitor.info("pci")
-
- elif cmd_type == "device_add":
- driver_id = test_type + "-" + kvm_utils.generate_random_id()
- id = test_type + "-" + kvm_utils.generate_random_id()
- if test_type == "nic":
- if tested_model == "virtio":
- tested_model = "virtio-net-pci"
- pci_add_cmd = "device_add id=%s,driver=%s" % (id, tested_model)
-
- elif test_type == "block":
- image_params = kvm_utils.get_sub_dict(params, "stg")
- image_filename = kvm_vm.get_image_filename(image_params,
- test.bindir)
- if tested_model == "virtio":
- tested_model = "virtio-blk-pci"
-
- if tested_model == "scsi":
- tested_model = "scsi-disk"
-
- driver_add_cmd = (" __com.redhat_drive_add "
- "file=%s,format=%s,id=%s" %
- (image_filename, image_format, driver_id))
- pci_add_cmd = ("device_add id=%s,driver=%s,drive=%s" %
- (id, tested_model, driver_id))
- driver_output = vm.monitor.cmd(driver_add_cmd)
-
- # Check if the device is support in qemu
- devices_support = vm.monitor.cmd("%s ?" % cmd_type)
- if len(re.findall(tested_model, devices_support)) > 0:
- add_output = vm.monitor.cmd(pci_add_cmd)
- else:
- raise error.TestError("%s doesn't support device: %s" %
- (cmd_type, tested_model))
- after_add = vm.monitor.info("pci")
-
- if not id in after_add:
- raise error.TestFail("Add device failed. Monitor command is: %s"
- ". Output: %r" % (pci_add_cmd, add_output))
+
+ if test_type == "nic":
+ pci_add_cmd = "pci_add pci_addr=auto nic model=%s" % tested_model
+ elif test_type == "block":
+ image_params = kvm_utils.get_sub_dict(params, "stg")
+ image_filename = kvm_vm.get_image_filename(image_params, test.bindir)
+ pci_add_cmd = ("pci_add pci_addr=auto storage file=%s,if=%s" %
+ (image_filename, tested_model))
+
+ # Execute pci_add (should be replaced by a proper monitor method call)
+ add_output = vm.monitor.cmd(pci_add_cmd)
+ if not "OK domain" in add_output:
+ raise error.TestFail("Add device failed. Hypervisor command is: %s. "
+ "Output: %r" % (pci_add_cmd, add_output))
+ after_add = vm.monitor.info("pci")
# Define a helper function to delete the device
def pci_del(ignore_failure=False):
- if cmd_type == "pci_add":
- slot_id = "0" + add_output.split(",")[2].split()[1]
- cmd = "pci_del pci_addr=%s" % slot_id
- elif cmd_type == "device_add":
- cmd = "device_del %s" % id
+ slot_id = "0" + add_output.split(",")[2].split()[1]
+ cmd = "pci_del pci_addr=%s" % slot_id
# This should be replaced by a proper monitor method call
vm.monitor.cmd(cmd)
@@ -120,14 +65,14 @@ def run_pci_hotplug(test, params, env):
if (not kvm_utils.wait_for(device_removed, 10, 0, 1)
and not ignore_failure):
raise error.TestFail("Failed to hot remove PCI device: %s. "
- "Monitor command: %s" %
- (tested_model, cmd))
+ "Hypervisor command: %s" % (tested_model,
+ cmd))
try:
# Compare the output of 'info pci'
if after_add == info_pci_ref:
raise error.TestFail("No new PCI device shown after executing "
- "monitor command: 'info pci'")
+ "hypervisor command: 'info pci'")
# Define a helper function to compare the output
def new_shown():
« no previous file with comments | « client/tests/kvm/tests/ksm_overcommit.py ('k') | client/tests/kvm/tests/unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698