[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 3/5] qemu-iotests: Add VM method qtest() to iotes
From: |
Fam Zheng |
Subject: |
[Qemu-devel] [PATCH v4 3/5] qemu-iotests: Add VM method qtest() to iotests.py |
Date: |
Thu, 5 Jun 2014 16:47:44 +0800 |
This will allow test case to run command in qtest protocol. It's
write-only for now.
Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: Benoit Canet <address@hidden>
---
tests/qemu-iotests/iotests.py | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
index f6c437c..914b4d3 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -21,9 +21,13 @@ import re
import subprocess
import string
import unittest
-import sys; sys.path.append(os.path.join(os.path.dirname(__file__), '..',
'..', 'scripts', 'qmp'))
+import sys
+sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'scripts',
'qmp'))
+sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'scripts',
'qtest'))
import qmp
+import qtest
import struct
+import socket
__all__ = ['imgfmt', 'imgproto', 'test_dir' 'qemu_img', 'qemu_io',
'VM', 'QMPTestCase', 'notrun', 'main']
@@ -80,10 +84,12 @@ class VM(object):
def __init__(self):
self._monitor_path = os.path.join(test_dir, 'qemu-mon.%d' %
os.getpid())
self._qemu_log_path = os.path.join(test_dir, 'qemu-log.%d' %
os.getpid())
+ self._qtest_path = os.path.join(test_dir, 'qemu-qtest.%d' %
os.getpid())
self._args = qemu_args + ['-chardev',
'socket,id=mon,path=' + self._monitor_path,
'-mon', 'chardev=mon,mode=control',
- '-qtest', 'stdio', '-machine', 'accel=qtest',
+ '-qtest', 'unix:path=' + self._qtest_path,
+ '-machine', 'accel=qtest',
'-display', 'none', '-vga', 'none']
self._num_drives = 0
@@ -159,9 +165,11 @@ class VM(object):
qemulog = open(self._qemu_log_path, 'wb')
try:
self._qmp = qmp.QEMUMonitorProtocol(self._monitor_path,
server=True)
+ self._qtest = qtest.QEMUQtestProtocol(self._qtest_path,
server=True)
self._popen = subprocess.Popen(self._args, stdin=devnull,
stdout=qemulog,
stderr=subprocess.STDOUT)
self._qmp.accept()
+ self._qtest.accept()
except:
os.remove(self._monitor_path)
raise
@@ -172,6 +180,7 @@ class VM(object):
self._qmp.cmd('quit')
self._popen.wait()
os.remove(self._monitor_path)
+ os.remove(self._qtest_path)
os.remove(self._qemu_log_path)
self._popen = None
@@ -184,6 +193,10 @@ class VM(object):
return self._qmp.cmd(cmd, args=qmp_args)
+ def qtest(self, cmd):
+ '''Send a qtest command to guest'''
+ return self._qtest.cmd(cmd)
+
def get_qmp_event(self, wait=False):
'''Poll for one queued QMP events and return it'''
return self._qmp.pull_event(wait=wait)
--
2.0.0
- [Qemu-devel] [PATCH v4 0/5] This series adds iotest case for IO throttling., Fam Zheng, 2014/06/05
- [Qemu-devel] [PATCH v4 1/5] qemu-io: Account IO by aio_read and aio_write, Fam Zheng, 2014/06/05
- [Qemu-devel] [PATCH v4 2/5] qtest: Add scripts/qtest/qtest.py, Fam Zheng, 2014/06/05
- [Qemu-devel] [PATCH v4 3/5] qemu-iotests: Add VM method qtest() to iotests.py,
Fam Zheng <=
- [Qemu-devel] [PATCH v4 4/5] qemu-iotests: Allow caller to disable underscore convertion for qmp, Fam Zheng, 2014/06/05
- [Qemu-devel] [PATCH v4 5/5] qemu-iotests: Add 093 for IO throttling, Fam Zheng, 2014/06/05
- Re: [Qemu-devel] [PATCH v4 0/5] This series adds iotest case for IO throttling., Fam Zheng, 2014/06/16