mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-03 03:25:20 +00:00
Support SDL config with QEMU guests
This commit is contained in:
parent
427f7a8b09
commit
7e0d3e62e9
10
ChangeLog
10
ChangeLog
@ -1,3 +1,13 @@
|
||||
Fri Oct 10 17:51:00 BST 2008 Daniel P. Berrange <berrange@redhat.com>
|
||||
|
||||
* docs/libvirt.rng: Document SDL attributes in schema
|
||||
* src/qemu_conf.c, src/qemu_conf.h, src/qemu_driver.c: Support
|
||||
SDL display configuration
|
||||
* tests/qemuxml2argvtest.c: Set predictable env vars for SDL
|
||||
tests.
|
||||
* tests/qemuxml2argvdata/*.args: Add new env vars now set
|
||||
explicitly
|
||||
|
||||
Fri Oct 10 17:03:00 BST 2008 Daniel P. Berrange <berrange@redhat.com>
|
||||
|
||||
* src/domain_conf.c, src/domain_conf.h, src/lxc_container.c,
|
||||
|
@ -645,9 +645,21 @@
|
||||
<define name='graphic'>
|
||||
<element name='graphics'>
|
||||
<choice>
|
||||
<attribute name='type'>
|
||||
<value>sdl</value>
|
||||
</attribute>
|
||||
<group>
|
||||
<attribute name='type'>
|
||||
<value>sdl</value>
|
||||
</attribute>
|
||||
<optional>
|
||||
<attribute name='display'>
|
||||
<text/>
|
||||
</attribute>
|
||||
</optional>
|
||||
<optional>
|
||||
<attribute name='xauth'>
|
||||
<text/>
|
||||
</attribute>
|
||||
</optional>
|
||||
</group>
|
||||
<group>
|
||||
<attribute name='type'>
|
||||
<value>vnc</value>
|
||||
|
@ -28,6 +28,7 @@
|
||||
#include <limits.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
@ -694,6 +695,7 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
||||
virDomainObjPtr vm,
|
||||
unsigned int qemuCmdFlags,
|
||||
const char ***retargv,
|
||||
const char ***retenv,
|
||||
int **tapfds,
|
||||
int *ntapfds,
|
||||
const char *migrateFrom) {
|
||||
@ -705,6 +707,8 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
||||
int disableKQEMU = 0;
|
||||
int qargc = 0, qarga = 0;
|
||||
const char **qargv = NULL;
|
||||
int qenvc = 0, qenva = 0;
|
||||
const char **qenv = NULL;
|
||||
const char *emulator;
|
||||
|
||||
uname(&ut);
|
||||
@ -752,15 +756,60 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
||||
do { \
|
||||
ADD_ARG_LIT("-usbdevice"); \
|
||||
ADD_ARG_SPACE; \
|
||||
if ((asprintf((char **)&(qargv[qargc++]), "disk:%s", thisarg)) == -1) { \
|
||||
if ((asprintf((char **)&(qargv[qargc++]), \
|
||||
"disk:%s", thisarg)) == -1) { \
|
||||
qargv[qargc-1] = NULL; \
|
||||
goto no_memory; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define ADD_ENV_SPACE \
|
||||
do { \
|
||||
if (qenvc == qenva) { \
|
||||
qenva += 10; \
|
||||
if (VIR_REALLOC_N(qenv, qenva) < 0) \
|
||||
goto no_memory; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define ADD_ENV(thisarg) \
|
||||
do { \
|
||||
ADD_ENV_SPACE; \
|
||||
qenv[qenvc++] = thisarg; \
|
||||
} while (0)
|
||||
|
||||
#define ADD_ENV_LIT(thisarg) \
|
||||
do { \
|
||||
ADD_ENV_SPACE; \
|
||||
if ((qenv[qenvc++] = strdup(thisarg)) == NULL) \
|
||||
goto no_memory; \
|
||||
} while (0)
|
||||
|
||||
#define ADD_ENV_COPY(envname) \
|
||||
do { \
|
||||
char *val = getenv(envname); \
|
||||
char *envval; \
|
||||
ADD_ENV_SPACE; \
|
||||
if (val != NULL) { \
|
||||
if (asprintf(&envval, "%s=%s", envname, val) < 0) \
|
||||
goto no_memory; \
|
||||
qenv[qenvc++] = envval; \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
snprintf(memory, sizeof(memory), "%lu", vm->def->memory/1024);
|
||||
snprintf(vcpus, sizeof(vcpus), "%lu", vm->def->vcpus);
|
||||
|
||||
ADD_ENV_LIT("LC_ALL=C");
|
||||
|
||||
ADD_ENV_COPY("LD_PRELOAD");
|
||||
ADD_ENV_COPY("LD_LIBRARY_PATH");
|
||||
ADD_ENV_COPY("PATH");
|
||||
ADD_ENV_COPY("HOME");
|
||||
ADD_ENV_COPY("USER");
|
||||
ADD_ENV_COPY("LOGNAME");
|
||||
ADD_ENV_COPY("TMPDIR");
|
||||
|
||||
emulator = vm->def->emulator;
|
||||
if (!emulator)
|
||||
emulator = virDomainDefDefaultEmulator(conn, vm->def, driver->caps);
|
||||
@ -1134,7 +1183,24 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
||||
}
|
||||
} else if (vm->def->graphics &&
|
||||
vm->def->graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_SDL) {
|
||||
/* SDL is the default. no args needed */
|
||||
char *xauth = NULL;
|
||||
char *display = NULL;
|
||||
|
||||
if (vm->def->graphics->data.sdl.xauth &&
|
||||
asprintf(&xauth, "XAUTHORITY=%s",
|
||||
vm->def->graphics->data.sdl.xauth) < 0)
|
||||
goto no_memory;
|
||||
if (vm->def->graphics->data.sdl.display &&
|
||||
asprintf(&display, "DISPLAY=%s",
|
||||
vm->def->graphics->data.sdl.display) < 0) {
|
||||
VIR_FREE(xauth);
|
||||
goto no_memory;
|
||||
}
|
||||
|
||||
if (xauth)
|
||||
ADD_ENV(xauth);
|
||||
if (display)
|
||||
ADD_ENV(display);
|
||||
}
|
||||
|
||||
/* Add sound hardware */
|
||||
@ -1196,8 +1262,10 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
||||
}
|
||||
|
||||
ADD_ARG(NULL);
|
||||
ADD_ENV(NULL);
|
||||
|
||||
*retargv = qargv;
|
||||
*retenv = qenv;
|
||||
return 0;
|
||||
|
||||
no_memory:
|
||||
@ -1216,9 +1284,19 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
||||
VIR_FREE((qargv)[i]);
|
||||
VIR_FREE(qargv);
|
||||
}
|
||||
if (qenv) {
|
||||
for (i = 0 ; i < qenvc ; i++)
|
||||
VIR_FREE((qenv)[i]);
|
||||
VIR_FREE(qenv);
|
||||
}
|
||||
return -1;
|
||||
|
||||
#undef ADD_ARG
|
||||
#undef ADD_ARG_LIT
|
||||
#undef ADD_ARG_SPACE
|
||||
#undef ADD_USBDISK
|
||||
#undef ADD_ENV
|
||||
#undef ADD_ENV_COPY
|
||||
#undef ADD_ENV_LIT
|
||||
#undef ADD_ENV_SPACE
|
||||
}
|
||||
|
@ -86,7 +86,8 @@ int qemudBuildCommandLine (virConnectPtr conn,
|
||||
struct qemud_driver *driver,
|
||||
virDomainObjPtr dom,
|
||||
unsigned int qemuCmdFlags,
|
||||
const char ***argv,
|
||||
const char ***retargv,
|
||||
const char ***retenv,
|
||||
int **tapfds,
|
||||
int *ntapfds,
|
||||
const char *migrateFrom);
|
||||
|
@ -747,6 +747,7 @@ static int qemudStartVMDaemon(virConnectPtr conn,
|
||||
virDomainObjPtr vm,
|
||||
const char *migrateFrom) {
|
||||
const char **argv = NULL, **tmp;
|
||||
const char **progenv = NULL;
|
||||
int i, ret;
|
||||
char logfile[PATH_MAX];
|
||||
struct stat sb;
|
||||
@ -842,13 +843,23 @@ static int qemudStartVMDaemon(virConnectPtr conn,
|
||||
}
|
||||
|
||||
if (qemudBuildCommandLine(conn, driver, vm,
|
||||
qemuCmdFlags, &argv,
|
||||
qemuCmdFlags, &argv, &progenv,
|
||||
&tapfds, &ntapfds, migrateFrom) < 0) {
|
||||
close(vm->logfile);
|
||||
vm->logfile = -1;
|
||||
return -1;
|
||||
}
|
||||
|
||||
tmp = progenv;
|
||||
while (*tmp) {
|
||||
if (safewrite(vm->logfile, *tmp, strlen(*tmp)) < 0)
|
||||
qemudLog(QEMUD_WARN, _("Unable to write envv to logfile %d: %s\n"),
|
||||
errno, strerror(errno));
|
||||
if (safewrite(vm->logfile, " ", 1) < 0)
|
||||
qemudLog(QEMUD_WARN, _("Unable to write envv to logfile %d: %s\n"),
|
||||
errno, strerror(errno));
|
||||
tmp++;
|
||||
}
|
||||
tmp = argv;
|
||||
while (*tmp) {
|
||||
if (safewrite(vm->logfile, *tmp, strlen(*tmp)) < 0)
|
||||
@ -869,7 +880,7 @@ static int qemudStartVMDaemon(virConnectPtr conn,
|
||||
for (i = 0 ; i < ntapfds ; i++)
|
||||
FD_SET(tapfds[i], &keepfd);
|
||||
|
||||
ret = virExec(conn, argv, NULL, &keepfd, &vm->pid,
|
||||
ret = virExec(conn, argv, progenv, &keepfd, &vm->pid,
|
||||
vm->stdin_fd, &vm->stdout_fd, &vm->stderr_fd,
|
||||
VIR_EXEC_NONBLOCK);
|
||||
if (ret == 0) {
|
||||
@ -881,6 +892,10 @@ static int qemudStartVMDaemon(virConnectPtr conn,
|
||||
VIR_FREE(argv[i]);
|
||||
VIR_FREE(argv);
|
||||
|
||||
for (i = 0 ; progenv[i] ; i++)
|
||||
VIR_FREE(progenv[i]);
|
||||
VIR_FREE(progenv);
|
||||
|
||||
if (tapfds) {
|
||||
for (i = 0 ; i < ntapfds ; i++) {
|
||||
close(tapfds[i]);
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot d -cdrom /dev/cdrom -net none -serial none -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 -monitor pty -no-acpi -boot d -cdrom /dev/cdrom -net none -serial none -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot a -hda /dev/HostVG/QEMUGuest1 -fda /tmp/firmware.img -net none -serial none -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 -monitor pty -no-acpi -boot a -hda /dev/HostVG/QEMUGuest1 -fda /tmp/firmware.img -net none -serial none -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot n -hda /dev/HostVG/QEMUGuest1 -net none -serial none -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 -monitor pty -no-acpi -boot n -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu-kvm -S -M xenner -m 214 -smp 1 -nographic -monitor pty -no-acpi -bootloader /usr/bin/pygrub -cdrom /dev/cdrom -net none -serial none -parallel none -usb
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu-kvm -S -M xenner -m 214 -smp 1 -nographic -monitor pty -no-acpi -bootloader /usr/bin/pygrub -cdrom /dev/cdrom -net none -serial none -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -localtime -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -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 -monitor pty -localtime -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -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 -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial pty -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 -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial pty -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -drive file=/dev/HostVG/QEMUGuest1,if=ide,index=0 -drive file=,if=ide,media=cdrom,index=2 -net none -serial none -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 -monitor pty -no-acpi -boot c -drive file=/dev/HostVG/QEMUGuest1,if=ide,index=0 -drive file=,if=ide,media=cdrom,index=2 -net none -serial none -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -cdrom /root/boot.iso -net none -serial none -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 -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -cdrom /root/boot.iso -net none -serial none -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot d -drive file=/dev/HostVG/QEMUGuest1,if=ide,index=0 -drive file=/dev/HostVG/QEMUGuest2,if=ide,media=cdrom,index=2 -net none -serial none -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 -monitor pty -no-acpi -boot d -drive file=/dev/HostVG/QEMUGuest1,if=ide,index=0 -drive file=/dev/HostVG/QEMUGuest2,if=ide,media=cdrom,index=2 -net none -serial none -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -drive file=/dev/HostVG/QEMUGuest1,if=ide,index=0,boot=on -drive file=/dev/HostVG/QEMUGuest2,if=ide,media=cdrom,index=2 -net none -serial none -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 -monitor pty -no-acpi -boot c -drive file=/dev/HostVG/QEMUGuest1,if=ide,index=0,boot=on -drive file=/dev/HostVG/QEMUGuest2,if=ide,media=cdrom,index=2 -net none -serial none -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -fda /dev/fd0 -fdb /tmp/firmware.img -net none -serial none -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 -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -fda /dev/fd0 -fdb /tmp/firmware.img -net none -serial none -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -hdb /dev/HostVG/QEMUGuest2 -hdc /tmp/data.img -hdd /tmp/logs.img -net none -serial none -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 -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -hdb /dev/HostVG/QEMUGuest2 -hdc /tmp/data.img -hdd /tmp/logs.img -net none -serial none -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -usbdevice disk:/tmp/usbdisk.img -net none -serial none -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 -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -usbdevice disk:/tmp/usbdisk.img -net none -serial none -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -drive file=/dev/HostVG/QEMUGuest1,if=ide,index=0,boot=on -drive file=/dev/HostVG/QEMUGuest2,if=ide,media=cdrom,index=2 -drive file=/tmp/data.img,if=virtio,index=0 -drive file=/tmp/logs.img,if=virtio,index=6 -net none -serial none -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 -monitor pty -no-acpi -boot c -drive file=/dev/HostVG/QEMUGuest1,if=ide,index=0,boot=on -drive file=/dev/HostVG/QEMUGuest2,if=ide,media=cdrom,index=2 -drive file=/tmp/data.img,if=virtio,index=0 -drive file=/tmp/logs.img,if=virtio,index=6 -net none -serial none -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -drive file=/dev/HostVG/QEMUGuest1,if=ide,index=0,boot=on -drive file=/dev/HostVG/QEMUGuest2,if=ide,media=cdrom,index=2 -drive file=/tmp/data.img,if=xen,index=0 -drive file=/tmp/logs.img,if=xen,index=6 -net none -serial none -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 -monitor pty -no-acpi -boot c -drive file=/dev/HostVG/QEMUGuest1,if=ide,index=0,boot=on -drive file=/dev/HostVG/QEMUGuest2,if=ide,media=cdrom,index=2 -drive file=/tmp/data.img,if=xen,index=0 -drive file=/tmp/logs.img,if=xen,index=6 -net none -serial none -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test XAUTHORITY=/root/.Xauthority DISPLAY=:0.1 /usr/bin/qemu -S -M pc -m 214 -smp 1 -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb
|
||||
|
@ -19,6 +19,6 @@
|
||||
<target dev='hda' bus='ide'/>
|
||||
</disk>
|
||||
<input type='mouse' bus='ps2'/>
|
||||
<graphics type='sdl'/>
|
||||
<graphics type='sdl' display=':0.1' xauth='/root/.Xauthority'/>
|
||||
</devices>
|
||||
</domain>
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb -vnc 127.0.0.1:3
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb -vnc 127.0.0.1:3
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb -usbdevice host:014.006
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb -usbdevice host:014.006
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb -usbdevice host:0204:6025
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb -usbdevice host:0204:6025
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb -usbdevice mouse
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb -usbdevice mouse
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb -usbdevice tablet
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb -usbdevice tablet
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/xenner -S -M xenner -m 214 -smp 1 -monitor pty -no-acpi -bootloader /foo -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb -vnc 127.0.0.1:3
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/xenner -S -M xenner -m 214 -smp 1 -monitor pty -no-acpi -bootloader /foo -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb -vnc 127.0.0.1:3
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -name QEMUGuest1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -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 -name QEMUGuest1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -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 -monitor pty -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-reboot -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -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 -monitor pty -no-reboot -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net nic,macaddr=00:11:22:33:44:55,vlan=0 -net user,vlan=0 -serial none -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 -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net nic,macaddr=00:11:22:33:44:55,vlan=0 -net user,vlan=0 -serial none -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net nic,macaddr=00:11:22:33:44:55,vlan=0,model=virtio -net user,vlan=0 -serial none -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 -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net nic,macaddr=00:11:22:33:44:55,vlan=0,model=virtio -net user,vlan=0 -serial none -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel tcp:127.0.0.1:9999,listen -usb
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel tcp:127.0.0.1:9999,listen -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial /dev/ttyS2 -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 -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial /dev/ttyS2 -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial file:/tmp/serial.log -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 -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial file:/tmp/serial.log -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial pty -serial file:/tmp/serial.log -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 -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial pty -serial file:/tmp/serial.log -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial pty -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 -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial pty -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial telnet:127.0.0.1:9999,server -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 -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial telnet:127.0.0.1:9999,server -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial tcp:127.0.0.1:9999 -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 -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial tcp:127.0.0.1:9999 -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial udp:127.0.0.1:9998@127.0.0.1:9999 -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 -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial udp:127.0.0.1:9998@127.0.0.1:9999 -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial unix:/tmp/serial.sock -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 -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial unix:/tmp/serial.sock -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial vc -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 -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial vc -parallel none -usb
|
||||
|
@ -1 +1 @@
|
||||
/usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb -soundhw pcspk,es1370,sb16
|
||||
LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic -monitor pty -no-acpi -boot c -hda /dev/HostVG/QEMUGuest1 -net none -serial none -parallel none -usb -soundhw pcspk,es1370,sb16
|
||||
|
@ -22,11 +22,14 @@ static struct qemud_driver driver;
|
||||
|
||||
#define MAX_FILE 4096
|
||||
|
||||
static int testCompareXMLToArgvFiles(const char *xml, const char *cmd, int extraFlags) {
|
||||
static int testCompareXMLToArgvFiles(const char *xml,
|
||||
const char *cmd,
|
||||
int extraFlags) {
|
||||
char argvData[MAX_FILE];
|
||||
char *expectargv = &(argvData[0]);
|
||||
char *actualargv = NULL;
|
||||
const char **argv = NULL;
|
||||
const char **qenv = NULL;
|
||||
const char **tmp = NULL;
|
||||
int ret = -1, len, flags;
|
||||
virDomainDefPtr vmdef = NULL;
|
||||
@ -48,20 +51,32 @@ static int testCompareXMLToArgvFiles(const char *xml, const char *cmd, int extra
|
||||
extraFlags;
|
||||
|
||||
if (qemudBuildCommandLine(NULL, &driver,
|
||||
&vm, flags, &argv,
|
||||
&vm, flags, &argv, &qenv,
|
||||
NULL, NULL, NULL) < 0)
|
||||
goto fail;
|
||||
|
||||
tmp = argv;
|
||||
len = 1; /* for trailing newline */
|
||||
tmp = qenv;
|
||||
while (*tmp) {
|
||||
len += strlen(*tmp) + 1;
|
||||
tmp++;
|
||||
}
|
||||
|
||||
tmp = argv;
|
||||
while (*tmp) {
|
||||
len += strlen(*tmp) + 1;
|
||||
tmp++;
|
||||
}
|
||||
actualargv = malloc(sizeof(*actualargv)*len);
|
||||
actualargv[0] = '\0';
|
||||
tmp = qenv;
|
||||
while (*tmp) {
|
||||
if (actualargv[0])
|
||||
strcat(actualargv, " ");
|
||||
strcat(actualargv, *tmp);
|
||||
tmp++;
|
||||
}
|
||||
tmp = argv;
|
||||
len = 0;
|
||||
while (*tmp) {
|
||||
if (actualargv[0])
|
||||
strcat(actualargv, " ");
|
||||
@ -87,6 +102,14 @@ static int testCompareXMLToArgvFiles(const char *xml, const char *cmd, int extra
|
||||
}
|
||||
free(argv);
|
||||
}
|
||||
if (qenv) {
|
||||
tmp = qenv;
|
||||
while (*tmp) {
|
||||
free(*(char**)tmp);
|
||||
tmp++;
|
||||
}
|
||||
free(qenv);
|
||||
}
|
||||
virDomainDefFree(vmdef);
|
||||
return ret;
|
||||
}
|
||||
@ -138,6 +161,14 @@ mymain(int argc, char **argv)
|
||||
ret = -1; \
|
||||
} while (0)
|
||||
|
||||
setenv("PATH", "/bin", 1);
|
||||
setenv("USER", "test", 1);
|
||||
setenv("LOGNAME", "test", 1);
|
||||
setenv("HOME", "/home/test", 1);
|
||||
unsetenv("TMPDIR");
|
||||
unsetenv("LD_PRELOAD");
|
||||
unsetenv("LD_LIBRARY_PATH");
|
||||
|
||||
DO_TEST("minimal", QEMUD_CMD_FLAG_NAME);
|
||||
DO_TEST("boot-cdrom", 0);
|
||||
DO_TEST("boot-network", 0);
|
||||
|
Loading…
Reference in New Issue
Block a user