[libvirt] [PATCH] qemu: use target.port for isa-serial

A configured target.port is currently totaly ignored, while constructing qemu commandline, for all types of serial devices. This patch adds a -device parameter "index" for the target model isa-serial. This enables the user to specify which serial device will end in which ttySX device. Updated test results which failed because of this change. Added two tests serial-dev-without-target-port, serial-dev-with-target-port which test generating qemu command with multiple serial devices and different ports. Signed-off-by: Thilo Cestonaro <thilo.cestonaro@ts.fujitsu.com> --- v2: added tests which create qemu commandline with and without specified target ports. Updated existing tests to pass again. src/qemu/qemu_command.c | 16 ++++++++ tests/qemuxml2argvdata/bios.args | 2 +- .../qemuxml2argvdata/console-compat-auto.args | 2 +- .../console-compat-chardev.args | 2 +- tests/qemuxml2argvdata/console-compat.args | 2 +- .../qemuxml2argvdata/console-virtio-many.args | 2 +- tests/qemuxml2argvdata/controller-order.args | 2 +- .../q35-virt-manager-basic.args | 2 +- .../serial-dev-chardev-iobase.args | 2 +- .../qemuxml2argvdata/serial-dev-chardev.args | 2 +- tests/qemuxml2argvdata/serial-dev-chardev.xml | 4 +- .../serial-dev-with-target-port.args | 31 +++++++++++++++ .../serial-dev-with-target-port.xml | 38 +++++++++++++++++++ .../serial-dev-without-target-port.args | 31 +++++++++++++++ .../serial-dev-without-target-port.xml | 35 +++++++++++++++++ .../qemuxml2argvdata/serial-file-chardev.args | 2 +- tests/qemuxml2argvdata/serial-file-log.args | 2 +- .../qemuxml2argvdata/serial-many-chardev.args | 4 +- .../qemuxml2argvdata/serial-pty-chardev.args | 2 +- tests/qemuxml2argvdata/serial-spiceport.args | 2 +- .../qemuxml2argvdata/serial-tcp-chardev.args | 2 +- .../serial-tcp-telnet-chardev.args | 2 +- .../serial-tcp-tlsx509-chardev-notls.args | 4 +- .../serial-tcp-tlsx509-chardev-verify.args | 4 +- .../serial-tcp-tlsx509-chardev.args | 4 +- .../serial-tcp-tlsx509-secret-chardev.args | 4 +- .../qemuxml2argvdata/serial-udp-chardev.args | 4 +- .../qemuxml2argvdata/serial-unix-chardev.args | 2 +- tests/qemuxml2argvdata/serial-vc-chardev.args | 2 +- tests/qemuxml2argvdata/user-aliases.args | 4 +- tests/qemuxml2argvtest.c | 8 +++- 31 files changed, 191 insertions(+), 34 deletions(-) create mode 100644 tests/qemuxml2argvdata/serial-dev-with-target-port.args create mode 100644 tests/qemuxml2argvdata/serial-dev-with-target-port.xml create mode 100644 tests/qemuxml2argvdata/serial-dev-without-target-port.args create mode 100644 tests/qemuxml2argvdata/serial-dev-without-target-port.xml diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 514c3ab2e..5f770404b 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -10291,6 +10291,22 @@ qemuBuildSerialChrDeviceStr(char **deviceStr, virDomainChrSerialTargetModelTypeToString(serial->targetModel), serial->info.alias, serial->info.alias); + switch ((virDomainChrSerialTargetModel) serial->targetModel) { + case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_ISA_SERIAL: + if (serial->target.port != -1) + virBufferAsprintf(&cmd, ",index=%d", serial->target.port); + break; + case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_NONE: + case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_USB_SERIAL: + case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_PCI_SERIAL: + case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_SPAPR_VTY: + case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_PL011: + case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_SCLPCONSOLE: + case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_SCLPLMCONSOLE: + case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_LAST: + break; + } + if (qemuBuildDeviceAddressStr(&cmd, def, &serial->info, qemuCaps) < 0) goto error; diff --git a/tests/qemuxml2argvdata/bios.args b/tests/qemuxml2argvdata/bios.args index 048d4ff96..81e4a8ba7 100644 --- a/tests/qemuxml2argvdata/bios.args +++ b/tests/qemuxml2argvdata/bios.args @@ -24,6 +24,6 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev pty,id=charserial0 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -device usb-tablet,id=input0,bus=usb.0,port=1 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/console-compat-auto.args b/tests/qemuxml2argvdata/console-compat-auto.args index cab47dbb5..3b048c721 100644 --- a/tests/qemuxml2argvdata/console-compat-auto.args +++ b/tests/qemuxml2argvdata/console-compat-auto.args @@ -22,5 +22,5 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev pty,id=charserial0 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/console-compat-chardev.args b/tests/qemuxml2argvdata/console-compat-chardev.args index ff7678ebc..61f5712bd 100644 --- a/tests/qemuxml2argvdata/console-compat-chardev.args +++ b/tests/qemuxml2argvdata/console-compat-chardev.args @@ -23,5 +23,5 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev pty,id=charserial0 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/console-compat.args b/tests/qemuxml2argvdata/console-compat.args index fb96946f1..674c92696 100644 --- a/tests/qemuxml2argvdata/console-compat.args +++ b/tests/qemuxml2argvdata/console-compat.args @@ -22,4 +22,4 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev pty,id=charserial0 \ --device isa-serial,chardev=charserial0,id=serial0 +-device isa-serial,chardev=charserial0,id=serial0,index=0 diff --git a/tests/qemuxml2argvdata/console-virtio-many.args b/tests/qemuxml2argvdata/console-virtio-many.args index 58a8a1fa0..f050cbb25 100644 --- a/tests/qemuxml2argvdata/console-virtio-many.args +++ b/tests/qemuxml2argvdata/console-virtio-many.args @@ -24,7 +24,7 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev pty,id=charserial0 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -chardev pty,id=charconsole1 \ -device virtconsole,chardev=charconsole1,id=console1 \ -chardev pty,id=charconsole2 \ diff --git a/tests/qemuxml2argvdata/controller-order.args b/tests/qemuxml2argvdata/controller-order.args index 70a8ba9ce..0e8c10f6d 100644 --- a/tests/qemuxml2argvdata/controller-order.args +++ b/tests/qemuxml2argvdata/controller-order.args @@ -33,7 +33,7 @@ id=drive-ide0-1-0,media=cdrom,readonly=on \ -chardev spicevmc,id=charsmartcard0,name=smartcard \ -device ccid-card-passthru,chardev=charsmartcard0,id=smartcard0,bus=ccid0.0 \ -chardev pty,id=charserial0 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -chardev spicevmc,id=charchannel0,name=vdagent \ -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,\ id=channel0,name=com.redhat.spice.0 \ diff --git a/tests/qemuxml2argvdata/q35-virt-manager-basic.args b/tests/qemuxml2argvdata/q35-virt-manager-basic.args index c7dd514fe..83e6dde5f 100644 --- a/tests/qemuxml2argvdata/q35-virt-manager-basic.args +++ b/tests/qemuxml2argvdata/q35-virt-manager-basic.args @@ -38,7 +38,7 @@ id=virtio-disk0 \ -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:9a:e6:c6,bus=pci.1,\ addr=0x0 \ -chardev pty,id=charserial0 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -chardev socket,id=charchannel0,\ path=/tmp/channel/domain--1-virt-manager-basic/org.qemu.guest_agent.0,server,\ nowait \ diff --git a/tests/qemuxml2argvdata/serial-dev-chardev-iobase.args b/tests/qemuxml2argvdata/serial-dev-chardev-iobase.args index 3a52b9efc..c19b05a18 100644 --- a/tests/qemuxml2argvdata/serial-dev-chardev-iobase.args +++ b/tests/qemuxml2argvdata/serial-dev-chardev-iobase.args @@ -23,5 +23,5 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev tty,id=charserial0,path=/dev/ttyS2 \ --device isa-serial,chardev=charserial0,id=serial0,iobase=0x3f8,irq=0x4 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0,iobase=0x3f8,irq=0x4 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-dev-chardev.args b/tests/qemuxml2argvdata/serial-dev-chardev.args index 55b939551..f78f51ab2 100644 --- a/tests/qemuxml2argvdata/serial-dev-chardev.args +++ b/tests/qemuxml2argvdata/serial-dev-chardev.args @@ -23,5 +23,5 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev tty,id=charserial0,path=/dev/ttyS2 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=1 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-dev-chardev.xml b/tests/qemuxml2argvdata/serial-dev-chardev.xml index dffd27d06..329a0fc19 100644 --- a/tests/qemuxml2argvdata/serial-dev-chardev.xml +++ b/tests/qemuxml2argvdata/serial-dev-chardev.xml @@ -23,11 +23,11 @@ <controller type='ide' index='0'/> <serial type='dev'> <source path='/dev/ttyS2'/> - <target port='0'/> + <target port='1'/> </serial> <console type='dev'> <source path='/dev/ttyS2'/> - <target port='0'/> + <target port='1'/> </console> <memballoon model='virtio'/> </devices> diff --git a/tests/qemuxml2argvdata/serial-dev-with-target-port.args b/tests/qemuxml2argvdata/serial-dev-with-target-port.args new file mode 100644 index 000000000..c8626bf4f --- /dev/null +++ b/tests/qemuxml2argvdata/serial-dev-with-target-port.args @@ -0,0 +1,31 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/home/test \ +USER=test \ +LOGNAME=test \ +QEMU_AUDIO_DRV=none \ +/usr/bin/qemu-system-i686 \ +-name QEMUGuest1 \ +-S \ +-M pc \ +-m 214 \ +-smp 1,sockets=1,cores=1,threads=1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-nographic \ +-nodefconfig \ +-nodefaults \ +-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\ +server,nowait \ +-mon chardev=charmonitor,id=monitor,mode=readline \ +-no-acpi \ +-boot c \ +-usb \ +-drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ +-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ +-chardev tty,id=charserial0,path=/dev/ttyS2 \ +-device isa-serial,chardev=charserial0,id=serial0,index=1 \ +-chardev tty,id=charserial1,path=/dev/ttyS1 \ +-device isa-serial,chardev=charserial1,id=serial1,index=2 \ +-chardev tty,id=charserial2,path=/dev/ttyS3 \ +-device isa-serial,chardev=charserial2,id=serial2,index=3 \ +-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \ No newline at end of file diff --git a/tests/qemuxml2argvdata/serial-dev-with-target-port.xml b/tests/qemuxml2argvdata/serial-dev-with-target-port.xml new file mode 100644 index 000000000..593ee5162 --- /dev/null +++ b/tests/qemuxml2argvdata/serial-dev-with-target-port.xml @@ -0,0 +1,38 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static'>1</vcpu> + <os> + <type arch='i686' machine='pc'>hvm</type> + <boot dev='hd'/> + </os> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu-system-i686</emulator> + <disk type='block' device='disk'> + <source dev='/dev/HostVG/QEMUGuest1'/> + <target dev='hda' bus='ide'/> + <address type='drive' controller='0' bus='0' target='0' unit='0'/> + </disk> + <controller type='usb' index='0'/> + <controller type='ide' index='0'/> + <serial type='dev'> + <source path='/dev/ttyS2'/> + <target port='1'/> + </serial> + <serial type='dev'> + <source path='/dev/ttyS1'/> + <target port='2'/> + </serial> + <serial type='dev'> + <source path='/dev/ttyS3'/> + <target port='3'/> + </serial> + <memballoon model='virtio'/> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/serial-dev-without-target-port.args b/tests/qemuxml2argvdata/serial-dev-without-target-port.args new file mode 100644 index 000000000..8e46260c7 --- /dev/null +++ b/tests/qemuxml2argvdata/serial-dev-without-target-port.args @@ -0,0 +1,31 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/home/test \ +USER=test \ +LOGNAME=test \ +QEMU_AUDIO_DRV=none \ +/usr/bin/qemu-system-i686 \ +-name QEMUGuest1 \ +-S \ +-M pc \ +-m 214 \ +-smp 1,sockets=1,cores=1,threads=1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-nographic \ +-nodefconfig \ +-nodefaults \ +-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\ +server,nowait \ +-mon chardev=charmonitor,id=monitor,mode=readline \ +-no-acpi \ +-boot c \ +-usb \ +-drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ +-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ +-chardev tty,id=charserial0,path=/dev/ttyS2 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ +-chardev tty,id=charserial1,path=/dev/ttyS1 \ +-device isa-serial,chardev=charserial1,id=serial1,index=1 \ +-chardev tty,id=charserial2,path=/dev/ttyS3 \ +-device isa-serial,chardev=charserial2,id=serial2,index=2 \ +-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \ No newline at end of file diff --git a/tests/qemuxml2argvdata/serial-dev-without-target-port.xml b/tests/qemuxml2argvdata/serial-dev-without-target-port.xml new file mode 100644 index 000000000..c170a111a --- /dev/null +++ b/tests/qemuxml2argvdata/serial-dev-without-target-port.xml @@ -0,0 +1,35 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static'>1</vcpu> + <os> + <type arch='i686' machine='pc'>hvm</type> + <boot dev='hd'/> + </os> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu-system-i686</emulator> + <disk type='block' device='disk'> + <source dev='/dev/HostVG/QEMUGuest1'/> + <target dev='hda' bus='ide'/> + <address type='drive' controller='0' bus='0' target='0' unit='0'/> + </disk> + <controller type='usb' index='0'/> + <controller type='ide' index='0'/> + <serial type='dev'> + <source path='/dev/ttyS2'/> + </serial> + <serial type='dev'> + <source path='/dev/ttyS1'/> + </serial> + <serial type='dev'> + <source path='/dev/ttyS3'/> + </serial> + <memballoon model='virtio'/> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/serial-file-chardev.args b/tests/qemuxml2argvdata/serial-file-chardev.args index 47eb0aa9b..144ef37be 100644 --- a/tests/qemuxml2argvdata/serial-file-chardev.args +++ b/tests/qemuxml2argvdata/serial-file-chardev.args @@ -23,5 +23,5 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev file,id=charserial0,path=/tmp/serial.log,append=on \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-file-log.args b/tests/qemuxml2argvdata/serial-file-log.args index 86f8e73e0..43a2d655b 100644 --- a/tests/qemuxml2argvdata/serial-file-log.args +++ b/tests/qemuxml2argvdata/serial-file-log.args @@ -23,4 +23,4 @@ server,nowait \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev file,id=charserial0,path=/tmp/serial.log,\ logfile=/var/lib/libvirt/qemu/demo-serial.log,logappend=off \ --device isa-serial,chardev=charserial0,id=serial0 +-device isa-serial,chardev=charserial0,id=serial0,index=0 diff --git a/tests/qemuxml2argvdata/serial-many-chardev.args b/tests/qemuxml2argvdata/serial-many-chardev.args index eed3d418c..e07d1e9b0 100644 --- a/tests/qemuxml2argvdata/serial-many-chardev.args +++ b/tests/qemuxml2argvdata/serial-many-chardev.args @@ -23,7 +23,7 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev pty,id=charserial0 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -chardev file,id=charserial1,path=/tmp/serial.log \ --device isa-serial,chardev=charserial1,id=serial1 \ +-device isa-serial,chardev=charserial1,id=serial1,index=1 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-pty-chardev.args b/tests/qemuxml2argvdata/serial-pty-chardev.args index ff7678ebc..61f5712bd 100644 --- a/tests/qemuxml2argvdata/serial-pty-chardev.args +++ b/tests/qemuxml2argvdata/serial-pty-chardev.args @@ -23,5 +23,5 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev pty,id=charserial0 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-spiceport.args b/tests/qemuxml2argvdata/serial-spiceport.args index a3981499a..9bfa0450c 100644 --- a/tests/qemuxml2argvdata/serial-spiceport.args +++ b/tests/qemuxml2argvdata/serial-spiceport.args @@ -22,7 +22,7 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev spiceport,id=charserial0,name=org.qemu.console.serial.0 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -device usb-tablet,id=input0,bus=usb.0,port=1 \ -spice port=5903,tls-port=5904,addr=127.0.0.1,x509-dir=/etc/pki/libvirt-spice \ -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,bus=pci.0,\ diff --git a/tests/qemuxml2argvdata/serial-tcp-chardev.args b/tests/qemuxml2argvdata/serial-tcp-chardev.args index 4c427e22c..79476c772 100644 --- a/tests/qemuxml2argvdata/serial-tcp-chardev.args +++ b/tests/qemuxml2argvdata/serial-tcp-chardev.args @@ -23,5 +23,5 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev socket,id=charserial0,host=127.0.0.1,port=9999 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-tcp-telnet-chardev.args b/tests/qemuxml2argvdata/serial-tcp-telnet-chardev.args index 3ed08e95f..a0a4877a2 100644 --- a/tests/qemuxml2argvdata/serial-tcp-telnet-chardev.args +++ b/tests/qemuxml2argvdata/serial-tcp-telnet-chardev.args @@ -23,5 +23,5 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev socket,id=charserial0,host=127.0.0.1,port=9999,telnet,server,nowait \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-notls.args b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-notls.args index bd0feb319..1b92bf4a9 100644 --- a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-notls.args +++ b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-notls.args @@ -24,7 +24,7 @@ server,nowait \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev udp,id=charserial0,host=127.0.0.1,port=2222,localaddr=127.0.0.1,\ localport=1111 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -chardev socket,id=charserial1,host=127.0.0.1,port=5555 \ --device isa-serial,chardev=charserial1,id=serial1 \ +-device isa-serial,chardev=charserial1,id=serial1,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-verify.args b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-verify.args index ab5f7e27f..0b6363698 100644 --- a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-verify.args +++ b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-verify.args @@ -24,10 +24,10 @@ server,nowait \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev udp,id=charserial0,host=127.0.0.1,port=2222,localaddr=127.0.0.1,\ localport=1111 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -object tls-creds-x509,id=objcharserial1_tls0,dir=/etc/pki/libvirt-chardev,\ endpoint=client,verify-peer=yes \ -chardev socket,id=charserial1,host=127.0.0.1,port=5555,\ tls-creds=objcharserial1_tls0 \ --device isa-serial,chardev=charserial1,id=serial1 \ +-device isa-serial,chardev=charserial1,id=serial1,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev.args b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev.args index ab5f7e27f..0b6363698 100644 --- a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev.args +++ b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev.args @@ -24,10 +24,10 @@ server,nowait \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev udp,id=charserial0,host=127.0.0.1,port=2222,localaddr=127.0.0.1,\ localport=1111 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -object tls-creds-x509,id=objcharserial1_tls0,dir=/etc/pki/libvirt-chardev,\ endpoint=client,verify-peer=yes \ -chardev socket,id=charserial1,host=127.0.0.1,port=5555,\ tls-creds=objcharserial1_tls0 \ --device isa-serial,chardev=charserial1,id=serial1 \ +-device isa-serial,chardev=charserial1,id=serial1,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-tcp-tlsx509-secret-chardev.args b/tests/qemuxml2argvdata/serial-tcp-tlsx509-secret-chardev.args index 2567abbfa..58b7eca83 100644 --- a/tests/qemuxml2argvdata/serial-tcp-tlsx509-secret-chardev.args +++ b/tests/qemuxml2argvdata/serial-tcp-tlsx509-secret-chardev.args @@ -26,7 +26,7 @@ server,nowait \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev udp,id=charserial0,host=127.0.0.1,port=2222,localaddr=127.0.0.1,\ localport=1111 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -object secret,id=charserial1-secret0,\ data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ @@ -34,5 +34,5 @@ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ endpoint=client,verify-peer=yes,passwordid=charserial1-secret0 \ -chardev socket,id=charserial1,host=127.0.0.1,port=5555,\ tls-creds=objcharserial1_tls0 \ --device isa-serial,chardev=charserial1,id=serial1 \ +-device isa-serial,chardev=charserial1,id=serial1,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-udp-chardev.args b/tests/qemuxml2argvdata/serial-udp-chardev.args index c9db110e0..a671c5ed4 100644 --- a/tests/qemuxml2argvdata/serial-udp-chardev.args +++ b/tests/qemuxml2argvdata/serial-udp-chardev.args @@ -24,7 +24,7 @@ server,nowait \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev udp,id=charserial0,host=127.0.0.1,port=9998,localaddr=127.0.0.1,\ localport=9999 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -chardev udp,id=charserial1,host=,port=9999,localaddr=,localport=0 \ --device isa-serial,chardev=charserial1,id=serial1 \ +-device isa-serial,chardev=charserial1,id=serial1,index=1 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-unix-chardev.args b/tests/qemuxml2argvdata/serial-unix-chardev.args index df75e15fe..6b09e27ec 100644 --- a/tests/qemuxml2argvdata/serial-unix-chardev.args +++ b/tests/qemuxml2argvdata/serial-unix-chardev.args @@ -23,5 +23,5 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev socket,id=charserial0,path=/tmp/serial.sock \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-vc-chardev.args b/tests/qemuxml2argvdata/serial-vc-chardev.args index 3438c8447..af4cac559 100644 --- a/tests/qemuxml2argvdata/serial-vc-chardev.args +++ b/tests/qemuxml2argvdata/serial-vc-chardev.args @@ -23,5 +23,5 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev vc,id=charserial0 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/user-aliases.args b/tests/qemuxml2argvdata/user-aliases.args index ad9394710..5fa328828 100644 --- a/tests/qemuxml2argvdata/user-aliases.args +++ b/tests/qemuxml2argvdata/user-aliases.args @@ -59,9 +59,9 @@ addr=0xa \ -net socket,connect=127.0.0.1:1234,vlan=2,name=hostua-AndAlsoClientMode \ -device ccid-card-emulated,backend=nss-emulated,id=smartcard0,bus=ua-myCCID.0 \ -chardev pty,id=charserial0 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -chardev pty,id=charserial1 \ --device isa-serial,chardev=charserial1,id=serial1 \ +-device isa-serial,chardev=charserial1,id=serial1,index=1 \ -chardev socket,id=charchannel0,\ path=/var/lib/libvirt/qemu/channel/target/gentoo.org.qemu.guest_agent.0,server,\ nowait \ diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 165137e93..ca63886a6 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -1306,6 +1306,12 @@ mymain(void) DO_TEST("serial-dev-chardev-iobase", QEMU_CAPS_DEVICE_ISA_SERIAL, QEMU_CAPS_NODEFCONFIG); + DO_TEST("serial-dev-with-target-port", + QEMU_CAPS_DEVICE_ISA_SERIAL, + QEMU_CAPS_NODEFCONFIG); + DO_TEST("serial-dev-without-target-port", + QEMU_CAPS_DEVICE_ISA_SERIAL, + QEMU_CAPS_NODEFCONFIG); DO_TEST("serial-file-chardev", QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_DEVICE_ISA_SERIAL, @@ -1318,7 +1324,7 @@ mymain(void) QEMU_CAPS_NODEFCONFIG); DO_TEST("serial-udp-chardev", QEMU_CAPS_DEVICE_ISA_SERIAL, - QEMU_CAPS_NODEFCONFIG); + QEMU_CAPS_NODEFCONFIG); DO_TEST("serial-tcp-telnet-chardev", QEMU_CAPS_DEVICE_ISA_SERIAL, QEMU_CAPS_NODEFCONFIG); -- 2.17.0

