]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Convert character devices over to use -device
authorDaniel P. Berrange <berrange@redhat.com>
Mon, 14 Dec 2009 18:04:35 +0000 (18:04 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Mon, 18 Jan 2010 13:55:56 +0000 (13:55 +0000)
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

15 files changed:
src/qemu/qemu_conf.c
src/qemu/qemu_driver.c
tests/qemuxml2argvdata/qemuxml2argv-channel-guestfwd.args
tests/qemuxml2argvdata/qemuxml2argv-console-compat-chardev.args
tests/qemuxml2argvdata/qemuxml2argv-parallel-tcp-chardev.args
tests/qemuxml2argvdata/qemuxml2argv-serial-dev-chardev.args
tests/qemuxml2argvdata/qemuxml2argv-serial-file-chardev.args
tests/qemuxml2argvdata/qemuxml2argv-serial-many-chardev.args
tests/qemuxml2argvdata/qemuxml2argv-serial-pty-chardev.args
tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-chardev.args
tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet-chardev.args
tests/qemuxml2argvdata/qemuxml2argv-serial-udp-chardev.args
tests/qemuxml2argvdata/qemuxml2argv-serial-unix-chardev.args
tests/qemuxml2argvdata/qemuxml2argv-serial-vc-chardev.args
tests/qemuxml2argvtest.c

index a2399baef77d09c6238d944ce7919d7695bbec76..791fcc57dcca77400a0b4eb323c8e7e9dbfea958 100644 (file)
@@ -1994,43 +1994,42 @@ qemuBuildHostNetStr(virConnectPtr conn,
 /* This function outputs a -chardev command line option which describes only the
  * host side of the character device */
 static void qemudBuildCommandLineChrDevChardevStr(virDomainChrDefPtr dev,
-                                                  const char *const id,
                                                   virBufferPtr buf)
 {
     bool telnet;
     switch(dev->type) {
     case VIR_DOMAIN_CHR_TYPE_NULL:
-        virBufferVSprintf(buf, "null,id=%s", id);
+        virBufferVSprintf(buf, "null,id=%s", dev->info.alias);
         break;
 
     case VIR_DOMAIN_CHR_TYPE_VC:
-        virBufferVSprintf(buf, "vc,id=%s", id);
+        virBufferVSprintf(buf, "vc,id=%s", dev->info.alias);
         break;
 
     case VIR_DOMAIN_CHR_TYPE_PTY:
-        virBufferVSprintf(buf, "pty,id=%s", id);
+        virBufferVSprintf(buf, "pty,id=%s", dev->info.alias);
         break;
 
     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;
 
     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;
 
     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;
 
     case VIR_DOMAIN_CHR_TYPE_STDIO:
-        virBufferVSprintf(buf, "stdio,id=%s", id);
+        virBufferVSprintf(buf, "stdio,id=%s", dev->info.alias);
         break;
 
     case VIR_DOMAIN_CHR_TYPE_UDP:
         virBufferVSprintf(buf,
                           "udp,id=%s,host=%s,port=%s,localaddr=%s,localport=%s",
-                          id,
+                          dev->info.alias,
                           dev->data.udp.connectHost,
                           dev->data.udp.connectService,
                           dev->data.udp.bindHost,
@@ -2041,7 +2040,7 @@ static void qemudBuildCommandLineChrDevChardevStr(virDomainChrDefPtr dev,
         telnet = dev->data.tcp.protocol == VIR_DOMAIN_CHR_TCP_PROTOCOL_TELNET;
         virBufferVSprintf(buf,
                           "socket,id=%s,host=%s,port=%s%s%s",
-                          id,
+                          dev->info.alias,
                           dev->data.tcp.host,
                           dev->data.tcp.service,
                           telnet ? ",telnet" : "",
@@ -2051,7 +2050,7 @@ static void qemudBuildCommandLineChrDevChardevStr(virDomainChrDefPtr dev,
     case VIR_DOMAIN_CHR_TYPE_UNIX:
         virBufferVSprintf(buf,
                           "socket,id=%s,path=%s%s",
-                          id,
+                          dev->info.alias,
                           dev->data.nix.path,
                           dev->data.nix.listen ? ",server,nowait" : "");
         break;
@@ -2494,7 +2493,7 @@ int qemudBuildCommandLine(virConnectPtr conn,
 
         /* Use -chardev if it's available */
         if (qemuCmdFlags & QEMUD_CMD_FLAG_CHARDEV) {
-            qemudBuildCommandLineChrDevChardevStr(monitor_chr, "monitor", &buf);
+            qemudBuildCommandLineChrDevChardevStr(monitor_chr, &buf);
             if (virBufferError(&buf)) {
                 virBufferFreeAndReset(&buf);
                 goto no_memory;
@@ -2503,26 +2502,32 @@ int qemudBuildCommandLine(virConnectPtr conn,
             ADD_ARG_LIT("-chardev");
             ADD_ARG(virBufferContentAndReset(&buf));
 
-            if (monitor_json)
-                virBufferAddLit(&buf, "control,");
+            virBufferVSprintf(&buf, "chardev=%s", monitor_chr->info.alias);
 
-            virBufferAddLit(&buf, "chardev:monitor");
-        }
+            if (virBufferError(&buf)) {
+                virBufferFreeAndReset(&buf);
+                goto no_memory;
+            }
 
-        else {
+            ADD_ARG_LIT("-mon");
+            if (monitor_json)
+                ADD_ARG_LIT("chardev=monitor,mode=control");
+            else
+                ADD_ARG_LIT("chardev=monitor,mode=readline");
+        } else {
             if (monitor_json)
                 virBufferAddLit(&buf, "control,");
 
             qemudBuildCommandLineChrDevStr(monitor_chr, &buf);
-        }
 
-        if (virBufferError(&buf)) {
-            virBufferFreeAndReset(&buf);
-            goto no_memory;
-        }
+            if (virBufferError(&buf)) {
+                virBufferFreeAndReset(&buf);
+                goto no_memory;
+            }
 
-        ADD_ARG_LIT("-monitor");
-        ADD_ARG(virBufferContentAndReset(&buf));
+            ADD_ARG_LIT("-monitor");
+            ADD_ARG(virBufferContentAndReset(&buf));
+        }
     }
 
     if (def->localtime)
@@ -2785,14 +2790,10 @@ int qemudBuildCommandLine(virConnectPtr conn,
             virBuffer buf = VIR_BUFFER_INITIALIZER;
             virDomainChrDefPtr serial = def->serials[i];
 
-            /* Use -chardev if it's available */
-            if (qemuCmdFlags & QEMUD_CMD_FLAG_CHARDEV) {
-                char id[16];
-
-                if (snprintf(id, sizeof(id), "serial%i", i) > sizeof(id))
-                    goto error;
-
-                qemudBuildCommandLineChrDevChardevStr(serial, id, &buf);
+            /* Use -chardev with -device if they are available */
+            if ((qemuCmdFlags & QEMUD_CMD_FLAG_CHARDEV) &&
+                (qemuCmdFlags & QEMUD_CMD_FLAG_DEVICE)) {
+                qemudBuildCommandLineChrDevChardevStr(serial, &buf);
                 if (virBufferError(&buf)) {
                     virBufferFreeAndReset(&buf);
                     goto no_memory;
@@ -2801,13 +2802,13 @@ int qemudBuildCommandLine(virConnectPtr conn,
                 ADD_ARG_LIT("-chardev");
                 ADD_ARG(virBufferContentAndReset(&buf));
 
-                virBufferVSprintf(&buf, "chardev:%s", id);
+                virBufferVSprintf(&buf, "isa-serial,chardev=%s", serial->info.alias);
                 if (virBufferError(&buf)) {
                     virBufferFreeAndReset(&buf);
                     goto no_memory;
                 }
 
-                ADD_ARG_LIT("-serial");
+                ADD_ARG_LIT("-device");
                 ADD_ARG(virBufferContentAndReset(&buf));
             }
 
@@ -2835,14 +2836,10 @@ int qemudBuildCommandLine(virConnectPtr conn,
             virBuffer buf = VIR_BUFFER_INITIALIZER;
             virDomainChrDefPtr parallel = def->parallels[i];
 
-            /* Use -chardev if it's available */
-            if (qemuCmdFlags & QEMUD_CMD_FLAG_CHARDEV) {
-                char id[16];
-
-                if (snprintf(id, sizeof(id), "parallel%i", i) > sizeof(id))
-                    goto error;
-
-                qemudBuildCommandLineChrDevChardevStr(parallel, id, &buf);
+            /* Use -chardev with -device if they are available */
+            if ((qemuCmdFlags & QEMUD_CMD_FLAG_CHARDEV) &&
+                (qemuCmdFlags & QEMUD_CMD_FLAG_DEVICE)) {
+                qemudBuildCommandLineChrDevChardevStr(parallel, &buf);
                 if (virBufferError(&buf)) {
                     virBufferFreeAndReset(&buf);
                     goto no_memory;
@@ -2851,13 +2848,13 @@ int qemudBuildCommandLine(virConnectPtr conn,
                 ADD_ARG_LIT("-chardev");
                 ADD_ARG(virBufferContentAndReset(&buf));
 
-                virBufferVSprintf(&buf, "chardev:%s", id);
+                virBufferVSprintf(&buf, "isa-parallel,chardev=%s", parallel->info.alias);
                 if (virBufferError(&buf)) {
                     virBufferFreeAndReset(&buf);
                     goto no_memory;
                 }
 
-                ADD_ARG_LIT("-parallel");
+                ADD_ARG_LIT("-device");
                 ADD_ARG(virBufferContentAndReset(&buf));
             }
 
@@ -2876,13 +2873,8 @@ int qemudBuildCommandLine(virConnectPtr conn,
 
     for (i = 0 ; i < def->nchannels ; i++) {
         virBuffer buf = VIR_BUFFER_INITIALIZER;
-        char id[16];
-
         virDomainChrDefPtr channel = def->channels[i];
 
-        if (snprintf(id, sizeof(id), "channel%i", i) > sizeof(id))
-            goto error;
-
         switch(channel->targetType) {
         case VIR_DOMAIN_CHR_TARGET_TYPE_GUESTFWD:
             if (!(qemuCmdFlags & QEMUD_CMD_FLAG_CHARDEV)) {
@@ -2891,7 +2883,7 @@ int qemudBuildCommandLine(virConnectPtr conn,
                 goto error;
             }
 
-            qemudBuildCommandLineChrDevChardevStr(channel, id, &buf);
+            qemudBuildCommandLineChrDevChardevStr(channel, &buf);
             if (virBufferError(&buf)) {
                 virBufferFreeAndReset(&buf);
                 goto no_memory;
@@ -2904,7 +2896,7 @@ int qemudBuildCommandLine(virConnectPtr conn,
             int port = virSocketGetPort(channel->target.addr);
 
             virBufferVSprintf(&buf, "user,guestfwd=tcp:%s:%i-chardev:%s",
-                              addr, port, id);
+                              addr, port, channel->info.alias);
 
             VIR_FREE(addr);
 
index ed0e08f6e2b5d94439519515149ff2b469f91c44..b13398fe761edfc173bb49f4470738eeea65b431 100644 (file)
@@ -207,6 +207,11 @@ static int qemuDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt, void *data)
         goto error;
     }
 
+    if (!(priv->monConfig->info.alias = strdup("monitor"))) {
+        virReportOOMError(NULL);
+        goto error;
+    }
+
     if (!(monitorpath =
           virXPathString(NULL, "string(./monitor[1]/@path)", ctxt))) {
         qemudReportError(NULL, NULL, NULL, VIR_ERR_INTERNAL_ERROR,
@@ -269,6 +274,8 @@ static int qemuDomainObjPrivateXMLParse(xmlXPathContextPtr ctxt, void *data)
     return 0;
 
 error:
+    virDomainChrDefFree(priv->monConfig);
+    priv->monConfig = NULL;
     VIR_FREE(nodes);
     return -1;
 }
index deaff92add80790c63cfe92baf217e41313d2627..c3148dfe40190c0c8fb12bdb4eb7345682e09088 100644 (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
index fbb94f44027b1f71df4894c0bb65e9eeaf372779..81ca36465818249dd0b63282a244a9000e7c786e 100644 (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
index 45d17598f3cba621a8280e77880778ce3f0a6246..1961948bb0ce8c8609aa029cabbcf08d3645dd99 100644 (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
index 3036f13e01cb48fe2228ab98cf2aa45fb0cb8573..d166f48ef233ef693061561006c6b8a53005f203 100644 (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
index 1dcec2b521c21e1382392c38c3d74a26dfbba09b..b039bdf99d3644dadbff3da66c8e6bc44e4a01c3 100644 (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
index dd98fcbda953980888f5739795bad9097a53c2a8..419ea002e67575b8affb2978684165c516a759e9 100644 (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
index fbb94f44027b1f71df4894c0bb65e9eeaf372779..81ca36465818249dd0b63282a244a9000e7c786e 100644 (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
index 50cfeb04bd028495eed9e1a6017e6b2473831d5d..526af51ebcc3c30c6816eaffc5ccbab00ee07151 100644 (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
index 86fa8af6bb2ef335c993447ccdab81bb8d35a018..842261b6f1249286df42b31923068cd674d76bf3 100644 (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
index 45421a4250f3210c71fee61a481afe4dc29f8cda..7d7d2a85869d4a85273bde3ee4f490a5821844c8 100644 (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
index f2911567abcf1bd94bdec0d9b5c967d74c7b01ab..b32623841e8a31ce12a20dd423d5a993cc12ecf1 100644 (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
index a2002252949c379e17ea6164a4a813f1fc0642c6..4c7e6540aea47ba57203e6a99a0fe731081fffed 100644 (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
index 3b0aa2b5cbf32f4fe233e3bf7c1550ccd80bab19..42d15796929914b46bccac81288dc99c3beff42a 100644 (file)
@@ -48,9 +48,12 @@ static int testCompareXMLToArgvFiles(const char *xml,
     else
         vmdef->id = -1;
 
+    memset(&monitor_chr, 0, sizeof(monitor_chr));
     monitor_chr.type = VIR_DOMAIN_CHR_TYPE_UNIX;
     monitor_chr.data.nix.path = (char *)"/tmp/test-monitor";
     monitor_chr.data.nix.listen = 1;
+    if (!(monitor_chr.info.alias = strdup("monitor")))
+        goto fail;
 
     flags = QEMUD_CMD_FLAG_VNC_COLON |
         QEMUD_CMD_FLAG_NO_REBOOT |
@@ -273,19 +276,19 @@ mymain(int argc, char **argv)
     DO_TEST("parallel-tcp", 0);
     DO_TEST("console-compat", 0);
 
-    DO_TEST("serial-vc-chardev", QEMUD_CMD_FLAG_CHARDEV);
-    DO_TEST("serial-pty-chardev", QEMUD_CMD_FLAG_CHARDEV);
-    DO_TEST("serial-dev-chardev", QEMUD_CMD_FLAG_CHARDEV);
-    DO_TEST("serial-file-chardev", QEMUD_CMD_FLAG_CHARDEV);
-    DO_TEST("serial-unix-chardev", QEMUD_CMD_FLAG_CHARDEV);
-    DO_TEST("serial-tcp-chardev", QEMUD_CMD_FLAG_CHARDEV);
-    DO_TEST("serial-udp-chardev", QEMUD_CMD_FLAG_CHARDEV);
-    DO_TEST("serial-tcp-telnet-chardev", QEMUD_CMD_FLAG_CHARDEV);
-    DO_TEST("serial-many-chardev", QEMUD_CMD_FLAG_CHARDEV);
-    DO_TEST("parallel-tcp-chardev", QEMUD_CMD_FLAG_CHARDEV);
-    DO_TEST("console-compat-chardev", QEMUD_CMD_FLAG_CHARDEV);
-
-    DO_TEST("channel-guestfwd", 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|QEMUD_CMD_FLAG_DEVICE);
+    DO_TEST("serial-dev-chardev", QEMUD_CMD_FLAG_CHARDEV|QEMUD_CMD_FLAG_DEVICE);
+    DO_TEST("serial-file-chardev", QEMUD_CMD_FLAG_CHARDEV|QEMUD_CMD_FLAG_DEVICE);
+    DO_TEST("serial-unix-chardev", QEMUD_CMD_FLAG_CHARDEV|QEMUD_CMD_FLAG_DEVICE);
+    DO_TEST("serial-tcp-chardev", QEMUD_CMD_FLAG_CHARDEV|QEMUD_CMD_FLAG_DEVICE);
+    DO_TEST("serial-udp-chardev", QEMUD_CMD_FLAG_CHARDEV|QEMUD_CMD_FLAG_DEVICE);
+    DO_TEST("serial-tcp-telnet-chardev", QEMUD_CMD_FLAG_CHARDEV|QEMUD_CMD_FLAG_DEVICE);
+    DO_TEST("serial-many-chardev", QEMUD_CMD_FLAG_CHARDEV|QEMUD_CMD_FLAG_DEVICE);
+    DO_TEST("parallel-tcp-chardev", QEMUD_CMD_FLAG_CHARDEV|QEMUD_CMD_FLAG_DEVICE);
+    DO_TEST("console-compat-chardev", QEMUD_CMD_FLAG_CHARDEV|QEMUD_CMD_FLAG_DEVICE);
+
+    DO_TEST("channel-guestfwd", QEMUD_CMD_FLAG_CHARDEV|QEMUD_CMD_FLAG_DEVICE);
 
     DO_TEST("sound", 0);