@@ -84,42 +84,54 @@ def __init__(self, binary, args=None, wrapper=None, name=None,
@param monitor_address: address for QMP monitor
@param socket_scm_helper: helper program, required for send_fd_scm()
@param sock_dir: where to create socket (overrides test_dir for sock)
- @param console_log: (optional) path to console log file
@param drain_console: (optional) True to drain console socket to buffer
+ @param console_log: (optional) path to console log file
@note: Qemu process is not started until launch() is used.
'''
+ # Direct user configuration
+
+ self._binary = binary
+
if args is None:
args = []
+ # Copy mutable input: we will be modifying our copy
+ self._args = list(args)
+
if wrapper is None:
wrapper = []
- if name is None:
- name = "qemu-%d" % os.getpid()
- if sock_dir is None:
- sock_dir = test_dir
- self._name = name
+ self._wrapper = wrapper
+
+ self._name = name or "qemu-%d" % os.getpid()
+ self._test_dir = test_dir
+ self._sock_dir = sock_dir or self._test_dir
+ self._socket_scm_helper = socket_scm_helper
+
if monitor_address is not None:
self._monitor_address = monitor_address
self._remove_monitor_sockfile = False
else:
self._monitor_address = os.path.join(
- sock_dir, f"{name}-monitor.sock"
+ self._sock_dir, f"{self._name}-monitor.sock"
)
self._remove_monitor_sockfile = True
+
+ self._console_log_path = console_log
+ if self._console_log_path:
+ # In order to log the console, buffering needs to be enabled.
+ self._drain_console = True
+ else:
+ self._drain_console = drain_console
+
+ # Runstate
self._qemu_log_path = None
self._qemu_log_file = None
self._popen = None
- self._binary = binary
- self._args = list(args) # Force copy args in case we modify them
- self._wrapper = wrapper
self._events = []
self._iolog = None
- self._socket_scm_helper = socket_scm_helper
self._qmp_set = True # Enable QMP monitor by default.
self._qmp = None
self._qemu_full_args = None
- self._test_dir = test_dir
self._temp_dir = None
- self._sock_dir = sock_dir
self._launched = False
self._machine = None
self._console_index = 0
@@ -129,12 +141,6 @@ def __init__(self, binary, args=None, wrapper=None, name=None,
self._console_socket = None
self._remove_files = []
self._user_killed = False
- self._console_log_path = console_log
- if self._console_log_path:
- # In order to log the console, buffering needs to be enabled.
- self._drain_console = True
- else:
- self._drain_console = drain_console
def __enter__(self):
return self