On 04/11/2018 07:22 AM, Thilo Cestonaro wrote: Not entirely my area of expertise, console serial ports, but I'll provide some feedback. Maybe someone else will chime in too...
A configured target.port is currently totaly ignored, while constructing
s/totaly/totally s/,//
qemu commandline, for all types of serial devices. This patch adds a -device
s/,//
parameter "index" for the target model isa-serial.
Please add blank lines between paragraphs - tough to read... Needed for each of the 4 paragraphs...
This enables the user to specify which serial device will end in which ttySX device.
But shouldn't they then specify that's what they want to happen rather than appending for every one? Perhaps I'm missing something subtle. Still you have a very specific usage model, the ttySX console, but you're trying to model a generic solution. Is there really a need to supply the index when there's only 1 serial console device/port?
Updated test results which failed because of this change.
They failed perhaps because you took this too far?
Added two tests serial-dev-without-target-port, serial-dev-with-target-port which test generating qemu command with multiple serial devices and different ports.
Ahhh and this is what I'll key off mostly...
Signed-off-by: Thilo Cestonaro <thilo.cestonaro@ts.fujitsu.com> --- v2: added tests which create qemu commandline with and without specified target ports. Updated existing tests to pass again.
Noting v2 here is nice, but the subject line should have PATCHv2...
src/qemu/qemu_command.c | 16 ++++++++ tests/qemuxml2argvdata/bios.args | 2 +- .../qemuxml2argvdata/console-compat-auto.args | 2 +- .../console-compat-chardev.args | 2 +- tests/qemuxml2argvdata/console-compat.args | 2 +- .../qemuxml2argvdata/console-virtio-many.args | 2 +- tests/qemuxml2argvdata/controller-order.args | 2 +- .../q35-virt-manager-basic.args | 2 +- .../serial-dev-chardev-iobase.args | 2 +- .../qemuxml2argvdata/serial-dev-chardev.args | 2 +- tests/qemuxml2argvdata/serial-dev-chardev.xml | 4 +- .../serial-dev-with-target-port.args | 31 +++++++++++++++ .../serial-dev-with-target-port.xml | 38 +++++++++++++++++++ .../serial-dev-without-target-port.args | 31 +++++++++++++++ .../serial-dev-without-target-port.xml | 35 +++++++++++++++++ .../qemuxml2argvdata/serial-file-chardev.args | 2 +- tests/qemuxml2argvdata/serial-file-log.args | 2 +- .../qemuxml2argvdata/serial-many-chardev.args | 4 +- .../qemuxml2argvdata/serial-pty-chardev.args | 2 +- tests/qemuxml2argvdata/serial-spiceport.args | 2 +- .../qemuxml2argvdata/serial-tcp-chardev.args | 2 +- .../serial-tcp-telnet-chardev.args | 2 +- .../serial-tcp-tlsx509-chardev-notls.args | 4 +- .../serial-tcp-tlsx509-chardev-verify.args | 4 +- .../serial-tcp-tlsx509-chardev.args | 4 +- .../serial-tcp-tlsx509-secret-chardev.args | 4 +- .../qemuxml2argvdata/serial-udp-chardev.args | 4 +- .../qemuxml2argvdata/serial-unix-chardev.args | 2 +- tests/qemuxml2argvdata/serial-vc-chardev.args | 2 +- tests/qemuxml2argvdata/user-aliases.args | 4 +- tests/qemuxml2argvtest.c | 8 +++- 31 files changed, 191 insertions(+), 34 deletions(-) create mode 100644 tests/qemuxml2argvdata/serial-dev-with-target-port.args create mode 100644 tests/qemuxml2argvdata/serial-dev-with-target-port.xml create mode 100644 tests/qemuxml2argvdata/serial-dev-without-target-port.args create mode 100644 tests/qemuxml2argvdata/serial-dev-without-target-port.xml
I tried to 'git am -3' on top of current head - suffice to say with the volume of change in the last couple of weeks - your patch won't apply completely. So I need to ask you to regenerate and post as a v3 with a couple of other thoughts as described below...
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 514c3ab2e..5f770404b 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -10291,6 +10291,22 @@ qemuBuildSerialChrDeviceStr(char **deviceStr, virDomainChrSerialTargetModelTypeToString(serial->targetModel), serial->info.alias, serial->info.alias);
+ switch ((virDomainChrSerialTargetModel) serial->targetModel) { + case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_ISA_SERIAL: + if (serial->target.port != -1) + virBufferAsprintf(&cmd, ",index=%d", serial->target.port); + break;
This has resulted in a *lot* of changed to .args files and it's really not clear if "all" are really necessary...
+ case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_NONE: + case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_USB_SERIAL: + case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_PCI_SERIAL: + case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_SPAPR_VTY: + case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_PL011: + case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_SCLPCONSOLE: + case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_SCLPLMCONSOLE: + case VIR_DOMAIN_CHR_SERIAL_TARGET_MODEL_LAST:
Surprised that without the default: here you didn't get a compiler or syntax-check complaint...
+ break; + } + if (qemuBuildDeviceAddressStr(&cmd, def, &serial->info, qemuCaps) < 0) goto error;
diff --git a/tests/qemuxml2argvdata/bios.args b/tests/qemuxml2argvdata/bios.args index 048d4ff96..81e4a8ba7 100644 --- a/tests/qemuxml2argvdata/bios.args +++ b/tests/qemuxml2argvdata/bios.args @@ -24,6 +24,6 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev pty,id=charserial0 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \
For example, is there something special in tests/qemuxml2argvdata/bios.xml that should cause index=0 to be added? Is it really necessary for your use case... Thus, <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target type='serial' port='0'/> </console> will always result in this index=0... Is it necessary? Or is it only necessary when there's multiple port possibilities? Or is it only necessary when the port > 0? IOW: I believe qemu defaults to 0 if not provided, so if one serial device and port==0, why provide this? When did the index parameter show up and do we need a capability for it?
-device usb-tablet,id=input0,bus=usb.0,port=1 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/console-compat-auto.args b/tests/qemuxml2argvdata/console-compat-auto.args index cab47dbb5..3b048c721 100644 --- a/tests/qemuxml2argvdata/console-compat-auto.args +++ b/tests/qemuxml2argvdata/console-compat-auto.args @@ -22,5 +22,5 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev pty,id=charserial0 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/console-compat-chardev.args b/tests/qemuxml2argvdata/console-compat-chardev.args index ff7678ebc..61f5712bd 100644 --- a/tests/qemuxml2argvdata/console-compat-chardev.args +++ b/tests/qemuxml2argvdata/console-compat-chardev.args @@ -23,5 +23,5 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev pty,id=charserial0 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/console-compat.args b/tests/qemuxml2argvdata/console-compat.args index fb96946f1..674c92696 100644 --- a/tests/qemuxml2argvdata/console-compat.args +++ b/tests/qemuxml2argvdata/console-compat.args @@ -22,4 +22,4 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev pty,id=charserial0 \ --device isa-serial,chardev=charserial0,id=serial0 +-device isa-serial,chardev=charserial0,id=serial0,index=0 diff --git a/tests/qemuxml2argvdata/console-virtio-many.args b/tests/qemuxml2argvdata/console-virtio-many.args index 58a8a1fa0..f050cbb25 100644 --- a/tests/qemuxml2argvdata/console-virtio-many.args +++ b/tests/qemuxml2argvdata/console-virtio-many.args @@ -24,7 +24,7 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev pty,id=charserial0 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -chardev pty,id=charconsole1 \ -device virtconsole,chardev=charconsole1,id=console1 \ -chardev pty,id=charconsole2 \ diff --git a/tests/qemuxml2argvdata/controller-order.args b/tests/qemuxml2argvdata/controller-order.args index 70a8ba9ce..0e8c10f6d 100644 --- a/tests/qemuxml2argvdata/controller-order.args +++ b/tests/qemuxml2argvdata/controller-order.args @@ -33,7 +33,7 @@ id=drive-ide0-1-0,media=cdrom,readonly=on \ -chardev spicevmc,id=charsmartcard0,name=smartcard \ -device ccid-card-passthru,chardev=charsmartcard0,id=smartcard0,bus=ccid0.0 \ -chardev pty,id=charserial0 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -chardev spicevmc,id=charchannel0,name=vdagent \ -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,\ id=channel0,name=com.redhat.spice.0 \ diff --git a/tests/qemuxml2argvdata/q35-virt-manager-basic.args b/tests/qemuxml2argvdata/q35-virt-manager-basic.args index c7dd514fe..83e6dde5f 100644 --- a/tests/qemuxml2argvdata/q35-virt-manager-basic.args +++ b/tests/qemuxml2argvdata/q35-virt-manager-basic.args @@ -38,7 +38,7 @@ id=virtio-disk0 \ -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:9a:e6:c6,bus=pci.1,\ addr=0x0 \ -chardev pty,id=charserial0 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -chardev socket,id=charchannel0,\ path=/tmp/channel/domain--1-virt-manager-basic/org.qemu.guest_agent.0,server,\ nowait \ diff --git a/tests/qemuxml2argvdata/serial-dev-chardev-iobase.args b/tests/qemuxml2argvdata/serial-dev-chardev-iobase.args index 3a52b9efc..c19b05a18 100644 --- a/tests/qemuxml2argvdata/serial-dev-chardev-iobase.args +++ b/tests/qemuxml2argvdata/serial-dev-chardev-iobase.args @@ -23,5 +23,5 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev tty,id=charserial0,path=/dev/ttyS2 \ --device isa-serial,chardev=charserial0,id=serial0,iobase=0x3f8,irq=0x4 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0,iobase=0x3f8,irq=0x4 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-dev-chardev.args b/tests/qemuxml2argvdata/serial-dev-chardev.args index 55b939551..f78f51ab2 100644 --- a/tests/qemuxml2argvdata/serial-dev-chardev.args +++ b/tests/qemuxml2argvdata/serial-dev-chardev.args @@ -23,5 +23,5 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev tty,id=charserial0,path=/dev/ttyS2 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=1 \
So this one is different, but it's no different than the one I noted above other than using 1 instead of 0 for the one console/serial port.
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-dev-chardev.xml b/tests/qemuxml2argvdata/serial-dev-chardev.xml index dffd27d06..329a0fc19 100644 --- a/tests/qemuxml2argvdata/serial-dev-chardev.xml +++ b/tests/qemuxml2argvdata/serial-dev-chardev.xml @@ -23,11 +23,11 @@ <controller type='ide' index='0'/> <serial type='dev'> <source path='/dev/ttyS2'/> - <target port='0'/> + <target port='1'/> </serial> <console type='dev'> <source path='/dev/ttyS2'/> - <target port='0'/> + <target port='1'/>
Still one port being used - although perhaps something to key off - if there's port > 0 we may want to write it out as that may be an indication that we have more than one.
</console> <memballoon model='virtio'/> </devices> diff --git a/tests/qemuxml2argvdata/serial-dev-with-target-port.args b/tests/qemuxml2argvdata/serial-dev-with-target-port.args new file mode 100644 index 000000000..c8626bf4f --- /dev/null +++ b/tests/qemuxml2argvdata/serial-dev-with-target-port.args @@ -0,0 +1,31 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/home/test \ +USER=test \ +LOGNAME=test \ +QEMU_AUDIO_DRV=none \ +/usr/bin/qemu-system-i686 \ +-name QEMUGuest1 \ +-S \ +-M pc \ +-m 214 \ +-smp 1,sockets=1,cores=1,threads=1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-nographic \ +-nodefconfig \ +-nodefaults \ +-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\ +server,nowait \ +-mon chardev=charmonitor,id=monitor,mode=readline \ +-no-acpi \ +-boot c \ +-usb \ +-drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ +-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ +-chardev tty,id=charserial0,path=/dev/ttyS2 \ +-device isa-serial,chardev=charserial0,id=serial0,index=1 \ +-chardev tty,id=charserial1,path=/dev/ttyS1 \ +-device isa-serial,chardev=charserial1,id=serial1,index=2 \ +-chardev tty,id=charserial2,path=/dev/ttyS3 \ +-device isa-serial,chardev=charserial2,id=serial2,index=3 \ +-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
Ahh... so here's the example you're targeting...
\ No newline at end of file diff --git a/tests/qemuxml2argvdata/serial-dev-with-target-port.xml b/tests/qemuxml2argvdata/serial-dev-with-target-port.xml new file mode 100644 index 000000000..593ee5162 --- /dev/null +++ b/tests/qemuxml2argvdata/serial-dev-with-target-port.xml @@ -0,0 +1,38 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static'>1</vcpu> + <os> + <type arch='i686' machine='pc'>hvm</type> + <boot dev='hd'/> + </os> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu-system-i686</emulator> + <disk type='block' device='disk'> + <source dev='/dev/HostVG/QEMUGuest1'/> + <target dev='hda' bus='ide'/> + <address type='drive' controller='0' bus='0' target='0' unit='0'/> + </disk> + <controller type='usb' index='0'/> + <controller type='ide' index='0'/> + <serial type='dev'> + <source path='/dev/ttyS2'/> + <target port='1'/> + </serial> + <serial type='dev'> + <source path='/dev/ttyS1'/> + <target port='2'/> + </serial> + <serial type='dev'> + <source path='/dev/ttyS3'/> + <target port='3'/> + </serial>
and here there are multiple serial ports where the index then can be used to "define" which goes with which, true? Perhaps if there were corresponding "docs/formatdomain.html.in" changes I'd have less questions... IOW: Usage of the port value to assign the "order" of the ttySX... No <console .../> here - no clear if it's required.
+ <memballoon model='virtio'/> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/serial-dev-without-target-port.args b/tests/qemuxml2argvdata/serial-dev-without-target-port.args new file mode 100644 index 000000000..8e46260c7 --- /dev/null +++ b/tests/qemuxml2argvdata/serial-dev-without-target-port.args @@ -0,0 +1,31 @@ +LC_ALL=C \ +PATH=/bin \ +HOME=/home/test \ +USER=test \ +LOGNAME=test \ +QEMU_AUDIO_DRV=none \ +/usr/bin/qemu-system-i686 \ +-name QEMUGuest1 \ +-S \ +-M pc \ +-m 214 \ +-smp 1,sockets=1,cores=1,threads=1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-nographic \ +-nodefconfig \ +-nodefaults \ +-chardev socket,id=charmonitor,path=/tmp/lib/domain--1-QEMUGuest1/monitor.sock,\ +server,nowait \ +-mon chardev=charmonitor,id=monitor,mode=readline \ +-no-acpi \ +-boot c \ +-usb \ +-drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ +-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ +-chardev tty,id=charserial0,path=/dev/ttyS2 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ +-chardev tty,id=charserial1,path=/dev/ttyS1 \ +-device isa-serial,chardev=charserial1,id=serial1,index=1 \ +-chardev tty,id=charserial2,path=/dev/ttyS3 \ +-device isa-serial,chardev=charserial2,id=serial2,index=2 \ +-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \ No newline at end of file diff --git a/tests/qemuxml2argvdata/serial-dev-without-target-port.xml b/tests/qemuxml2argvdata/serial-dev-without-target-port.xml new file mode 100644 index 000000000..c170a111a --- /dev/null +++ b/tests/qemuxml2argvdata/serial-dev-without-target-port.xml @@ -0,0 +1,35 @@ +<domain type='qemu'> + <name>QEMUGuest1</name> + <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid> + <memory unit='KiB'>219100</memory> + <currentMemory unit='KiB'>219100</currentMemory> + <vcpu placement='static'>1</vcpu> + <os> + <type arch='i686' machine='pc'>hvm</type> + <boot dev='hd'/> + </os> + <clock offset='utc'/> + <on_poweroff>destroy</on_poweroff> + <on_reboot>restart</on_reboot> + <on_crash>destroy</on_crash> + <devices> + <emulator>/usr/bin/qemu-system-i686</emulator> + <disk type='block' device='disk'> + <source dev='/dev/HostVG/QEMUGuest1'/> + <target dev='hda' bus='ide'/> + <address type='drive' controller='0' bus='0' target='0' unit='0'/> + </disk> + <controller type='usb' index='0'/> + <controller type='ide' index='0'/> + <serial type='dev'> + <source path='/dev/ttyS2'/> + </serial> + <serial type='dev'> + <source path='/dev/ttyS1'/> + </serial> + <serial type='dev'> + <source path='/dev/ttyS3'/> + </serial>
ah - so for this example you don't provide a port, but the result is using index 0, 1, 2 instead of when you did provide a port where the result was 1, 2, 3 No <console .../> here either...
+ <memballoon model='virtio'/> + </devices> +</domain> diff --git a/tests/qemuxml2argvdata/serial-file-chardev.args b/tests/qemuxml2argvdata/serial-file-chardev.args index 47eb0aa9b..144ef37be 100644 --- a/tests/qemuxml2argvdata/serial-file-chardev.args +++ b/tests/qemuxml2argvdata/serial-file-chardev.args @@ -23,5 +23,5 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev file,id=charserial0,path=/tmp/serial.log,append=on \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-file-log.args b/tests/qemuxml2argvdata/serial-file-log.args index 86f8e73e0..43a2d655b 100644 --- a/tests/qemuxml2argvdata/serial-file-log.args +++ b/tests/qemuxml2argvdata/serial-file-log.args @@ -23,4 +23,4 @@ server,nowait \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev file,id=charserial0,path=/tmp/serial.log,\ logfile=/var/lib/libvirt/qemu/demo-serial.log,logappend=off \ --device isa-serial,chardev=charserial0,id=serial0 +-device isa-serial,chardev=charserial0,id=serial0,index=0 diff --git a/tests/qemuxml2argvdata/serial-many-chardev.args b/tests/qemuxml2argvdata/serial-many-chardev.args index eed3d418c..e07d1e9b0 100644 --- a/tests/qemuxml2argvdata/serial-many-chardev.args +++ b/tests/qemuxml2argvdata/serial-many-chardev.args @@ -23,7 +23,7 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev pty,id=charserial0 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -chardev file,id=charserial1,path=/tmp/serial.log \ --device isa-serial,chardev=charserial1,id=serial1 \ +-device isa-serial,chardev=charserial1,id=serial1,index=1 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-pty-chardev.args b/tests/qemuxml2argvdata/serial-pty-chardev.args index ff7678ebc..61f5712bd 100644 --- a/tests/qemuxml2argvdata/serial-pty-chardev.args +++ b/tests/qemuxml2argvdata/serial-pty-chardev.args @@ -23,5 +23,5 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev pty,id=charserial0 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-spiceport.args b/tests/qemuxml2argvdata/serial-spiceport.args index a3981499a..9bfa0450c 100644 --- a/tests/qemuxml2argvdata/serial-spiceport.args +++ b/tests/qemuxml2argvdata/serial-spiceport.args @@ -22,7 +22,7 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev spiceport,id=charserial0,name=org.qemu.console.serial.0 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -device usb-tablet,id=input0,bus=usb.0,port=1 \ -spice port=5903,tls-port=5904,addr=127.0.0.1,x509-dir=/etc/pki/libvirt-spice \ -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,bus=pci.0,\ diff --git a/tests/qemuxml2argvdata/serial-tcp-chardev.args b/tests/qemuxml2argvdata/serial-tcp-chardev.args index 4c427e22c..79476c772 100644 --- a/tests/qemuxml2argvdata/serial-tcp-chardev.args +++ b/tests/qemuxml2argvdata/serial-tcp-chardev.args @@ -23,5 +23,5 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev socket,id=charserial0,host=127.0.0.1,port=9999 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-tcp-telnet-chardev.args b/tests/qemuxml2argvdata/serial-tcp-telnet-chardev.args index 3ed08e95f..a0a4877a2 100644 --- a/tests/qemuxml2argvdata/serial-tcp-telnet-chardev.args +++ b/tests/qemuxml2argvdata/serial-tcp-telnet-chardev.args @@ -23,5 +23,5 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev socket,id=charserial0,host=127.0.0.1,port=9999,telnet,server,nowait \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-notls.args b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-notls.args index bd0feb319..1b92bf4a9 100644 --- a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-notls.args +++ b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-notls.args @@ -24,7 +24,7 @@ server,nowait \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev udp,id=charserial0,host=127.0.0.1,port=2222,localaddr=127.0.0.1,\ localport=1111 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -chardev socket,id=charserial1,host=127.0.0.1,port=5555 \ --device isa-serial,chardev=charserial1,id=serial1 \ +-device isa-serial,chardev=charserial1,id=serial1,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-verify.args b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-verify.args index ab5f7e27f..0b6363698 100644 --- a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-verify.args +++ b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev-verify.args @@ -24,10 +24,10 @@ server,nowait \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev udp,id=charserial0,host=127.0.0.1,port=2222,localaddr=127.0.0.1,\ localport=1111 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -object tls-creds-x509,id=objcharserial1_tls0,dir=/etc/pki/libvirt-chardev,\ endpoint=client,verify-peer=yes \ -chardev socket,id=charserial1,host=127.0.0.1,port=5555,\ tls-creds=objcharserial1_tls0 \ --device isa-serial,chardev=charserial1,id=serial1 \ +-device isa-serial,chardev=charserial1,id=serial1,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev.args b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev.args index ab5f7e27f..0b6363698 100644 --- a/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev.args +++ b/tests/qemuxml2argvdata/serial-tcp-tlsx509-chardev.args @@ -24,10 +24,10 @@ server,nowait \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev udp,id=charserial0,host=127.0.0.1,port=2222,localaddr=127.0.0.1,\ localport=1111 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -object tls-creds-x509,id=objcharserial1_tls0,dir=/etc/pki/libvirt-chardev,\ endpoint=client,verify-peer=yes \ -chardev socket,id=charserial1,host=127.0.0.1,port=5555,\ tls-creds=objcharserial1_tls0 \ --device isa-serial,chardev=charserial1,id=serial1 \ +-device isa-serial,chardev=charserial1,id=serial1,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-tcp-tlsx509-secret-chardev.args b/tests/qemuxml2argvdata/serial-tcp-tlsx509-secret-chardev.args index 2567abbfa..58b7eca83 100644 --- a/tests/qemuxml2argvdata/serial-tcp-tlsx509-secret-chardev.args +++ b/tests/qemuxml2argvdata/serial-tcp-tlsx509-secret-chardev.args @@ -26,7 +26,7 @@ server,nowait \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev udp,id=charserial0,host=127.0.0.1,port=2222,localaddr=127.0.0.1,\ localport=1111 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -object secret,id=charserial1-secret0,\ data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ @@ -34,5 +34,5 @@ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ endpoint=client,verify-peer=yes,passwordid=charserial1-secret0 \ -chardev socket,id=charserial1,host=127.0.0.1,port=5555,\ tls-creds=objcharserial1_tls0 \ --device isa-serial,chardev=charserial1,id=serial1 \ +-device isa-serial,chardev=charserial1,id=serial1,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-udp-chardev.args b/tests/qemuxml2argvdata/serial-udp-chardev.args index c9db110e0..a671c5ed4 100644 --- a/tests/qemuxml2argvdata/serial-udp-chardev.args +++ b/tests/qemuxml2argvdata/serial-udp-chardev.args @@ -24,7 +24,7 @@ server,nowait \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev udp,id=charserial0,host=127.0.0.1,port=9998,localaddr=127.0.0.1,\ localport=9999 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -chardev udp,id=charserial1,host=,port=9999,localaddr=,localport=0 \ --device isa-serial,chardev=charserial1,id=serial1 \ +-device isa-serial,chardev=charserial1,id=serial1,index=1 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-unix-chardev.args b/tests/qemuxml2argvdata/serial-unix-chardev.args index df75e15fe..6b09e27ec 100644 --- a/tests/qemuxml2argvdata/serial-unix-chardev.args +++ b/tests/qemuxml2argvdata/serial-unix-chardev.args @@ -23,5 +23,5 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev socket,id=charserial0,path=/tmp/serial.sock \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/serial-vc-chardev.args b/tests/qemuxml2argvdata/serial-vc-chardev.args index 3438c8447..af4cac559 100644 --- a/tests/qemuxml2argvdata/serial-vc-chardev.args +++ b/tests/qemuxml2argvdata/serial-vc-chardev.args @@ -23,5 +23,5 @@ server,nowait \ -drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \ -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 \ -chardev vc,id=charserial0 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/user-aliases.args b/tests/qemuxml2argvdata/user-aliases.args index ad9394710..5fa328828 100644 --- a/tests/qemuxml2argvdata/user-aliases.args +++ b/tests/qemuxml2argvdata/user-aliases.args @@ -59,9 +59,9 @@ addr=0xa \ -net socket,connect=127.0.0.1:1234,vlan=2,name=hostua-AndAlsoClientMode \ -device ccid-card-emulated,backend=nss-emulated,id=smartcard0,bus=ua-myCCID.0 \ -chardev pty,id=charserial0 \ --device isa-serial,chardev=charserial0,id=serial0 \ +-device isa-serial,chardev=charserial0,id=serial0,index=0 \ -chardev pty,id=charserial1 \ --device isa-serial,chardev=charserial1,id=serial1 \ +-device isa-serial,chardev=charserial1,id=serial1,index=1 \ -chardev socket,id=charchannel0,\ path=/var/lib/libvirt/qemu/channel/target/gentoo.org.qemu.guest_agent.0,server,\ nowait \ diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 165137e93..ca63886a6 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -1306,6 +1306,12 @@ mymain(void) DO_TEST("serial-dev-chardev-iobase", QEMU_CAPS_DEVICE_ISA_SERIAL, QEMU_CAPS_NODEFCONFIG); + DO_TEST("serial-dev-with-target-port", + QEMU_CAPS_DEVICE_ISA_SERIAL, + QEMU_CAPS_NODEFCONFIG); + DO_TEST("serial-dev-without-target-port", + QEMU_CAPS_DEVICE_ISA_SERIAL, + QEMU_CAPS_NODEFCONFIG);
I don't thing this needs to use the new DO_TESTS_CAPS_{LATEST|VER}, but it's not yet clear to me what prompts it's need. Since there's no capabilities, I lean to no, but will defer to Peter if he requires it.
DO_TEST("serial-file-chardev", QEMU_CAPS_NODEFCONFIG, QEMU_CAPS_DEVICE_ISA_SERIAL, @@ -1318,7 +1324,7 @@ mymain(void) QEMU_CAPS_NODEFCONFIG); DO_TEST("serial-udp-chardev", QEMU_CAPS_DEVICE_ISA_SERIAL, - QEMU_CAPS_NODEFCONFIG); + QEMU_CAPS_NODEFCONFIG);
^^^^^^^^^^ There is a spurious whitespace change at the end of the above line which needs to be undone. John
DO_TEST("serial-tcp-telnet-chardev", QEMU_CAPS_DEVICE_ISA_SERIAL, QEMU_CAPS_NODEFCONFIG);
participants (2)
-
John Ferlan
-
Thilo Cestonaro