]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
testutilsqemu: Fake TPM versions
authorMichal Privoznik <mprivozn@redhat.com>
Wed, 20 Jul 2022 07:51:55 +0000 (09:51 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Thu, 4 Aug 2022 06:13:55 +0000 (08:13 +0200)
Because of v8.5.0-rc1~25 we are already faking TPM support for
domaincaps. Might as well fake supported TPM versions.
The swtpm binary supports both TPM versions since its first
release, but pretend it isn't the case. For QEMU-5.2 and older
pretend only TPM-1.2 is available, QEMU-6.* has both TPM-1.2 and
TPM-2.0 and QEMU-7.0 and newer has only TPM-2.0 available.
This way, domaincaps are more dispersed.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Kristina Hanicova <khanicov@redhat.com>
54 files changed:
tests/domaincapsdata/qemu_3.1.0-q35.x86_64.xml
tests/domaincapsdata/qemu_3.1.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_3.1.0.x86_64.xml
tests/domaincapsdata/qemu_4.0.0-q35.x86_64.xml
tests/domaincapsdata/qemu_4.0.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_4.0.0.x86_64.xml
tests/domaincapsdata/qemu_4.1.0-q35.x86_64.xml
tests/domaincapsdata/qemu_4.1.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_4.1.0.x86_64.xml
tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml
tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_4.2.0.ppc64.xml
tests/domaincapsdata/qemu_4.2.0.x86_64.xml
tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml
tests/domaincapsdata/qemu_5.0.0.aarch64.xml
tests/domaincapsdata/qemu_5.0.0.ppc64.xml
tests/domaincapsdata/qemu_5.0.0.x86_64.xml
tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_5.1.0.x86_64.xml
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml
tests/domaincapsdata/qemu_5.2.0.aarch64.xml
tests/domaincapsdata/qemu_5.2.0.ppc64.xml
tests/domaincapsdata/qemu_5.2.0.x86_64.xml
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_6.0.0-virt.aarch64.xml
tests/domaincapsdata/qemu_6.0.0.aarch64.xml
tests/domaincapsdata/qemu_6.0.0.x86_64.xml
tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_6.1.0.x86_64.xml
tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_6.2.0-virt.aarch64.xml
tests/domaincapsdata/qemu_6.2.0.aarch64.xml
tests/domaincapsdata/qemu_6.2.0.ppc64.xml
tests/domaincapsdata/qemu_6.2.0.x86_64.xml
tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_7.0.0-virt.aarch64.xml
tests/domaincapsdata/qemu_7.0.0.aarch64.xml
tests/domaincapsdata/qemu_7.0.0.ppc64.xml
tests/domaincapsdata/qemu_7.0.0.x86_64.xml
tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_7.1.0.x86_64.xml
tests/domaincapstest.c
tests/testutilsqemu.c
tests/testutilsqemu.h

index c4277c53a1044e5e046172c24f01395db6a611ef..0cbfd675fa767c7ae1d92fcccbf944e2f8f58f16 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 2a65cb0ad9a561c7c9859bf11642895a6db98e99..823af730103fe631b76e8f2c86cf3b8d8234ac25 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 6e3ddda3560b5777eb0fb08d86f6ba185811e619..0b1f60e89dd0b214aea056d547ba4bb5d2be3d0a 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 8f3911b4b3eccde0faf878202045b0e61ddc1a2c..4cfa127b7ae73f26dc8c2f5f2013400426654d1a 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index a4dc7bafc965a75d671c036667505b6c0ee75734..06baee7f680dddec7891f76ce8204184643d2f47 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 24e732d9c398023e64672999a065d93bbdd7c7f5..6d6e9bbc3fa22260660a837dbb4c6c7347992968 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 3ee7feea48d7a5d326f558a3e196e4dbbbb3a6cf..1b598b6be1631c46396ba7d2ac82d2b893a51c9e 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index b20c02cb68deb3f1755f07d74ef5a07bdb44ec4d..ca07b7ae823800a3991fdc17b8a420d01ef7d3a3 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 0f1d398e2cd72034b64639a11997953bf459d17a..11bf14708c395903bf85ed0d1409b6ecb1ba474c 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index c8a77cdd415d6b89af1d7044183381b987cb3ccd..0ec4c570ac1468ce61ef48074d10f6ec320bba89 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index d0ee3f7b7ab185a9a2fe46dce71bd3f3b6d76488..4e0cb08b72103fd732a2502ef59d58fbfa85b1f7 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 4c3a2c6d989865b35df2b84c28f5d7756f8d21f9..e21ba9372b67f9dc947a532269dcac183570f33f 100644 (file)
         <value>spapr-tpm-proxy</value>
       </enum>
       <enum name='backendModel'/>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 6578fd04b6851d95da787345e882649048b613ff..d8793bb38a3fff1d150a206c3d10d5d4b6eba2b5 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 8a6797c2f1b7b8a013a1ea2c070300957b678ccf..036e446c64ca21f88b436be9849a07c0268156fc 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index d277c96426a49255758d6cc82519848bee1f7f9c..4df4e86cf1fcd9bb3b8a14be770fe64ac82a58d4 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index f8cea230d9ce8f4d5eca8032d0a570ceabacfc13..bb8500baa6a69b29449b02835046c511dad466dc 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index ab72b7ffeb2fce58d5cae8188f0829d44708bd97..e7227d092fe548c392bf1cf3217010abdb6f432e 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index d196676b1442a91aa85f8fdc34568e8a40345827..cac329fd08475f2c16a717628bd7feb6d2d88a02 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 51ca1d98e09d2f40fc974b32fb17fe003057ab33..e901d129186148731cf61fca632a08d466d6f08b 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 3468fb2e72c69b74b75140948759e43c9243eb05..df1572c9017b5efa9bc4f13a32f1a699044ec336 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 4f1ffbb2bafe64d17ba8b1cb5b82f465219ef318..3a6dc7b5fccb8c48fc1c8c81798d3b4ea97b1db4 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 8ff49c7899e24e5f7b23b1d3676d17133fabb598..e0e8e0ed12c62a8dcc50b3e42357f5f25bb3135e 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 2301a475eb0761bb4ccfc46217017a611cad4bca..6a49f568be6af8fa42dd508c6a7242e94910015a 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 6cff0f815e5c87cedbeb9e32f74920b474325b27..f41f47c346450f6a9f840e7491021f712d42e516 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index a863a6052d71f9d28e0ed974dd1155c1a5f820e3..dfd792c0316a7e7acd88d1ff0038f38c8b24e116 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index ab72b7ffeb2fce58d5cae8188f0829d44708bd97..e7227d092fe548c392bf1cf3217010abdb6f432e 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index b2c0577be95f953637469e507b13c50159939794..88e4837ec321ca121ecbe8de748632e08afe313f 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 41a54985d77dce49cf675667d40252234c1c8877..0a6f72df7ee2727f5d353c8a4441e3db8d4a564d 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 4595e70f6173f8cbc187a74cb882f95925ffc38c..40df34edf0145b9ec9616cca28d5d675c1c5d837 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+        <value>2.0</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 65f4459bcb43bc6a7007d78788be0cc3bc9625ed..e563b0cb596fe75c4c0acefe268ca0a1a65b9593 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+        <value>2.0</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 61eab9de0ef28bd9f231001015e52952772d8c29..958c40437ffd6ca633a63e91900eeeae3c7df89a 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+        <value>2.0</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index fa722b5fd388c0582d1d321b6222da5998983bce..4164bf49f7a6d8f1d281cddf2cb7bca3fa7754e6 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+        <value>2.0</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index a6fa3742116da7ab90027f976b89997bf71cef79..eb60a2105f01877cf369037f5541c0bc05a21e79 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+        <value>2.0</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index f4d0fcf67308f6f34eadc946be89ca6ed3d3b478..0480a086c66bdb3b4d6a953602e5407ee83732a3 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+        <value>2.0</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 40bc875e3cf1b2b4d3293dd8b947dcd18e214e5e..7baecb0c73a65f75f775c07e53dc9d1c8c241494 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+        <value>2.0</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 67fc449f5dacda3137b648dd08eba9d7e105ab1d..9cbe93ad46cc7c3d7e54a10f585418056d1b0139 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+        <value>2.0</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 9d68c0a404bbf7207bda175236597008315f294b..07b951b81f610969e2c293ba38b78dfb438e1290 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+        <value>2.0</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index a439dda190b5d7c3e003832fd4d0976f4685cd68..367e656b31af3de69df832c954bf315ec4f89d2a 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+        <value>2.0</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index f6045623f5fa27055223e8bd05223c635f4751d1..99c0fc03fd968ee99b80a4633b8d349fa44a50a8 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+        <value>2.0</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 35e18adcd5c5bca442277990a25f779736254af2..8e045086945a5ca9803bbdd581aaa1721978dd43 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+        <value>2.0</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index b07072778b23d80ff827541d58c4a6f28e756e83..0bbe501383e9b816cc720bbc9d02f348a2bcd30f 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+        <value>2.0</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 0f89790b60e232c679607e5fc5ac001d46868e1e..f363cf1b79d0d33baa4a1117a9fc1e3167bb6337 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>1.2</value>
+        <value>2.0</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 4e6ff061255104768c7d2eab4db97a4084780eab..136dadaeb4f7fe824cd3c527cbaab04b5bb09f61 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>2.0</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index ed80a7892f7cb5f9502bd5e5184e24b21e1b606e..c6847593566119346b98b35492bfcafbe1888976 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>2.0</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 7a8cb9f113a0e2a5e1a84759fd9152ea3e729420..1d6f29db9f1f0f2926be7399fa758c25ec3ede61 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>2.0</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index d48c87dc3ab52d7d40a99e4865717db661ceb5b1..73097470f809a5d565c8039313c1a6543ffb9e33 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>2.0</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index ec171bcdd935e1e0d7922ff10bcc5037c841487c..7765c941c5652b0c0e2f4b0271cd591b33f0bb1b 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>2.0</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index a20395c6d435974115e7ffa58b569db3c38c41a7..0f9a65ef1b8cddf8658b12799da54517f785d390 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>2.0</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 4e96c5104a2184ef3e5aec7e575c313610009e82..30082712f456dbd9e13ce38d72d609d5e035f59f 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>2.0</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 46542c8b5b64657d4403a14fe5d308a7f52f61f3..bcca02f0a4910a50d84fa45f2fbbdec73e8e5805 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>2.0</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 02b43e318fd715ed3b64dacddb8219b8eb92d88b..f377b8e3a9132b8cdb8dc1b421b6dd2143a1d482 100644 (file)
         <value>passthrough</value>
         <value>emulator</value>
       </enum>
+      <enum name='backendVersion'>
+        <value>2.0</value>
+      </enum>
     </tpm>
   </devices>
   <features>
index 3b8216a8f66b51c21a8034dc50b378510cce09ba..b4cb1894c282d9ef91eee26a1b5d004a4c616726 100644 (file)
@@ -252,6 +252,7 @@ doTestQemuInternal(const char *version,
     g_autofree char *name = NULL;
     g_autofree char *capsName = NULL;
     g_autofree char *emulator = NULL;
+    int rc;
 
     name = g_strdup_printf("qemu_%s%s%s%s.%s",
                            version,
@@ -274,7 +275,21 @@ doTestQemuInternal(const char *version,
     };
     VIR_WARNINGS_RESET
 
-    if (virTestRun(name, test_virDomainCapsFormat, &data) < 0)
+    if (STRPREFIX(version, "3.") ||
+        STRPREFIX(version, "4.") ||
+        STRPREFIX(version, "5.")) {
+        g_setenv(TEST_TPM_ENV_VAR, TPM_VER_1_2, true);
+    } else if (STRPREFIX(version, "6.")) {
+        g_setenv(TEST_TPM_ENV_VAR, TPM_VER_1_2 TPM_VER_2_0, true);
+    } else {
+        g_setenv(TEST_TPM_ENV_VAR, TPM_VER_2_0, true);
+    }
+
+    rc = virTestRun(name, test_virDomainCapsFormat, &data);
+
+    g_unsetenv(TEST_TPM_ENV_VAR);
+
+    if (rc < 0)
         return -1;
 
     return 0;
index 00dd9871d1fd7f0c29013944ab490d690dd903c7..6d3decdc16b4c09039682c1b89ef7c38d58fc50d 100644 (file)
@@ -146,16 +146,25 @@ bool virTPMHasSwtpm(void)
 }
 
 
+
 bool
 virTPMSwtpmSetupCapsGet(virTPMSwtpmSetupFeature cap)
 {
+    const char *tpmver = getenv(TEST_TPM_ENV_VAR);
+
     switch (cap) {
+    case VIR_TPM_SWTPM_SETUP_FEATURE_TPM_1_2:
+        if (!tpmver || (tpmver && strstr(tpmver, TPM_VER_1_2)))
+            return true;
+        break;
+    case VIR_TPM_SWTPM_SETUP_FEATURE_TPM_2_0:
+        if (!tpmver || (tpmver && strstr(tpmver, TPM_VER_2_0)))
+            return true;
+        break;
     case VIR_TPM_SWTPM_SETUP_FEATURE_CMDARG_PWDFILE_FD:
     case VIR_TPM_SWTPM_SETUP_FEATURE_CMDARG_CREATE_CONFIG_FILES:
     case VIR_TPM_SWTPM_SETUP_FEATURE_TPM12_NOT_NEED_ROOT:
     case VIR_TPM_SWTPM_SETUP_FEATURE_CMDARG_RECONFIGURE_PCR_BANKS:
-    case VIR_TPM_SWTPM_SETUP_FEATURE_TPM_1_2:
-    case VIR_TPM_SWTPM_SETUP_FEATURE_TPM_2_0:
     case VIR_TPM_SWTPM_SETUP_FEATURE_LAST:
         break;
     }
index 7ce4c4ad8dea14e60f0fcd71a43095eec00d9daf..943958d02a98533035c4ad6f1434a2622202bd76 100644 (file)
@@ -25,6 +25,9 @@
 # include "qemu/qemu_conf.h"
 
 # define TEST_QEMU_CAPS_PATH abs_srcdir "/qemucapabilitiesdata"
+# define TEST_TPM_ENV_VAR "VIR_TEST_MOCK_FAKE_TPM_VERSION"
+# define TPM_VER_1_2 "1.2"
+# define TPM_VER_2_0 "2.0"
 
 enum {
     GIC_NONE = 0,