1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-07 17:28:15 +00:00

Convert character devices over to use -device

The current character device syntax uses either

  -serial tty,path=/dev/ttyS2

Or

  -chardev tty,id=serial0,path=/dev/ttyS2 -serial chardev:serial0

With the new -device support, we now prefer

  -chardev file,id=serial0,path=/tmp/serial.log -device isa-serial,chardev=serial0

This patch changes the existing -chardev syntax to use this new
scheme, and fallbacks to the old plain -serial syntax for old
QEMU.

The monitor device changes to

  -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -mon chardev=monitor

In addition, this patch adds --nodefaults, which kills off the
default serial, parallel, vga and nic devices. THis avoids the
need for us to explicitly turn each off
This commit is contained in:
Daniel P. Berrange 2009-12-14 18:04:35 +00:00
parent 053307175c
commit 7b2f8cdd7c
15 changed files with 78 additions and 76 deletions

View File

@ -1994,43 +1994,42 @@ qemuBuildHostNetStr(virConnectPtr conn,
/* This function outputs a -chardev command line option which describes only the /* This function outputs a -chardev command line option which describes only the
* host side of the character device */ * host side of the character device */
static void qemudBuildCommandLineChrDevChardevStr(virDomainChrDefPtr dev, static void qemudBuildCommandLineChrDevChardevStr(virDomainChrDefPtr dev,
const char *const id,
virBufferPtr buf) virBufferPtr buf)
{ {
bool telnet; bool telnet;
switch(dev->type) { switch(dev->type) {
case VIR_DOMAIN_CHR_TYPE_NULL: case VIR_DOMAIN_CHR_TYPE_NULL:
virBufferVSprintf(buf, "null,id=%s", id); virBufferVSprintf(buf, "null,id=%s", dev->info.alias);
break; break;
case VIR_DOMAIN_CHR_TYPE_VC: case VIR_DOMAIN_CHR_TYPE_VC:
virBufferVSprintf(buf, "vc,id=%s", id); virBufferVSprintf(buf, "vc,id=%s", dev->info.alias);
break; break;
case VIR_DOMAIN_CHR_TYPE_PTY: case VIR_DOMAIN_CHR_TYPE_PTY:
virBufferVSprintf(buf, "pty,id=%s", id); virBufferVSprintf(buf, "pty,id=%s", dev->info.alias);
break; break;
case VIR_DOMAIN_CHR_TYPE_DEV: case VIR_DOMAIN_CHR_TYPE_DEV:
virBufferVSprintf(buf, "tty,id=%s,path=%s", id, dev->data.file.path); virBufferVSprintf(buf, "tty,id=%s,path=%s", dev->info.alias, dev->data.file.path);
break; break;
case VIR_DOMAIN_CHR_TYPE_FILE: case VIR_DOMAIN_CHR_TYPE_FILE:
virBufferVSprintf(buf, "file,id=%s,path=%s", id, dev->data.file.path); virBufferVSprintf(buf, "file,id=%s,path=%s", dev->info.alias, dev->data.file.path);
break; break;
case VIR_DOMAIN_CHR_TYPE_PIPE: case VIR_DOMAIN_CHR_TYPE_PIPE:
virBufferVSprintf(buf, "pipe,id=%s,path=%s", id, dev->data.file.path); virBufferVSprintf(buf, "pipe,id=%s,path=%s", dev->info.alias, dev->data.file.path);
break; break;
case VIR_DOMAIN_CHR_TYPE_STDIO: case VIR_DOMAIN_CHR_TYPE_STDIO:
virBufferVSprintf(buf, "stdio,id=%s", id); virBufferVSprintf(buf, "stdio,id=%s", dev->info.alias);
break; break;
case VIR_DOMAIN_CHR_TYPE_UDP: case VIR_DOMAIN_CHR_TYPE_UDP:
virBufferVSprintf(buf, virBufferVSprintf(buf,
"udp,id=%s,host=%s,port=%s,localaddr=%s,localport=%s", "udp,id=%s,host=%s,port=%s,localaddr=%s,localport=%s",
id, dev->info.alias,
dev->data.udp.connectHost, dev->data.udp.connectHost,
dev->data.udp.connectService, dev->data.udp.connectService,
dev->data.udp.bindHost, dev->data.udp.bindHost,
@ -2041,7 +2040,7 @@ static void qemudBuildCommandLineChrDevChardevStr(virDomainChrDefPtr dev,
telnet = dev->data.tcp.protocol == VIR_DOMAIN_CHR_TCP_PROTOCOL_TELNET; telnet = dev->data.tcp.protocol == VIR_DOMAIN_CHR_TCP_PROTOCOL_TELNET;
virBufferVSprintf(buf, virBufferVSprintf(buf,
"socket,id=%s,host=%s,port=%s%s%s", "socket,id=%s,host=%s,port=%s%s%s",
id, dev->info.alias,
dev->data.tcp.host, dev->data.tcp.host,
dev->data.tcp.service, dev->data.tcp.service,
telnet ? ",telnet" : "", telnet ? ",telnet" : "",
@ -2051,7 +2050,7 @@ static void qemudBuildCommandLineChrDevChardevStr(virDomainChrDefPtr dev,
case VIR_DOMAIN_CHR_TYPE_UNIX: case VIR_DOMAIN_CHR_TYPE_UNIX:
virBufferVSprintf(buf, virBufferVSprintf(buf,
"socket,id=%s,path=%s%s", "socket,id=%s,path=%s%s",
id, dev->info.alias,
dev->data.nix.path, dev->data.nix.path,
dev->data.nix.listen ? ",server,nowait" : ""); dev->data.nix.listen ? ",server,nowait" : "");
break; break;
@ -2494,7 +2493,7 @@ int qemudBuildCommandLine(virConnectPtr conn,
/* Use -chardev if it's available */ /* Use -chardev if it's available */
if (qemuCmdFlags & QEMUD_CMD_FLAG_CHARDEV) { if (qemuCmdFlags & QEMUD_CMD_FLAG_CHARDEV) {
qemudBuildCommandLineChrDevChardevStr(monitor_chr, "monitor", &buf); qemudBuildCommandLineChrDevChardevStr(monitor_chr, &buf);
if (virBufferError(&buf)) { if (virBufferError(&buf)) {
virBufferFreeAndReset(&buf); virBufferFreeAndReset(&buf);
goto no_memory; goto no_memory;
@ -2503,26 +2502,32 @@ int qemudBuildCommandLine(virConnectPtr conn,
ADD_ARG_LIT("-chardev"); ADD_ARG_LIT("-chardev");
ADD_ARG(virBufferContentAndReset(&buf)); ADD_ARG(virBufferContentAndReset(&buf));
virBufferVSprintf(&buf, "chardev=%s", monitor_chr->info.alias);
if (virBufferError(&buf)) {
virBufferFreeAndReset(&buf);
goto no_memory;
}
ADD_ARG_LIT("-mon");
if (monitor_json) if (monitor_json)
virBufferAddLit(&buf, "control,"); ADD_ARG_LIT("chardev=monitor,mode=control");
else
virBufferAddLit(&buf, "chardev:monitor"); ADD_ARG_LIT("chardev=monitor,mode=readline");
} } else {
else {
if (monitor_json) if (monitor_json)
virBufferAddLit(&buf, "control,"); virBufferAddLit(&buf, "control,");
qemudBuildCommandLineChrDevStr(monitor_chr, &buf); qemudBuildCommandLineChrDevStr(monitor_chr, &buf);
}
if (virBufferError(&buf)) { if (virBufferError(&buf)) {
virBufferFreeAndReset(&buf); virBufferFreeAndReset(&buf);
goto no_memory; goto no_memory;
} }
ADD_ARG_LIT("-monitor"); ADD_ARG_LIT("-monitor");
ADD_ARG(virBufferContentAndReset(&buf)); ADD_ARG(virBufferContentAndReset(&buf));
}
} }
if (def->localtime) if (def->localtime)
@ -2785,14 +2790,10 @@ int qemudBuildCommandLine(virConnectPtr conn,
virBuffer buf = VIR_BUFFER_INITIALIZER; virBuffer buf = VIR_BUFFER_INITIALIZER;
virDomainChrDefPtr serial = def->serials[i]; virDomainChrDefPtr serial = def->serials[i];
/* Use -chardev if it's available */ /* Use -chardev with -device if they are available */
if (qemuCmdFlags & QEMUD_CMD_FLAG_CHARDEV) { if ((qemuCmdFlags & QEMUD_CMD_FLAG_CHARDEV) &&
char id[16]; (qemuCmdFlags & QEMUD_CMD_FLAG_DEVICE)) {
qemudBuildCommandLineChrDevChardevStr(serial, &buf);
if (snprintf(id, sizeof(id), "serial%i", i) > sizeof(id))
goto error;
qemudBuildCommandLineChrDevChardevStr(serial, id, &buf);
if (virBufferError(&buf)) { if (virBufferError(&buf)) {
virBufferFreeAndReset(&buf); virBufferFreeAndReset(&buf);
goto no_memory; goto no_memory;
@ -2801,13 +2802,13 @@ int qemudBuildCommandLine(virConnectPtr conn,
ADD_ARG_LIT("-chardev"); ADD_ARG_LIT("-chardev");
ADD_ARG(virBufferContentAndReset(&buf)); ADD_ARG(virBufferContentAndReset(&buf));
virBufferVSprintf(&buf, "chardev:%s", id); virBufferVSprintf(&buf, "isa-serial,chardev=%s", serial->info.alias);
if (virBufferError(&buf)) { if (virBufferError(&buf)) {
virBufferFreeAndReset(&buf); virBufferFreeAndReset(&buf);
goto no_memory; goto no_memory;
} }
ADD_ARG_LIT("-serial"); ADD_ARG_LIT("-device");
ADD_ARG(virBufferContentAndReset(&buf)); ADD_ARG(virBufferContentAndReset(&buf));
} }
@ -2835,14 +2836,10 @@ int qemudBuildCommandLine(virConnectPtr conn,
virBuffer buf = VIR_BUFFER_INITIALIZER; virBuffer buf = VIR_BUFFER_INITIALIZER;
virDomainChrDefPtr parallel = def->parallels[i]; virDomainChrDefPtr parallel = def->parallels[i];
/* Use -chardev if it's available */ /* Use -chardev with -device if they are available */
if (qemuCmdFlags & QEMUD_CMD_FLAG_CHARDEV) { if ((qemuCmdFlags & QEMUD_CMD_FLAG_CHARDEV) &&
char id[16]; (qemuCmdFlags & QEMUD_CMD_FLAG_DEVICE)) {
qemudBuildCommandLineChrDevChardevStr(parallel, &buf);
if (snprintf(id, sizeof(id), "parallel%i", i) > sizeof(id))
goto error;
qemudBuildCommandLineChrDevChardevStr(parallel, id, &buf);
if (virBufferError(&buf)) { if (virBufferError(&buf)) {
virBufferFreeAndReset(&buf); virBufferFreeAndReset(&buf);
goto no_memory; goto no_memory;
@ -2851,13 +2848,13 @@ int qemudBuildCommandLine(virConnectPtr conn,
ADD_ARG_LIT("-chardev"); ADD_ARG_LIT("-chardev");
ADD_ARG(virBufferContentAndReset(&buf)); ADD_ARG(virBufferContentAndReset(&buf));
virBufferVSprintf(&buf, "chardev:%s", id); virBufferVSprintf(&buf, "isa-parallel,chardev=%s", parallel->info.alias);
if (virBufferError(&buf)) { if (virBufferError(&buf)) {
virBufferFreeAndReset(&buf); virBufferFreeAndReset(&buf);
goto no_memory; goto no_memory;
} }
ADD_ARG_LIT("-parallel"); ADD_ARG_LIT("-device");
ADD_ARG(virBufferContentAndReset(&buf)); ADD_ARG(virBufferContentAndReset(&buf));
} }
@ -2876,13 +2873,8 @@ int qemudBuildCommandLine(virConnectPtr conn,
for (i = 0 ; i < def->nchannels ; i++) { for (i = 0 ; i < def->nchannels ; i++) {
virBuffer buf = VIR_BUFFER_INITIALIZER; virBuffer buf = VIR_BUFFER_INITIALIZER;
char id[16];
virDomainChrDefPtr channel = def->channels[i]; virDomainChrDefPtr channel = def->channels[i];
if (snprintf(id, sizeof(id), "channel%i", i) > sizeof(id))
goto error;
switch(channel->targetType) { switch(channel->targetType) {
case VIR_DOMAIN_CHR_TARGET_TYPE_GUESTFWD: case VIR_DOMAIN_CHR_TARGET_TYPE_GUESTFWD:
if (!(qemuCmdFlags & QEMUD_CMD_FLAG_CHARDEV)) { if (!(qemuCmdFlags & QEMUD_CMD_FLAG_CHARDEV)) {
@ -2891,7 +2883,7 @@ int qemudBuildCommandLine(virConnectPtr conn,
goto error; goto error;
} }
qemudBuildCommandLineChrDevChardevStr(channel, id, &buf); qemudBuildCommandLineChrDevChardevStr(channel, &buf);
if (virBufferError(&buf)) { if (virBufferError(&buf)) {
virBufferFreeAndReset(&buf); virBufferFreeAndReset(&buf);
goto no_memory; goto no_memory;
@ -2904,7 +2896,7 @@ int qemudBuildCommandLine(virConnectPtr conn,
int port = virSocketGetPort(channel->target.addr); int port = virSocketGetPort(channel->target.addr);
virBufferVSprintf(&buf, "user,guestfwd=tcp:%s:%i-chardev:%s", virBufferVSprintf(&buf, "user,guestfwd=tcp:%s:%i-chardev:%s",
addr, port, id); addr, port, channel->info.alias);
VIR_FREE(addr); VIR_FREE(addr);

View File

@ -207,6 +207,11 @@ static int qemuDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt, void *data)
goto error; goto error;
} }
if (!(priv->monConfig->info.alias = strdup("monitor"))) {
virReportOOMError(NULL);
goto error;
}
if (!(monitorpath = if (!(monitorpath =
virXPathString(NULL, "string(./monitor[1]/@path)", ctxt))) { virXPathString(NULL, "string(./monitor[1]/@path)", ctxt))) {
qemudReportError(NULL, NULL, NULL, VIR_ERR_INTERNAL_ERROR, qemudReportError(NULL, NULL, NULL, VIR_ERR_INTERNAL_ERROR,
@ -269,6 +274,8 @@ static int qemuDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt, void *data)
return 0; return 0;
error: error:
virDomainChrDefFree(priv->monConfig);
priv->monConfig = NULL;
VIR_FREE(nodes); VIR_FREE(nodes);
return -1; return -1;
} }

View File

@ -1 +1 @@
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -monitor chardev:monitor -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -chardev pipe,id=channel0,path=/tmp/guestfwd -net user,guestfwd=tcp:10.0.2.1:4600-chardev:channel0 -usb LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -nodefaults -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -mon chardev=monitor,mode=readline -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -chardev pipe,id=channel0,path=/tmp/guestfwd -net user,guestfwd=tcp:10.0.2.1:4600-chardev:channel0 -usb

View File

@ -1 +1 @@
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -monitor chardev:monitor -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -chardev pty,id=serial0 -serial chardev:serial0 -parallel none -usb LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -nodefaults -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -mon chardev=monitor,mode=readline -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -chardev pty,id=serial0 -device isa-serial,chardev=serial0 -usb

View File

@ -1 +1 @@
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -monitor chardev:monitor -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -chardev socket,id=parallel0,host=127.0.0.1,port=9999,server,nowait -parallel chardev:parallel0 -usb LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -nodefaults -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -mon chardev=monitor,mode=readline -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -chardev socket,id=parallel0,host=127.0.0.1,port=9999,server,nowait -device isa-parallel,chardev=parallel0 -usb

View File

@ -1 +1 @@
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -monitor chardev:monitor -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -chardev tty,id=serial0,path=/dev/ttyS2 -serial chardev:serial0 -parallel none -usb LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -nodefaults -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -mon chardev=monitor,mode=readline -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -chardev tty,id=serial0,path=/dev/ttyS2 -device isa-serial,chardev=serial0 -usb

View File

@ -1 +1 @@
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -monitor chardev:monitor -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -chardev file,id=serial0,path=/tmp/serial.log -serial chardev:serial0 -parallel none -usb LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -nodefaults -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -mon chardev=monitor,mode=readline -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -chardev file,id=serial0,path=/tmp/serial.log -device isa-serial,chardev=serial0 -usb

View File

@ -1 +1 @@
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -monitor chardev:monitor -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -chardev pty,id=serial0 -serial chardev:serial0 -chardev file,id=serial1,path=/tmp/serial.log -serial chardev:serial1 -parallel none -usb LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -nodefaults -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -mon chardev=monitor,mode=readline -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -chardev pty,id=serial0 -device isa-serial,chardev=serial0 -chardev file,id=serial1,path=/tmp/serial.log -device isa-serial,chardev=serial1 -usb

View File

@ -1 +1 @@
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -monitor chardev:monitor -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -chardev pty,id=serial0 -serial chardev:serial0 -parallel none -usb LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -nodefaults -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -mon chardev=monitor,mode=readline -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -chardev pty,id=serial0 -device isa-serial,chardev=serial0 -usb

View File

@ -1 +1 @@
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -monitor chardev:monitor -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -chardev socket,id=serial0,host=127.0.0.1,port=9999 -serial chardev:serial0 -parallel none -usb LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -nodefaults -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -mon chardev=monitor,mode=readline -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -chardev socket,id=serial0,host=127.0.0.1,port=9999 -device isa-serial,chardev=serial0 -usb

View File

@ -1 +1 @@
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -monitor chardev:monitor -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -chardev socket,id=serial0,host=127.0.0.1,port=9999,telnet,server,nowait -serial chardev:serial0 -parallel none -usb LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -nodefaults -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -mon chardev=monitor,mode=readline -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -chardev socket,id=serial0,host=127.0.0.1,port=9999,telnet,server,nowait -device isa-serial,chardev=serial0 -usb

View File

@ -1 +1 @@
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -monitor chardev:monitor -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -chardev udp,id=serial0,host=127.0.0.1,port=9998,localaddr=127.0.0.1,localport=9999 -serial chardev:serial0 -parallel none -usb LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -nodefaults -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -mon chardev=monitor,mode=readline -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -chardev udp,id=serial0,host=127.0.0.1,port=9998,localaddr=127.0.0.1,localport=9999 -device isa-serial,chardev=serial0 -usb

View File

@ -1 +1 @@
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -monitor chardev:monitor -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -chardev socket,id=serial0,path=/tmp/serial.sock -serial chardev:serial0 -parallel none -usb LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -nodefaults -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -mon chardev=monitor,mode=readline -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -chardev socket,id=serial0,path=/tmp/serial.sock -device isa-serial,chardev=serial0 -usb

View File

@ -1 +1 @@
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -monitor chardev:monitor -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -chardev vc,id=serial0 -serial chardev:serial0 -parallel none -usb LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -nodefaults -chardev socket,id=monitor,path=/tmp/test-monitor,server,nowait -mon chardev=monitor,mode=readline -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -chardev vc,id=serial0 -device isa-serial,chardev=serial0 -usb

View File

@ -48,9 +48,12 @@ static int testCompareXMLToArgvFiles(const char *xml,
else else
vmdef->id = -1; vmdef->id = -1;
memset(&monitor_chr, 0, sizeof(monitor_chr));
monitor_chr.type = VIR_DOMAIN_CHR_TYPE_UNIX; monitor_chr.type = VIR_DOMAIN_CHR_TYPE_UNIX;
monitor_chr.data.nix.path = (char *)"/tmp/test-monitor"; monitor_chr.data.nix.path = (char *)"/tmp/test-monitor";
monitor_chr.data.nix.listen = 1; monitor_chr.data.nix.listen = 1;
if (!(monitor_chr.info.alias = strdup("monitor")))
goto fail;
flags = QEMUD_CMD_FLAG_VNC_COLON | flags = QEMUD_CMD_FLAG_VNC_COLON |
QEMUD_CMD_FLAG_NO_REBOOT | QEMUD_CMD_FLAG_NO_REBOOT |
@ -273,19 +276,19 @@ mymain(int argc, char **argv)
DO_TEST("parallel-tcp", 0); DO_TEST("parallel-tcp", 0);
DO_TEST("console-compat", 0); DO_TEST("console-compat", 0);
DO_TEST("serial-vc-chardev", QEMUD_CMD_FLAG_CHARDEV); DO_TEST("serial-vc-chardev", QEMUD_CMD_FLAG_CHARDEV|QEMUD_CMD_FLAG_DEVICE);
DO_TEST("serial-pty-chardev", QEMUD_CMD_FLAG_CHARDEV); DO_TEST("serial-pty-chardev", QEMUD_CMD_FLAG_CHARDEV|QEMUD_CMD_FLAG_DEVICE);
DO_TEST("serial-dev-chardev", QEMUD_CMD_FLAG_CHARDEV); DO_TEST("serial-dev-chardev", QEMUD_CMD_FLAG_CHARDEV|QEMUD_CMD_FLAG_DEVICE);
DO_TEST("serial-file-chardev", QEMUD_CMD_FLAG_CHARDEV); DO_TEST("serial-file-chardev", QEMUD_CMD_FLAG_CHARDEV|QEMUD_CMD_FLAG_DEVICE);
DO_TEST("serial-unix-chardev", QEMUD_CMD_FLAG_CHARDEV); DO_TEST("serial-unix-chardev", QEMUD_CMD_FLAG_CHARDEV|QEMUD_CMD_FLAG_DEVICE);
DO_TEST("serial-tcp-chardev", QEMUD_CMD_FLAG_CHARDEV); DO_TEST("serial-tcp-chardev", QEMUD_CMD_FLAG_CHARDEV|QEMUD_CMD_FLAG_DEVICE);
DO_TEST("serial-udp-chardev", QEMUD_CMD_FLAG_CHARDEV); DO_TEST("serial-udp-chardev", QEMUD_CMD_FLAG_CHARDEV|QEMUD_CMD_FLAG_DEVICE);
DO_TEST("serial-tcp-telnet-chardev", QEMUD_CMD_FLAG_CHARDEV); DO_TEST("serial-tcp-telnet-chardev", QEMUD_CMD_FLAG_CHARDEV|QEMUD_CMD_FLAG_DEVICE);
DO_TEST("serial-many-chardev", QEMUD_CMD_FLAG_CHARDEV); DO_TEST("serial-many-chardev", QEMUD_CMD_FLAG_CHARDEV|QEMUD_CMD_FLAG_DEVICE);
DO_TEST("parallel-tcp-chardev", QEMUD_CMD_FLAG_CHARDEV); DO_TEST("parallel-tcp-chardev", QEMUD_CMD_FLAG_CHARDEV|QEMUD_CMD_FLAG_DEVICE);
DO_TEST("console-compat-chardev", QEMUD_CMD_FLAG_CHARDEV); DO_TEST("console-compat-chardev", QEMUD_CMD_FLAG_CHARDEV|QEMUD_CMD_FLAG_DEVICE);
DO_TEST("channel-guestfwd", QEMUD_CMD_FLAG_CHARDEV); DO_TEST("channel-guestfwd", QEMUD_CMD_FLAG_CHARDEV|QEMUD_CMD_FLAG_DEVICE);
DO_TEST("sound", 0); DO_TEST("sound", 0);