diff --git a/tests/testutilsxen.c b/tests/testutilsxen.c
index 122789c252..c4fc1465e7 100644
--- a/tests/testutilsxen.c
+++ b/tests/testutilsxen.c
@@ -6,6 +6,33 @@
#include "testutilsxen.h"
#include "domain_conf.h"
+static virCPUFeatureDef cpuDefaultFeatures[] = {
+ { (char *) "ds", -1 },
+ { (char *) "acpi", -1 },
+ { (char *) "ss", -1 },
+ { (char *) "ht", -1 },
+ { (char *) "tm", -1 },
+ { (char *) "pbe", -1 },
+ { (char *) "ds_cpl", -1 },
+ { (char *) "vmx", -1 },
+ { (char *) "est", -1 },
+ { (char *) "tm2", -1 },
+ { (char *) "cx16", -1 },
+ { (char *) "xtpr", -1 },
+ { (char *) "lahf_lm", -1 },
+};
+static virCPUDef cpuDefaultData = {
+ .type = VIR_CPU_TYPE_HOST,
+ .arch = VIR_ARCH_X86_64,
+ .model = (char *) "core2duo",
+ .vendor = (char *) "Intel",
+ .sockets = 1,
+ .cores = 2,
+ .threads = 1,
+ .nfeatures = ARRAY_CARDINALITY(cpuDefaultFeatures),
+ .nfeatures_max = ARRAY_CARDINALITY(cpuDefaultFeatures),
+ .features = cpuDefaultFeatures,
+};
virCapsPtr testXenCapsInit(void)
{
@@ -88,6 +115,9 @@ testXLInitCaps(void)
if ((caps = virCapabilitiesNew(virArchFromHost(),
false, false)) == NULL)
return NULL;
+
+ caps->host.cpu = virCPUDefCopy(&cpuDefaultData);
+
nmachines = ARRAY_CARDINALITY(x86_machines);
if ((machines = virCapabilitiesAllocMachines(x86_machines, nmachines)) == NULL)
goto cleanup;
diff --git a/tests/xlconfigdata/test-fullvirt-nestedhvm-disabled.cfg b/tests/xlconfigdata/test-fullvirt-nestedhvm-disabled.cfg
new file mode 100644
index 0000000000..d4b9f452de
--- /dev/null
+++ b/tests/xlconfigdata/test-fullvirt-nestedhvm-disabled.cfg
@@ -0,0 +1,26 @@
+name = "XenGuest2"
+uuid = "c7a5fdb2-cdaf-9455-926a-d65c16db1809"
+maxmem = 579
+memory = 394
+vcpus = 1
+pae = 1
+acpi = 1
+apic = 1
+viridian = 0
+rtc_timeoffset = 0
+localtime = 0
+on_poweroff = "destroy"
+on_reboot = "restart"
+on_crash = "restart"
+device_model = "/usr/lib/xen/bin/qemu-system-i386"
+sdl = 0
+vnc = 1
+vncunused = 1
+vnclisten = "127.0.0.1"
+vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,model=e1000" ]
+parallel = "none"
+serial = "none"
+builder = "hvm"
+boot = "d"
+nestedhvm = 0
+disk = [ "format=raw,vdev=hda,access=rw,backendtype=phy,target=/dev/HostVG/XenGuest2", "format=qcow2,vdev=hdb,access=rw,backendtype=qdisk,target=/var/lib/libvirt/images/XenGuest2-home", "format=raw,vdev=hdc,access=ro,backendtype=qdisk,devtype=cdrom,target=/root/boot.iso" ]
diff --git a/tests/xlconfigdata/test-fullvirt-nestedhvm-disabled.xml b/tests/xlconfigdata/test-fullvirt-nestedhvm-disabled.xml
new file mode 100644
index 0000000000..58b63384d3
--- /dev/null
+++ b/tests/xlconfigdata/test-fullvirt-nestedhvm-disabled.xml
@@ -0,0 +1,61 @@
+
+ XenGuest2
+ c7a5fdb2-cdaf-9455-926a-d65c16db1809
+ 592896
+ 403456
+ 1
+
+ hvm
+ /usr/lib/xen/boot/hvmloader
+
+
+
+
+
+
+
+
+
+
+
+ destroy
+ restart
+ restart
+
+ /usr/lib/xen/bin/qemu-system-i386
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/xlconfigdata/test-fullvirt-nestedhvm.cfg b/tests/xlconfigdata/test-fullvirt-nestedhvm.cfg
new file mode 100644
index 0000000000..281f1268a5
--- /dev/null
+++ b/tests/xlconfigdata/test-fullvirt-nestedhvm.cfg
@@ -0,0 +1,26 @@
+name = "XenGuest2"
+uuid = "c7a5fdb2-cdaf-9455-926a-d65c16db1809"
+maxmem = 579
+memory = 394
+vcpus = 1
+pae = 1
+acpi = 1
+apic = 1
+viridian = 0
+rtc_timeoffset = 0
+localtime = 0
+on_poweroff = "destroy"
+on_reboot = "restart"
+on_crash = "restart"
+device_model = "/usr/lib/xen/bin/qemu-system-i386"
+sdl = 0
+vnc = 1
+vncunused = 1
+vnclisten = "127.0.0.1"
+vif = [ "mac=00:16:3e:66:92:9c,bridge=xenbr1,script=vif-bridge,model=e1000" ]
+parallel = "none"
+serial = "none"
+builder = "hvm"
+boot = "d"
+nestedhvm = 1
+disk = [ "format=raw,vdev=hda,access=rw,backendtype=phy,target=/dev/HostVG/XenGuest2", "format=qcow2,vdev=hdb,access=rw,backendtype=qdisk,target=/var/lib/libvirt/images/XenGuest2-home", "format=raw,vdev=hdc,access=ro,backendtype=qdisk,devtype=cdrom,target=/root/boot.iso" ]
diff --git a/tests/xlconfigdata/test-fullvirt-nestedhvm.xml b/tests/xlconfigdata/test-fullvirt-nestedhvm.xml
new file mode 100644
index 0000000000..8c02e7a209
--- /dev/null
+++ b/tests/xlconfigdata/test-fullvirt-nestedhvm.xml
@@ -0,0 +1,59 @@
+
+ XenGuest2
+ c7a5fdb2-cdaf-9455-926a-d65c16db1809
+ 592896
+ 403456
+ 1
+
+ hvm
+ /usr/lib/xen/boot/hvmloader
+
+
+
+
+
+
+
+
+
+ destroy
+ restart
+ restart
+
+ /usr/lib/xen/bin/qemu-system-i386
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/xlconfigtest.c b/tests/xlconfigtest.c
index 73702acc21..05f7c2042b 100644
--- a/tests/xlconfigtest.c
+++ b/tests/xlconfigtest.c
@@ -268,6 +268,8 @@ mymain(void)
DO_TEST("fullvirt-hpet-timer");
DO_TEST("fullvirt-tsc-timer");
DO_TEST("fullvirt-multi-timer");
+ DO_TEST("fullvirt-nestedhvm");
+ DO_TEST("fullvirt-nestedhvm-disabled");
DO_TEST("paravirt-cmdline");
DO_TEST_FORMAT("paravirt-cmdline-extra-root", false);