Add support for the mode and add the corresponding qemuxml2argv test
case.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/qemu/qemu_command.c | 10 +++++-
.../clock-absolute.x86_64-latest.args | 36 +++++++++++++++++++
tests/qemuxml2argvtest.c | 1 +
3 files changed, 46 insertions(+), 1 deletion(-)
create mode 100644 tests/qemuxml2argvdata/clock-absolute.x86_64-latest.args
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 3746f02ff0..11dda52270 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -6120,7 +6120,7 @@ qemuBuildClockArgStr(virDomainClockDef *def)
size_t i;
g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
- switch (def->offset) {
+ switch ((virDomainClockOffsetType) def->offset) {
case VIR_DOMAIN_CLOCK_OFFSET_UTC:
virBufferAddLit(&buf, "base=utc");
break;
@@ -6170,6 +6170,14 @@ qemuBuildClockArgStr(virDomainClockDef *def)
virBufferAsprintf(&buf, "base=%s", thenstr);
} break;
+ case VIR_DOMAIN_CLOCK_OFFSET_ABSOLUTE: {
+ g_autoptr(GDateTime) then =
g_date_time_new_from_unix_utc(def->data.starttime);
+ g_autofree char *thenstr = g_date_time_format(then,
"%Y-%m-%dT%H:%M:%S");
+
+ virBufferAsprintf(&buf, "base=%s", thenstr);
+ } break;
+
+ case VIR_DOMAIN_CLOCK_OFFSET_LAST:
default:
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("unsupported clock offset '%s'"),
diff --git a/tests/qemuxml2argvdata/clock-absolute.x86_64-latest.args
b/tests/qemuxml2argvdata/clock-absolute.x86_64-latest.args
new file mode 100644
index 0000000000..75fc162cee
--- /dev/null
+++ b/tests/qemuxml2argvdata/clock-absolute.x86_64-latest.args
@@ -0,0 +1,36 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/tmp/lib/domain--1-QEMUGuest1 \
+USER=test \
+LOGNAME=test \
+XDG_DATA_HOME=/tmp/lib/domain--1-QEMUGuest1/.local/share \
+XDG_CACHE_HOME=/tmp/lib/domain--1-QEMUGuest1/.cache \
+XDG_CONFIG_HOME=/tmp/lib/domain--1-QEMUGuest1/.config \
+/usr/bin/qemu-system-x86_64 \
+-name guest=QEMUGuest1,debug-threads=on \
+-S \
+-object
'{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/tmp/lib/domain--1-QEMUGuest1/master-key.aes"}'
\
+-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram \
+-accel tcg \
+-cpu qemu64 \
+-m 214 \
+-object
'{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'
\
+-overcommit mem-lock=off \
+-smp 1,sockets=1,cores=1,threads=1 \
+-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
+-display none \
+-no-user-config \
+-nodefaults \
+-chardev socket,id=charmonitor,fd=1729,server=on,wait=off \
+-mon chardev=charmonitor,id=monitor,mode=control \
+-rtc base=1970-01-01T00:20:34 \
+-no-shutdown \
+-no-acpi \
+-boot strict=on \
+-device
'{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0x2"}'
\
+-blockdev
'{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"}'
\
+-blockdev
'{"node-name":"libvirt-1-format","read-only":false,"driver":"raw","file":"libvirt-1-storage"}'
\
+-device
'{"driver":"ide-hd","bus":"ide.0","unit":0,"drive":"libvirt-1-format","id":"ide0-0-0","bootindex":1}'
\
+-audiodev
'{"id":"audio1","driver":"none"}' \
+-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
+-msg timestamp=on
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 1f080daba7..34d068a873 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -1217,6 +1217,7 @@ mymain(void)
DO_TEST("kvmclock", QEMU_CAPS_KVM);
DO_TEST("clock-timer-hyperv-rtc", QEMU_CAPS_KVM);
DO_TEST_NOCAPS("clock-realtime");
+ DO_TEST_CAPS_LATEST("clock-absolute");
DO_TEST_CAPS_LATEST("controller-usb-order");
--
2.35.1