• J
    block: qemu-iotests - add common.qemu, for bash-controlled qemu tests · e940bc13
    Jeff Cody 提交于
    This creates some common functions for bash language qemu-iotests
    to control, and communicate with, a running QEMU process.
    
    4 functions are introduced:
    
        1. _launch_qemu()
            This launches the QEMU process(es), and sets up the file
            descriptors and fifos for communication.  You can choose to
            launch each QEMU process listening for either QMP or HMP
            monitor.  You can call this function multiple times, and
            save the handle returned from each.  The returned handle is
            in $QEMU_HANDLE.  You must copy this value.
    
    Commands 2 and 3 use the handle received from _launch_qemu(), to talk
    to the appropriate process.
    
        2. _send_qemu_cmd()
            Sends a command string, specified by $2, to QEMU.  If $3 is
            non-NULL, _send_qemu_cmd() will wait to receive $3 as a
            required result string from QEMU.  Failure to receive $3 will
            cause the test to fail.  The command can optionally be retried
            $qemu_cmd_repeat number of times.  Set $qemu_error_no_exit
            to not force the test the fail on exit; in this case,
            $QEMU_STATUS[$1] will be set to -1 on failure.
    
        3. _timed_wait_for()
            Waits for a response, for up to a default of 10 seconds.  If
            $2 is not seen in that time (anywhere in the response), then
            the test fails.  Primarily used by _send_qemu_cmd, but could
            be useful standalone, as well.  To prevent automatic exit
            (and therefore test failure), set $qemu_error_no_exit to a
            non-NULL value.  If $silent is a non-NULL value, then output
            to stdout will be suppressed.
    
        4. _cleanup_qemu()
            Kills the running QEMU processes, and removes the fifos.
    Signed-off-by: NJeff Cody <jcody@redhat.com>
    Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
    e940bc13
common.qemu 5.9 KB