On 06/14/2010 04:32 AM, Amos Kong wrote:
> On Sun, Jun 13, 2010 at 05:33:42PM +0300, Michael Goldish wrote:
>> This module should replace vm.send_monitor_cmd(). Instead of connecting to
>> the
>> monitor each time a command is issued, this module maintains a continuous
>> connection to the monitor. It disconnects when a test terminates and
>> reconnects as soon as the next test begins (upon unpickling).
>>
>> It currently contains only an interface to the human monitor. A QMP
>> interface
>> will be introduced in a future patch.
>>
>> Signed-off-by: Michael Goldish <[email protected]>
>> ---
>> client/tests/kvm/kvm_monitor.py | 356
>> +++++++++++++++++++++++++++++++++++++++
>> 1 files changed, 356 insertions(+), 0 deletions(-)
>> create mode 100644 client/tests/kvm/kvm_monitor.py
>>
>> diff --git a/client/tests/kvm/kvm_monitor.py
>> b/client/tests/kvm/kvm_monitor.py
>> new file mode 100644
>> index 0000000..c5cf9c3
>> --- /dev/null
>> +++ b/client/tests/kvm/kvm_monitor.py
>> @@ -0,0 +1,356 @@
>> +"""
>> +Interfaces to the QEMU monitor.
>> +
>> +...@copyright: 2008-2010 Red Hat Inc.
>> +"""
>> +
>
> ...
>
>> +class HumanMonitor(Monitor):
>> + """
>> + Wraps "human monitor" commands.
>> + """
>> +
>> + def __init__(self, filename, suppress_exceptions=False):
>> + """
>> + Connect to the monitor socket and find the (qemu) prompt.
>> +
>> + @param filename: Monitor socket filename
>> + @raise MonitorConnectError: Raised if the connection fails and
>> + suppress_exceptions is False
>> + @raise MonitorProtocolError: Raised if the initial (qemu) prompt
>> isn't
>> + found and suppress_exceptions is False
>> + """
>> + try:
>> + Monitor.__init__(self, filename)
>> +
>> + self.protocol = "human"
>> +
>> + # Find the initial (qemu) prompt
>> + s, o = self._read_up_to_qemu_prompt(20)
>> + if not s:
>> + raise MonitorProtocolError("Could not find (qemu) prompt "
>> + "after connecting to monitor. "
>> + "Output so far: %r" % o)
>> +
>> + # Save the output of 'help' for future use
>> + self.help = self._get_command_output("help")
>
> Hi Michael,
>
> Here, self.help is a string type.
> But you repeatedly define a sub function self.help() below.
>
> If I call vm.monitor.help() in testcase, will touch this err:
> TypeError: 'str' object is not callable
Oops. I'll fix that.
> How about using self.help_str = self._get_command_output("help")?
> and remove help sub function, Not only repeated name, but repeated function.
>
>
> Amos
OK, it might be a good idea to remove help() altogether, especially
since QMP doesn't support it AFAIK. BTW, testcases are supposed to use
vm.monitor.cmd(), not vm.monitor._get_command_output().
>> +
>> + except MonitorError, e:
>> + if suppress_exceptions:
>> + logging.warn(e)
>> + else:
>> + raise
>> +
>
> ...
>
>> +
>> + def help(self):
>> + """
>> + Send "help" and return the output.
>> + """
>> + return self._get_command_output("help")
>
> ...
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
_______________________________________________
Autotest mailing list
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest