From c5d09fbdd1649fe2430bf92c75e9dc4f9289e02f Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Thu, 6 Feb 2014 14:24:02 +0100 Subject: [PATCH] qemuxml2argvtest: Set timezone With my recent work on the test, both time() and localtime() are used. While mocking the former one, we get predictable result for UTC. But since the latter function uses timezone to get local time, the result of localtime() is not so predictive. Therefore, we must set the TZ variable at the beginning of the test. To be able to catch some things that work just by a blind chance, I'm choosing a virtual timezone that (hopefully) no libvirt developer resides in. --- .../qemuxml2argv-clock-localtime-basis-localtime.args | 2 +- tests/qemuxml2argvtest.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/tests/qemuxml2argvdata/qemuxml2argv-clock-localtime-basis-localtime.args b/tests/qemuxml2argvdata/qemuxml2argv-clock-localtime-basis-localtime.args index 24fe89ca5f..ab9e9797bc 100644 --- a/tests/qemuxml2argvdata/qemuxml2argv-clock-localtime-basis-localtime.args +++ b/tests/qemuxml2argvdata/qemuxml2argv-clock-localtime-basis-localtime.args @@ -1,5 +1,5 @@ LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \ /usr/bin/qemu -S -M pc -m 214 -smp 1 -nographic \ --monitor unix:/tmp/test-monitor,server,nowait -rtc base=2009-02-14T01:31:30 \ +-monitor unix:/tmp/test-monitor,server,nowait -rtc base=2009-02-14T00:01:30 \ -no-acpi -boot c -usb -hda /dev/HostVG/QEMUGuest1 -net none -serial none \ -parallel none diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index c8b3857224..dae08d52f5 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -486,6 +486,16 @@ mymain(void) if (!abs_top_srcdir) abs_top_srcdir = abs_srcdir "/.."; + /* Set the timezone because we are mocking the time() function. + * If we don't do that, then localtime() may return unpredictable + * results. In order to detect things that just work by a blind + * chance, we need to set an virtual timezone that no libvirt + * developer resides in. */ + if (setenv("TZ", "VIR00:30", 1) < 0) { + perror("setenv"); + return EXIT_FAILURE; + } + driver.config = virQEMUDriverConfigNew(false); VIR_FREE(driver.config->spiceListen); VIR_FREE(driver.config->vncListen);