Unset copied environment variables in qemuxml2argvtest

The test expected all environment variables copied in qemudBuildCommandLine
to have known values. So all of them have to be either set to a known value
or be unset. SDL_VIDEODRIVER and QEMU_AUDIO_DRV are not handled at all but
should be handled. Unset both, otherwise the test will fail if they are set
in the testing environment.

* src/qemu/qemu_conf.c: add a comment about copied environment variables
  and qemuxml2argvtest
* tests/qemuxml2argvtest.c: unset SDL_VIDEODRIVER and QEMU_AUDIO_DRV
This commit is contained in:
Matthias Bolte 2009-12-28 16:21:15 +01:00
parent aef969499f
commit 1671b64702
2 changed files with 7 additions and 0 deletions

View File

@ -2879,6 +2879,8 @@ int qemudBuildCommandLine(virConnectPtr conn,
qenv[qenvc++] = envval; \
} while (0)
/* Make sure to unset or set all envvars in qemuxml2argvtest.c that
* are copied here using this macro, otherwise the test may fail */
#define ADD_ENV_COPY(envname) \
do { \
char *val = getenv(envname); \

View File

@ -184,6 +184,9 @@ mymain(int argc, char **argv)
#define DO_TEST(name, extraFlags) \
DO_TEST_FULL(name, extraFlags, NULL)
/* Unset or set all envvars here that are copied in qemudBuildCommandLine
* using ADD_ENV_COPY, otherwise these tests may fail due to unexpected
* values for these envvars */
setenv("PATH", "/bin", 1);
setenv("USER", "test", 1);
setenv("LOGNAME", "test", 1);
@ -191,6 +194,8 @@ mymain(int argc, char **argv)
unsetenv("TMPDIR");
unsetenv("LD_PRELOAD");
unsetenv("LD_LIBRARY_PATH");
unsetenv("QEMU_AUDIO_DRV");
unsetenv("SDL_AUDIODRIVER");
DO_TEST("minimal", QEMUD_CMD_FLAG_NAME);
DO_TEST("machine-aliases1", 0);