[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC v2 01/20] qemu.py: Make logging optional
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [RFC v2 01/20] qemu.py: Make logging optional |
Date: |
Fri, 25 Nov 2016 20:05:37 -0200 |
If a test case doesn't make QEMU generate any output, there's no
need to redirect stdout and stderr to a file. On those cases,
logging can be disabled so any errors are included on the test
case output.
Signed-off-by: Eduardo Habkost <address@hidden>
---
Changes series v1 -> v2:
* (none)
---
scripts/qemu.py | 25 +++++++++++++++++++------
1 file changed, 19 insertions(+), 6 deletions(-)
diff --git a/scripts/qemu.py b/scripts/qemu.py
index 6d1b623..1468286 100644
--- a/scripts/qemu.py
+++ b/scripts/qemu.py
@@ -24,13 +24,17 @@ class QEMUMachine(object):
'''A QEMU VM'''
def __init__(self, binary, args=[], wrapper=[], name=None,
test_dir="/var/tmp",
- monitor_address=None, socket_scm_helper=None, debug=False):
+ monitor_address=None, socket_scm_helper=None, debug=False,
+ logging=True):
if name is None:
name = "qemu-%d" % os.getpid()
if monitor_address is None:
monitor_address = os.path.join(test_dir, name + "-monitor.sock")
self._monitor_address = monitor_address
- self._qemu_log_path = os.path.join(test_dir, name + ".log")
+ if logging:
+ self._qemu_log_path = os.path.join(test_dir, name + ".log")
+ else:
+ self._qemu_log_path = None
self._popen = None
self._binary = binary
self._args = list(args) # Force copy args in case we modify them
@@ -91,6 +95,8 @@ class QEMUMachine(object):
return self._popen.pid
def _load_io_log(self):
+ if self._qemu_log_path is None:
+ return
with open(self._qemu_log_path, "r") as fh:
self._iolog = fh.read()
@@ -115,17 +121,24 @@ class QEMUMachine(object):
def _post_shutdown(self):
if not isinstance(self._monitor_address, tuple):
self._remove_if_exists(self._monitor_address)
- self._remove_if_exists(self._qemu_log_path)
+ if self._qemu_log_path is not None:
+ self._remove_if_exists(self._qemu_log_path)
def launch(self):
'''Launch the VM and establish a QMP connection'''
devnull = open('/dev/null', 'rb')
- qemulog = open(self._qemu_log_path, 'wb')
+ if self._qemu_log_path is not None:
+ qemulog = open(self._qemu_log_path, 'wb')
+ stdout=qemulog
+ stderr=subprocess.STDOUT
+ else:
+ stdout=None
+ stderr=None
try:
self._pre_launch()
args = self._wrapper + [self._binary] + self._base_args() +
self._args
- self._popen = subprocess.Popen(args, stdin=devnull, stdout=qemulog,
- stderr=subprocess.STDOUT,
shell=False)
+ self._popen = subprocess.Popen(args, stdin=devnull, stdout=stdout,
+ stderr=stderr, shell=False)
self._post_launch()
except:
if self._popen:
--
2.7.4
- [Qemu-devel] [RFC v2 00/20] qmp: Report bus information on 'query-machines', Eduardo Habkost, 2016/11/25
- [Qemu-devel] [RFC v2 01/20] qemu.py: Make logging optional,
Eduardo Habkost <=
- [Qemu-devel] [RFC v2 02/20] qtest.py: Support QTEST_LOG environment variable, Eduardo Habkost, 2016/11/25
- [Qemu-devel] [RFC v2 03/20] qtest.py: make logging optional, Eduardo Habkost, 2016/11/25
- [Qemu-devel] [RFC v2 04/20] qtest.py: Make 'binary' parameter optional, Eduardo Habkost, 2016/11/25
- [Qemu-devel] [RFC v2 05/20] tests: Add rules to non-gtester qtest test cases, Eduardo Habkost, 2016/11/25
- [Qemu-devel] [RFC v2 06/20] qdev: Add 'accepted-device-types' property to BusClass, Eduardo Habkost, 2016/11/25
- [Qemu-devel] [RFC v2 08/20] virtio-pci: Set PCIDeviceClass::is_express=1, Eduardo Habkost, 2016/11/25
- [Qemu-devel] [RFC v2 07/20] qmp: Add 'always-available-buses' field to 'query-machines', Eduardo Habkost, 2016/11/25
- [Qemu-devel] [RFC v2 09/20] vmxnet3: Set PCIDeviceClass::is_express=1, Eduardo Habkost, 2016/11/25