diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c
index 10f1138bca..d44548f795 100644
--- a/tests/testutilsqemu.c
+++ b/tests/testutilsqemu.c
@@ -332,28 +332,32 @@ int qemuTestCapsCacheInsert(virFileCachePtr cache,
         } else {
             tmpCaps = virQEMUCapsNew();
         }
-        virQEMUCapsSetArch(tmpCaps, i);
-        for (j = 0; qemu_machines[i][j] != NULL; j++) {
-            virQEMUCapsAddMachine(tmpCaps,
-                                  VIR_DOMAIN_VIRT_QEMU,
-                                  qemu_machines[i][j],
-                                  NULL,
-                                  NULL,
-                                  0,
-                                  false,
-                                  false);
-        }
-        for (j = 0; kvm_machines[i][j] != NULL; j++) {
-            virQEMUCapsAddMachine(tmpCaps,
-                                  VIR_DOMAIN_VIRT_KVM,
-                                  kvm_machines[i][j],
-                                  NULL,
-                                  NULL,
-                                  0,
-                                  false,
-                                  false);
-            virQEMUCapsSet(tmpCaps, QEMU_CAPS_KVM);
+
+        if (!virQEMUCapsHasMachines(tmpCaps)) {
+            virQEMUCapsSetArch(tmpCaps, i);
+            for (j = 0; qemu_machines[i][j] != NULL; j++) {
+                virQEMUCapsAddMachine(tmpCaps,
+                                      VIR_DOMAIN_VIRT_QEMU,
+                                      qemu_machines[i][j],
+                                      NULL,
+                                      NULL,
+                                      0,
+                                      false,
+                                      false);
+            }
+            for (j = 0; kvm_machines[i][j] != NULL; j++) {
+                virQEMUCapsAddMachine(tmpCaps,
+                                      VIR_DOMAIN_VIRT_KVM,
+                                      kvm_machines[i][j],
+                                      NULL,
+                                      NULL,
+                                      0,
+                                      false,
+                                      false);
+                virQEMUCapsSet(tmpCaps, QEMU_CAPS_KVM);
+            }
         }
+
         if (virFileCacheInsertData(cache, qemu_emulators[i], tmpCaps) < 0) {
             virObjectUnref(tmpCaps);
             return -1;