mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-18 18:45:16 +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>
|
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,
|
* src/domain_conf.c, src/domain_conf.h, src/lxc_container.c,
|
||||||
|
@ -645,9 +645,21 @@
|
|||||||
<define name='graphic'>
|
<define name='graphic'>
|
||||||
<element name='graphics'>
|
<element name='graphics'>
|
||||||
<choice>
|
<choice>
|
||||||
|
<group>
|
||||||
<attribute name='type'>
|
<attribute name='type'>
|
||||||
<value>sdl</value>
|
<value>sdl</value>
|
||||||
</attribute>
|
</attribute>
|
||||||
|
<optional>
|
||||||
|
<attribute name='display'>
|
||||||
|
<text/>
|
||||||
|
</attribute>
|
||||||
|
</optional>
|
||||||
|
<optional>
|
||||||
|
<attribute name='xauth'>
|
||||||
|
<text/>
|
||||||
|
</attribute>
|
||||||
|
</optional>
|
||||||
|
</group>
|
||||||
<group>
|
<group>
|
||||||
<attribute name='type'>
|
<attribute name='type'>
|
||||||
<value>vnc</value>
|
<value>vnc</value>
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
@ -694,6 +695,7 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
|||||||
virDomainObjPtr vm,
|
virDomainObjPtr vm,
|
||||||
unsigned int qemuCmdFlags,
|
unsigned int qemuCmdFlags,
|
||||||
const char ***retargv,
|
const char ***retargv,
|
||||||
|
const char ***retenv,
|
||||||
int **tapfds,
|
int **tapfds,
|
||||||
int *ntapfds,
|
int *ntapfds,
|
||||||
const char *migrateFrom) {
|
const char *migrateFrom) {
|
||||||
@ -705,6 +707,8 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
|||||||
int disableKQEMU = 0;
|
int disableKQEMU = 0;
|
||||||
int qargc = 0, qarga = 0;
|
int qargc = 0, qarga = 0;
|
||||||
const char **qargv = NULL;
|
const char **qargv = NULL;
|
||||||
|
int qenvc = 0, qenva = 0;
|
||||||
|
const char **qenv = NULL;
|
||||||
const char *emulator;
|
const char *emulator;
|
||||||
|
|
||||||
uname(&ut);
|
uname(&ut);
|
||||||
@ -752,15 +756,60 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
|||||||
do { \
|
do { \
|
||||||
ADD_ARG_LIT("-usbdevice"); \
|
ADD_ARG_LIT("-usbdevice"); \
|
||||||
ADD_ARG_SPACE; \
|
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; \
|
qargv[qargc-1] = NULL; \
|
||||||
goto no_memory; \
|
goto no_memory; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} 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(memory, sizeof(memory), "%lu", vm->def->memory/1024);
|
||||||
snprintf(vcpus, sizeof(vcpus), "%lu", vm->def->vcpus);
|
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;
|
emulator = vm->def->emulator;
|
||||||
if (!emulator)
|
if (!emulator)
|
||||||
emulator = virDomainDefDefaultEmulator(conn, vm->def, driver->caps);
|
emulator = virDomainDefDefaultEmulator(conn, vm->def, driver->caps);
|
||||||
@ -1134,7 +1183,24 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
|||||||
}
|
}
|
||||||
} else if (vm->def->graphics &&
|
} else if (vm->def->graphics &&
|
||||||
vm->def->graphics->type == VIR_DOMAIN_GRAPHICS_TYPE_SDL) {
|
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 */
|
/* Add sound hardware */
|
||||||
@ -1196,8 +1262,10 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
|||||||
}
|
}
|
||||||
|
|
||||||
ADD_ARG(NULL);
|
ADD_ARG(NULL);
|
||||||
|
ADD_ENV(NULL);
|
||||||
|
|
||||||
*retargv = qargv;
|
*retargv = qargv;
|
||||||
|
*retenv = qenv;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
no_memory:
|
no_memory:
|
||||||
@ -1216,9 +1284,19 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
|||||||
VIR_FREE((qargv)[i]);
|
VIR_FREE((qargv)[i]);
|
||||||
VIR_FREE(qargv);
|
VIR_FREE(qargv);
|
||||||
}
|
}
|
||||||
|
if (qenv) {
|
||||||
|
for (i = 0 ; i < qenvc ; i++)
|
||||||
|
VIR_FREE((qenv)[i]);
|
||||||
|
VIR_FREE(qenv);
|
||||||
|
}
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
#undef ADD_ARG
|
#undef ADD_ARG
|
||||||
#undef ADD_ARG_LIT
|
#undef ADD_ARG_LIT
|
||||||
#undef ADD_ARG_SPACE
|
#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,
|
struct qemud_driver *driver,
|
||||||
virDomainObjPtr dom,
|
virDomainObjPtr dom,
|
||||||
unsigned int qemuCmdFlags,
|
unsigned int qemuCmdFlags,
|
||||||
const char ***argv,
|
const char ***retargv,
|
||||||
|
const char ***retenv,
|
||||||
int **tapfds,
|
int **tapfds,
|
||||||
int *ntapfds,
|
int *ntapfds,
|
||||||
const char *migrateFrom);
|
const char *migrateFrom);
|
||||||
|
@ -747,6 +747,7 @@ static int qemudStartVMDaemon(virConnectPtr conn,
|
|||||||
virDomainObjPtr vm,
|
virDomainObjPtr vm,
|
||||||
const char *migrateFrom) {
|
const char *migrateFrom) {
|
||||||
const char **argv = NULL, **tmp;
|
const char **argv = NULL, **tmp;
|
||||||
|
const char **progenv = NULL;
|
||||||
int i, ret;
|
int i, ret;
|
||||||
char logfile[PATH_MAX];
|
char logfile[PATH_MAX];
|
||||||
struct stat sb;
|
struct stat sb;
|
||||||
@ -842,13 +843,23 @@ static int qemudStartVMDaemon(virConnectPtr conn,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (qemudBuildCommandLine(conn, driver, vm,
|
if (qemudBuildCommandLine(conn, driver, vm,
|
||||||
qemuCmdFlags, &argv,
|
qemuCmdFlags, &argv, &progenv,
|
||||||
&tapfds, &ntapfds, migrateFrom) < 0) {
|
&tapfds, &ntapfds, migrateFrom) < 0) {
|
||||||
close(vm->logfile);
|
close(vm->logfile);
|
||||||
vm->logfile = -1;
|
vm->logfile = -1;
|
||||||
return -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;
|
tmp = argv;
|
||||||
while (*tmp) {
|
while (*tmp) {
|
||||||
if (safewrite(vm->logfile, *tmp, strlen(*tmp)) < 0)
|
if (safewrite(vm->logfile, *tmp, strlen(*tmp)) < 0)
|
||||||
@ -869,7 +880,7 @@ static int qemudStartVMDaemon(virConnectPtr conn,
|
|||||||
for (i = 0 ; i < ntapfds ; i++)
|
for (i = 0 ; i < ntapfds ; i++)
|
||||||
FD_SET(tapfds[i], &keepfd);
|
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,
|
vm->stdin_fd, &vm->stdout_fd, &vm->stderr_fd,
|
||||||
VIR_EXEC_NONBLOCK);
|
VIR_EXEC_NONBLOCK);
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
@ -881,6 +892,10 @@ static int qemudStartVMDaemon(virConnectPtr conn,
|
|||||||
VIR_FREE(argv[i]);
|
VIR_FREE(argv[i]);
|
||||||
VIR_FREE(argv);
|
VIR_FREE(argv);
|
||||||
|
|
||||||
|
for (i = 0 ; progenv[i] ; i++)
|
||||||
|
VIR_FREE(progenv[i]);
|
||||||
|
VIR_FREE(progenv);
|
||||||
|
|
||||||
if (tapfds) {
|
if (tapfds) {
|
||||||
for (i = 0 ; i < ntapfds ; i++) {
|
for (i = 0 ; i < ntapfds ; i++) {
|
||||||
close(tapfds[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'/>
|
<target dev='hda' bus='ide'/>
|
||||||
</disk>
|
</disk>
|
||||||
<input type='mouse' bus='ps2'/>
|
<input type='mouse' bus='ps2'/>
|
||||||
<graphics type='sdl'/>
|
<graphics type='sdl' display=':0.1' xauth='/root/.Xauthority'/>
|
||||||
</devices>
|
</devices>
|
||||||
</domain>
|
</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
|
#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 argvData[MAX_FILE];
|
||||||
char *expectargv = &(argvData[0]);
|
char *expectargv = &(argvData[0]);
|
||||||
char *actualargv = NULL;
|
char *actualargv = NULL;
|
||||||
const char **argv = NULL;
|
const char **argv = NULL;
|
||||||
|
const char **qenv = NULL;
|
||||||
const char **tmp = NULL;
|
const char **tmp = NULL;
|
||||||
int ret = -1, len, flags;
|
int ret = -1, len, flags;
|
||||||
virDomainDefPtr vmdef = NULL;
|
virDomainDefPtr vmdef = NULL;
|
||||||
@ -48,20 +51,32 @@ static int testCompareXMLToArgvFiles(const char *xml, const char *cmd, int extra
|
|||||||
extraFlags;
|
extraFlags;
|
||||||
|
|
||||||
if (qemudBuildCommandLine(NULL, &driver,
|
if (qemudBuildCommandLine(NULL, &driver,
|
||||||
&vm, flags, &argv,
|
&vm, flags, &argv, &qenv,
|
||||||
NULL, NULL, NULL) < 0)
|
NULL, NULL, NULL) < 0)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
tmp = argv;
|
|
||||||
len = 1; /* for trailing newline */
|
len = 1; /* for trailing newline */
|
||||||
|
tmp = qenv;
|
||||||
|
while (*tmp) {
|
||||||
|
len += strlen(*tmp) + 1;
|
||||||
|
tmp++;
|
||||||
|
}
|
||||||
|
|
||||||
|
tmp = argv;
|
||||||
while (*tmp) {
|
while (*tmp) {
|
||||||
len += strlen(*tmp) + 1;
|
len += strlen(*tmp) + 1;
|
||||||
tmp++;
|
tmp++;
|
||||||
}
|
}
|
||||||
actualargv = malloc(sizeof(*actualargv)*len);
|
actualargv = malloc(sizeof(*actualargv)*len);
|
||||||
actualargv[0] = '\0';
|
actualargv[0] = '\0';
|
||||||
|
tmp = qenv;
|
||||||
|
while (*tmp) {
|
||||||
|
if (actualargv[0])
|
||||||
|
strcat(actualargv, " ");
|
||||||
|
strcat(actualargv, *tmp);
|
||||||
|
tmp++;
|
||||||
|
}
|
||||||
tmp = argv;
|
tmp = argv;
|
||||||
len = 0;
|
|
||||||
while (*tmp) {
|
while (*tmp) {
|
||||||
if (actualargv[0])
|
if (actualargv[0])
|
||||||
strcat(actualargv, " ");
|
strcat(actualargv, " ");
|
||||||
@ -87,6 +102,14 @@ static int testCompareXMLToArgvFiles(const char *xml, const char *cmd, int extra
|
|||||||
}
|
}
|
||||||
free(argv);
|
free(argv);
|
||||||
}
|
}
|
||||||
|
if (qenv) {
|
||||||
|
tmp = qenv;
|
||||||
|
while (*tmp) {
|
||||||
|
free(*(char**)tmp);
|
||||||
|
tmp++;
|
||||||
|
}
|
||||||
|
free(qenv);
|
||||||
|
}
|
||||||
virDomainDefFree(vmdef);
|
virDomainDefFree(vmdef);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -138,6 +161,14 @@ mymain(int argc, char **argv)
|
|||||||
ret = -1; \
|
ret = -1; \
|
||||||
} while (0)
|
} 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("minimal", QEMUD_CMD_FLAG_NAME);
|
||||||
DO_TEST("boot-cdrom", 0);
|
DO_TEST("boot-cdrom", 0);
|
||||||
DO_TEST("boot-network", 0);
|
DO_TEST("boot-network", 0);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user