Re: [PATCH] KVM test: Cleanup of virtio_console subtest

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



----- Original Message -----
> This is a cleanup patch for virtio_console:
> 
> 1) Use the safer is None instead of == None or similar
> comparisons
> 2) Remove some unused imports
> 3) Remove some unneded parenthesis
> 4) Correct typos

Thank you for your corrections.

> 
> Signed-off-by: Lucas Meneghel Rodrigues <lmr@xxxxxxxxxx>
> ---
> client/tests/kvm/scripts/virtio_console_guest.py | 65 ++++++------
> client/tests/kvm/tests/virtio_console.py | 118 +++++++++++-----------
> 2 files changed, 91 insertions(+), 92 deletions(-)
> 
> diff --git a/client/tests/kvm/scripts/virtio_console_guest.py
> b/client/tests/kvm/scripts/virtio_console_guest.py
> index db67fc9..6626593 100755
> --- a/client/tests/kvm/scripts/virtio_console_guest.py
> +++ b/client/tests/kvm/scripts/virtio_console_guest.py
> @@ -9,8 +9,8 @@ Auxiliary script used to send data between ports on
> guests.
> """
> import threading
> from threading import Thread
> -import os, time, select, re, random, sys, array
> -import fcntl, subprocess, traceback, signal
> +import os, select, re, random, sys, array
> +import fcntl, traceback, signal
> 
> DEBUGPATH = "/sys/kernel/debug"
> SYSFSPATH = "/sys/class/virtio-ports/"
> @@ -63,7 +63,7 @@ class VirtioGuest:
> """
> ports = {}
> not_present_msg = "FAIL: There's no virtio-ports dir in debugfs"
> - if (not os.path.ismount(DEBUGPATH)):
> + if not os.path.ismount(DEBUGPATH):
> os.system('mount -t debugfs none %s' % (DEBUGPATH))
> try:
> if not os.path.isdir('%s/virtio-ports' % (DEBUGPATH)):
> @@ -72,21 +72,20 @@ class VirtioGuest:
> print not_present_msg
> else:
> viop_names = os.listdir('%s/virtio-ports' % (DEBUGPATH))
> - if (in_files != None):
> + if in_files is not None:
> dev_names = os.listdir('/dev')
> rep = re.compile(r"vport[0-9]p[0-9]+")
> - dev_names = filter(lambda x: rep.match(x) != None, dev_names)
> + dev_names = filter(lambda x: rep.match(x) is not None, dev_names)
> if len(dev_names) != len(in_files):
> - print ("FAIL: Not all ports are sucesfully inicailized"+
> - " in /dev "+
> - "only %d from %d." % (len(dev_names),
> - len(in_files)))
> + print ("FAIL: Not all ports were successfully initialized "
> + "in /dev, only %d from %d." % (len(dev_names),
> + len(in_files)))
> return
> 
> if len(viop_names) != len(in_files):
> - print ("FAIL: No all ports are sucesfully inicailized "
> - "in debugfs only %d from %d." % (len(viop_names),
> - len(in_files)))
> + print ("FAIL: Not all ports were successfuly initialized "
> + "in debugfs, only %d from %d." % (len(viop_names),
> + len(in_files)))
> return
> 
> for name in viop_names:
> @@ -101,35 +100,36 @@ class VirtioGuest:
> m = re.match("(\S+): (\S+)", line)
> port[m.group(1)] = m.group(2)
> 
> - if (port['is_console'] == "yes"):
> + if port['is_console'] == "yes":
> port["path"] = "/dev/hvc%s" % (port["console_vtermno"])
> # Console works like a serialport
> else:
> port["path"] = "/dev/%s" % name
> 
> - if (not os.path.exists(port['path'])):
> + if not os.path.exists(port['path']):
> print "FAIL: %s not exist" % port['path']
> 
> sysfspath = SYSFSPATH + name
> - if (not os.path.isdir(sysfspath)):
> + if not os.path.isdir(sysfspath):
> print "FAIL: %s not exist" % (sysfspath)
> 
> info_name = sysfspath + "/name"
> port_name = self._readfile(info_name).strip()
> - if (port_name != port["name"]):
> - print ("FAIL: Port info not match \n%s - %s\n%s - %s" %
> + if port_name != port["name"]:
> + print ("FAIL: Port info does not match "
> + "\n%s - %s\n%s - %s" %
> (info_name , port_name,
> "%s/virtio-ports/%s" % (DEBUGPATH, name),
> port["name"]))
> dev_ppath = DEVPATH + port_name
> - if not (os.path.exists(dev_ppath)):
> - print ("FAIL: Symlink " + dev_ppath + " not exist.")
> - if not (os.path.realpath(dev_ppath) != "/dev/name"):
> - print ("FAIL: Sumlink " + dev_ppath + " not correct.")
> + if not os.path.exists(dev_ppath):
> + print "FAIL: Symlink %s does not exist." % dev_ppath
> + if not os.path.realpath(dev_ppath) != "/dev/name":
> + print "FAIL: Symlink %s is not correct." % dev_ppath
> except AttributeError:
> - print ("In file " + open_db_file +
> - " are incorrect data\n" + "".join(file).strip())
> - print ("FAIL: Fail file data.")
> + print ("Bad data on file %s:\n%s. " %
> + (open_db_file, "".join(file).strip()))
> + print "FAIL: Bad data on file %s." % open_db_file
> return
> 
> ports[port['name']] = port
> @@ -142,10 +142,11 @@ class VirtioGuest:
> """
> Check if port /dev/vport0p0 was created.
> """
> - if os.path.exists("/dev/vport0p0"):
> - print "PASS: Port exist."
> + symlink = "/dev/vport0p0"
> + if os.path.exists(symlink):
> + print "PASS: Symlink %s exists." % symlink
> else:
> - print "FAIL: Device /dev/vport0p0 not exist."
> + print "FAIL: Symlink %s does not exist." % symlink
> 
> 
> def init(self, in_files):
> @@ -154,7 +155,7 @@ class VirtioGuest:
> """
> self.ports = self._get_port_status(in_files)
> 
> - if self.ports == None:
> + if self.ports is None:
> return
> for item in in_files:
> if (item[1] != self.ports[item[0]]["is_console"]):
> @@ -507,11 +508,11 @@ class VirtioGuest:
> """
> descriptor = None
> path = self.ports[file]["path"]
> - if path != None:
> + if path is not None:
> if path in self.files.keys():
> descriptor = self.files[path]
> del self.files[path]
> - if descriptor != None:
> + if descriptor is not None:
> try:
> os.close(descriptor)
> except Exception, inst:
> @@ -745,9 +746,9 @@ def main():
> catch = virt.catching_signal()
> if catch:
> signal.signal(signal.SIGIO, virt)
> - elif catch == False:
> + elif catch is False:
> signal.signal(signal.SIGIO, signal.SIG_DFL)
> - if (catch != None):
> + if catch is not None:
> virt.use_config.set()
> print "PASS: guest_exit"
> 
> diff --git a/client/tests/kvm/tests/virtio_console.py
> b/client/tests/kvm/tests/virtio_console.py
> index cbb19e4..bc40837 100644
> --- a/client/tests/kvm/tests/virtio_console.py
> +++ b/client/tests/kvm/tests/virtio_console.py
> @@ -23,10 +23,10 @@ def run_virtio_console(test, params, env):
> 3) Start loopback test
> 4) Start performance test
> 
> - This test uses an auxiliary script, console_switch.py, that is
> copied to
> - guests. This script has functions to send and write data to virtio
> console
> - ports. Details of each test can be found on the docstrings for the
> test_*
> - functions.
> + This test uses an auxiliary script, virtio_console_guest.py, that is
> copied
> + to guests. This script has functions to send and write data to
> virtio
> + console ports. Details of each test can be found on the docstrings
> for the
> + test_* functions.
> 
> @param test: kvm test object
> @param params: Dictionary with the test parameters
> @@ -79,7 +79,7 @@ def run_virtio_console(test, params, env):
> @raise TestError: If collapse of test is fatal raise forward
> exception from subtest.
> """
> - if args == None:
> + if args is None:
> args = []
> res = [None, function.func_name, args]
> try:
> @@ -403,7 +403,7 @@ def run_virtio_console(test, params, env):
> if ret[0] and (not self.exitevent.isSet()):
> buf = self.port.recv(self.blocklen)
> if buf:
> - # Compare the recvd data with the control data
> + # Compare the received data with the control data
> for ch in buf:
> ch_ = self.buffer.popleft()
> if not ch == ch_:
> @@ -502,12 +502,12 @@ def run_virtio_console(test, params, env):
> """
> data = vm_port.read_nonblocking()
> match = re.search("BUG:", data, re.MULTILINE)
> - if match == None:
> + if match is None:
> return None
> 
> match = re.search(r"BUG:.*---\[ end trace .* \]---",
> data, re.DOTALL |re.MULTILINE)
> - if match == None:
> + if match is None:
> data += vm_port.read_until_last_line_matches(
> ["---\[ end trace .* \]---"],timeout)
> 
> @@ -541,7 +541,7 @@ def run_virtio_console(test, params, env):
> data = "Timeout."
> 
> kcrash_data = _search_kernel_crashlog(vm[3])
> - if (kcrash_data != None):
> + if kcrash_data is not None:
> logging.error(kcrash_data)
> vm[4] = True
> 
> @@ -581,7 +581,7 @@ def run_virtio_console(test, params, env):
> """
> # in LOOP_NONE mode it might stuck in read/write
> match, tmp = _on_guest("virt.exit_threads()", vm, 10)
> - if match == None:
> + if match is None:
> logging.debug("Workaround the stuck thread on guest")
> # Thread is stucked in read/write
> for send_pt in send_pts:
> @@ -621,7 +621,6 @@ def run_virtio_console(test, params, env):
> consoles = []
> serialports = []
> tmp_dir = tempfile.mkdtemp(prefix="virtio-console-", dir="/tmp/")
> - #if not params.get('extra_params'):
> params['extra_params'] = ''
> 
> if not spread:
> @@ -643,7 +642,7 @@ def run_virtio_console(test, params, env):
> % (i, i, i, pci))
> 
> for i in range(no_console, no_console + no_serialport):
> - # Spread seroal ports between multiple PCI devices (2 per a dev)
> + # Spread serial ports between multiple PCI devices (2 per each dev)
> if not i % 2 and spread:
> pci = "virtio-serial-pci%d" % (i / 2)
> params['extra_params'] += (" -device virtio-serial-pci,id="
> @@ -672,7 +671,7 @@ def run_virtio_console(test, params, env):
> 
> def _restore_vm():
> """
> - Restore old virtual machine when VM is destroied.
> + Restore old virtual machine when VM is destroyed.
> """
> logging.debug("Booting guest %s", params.get("main_vm"))
> kvm_preprocessing.preprocess_vm(test, params, env,
> @@ -687,12 +686,12 @@ def run_virtio_console(test, params, env):
> 0, 2)
> except (error.TestFail):
> kernel_bug = _search_kernel_crashlog(vm.serial_console, 10)
> - if kernel_bug != None:
> + if kernel_bug is not None:
> logging.error(kernel_bug)
> raise
> 
> kernel_bug = _search_kernel_crashlog(vm.serial_console, 10)
> - if kernel_bug != None:
> + if kernel_bug is not None:
> logging.error(kernel_bug)
> 
> sserial = kvm_test_utils.wait_for_login(vm, 0,
> @@ -869,9 +868,9 @@ def run_virtio_console(test, params, env):
> on_guest("virt.recv('%s', 0, 1024, False)" % port.name, vm, 10)
> match, tmp = _on_guest("virt.send('%s', 10, True)" % port.name,
> vm, 10)
> - if match != None:
> + if match is not None:
> raise error.TestFail("Write on guest while host disconnected "
> - "didn't timed out.\nOutput:\n%s"
> + "didn't time out.\nOutput:\n%s"
> % tmp)
> 
> port.open()
> @@ -897,9 +896,9 @@ def run_virtio_console(test, params, env):
> on_guest("virt.clean_port('%s'),1024" % port.name, vm, 10)
> match, tmp = _on_guest("virt.send('%s', (1024**3)*3, True, "
> "is_static=True)" % port.name, vm, 30)
> - if match != None:
> + if match is None:
> raise error.TestFail("Write on guest while host disconnected "
> - "didn't timed out.\nOutput:\n%s"
> + "didn't time out.\nOutput:\n%s"
> % tmp)
> 
> time.sleep(20)
> @@ -912,8 +911,8 @@ def run_virtio_console(test, params, env):
> if (ret[0] != []):
> rlen += len(port.sock.recv(((4096))))
> elif rlen != (1024**3*3):
> - raise error.TestFail("Not all data are received."
> - "Only %d from %d" % (rlen, 1024**3*3))
> + raise error.TestFail("Not all data was received,"
> + "only %d from %d" % (rlen, 1024**3*3))
> on_guest("print 'PASS: nothing'", vm, 10)
> 
> 
> @@ -939,42 +938,41 @@ def run_virtio_console(test, params, env):
> loads.start()
> 
> try:
> - sended1 = 0
> + sent1 = 0
> for i in range(1000000):
> - sended1 += port.sock.send("a")
> - except (socket.timeout):
> - logging.info("Send data to closed port timeouted.")
> + sent1 += port.sock.send("a")
> + except socket.timeout:
> + logging.info("Data sending to closed port timed out.")
> 
> - logging.info("Sendes bytes to client: %d" % (sended1))
> + logging.info("Bytes sent to client: %d" % (sent1))
> logging.info("\n" + loads.get_cpu_status_string()[:-1])
> 
> on_guest('echo -n "PASS:"', vm, 10)
> 
> -
> - logging.info("Open and then close port %s." % (port.name))
> + logging.info("Open and then close port %s" % (port.name))
> init_guest(vm, consoles)
> - #Test of live and open and close port again.
> + # Test of live and open and close port again
> _clean_ports(vm, consoles)
> on_guest("virt.close('%s')" % (port.name), vm, 10)
> 
> - #With serialport it makes another behavior
> + # With serialport it is a different behavior
> on_guest("guest_exit()", vm, 10)
> port.sock.settimeout(20.0)
> 
> loads.start()
> try:
> - sended2 = 0
> + sent2 = 0
> for i in range(40000):
> - sended2 = port.sock.send("a")
> - except (socket.timeout):
> - logging.info("Send data to closed port timeouted.")
> + sent2 = port.sock.send("a")
> + except socket.timeout:
> + logging.info("Data sending to closed port timed out.")
> 
> - logging.info("Sendes bytes to client: %d" % (sended2))
> + logging.info("Bytes sent to client: %d" % (sent2))
> logging.info("\n" + loads.get_cpu_status_string()[:-1])
> loads.stop()
> - if (sended1 != sended2):
> - logging.warning("Inconsis behavior first send %d and sec send %d" %
> - (sended1, sended2))
> + if (sent1 != sent2):
> + logging.warning("Inconsistent behavior: First sent %d bytes and "
> + "second sent %d bytes" % (sent1, sent2))
> 
> port.sock.settimeout(None)
> (vm[0], vm[1], vm[3]) = _restore_vm()
> @@ -1000,7 +998,7 @@ def run_virtio_console(test, params, env):
> if match == 0:
> raise error.TestFail("Received data even when non were sent\n"
> "Data:\n%s" % tmp)
> - elif match != None:
> + elif match is not None:
> raise error.TestFail("Unexpected fail\nMatch: %s\nData:\n%s" %
> (match, tmp))
> port.sock.sendall("1234567890")
> @@ -1025,7 +1023,7 @@ def run_virtio_console(test, params, env):
> if match == 0:
> raise error.TestFail("Received data even when non were sent\n"
> "Data:\n%s" % tmp)
> - elif match == None:
> + elif match is None:
> raise error.TestFail("Timed out, probably in blocking mode\n"
> "Data:\n%s" % tmp)
> elif match != 1:
> @@ -1087,9 +1085,9 @@ def run_virtio_console(test, params, env):
> on_guest("virt.clean_port('%s'),1024" % cname, vm, 2)
> 
> 
> - def tmax_serail_ports(vm, consoles):
> + def tmax_serial_ports(vm, consoles):
> """
> - Test maximim count of ports in guest machine.
> + Test maximum count of ports in guest machine.
> 
> @param vm: Target virtual machine [vm, session, tmp_dir, ser_session].
> @param consoles: Consoles which should be close before rmmod.
> @@ -1107,7 +1105,7 @@ def run_virtio_console(test, params, env):
> 
> def tmax_console_ports(vm, consoles):
> """
> - Test maximim count of ports in guest machine.
> + Test maximum count of ports in guest machine.
> 
> @param vm: Target virtual machine [vm, session, tmp_dir, ser_session].
> @param consoles: Consoles which should be close before rmmod.
> @@ -1178,7 +1176,7 @@ def run_virtio_console(test, params, env):
> 
> def tmigrate_offline(vm, consoles):
> """
> - Let the machine migrate. Virtio_concoles should survive this.
> + Let the machine migrate. Virtio_consoles should survive this.
> 
> @param vm: Target virtual machine [vm, session, tmp_dir, ser_session].
> @param consoles: Consoles which should be close before rmmod.
> @@ -1444,14 +1442,14 @@ def run_virtio_console(test, params, env):
> # Check if python is still alive
> print "CLEANING"
> match, tmp = _on_guest("is_alive()", vm, 10)
> - if (match == None) or (match != 0):
> + if (match is None) or (match != 0):
> logging.error("Python died/is stucked/have remaining threads")
> logging.debug(tmp)
> try:
> if vm[4] == True:
> raise error.TestFail("Kernel crash.")
> match, tmp = _on_guest("guest_exit()", vm, 10)
> - if (match == None) or (match == 0):
> + if (match is None) or (match == 0):
> vm[1].close()
> vm[1] = kvm_test_utils.wait_for_login(vm[0], 0,
> float(params.get("boot_timeout", 5)),
> @@ -1487,7 +1485,7 @@ def run_virtio_console(test, params, env):
> match = _on_guest("virt.clean_port('%s'),1024" %
> cname, vm, 10)[0]
> 
> - if (match == None) or (match != 0):
> + if (match is None) or (match != 0):
> raise error.TestFail("Virtio-console driver is irrepar"
> "ably blocked. Every comd end"
> " with sig KILL. Neither the "
> @@ -1570,10 +1568,10 @@ def run_virtio_console(test, params, env):
> @param params: Test parameters '$console_type:$data;...'
> """
> subtest.headline("test_multiport:")
> - #Test Loopback
> + # Test Loopback
> subtest.do_test(tloopback, [vm, consoles, params[0]])
> 
> - #Test Performance
> + # Test Performance
> subtest.do_test(tperf, [vm, consoles, params[1]])
> 
> 
> @@ -1586,9 +1584,9 @@ def run_virtio_console(test, params, env):
> @param consoles: Field of virtio ports with the minimum of 2 items.
> """
> subtest.headline("test_destructive:")
> - #Test rmmod
> - subtest.do_test(trmmod,[vm, consoles])
> - subtest.do_test(tmax_serail_ports, [vm, consoles])
> + # Test rmmod
> + subtest.do_test(trmmod, [vm, consoles])
> + subtest.do_test(tmax_serial_ports, [vm, consoles])
> subtest.do_test(tmax_console_ports, [vm, consoles])
> subtest.do_test(tmax_mix_serial_conosle_port, [vm, consoles])
> subtest.do_test(tshutdown, [vm, consoles])
> @@ -1604,21 +1602,21 @@ def run_virtio_console(test, params, env):
> no_serialports = 0
> no_consoles = 0
> # consoles required for Smoke test
> - if (tsmoke_params.count('serialport')):
> + if tsmoke_params.count('serialport'):
> no_serialports = max(2, no_serialports)
> - if (tsmoke_params.count('console')):
> + if tsmoke_params.count('console'):
> no_consoles = max(2, no_consoles)
> # consoles required for Loopback test
> for param in tloopback_params.split(';'):
> no_serialports = max(no_serialports, param.count('serialport'))
> no_consoles = max(no_consoles, param.count('console'))
> # consoles required for Performance test
> - if (tperf_params.count('serialport')):
> + if tperf_params.count('serialport'):
> no_serialports = max(1, no_serialports)
> - if (tperf_params.count('console')):
> + if tperf_params.count('console'):
> no_consoles = max(1, no_consoles)
> 
> - if (no_serialports + no_consoles) == 0:
> + if no_serialports + no_consoles == 0:
> raise error.TestFail("No tests defined, probably incorrect "
> "configuration in tests_base.cfg")
> 
> @@ -1639,13 +1637,13 @@ def run_virtio_console(test, params, env):
> init_guest(vm, consoles)
> 
> subtest.set_cleanup_func(clean_ports, [vm, consoles])
> - #Test Smoke
> + # Test Smoke
> test_smoke(subtest, vm, consoles, tsmoke_params)
> 
> - #Test multiport functionality and performance.
> + # Test multiport functionality and performance.
> test_multiport(subtest, vm, consoles, [tloopback_params,
> tperf_params])
> 
> - #Test destructive test.
> + # Test destructive test.
> # Uses stronger clean up function
> (_cleanup_func, _cleanup_args) = subtest.get_cleanup_func()
> subtest.set_cleanup_func(clean_reload_vm, [vm, consoles])
> --
> 1.7.4
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux