[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC v2 3/6] Add core python test framework
From: |
Anthony Liguori |
Subject: |
[Qemu-devel] [RFC v2 3/6] Add core python test framework |
Date: |
Thu, 1 Dec 2011 12:43:29 -0600 |
---
qtest.py | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 69 insertions(+), 0 deletions(-)
create mode 100644 qtest.py
diff --git a/qtest.py b/qtest.py
new file mode 100644
index 0000000..5ac2e9b
--- /dev/null
+++ b/qtest.py
@@ -0,0 +1,69 @@
+import socket
+
+q = None
+
+class QTest(object):
+ def __init__(self, path):
+ self._sock = socket.socket(socket.AF_UNIX)
+ self._sock.connect(path)
+ self.inbuf = ''
+ self.irqs = {}
+ for i in range(16):
+ self.irqs[i] = False
+
+ def _recv(self):
+ while self.inbuf.find('\n') == -1:
+ self.inbuf += self._sock.recv(1024)
+
+ rsp, self.inbuf = self.inbuf.split('\n', 1)
+ return rsp.split()
+
+ def _send(self, command, *args):
+ outbuf = ' '.join([command] + map(str, args))
+ self._sock.sendall(outbuf + '\n')
+
+ def _cmd(self, command, *args):
+ self._send(command, *args)
+ while True:
+ rsp = self._recv()
+ if rsp[0] in ['IRQ']:
+ num = int(rsp[2], 0)
+ if rsp[1] in ['raise']:
+ self.irqs[num] = True
+ else:
+ self.irqs[num] = False
+ continue
+ if rsp[0] != 'OK':
+ raise Exception('Bad response')
+ break
+ return rsp[1:]
+
+ def get_irq(self, num):
+ return self.irqs[num]
+
+# Helpers to add expected platform functions in the current namespace
+
+def init(path):
+ global q
+ q = QTest(path)
+
+def outb(addr, value):
+ q._cmd('outb', addr, value)
+
+def outw(addr, value):
+ q._cmd('outw', addr, value)
+
+def outl(addr, value):
+ q._cmd('outl', addr, value)
+
+def inb(addr):
+ return int(q._cmd('inb', addr)[0], 0)
+
+def inw(addr):
+ return int(q._cmd('inw', addr)[0], 0)
+
+def inl(addr):
+ return int(q._cmd('inl', addr)[0], 0)
+
+def get_irq(num):
+ return q.get_irq(num)
--
1.7.4.1
- [Qemu-devel] [RFC v2 0/6] qtest unit test framework, Anthony Liguori, 2011/12/01
- [Qemu-devel] [RFC v2 4/6] Add uart test case, Anthony Liguori, 2011/12/01
- [Qemu-devel] [RFC v2 2/6] qtest: add support for target-i386 -M pc, Anthony Liguori, 2011/12/01
- [Qemu-devel] [RFC v2 3/6] Add core python test framework,
Anthony Liguori <=
- [Qemu-devel] [RFC v2 5/6] Add RTC test case, Anthony Liguori, 2011/12/01
- [Qemu-devel] [RFC v2 6/6] Add C version of rtc-test, Anthony Liguori, 2011/12/01
- Re: [Qemu-devel] [RFC v2 6/6] Add C version of rtc-test, Kevin Wolf, 2011/12/02
- Re: [Qemu-devel] [RFC v2 6/6] Add C version of rtc-test, Anthony Liguori, 2011/12/02
- Re: [Qemu-devel] [RFC v2 6/6] Add C version of rtc-test, Kevin Wolf, 2011/12/02
- Re: [Qemu-devel] [RFC v2 6/6] Add C version of rtc-test, Luiz Capitulino, 2011/12/02
- Re: [Qemu-devel] [RFC v2 6/6] Add C version of rtc-test, Anthony Liguori, 2011/12/02
- Re: [Qemu-devel] [RFC v2 6/6] Add C version of rtc-test, Kevin Wolf, 2011/12/05
[Qemu-devel] [RFC v2 1/6] qtest: add test framework, Anthony Liguori, 2011/12/01