diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index c1778eaf85..c239a06767 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -2674,6 +2674,45 @@ qemuDomainDefVcpusPostParse(virDomainDefPtr def)
}
+static int
+qemuDomainDefCPUPostParse(virDomainDefPtr def)
+{
+ if (!def->cpu)
+ return 0;
+
+ /* Nothing to be done if only CPU topology is specified. */
+ if (def->cpu->mode == VIR_CPU_MODE_CUSTOM &&
+ !def->cpu->model)
+ return 0;
+
+ if (def->cpu->check != VIR_CPU_CHECK_DEFAULT)
+ return 0;
+
+ switch ((virCPUMode) def->cpu->mode) {
+ case VIR_CPU_MODE_HOST_PASSTHROUGH:
+ def->cpu->check = VIR_CPU_CHECK_NONE;
+ break;
+
+ case VIR_CPU_MODE_HOST_MODEL:
+ def->cpu->check = VIR_CPU_CHECK_PARTIAL;
+ break;
+
+ case VIR_CPU_MODE_CUSTOM:
+ /* Custom CPUs in TCG mode are not compared to host CPU by default. */
+ if (def->virtType == VIR_DOMAIN_VIRT_QEMU)
+ def->cpu->check = VIR_CPU_CHECK_NONE;
+ else
+ def->cpu->check = VIR_CPU_CHECK_PARTIAL;
+ break;
+
+ case VIR_CPU_MODE_LAST:
+ break;
+ }
+
+ return 0;
+}
+
+
static int
qemuDomainDefPostParse(virDomainDefPtr def,
virCapsPtr caps,
@@ -2738,6 +2777,9 @@ qemuDomainDefPostParse(virDomainDefPtr def,
if (qemuDomainDefVcpusPostParse(def) < 0)
goto cleanup;
+ if (qemuDomainDefCPUPostParse(def) < 0)
+ goto cleanup;
+
ret = 0;
cleanup:
virObjectUnref(qemuCaps);
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 7397f59c7a..061c955766 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -5192,14 +5192,11 @@ qemuProcessUpdateGuestCPU(virDomainDefPtr def,
if (def->cpu->mode == VIR_CPU_MODE_HOST_PASSTHROUGH)
return 0;
- /* custom CPUs in TCG mode don't need to be compared to host CPU */
- if (def->virtType != VIR_DOMAIN_VIRT_QEMU ||
- def->cpu->mode != VIR_CPU_MODE_CUSTOM) {
- if (virCPUCompare(caps->host.arch,
- virQEMUCapsGetHostModel(qemuCaps, def->virtType),
- def->cpu, true) < 0)
- return -1;
- }
+ if (def->cpu->check == VIR_CPU_CHECK_PARTIAL &&
+ virCPUCompare(caps->host.arch,
+ virQEMUCapsGetHostModel(qemuCaps, def->virtType),
+ def->cpu, true) < 0)
+ return -1;
if (virCPUUpdate(def->os.arch, def->cpu,
virQEMUCapsGetHostModel(qemuCaps, def->virtType)) < 0)
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-host.xml b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-host.xml
index 445b35857a..b14d14281f 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-host.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-host.xml
@@ -11,7 +11,7 @@
-
+
destroy
restart
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-v2.xml b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-v2.xml
index 9ccba99042..8b99837522 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-v2.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-v2.xml
@@ -11,7 +11,7 @@
-
+
destroy
restart
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-v3.xml b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-v3.xml
index 7c9ee92b39..bde94e16c0 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-v3.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-aarch64-gic-v3.xml
@@ -11,7 +11,7 @@
-
+
destroy
restart
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-none.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-none.args
new file mode 100644
index 0000000000..24d9f53067
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-none.args
@@ -0,0 +1,21 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-kvm \
+-name QEMUGuest1 \
+-S \
+-M pc \
+-cpu host \
+-m 214 \
+-smp 6,sockets=6,cores=1,threads=1 \
+-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
+-nographic \
+-nodefaults \
+-monitor unix:/tmp/lib/domain--1-QEMUGuest1/monitor.sock,server,nowait \
+-no-acpi \
+-boot n \
+-usb \
+-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-none.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-none.xml
new file mode 100644
index 0000000000..314cdf52a4
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-none.xml
@@ -0,0 +1,19 @@
+
+ QEMUGuest1
+ c7a5fdbd-edaf-9455-926a-d65c16db1809
+ 219100
+ 219100
+ 6
+
+ hvm
+
+
+
+
+ destroy
+ restart
+ destroy
+
+ /usr/bin/qemu-kvm
+
+
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-none2.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-none2.args
new file mode 100644
index 0000000000..b6a5d4dd45
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-none2.args
@@ -0,0 +1,21 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu \
+-name QEMUGuest1 \
+-S \
+-M pc \
+-cpu core2duo \
+-m 214 \
+-smp 6,sockets=6,cores=1,threads=1 \
+-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
+-nographic \
+-nodefaults \
+-monitor unix:/tmp/lib/domain--1-QEMUGuest1/monitor.sock,server,nowait \
+-no-acpi \
+-boot n \
+-usb \
+-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-none2.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-none2.xml
new file mode 100644
index 0000000000..286d2d5d78
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-none2.xml
@@ -0,0 +1,21 @@
+
+ QEMUGuest1
+ c7a5fdbd-edaf-9455-926a-d65c16db1809
+ 219100
+ 219100
+ 6
+
+ hvm
+
+
+
+ core2duo
+
+
+ destroy
+ restart
+ destroy
+
+ /usr/bin/qemu
+
+
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-partial.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-partial.args
new file mode 100644
index 0000000000..decf7fdd4a
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-partial.args
@@ -0,0 +1,22 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-kvm \
+-name QEMUGuest1 \
+-S \
+-M pc \
+-cpu core2duo,+ds,+acpi,+ss,+ht,+tm,+pbe,+ds_cpl,+vmx,+est,+tm2,+cx16,+xtpr,\
++lahf_lm \
+-m 214 \
+-smp 6,sockets=6,cores=1,threads=1 \
+-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
+-nographic \
+-nodefaults \
+-monitor unix:/tmp/lib/domain--1-QEMUGuest1/monitor.sock,server,nowait \
+-no-acpi \
+-boot n \
+-usb \
+-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-partial.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-partial.xml
new file mode 100644
index 0000000000..3dd45a704b
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-partial.xml
@@ -0,0 +1,19 @@
+
+ QEMUGuest1
+ c7a5fdbd-edaf-9455-926a-d65c16db1809
+ 219100
+ 219100
+ 6
+
+ hvm
+
+
+
+
+ destroy
+ restart
+ destroy
+
+ /usr/bin/qemu-kvm
+
+
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-partial2.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-partial2.args
new file mode 100644
index 0000000000..bd4cefaebb
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-partial2.args
@@ -0,0 +1,21 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-kvm \
+-name QEMUGuest1 \
+-S \
+-M pc \
+-cpu core2duo \
+-m 214 \
+-smp 6,sockets=6,cores=1,threads=1 \
+-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
+-nographic \
+-nodefaults \
+-monitor unix:/tmp/lib/domain--1-QEMUGuest1/monitor.sock,server,nowait \
+-no-acpi \
+-boot n \
+-usb \
+-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-partial2.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-partial2.xml
new file mode 100644
index 0000000000..6c7690a955
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-default-partial2.xml
@@ -0,0 +1,21 @@
+
+ QEMUGuest1
+ c7a5fdbd-edaf-9455-926a-d65c16db1809
+ 219100
+ 219100
+ 6
+
+ hvm
+
+
+
+ core2duo
+
+
+ destroy
+ restart
+ destroy
+
+ /usr/bin/qemu-kvm
+
+
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-full.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-full.args
new file mode 120000
index 0000000000..dd946106e5
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-full.args
@@ -0,0 +1 @@
+qemuxml2argv-cpu-check-none.args
\ No newline at end of file
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-full.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-full.xml
new file mode 100644
index 0000000000..653c2aaade
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-full.xml
@@ -0,0 +1,21 @@
+
+ QEMUGuest1
+ c7a5fdbd-edaf-9455-926a-d65c16db1809
+ 219100
+ 219100
+ 6
+
+ hvm
+
+
+
+ core2duo
+
+
+ destroy
+ restart
+ destroy
+
+ /usr/bin/qemu-kvm
+
+
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-none.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-none.args
new file mode 100644
index 0000000000..bd4cefaebb
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-none.args
@@ -0,0 +1,21 @@
+LC_ALL=C \
+PATH=/bin \
+HOME=/home/test \
+USER=test \
+LOGNAME=test \
+QEMU_AUDIO_DRV=none \
+/usr/bin/qemu-kvm \
+-name QEMUGuest1 \
+-S \
+-M pc \
+-cpu core2duo \
+-m 214 \
+-smp 6,sockets=6,cores=1,threads=1 \
+-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \
+-nographic \
+-nodefaults \
+-monitor unix:/tmp/lib/domain--1-QEMUGuest1/monitor.sock,server,nowait \
+-no-acpi \
+-boot n \
+-usb \
+-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-none.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-none.xml
new file mode 100644
index 0000000000..6320746262
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-none.xml
@@ -0,0 +1,21 @@
+
+ QEMUGuest1
+ c7a5fdbd-edaf-9455-926a-d65c16db1809
+ 219100
+ 219100
+ 6
+
+ hvm
+
+
+
+ core2duo
+
+
+ destroy
+ restart
+ destroy
+
+ /usr/bin/qemu-kvm
+
+
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-partial.args b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-partial.args
new file mode 120000
index 0000000000..dd946106e5
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-partial.args
@@ -0,0 +1 @@
+qemuxml2argv-cpu-check-none.args
\ No newline at end of file
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-partial.xml b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-partial.xml
new file mode 100644
index 0000000000..8e7850df88
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-cpu-check-partial.xml
@@ -0,0 +1,21 @@
+
+ QEMUGuest1
+ c7a5fdbd-edaf-9455-926a-d65c16db1809
+ 219100
+ 219100
+ 6
+
+ hvm
+
+
+
+ core2duo
+
+
+ destroy
+ restart
+ destroy
+
+ /usr/bin/qemu-kvm
+
+
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 4a661367f4..64e14af891 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -2488,6 +2488,14 @@ mymain(void)
DO_TEST("fd-memory-no-numa-topology", QEMU_CAPS_MEM_PATH, QEMU_CAPS_OBJECT_MEMORY_FILE,
QEMU_CAPS_KVM);
+ DO_TEST("cpu-check-none", QEMU_CAPS_KVM);
+ DO_TEST("cpu-check-partial", QEMU_CAPS_KVM);
+ DO_TEST("cpu-check-full", QEMU_CAPS_KVM);
+ DO_TEST("cpu-check-default-none", QEMU_CAPS_KVM);
+ DO_TEST("cpu-check-default-none2", NONE);
+ DO_TEST("cpu-check-default-partial", QEMU_CAPS_KVM);
+ DO_TEST("cpu-check-default-partial2", QEMU_CAPS_KVM);
+
qemuTestDriverFree(&driver);
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-aavmf-virtio-mmio.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-aavmf-virtio-mmio.xml
index 2f1f8dd3de..bea65990e7 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-aavmf-virtio-mmio.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-aavmf-virtio-mmio.xml
@@ -18,7 +18,7 @@
-
+
cortex-a53
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-video-virtio-gpu-pci.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-video-virtio-gpu-pci.xml
index 26f6a51622..2c765e7c35 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-video-virtio-gpu-pci.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-video-virtio-gpu-pci.xml
@@ -11,7 +11,7 @@
-
+
cortex-a57
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-virtio-pci-default.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-virtio-pci-default.xml
index f7fbdc7a9b..88a6a6a0c2 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-virtio-pci-default.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-virtio-pci-default.xml
@@ -18,7 +18,7 @@
-
+
cortex-a53
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-virtio-pci-manual-addresses.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-virtio-pci-manual-addresses.xml
index 1b50f75f0c..83cf0d1f51 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-virtio-pci-manual-addresses.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-aarch64-virtio-pci-manual-addresses.xml
@@ -18,7 +18,7 @@
-
+
cortex-a53
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-check-default-none.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-check-default-none.xml
new file mode 100644
index 0000000000..b25cdd599f
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-check-default-none.xml
@@ -0,0 +1,28 @@
+
+ QEMUGuest1
+ c7a5fdbd-edaf-9455-926a-d65c16db1809
+ 219100
+ 219100
+ 6
+
+ hvm
+
+
+
+
+ destroy
+ restart
+ destroy
+
+ /usr/bin/qemu-kvm
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-check-default-none2.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-check-default-none2.xml
new file mode 100644
index 0000000000..310b95e58c
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-check-default-none2.xml
@@ -0,0 +1,30 @@
+
+ QEMUGuest1
+ c7a5fdbd-edaf-9455-926a-d65c16db1809
+ 219100
+ 219100
+ 6
+
+ hvm
+
+
+
+ core2duo
+
+
+ destroy
+ restart
+ destroy
+
+ /usr/bin/qemu
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-check-default-partial.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-check-default-partial.xml
new file mode 100644
index 0000000000..f4bfe54ee2
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-check-default-partial.xml
@@ -0,0 +1,30 @@
+
+ QEMUGuest1
+ c7a5fdbd-edaf-9455-926a-d65c16db1809
+ 219100
+ 219100
+ 6
+
+ hvm
+
+
+
+
+
+
+ destroy
+ restart
+ destroy
+
+ /usr/bin/qemu-kvm
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-check-default-partial2.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-check-default-partial2.xml
new file mode 100644
index 0000000000..8619f009c0
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-check-default-partial2.xml
@@ -0,0 +1,30 @@
+
+ QEMUGuest1
+ c7a5fdbd-edaf-9455-926a-d65c16db1809
+ 219100
+ 219100
+ 6
+
+ hvm
+
+
+
+ core2duo
+
+
+ destroy
+ restart
+ destroy
+
+ /usr/bin/qemu-kvm
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-check-full.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-check-full.xml
new file mode 100644
index 0000000000..3fd13f27e3
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-check-full.xml
@@ -0,0 +1,30 @@
+
+ QEMUGuest1
+ c7a5fdbd-edaf-9455-926a-d65c16db1809
+ 219100
+ 219100
+ 6
+
+ hvm
+
+
+
+ core2duo
+
+
+ destroy
+ restart
+ destroy
+
+ /usr/bin/qemu-kvm
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-check-none.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-check-none.xml
new file mode 100644
index 0000000000..d71ad5fde3
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-check-none.xml
@@ -0,0 +1,30 @@
+
+ QEMUGuest1
+ c7a5fdbd-edaf-9455-926a-d65c16db1809
+ 219100
+ 219100
+ 6
+
+ hvm
+
+
+
+ core2duo
+
+
+ destroy
+ restart
+ destroy
+
+ /usr/bin/qemu-kvm
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-check-partial.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-check-partial.xml
new file mode 100644
index 0000000000..8619f009c0
--- /dev/null
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-check-partial.xml
@@ -0,0 +1,30 @@
+
+ QEMUGuest1
+ c7a5fdbd-edaf-9455-926a-d65c16db1809
+ 219100
+ 219100
+ 6
+
+ hvm
+
+
+
+ core2duo
+
+
+ destroy
+ restart
+ destroy
+
+ /usr/bin/qemu-kvm
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-eoi-disabled.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-eoi-disabled.xml
index 7a51e3ddfb..b29a24e52c 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-eoi-disabled.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-eoi-disabled.xml
@@ -13,7 +13,7 @@
-
+
qemu32
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-eoi-enabled.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-eoi-enabled.xml
index ae8ab6aeea..efba9e5db0 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-eoi-enabled.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-eoi-enabled.xml
@@ -13,7 +13,7 @@
-
+
qemu32
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-host-kvmclock.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-host-kvmclock.xml
index c2bdad91f3..df0aecb3ed 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-host-kvmclock.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-host-kvmclock.xml
@@ -8,7 +8,7 @@
hvm
-
+
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-host-model-features.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-host-model-features.xml
index 161fcfe399..b1e194910d 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-host-model-features.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-host-model-features.xml
@@ -13,7 +13,7 @@
hvm
-
+
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-host-passthrough-features.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-host-passthrough-features.xml
index 935f8cd39f..98189c43f9 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-host-passthrough-features.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-host-passthrough-features.xml
@@ -13,7 +13,7 @@
hvm
-
+
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-kvmclock.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-kvmclock.xml
index 4d222de4a1..a483025a08 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-kvmclock.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-cpu-kvmclock.xml
@@ -8,7 +8,7 @@
hvm
-
+
core2duo
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-spice-timeout.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-spice-timeout.xml
index 5f881f1fbb..b807ac31bb 100644
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-spice-timeout.xml
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-graphics-spice-timeout.xml
@@ -15,7 +15,7 @@
-
+
core2duo
Intel
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index 7199175633..266b9c0233 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -1125,6 +1125,14 @@ mymain(void)
QEMU_CAPS_MACHINE_OPT,
QEMU_CAPS_MACHINE_IOMMU);
+ DO_TEST("cpu-check-none", NONE);
+ DO_TEST("cpu-check-partial", NONE);
+ DO_TEST("cpu-check-full", NONE);
+ DO_TEST("cpu-check-default-none", NONE);
+ DO_TEST("cpu-check-default-none2", NONE);
+ DO_TEST("cpu-check-default-partial", NONE);
+ DO_TEST("cpu-check-default-partial2", NONE);
+
qemuTestDriverFree(&driver);
return ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE;