[PATCH 1/3] tests: Add TPM coverage to default-models tests

Andrea Bolognani posted 3 patches 4 months, 3 weeks ago
[PATCH 1/3] tests: Add TPM coverage to default-models tests
Posted by Andrea Bolognani 4 months, 3 weeks ago
We have a non-trivial amount of architecture-specific logic
dealing with TPM, so it's good to have coverage for it.

Note that TPM supports seems to be currently missing from s390x
and loongarch64 QEMU builds. I'm not entirely sure whether
there's a good reason for that or it's simply an oversight, but
either way we have to skip them for now.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
---
 ...aarch64-virt-default-models.aarch64-latest.abi-update.args | 3 +++
 .../aarch64-virt-default-models.aarch64-latest.abi-update.xml | 3 +++
 .../aarch64-virt-default-models.aarch64-latest.args           | 3 +++
 .../aarch64-virt-default-models.aarch64-latest.xml            | 3 +++
 tests/qemuxmlconfdata/aarch64-virt-default-models.xml         | 3 +++
 tests/qemuxmlconfdata/loongarch64-virt-default-models.xml     | 1 +
 .../ppc64-pseries-default-models.ppc64-latest.abi-update.args | 3 +++
 .../ppc64-pseries-default-models.ppc64-latest.abi-update.xml  | 4 ++++
 .../ppc64-pseries-default-models.ppc64-latest.args            | 3 +++
 .../ppc64-pseries-default-models.ppc64-latest.xml             | 4 ++++
 tests/qemuxmlconfdata/ppc64-pseries-default-models.xml        | 3 +++
 ...riscv64-virt-default-models.riscv64-latest.abi-update.args | 3 +++
 .../riscv64-virt-default-models.riscv64-latest.abi-update.xml | 3 +++
 .../riscv64-virt-default-models.riscv64-latest.args           | 3 +++
 .../riscv64-virt-default-models.riscv64-latest.xml            | 3 +++
 tests/qemuxmlconfdata/riscv64-virt-default-models.xml         | 3 +++
 tests/qemuxmlconfdata/s390x-ccw-default-models.xml            | 1 +
 .../x86_64-pc-default-models.x86_64-latest.abi-update.args    | 3 +++
 .../x86_64-pc-default-models.x86_64-latest.abi-update.xml     | 3 +++
 .../x86_64-pc-default-models.x86_64-latest.args               | 3 +++
 .../x86_64-pc-default-models.x86_64-latest.xml                | 3 +++
 tests/qemuxmlconfdata/x86_64-pc-default-models.xml            | 3 +++
 .../x86_64-q35-default-models.x86_64-latest.abi-update.args   | 3 +++
 .../x86_64-q35-default-models.x86_64-latest.abi-update.xml    | 3 +++
 .../x86_64-q35-default-models.x86_64-latest.args              | 3 +++
 .../x86_64-q35-default-models.x86_64-latest.xml               | 3 +++
 tests/qemuxmlconfdata/x86_64-q35-default-models.xml           | 3 +++
 27 files changed, 79 insertions(+)

diff --git a/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.abi-update.args b/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.abi-update.args
index 0c4acf800f..a503f45d0c 100644
--- a/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.abi-update.args
+++ b/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.abi-update.args
@@ -38,6 +38,9 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
 -device '{"driver":"virtio-net-pci","netdev":"hostnet0","id":"net0","mac":"52:54:00:09:a4:37","bus":"pci.2","addr":"0x0"}' \
 -chardev pty,id=charserial0 \
 -serial chardev:charserial0 \
+-chardev socket,id=chrtpm,path=/dev/test \
+-tpmdev emulator,id=tpm-tpm0,chardev=chrtpm \
+-device '{"driver":"tpm-tis-device","tpmdev":"tpm-tpm0","id":"tpm0"}' \
 -audiodev '{"id":"audio1","driver":"none"}' \
 -device '{"driver":"virtio-gpu-pci","id":"video0","max_outputs":1,"bus":"pci.5","addr":"0x0"}' \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
diff --git a/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.abi-update.xml b/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.abi-update.xml
index 87be062c89..bbe1dd931d 100644
--- a/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.abi-update.xml
+++ b/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.abi-update.xml
@@ -69,6 +69,9 @@
     <console type='pty'>
       <target type='serial' port='0'/>
     </console>
+    <tpm model='tpm-tis'>
+      <backend type='emulator' version='2.0'/>
+    </tpm>
     <audio id='1' type='none'/>
     <video>
       <model type='virtio' heads='1' primary='yes'/>
diff --git a/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.args b/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.args
index 0c4acf800f..a503f45d0c 100644
--- a/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.args
+++ b/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.args
@@ -38,6 +38,9 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
 -device '{"driver":"virtio-net-pci","netdev":"hostnet0","id":"net0","mac":"52:54:00:09:a4:37","bus":"pci.2","addr":"0x0"}' \
 -chardev pty,id=charserial0 \
 -serial chardev:charserial0 \
+-chardev socket,id=chrtpm,path=/dev/test \
+-tpmdev emulator,id=tpm-tpm0,chardev=chrtpm \
+-device '{"driver":"tpm-tis-device","tpmdev":"tpm-tpm0","id":"tpm0"}' \
 -audiodev '{"id":"audio1","driver":"none"}' \
 -device '{"driver":"virtio-gpu-pci","id":"video0","max_outputs":1,"bus":"pci.5","addr":"0x0"}' \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
diff --git a/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.xml b/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.xml
index 87be062c89..bbe1dd931d 100644
--- a/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.xml
+++ b/tests/qemuxmlconfdata/aarch64-virt-default-models.aarch64-latest.xml
@@ -69,6 +69,9 @@
     <console type='pty'>
       <target type='serial' port='0'/>
     </console>
+    <tpm model='tpm-tis'>
+      <backend type='emulator' version='2.0'/>
+    </tpm>
     <audio id='1' type='none'/>
     <video>
       <model type='virtio' heads='1' primary='yes'/>
diff --git a/tests/qemuxmlconfdata/aarch64-virt-default-models.xml b/tests/qemuxmlconfdata/aarch64-virt-default-models.xml
index cf7f330c0b..d9ad495e75 100644
--- a/tests/qemuxmlconfdata/aarch64-virt-default-models.xml
+++ b/tests/qemuxmlconfdata/aarch64-virt-default-models.xml
@@ -14,6 +14,9 @@
       <mac address='52:54:00:09:a4:37'/>
     </interface>
     <serial type='pty'/>
+    <tpm>
+      <backend type='emulator'/>
+    </tpm>
     <video/>
     <memballoon model='none'/>
     <!-- No default model for <panic/> on aarch64 -->
diff --git a/tests/qemuxmlconfdata/loongarch64-virt-default-models.xml b/tests/qemuxmlconfdata/loongarch64-virt-default-models.xml
index 109fb3b3ea..e59ebdeed4 100644
--- a/tests/qemuxmlconfdata/loongarch64-virt-default-models.xml
+++ b/tests/qemuxmlconfdata/loongarch64-virt-default-models.xml
@@ -14,6 +14,7 @@
       <mac address='52:54:00:09:a4:37'/>
     </interface>
     <serial type='pty'/>
+    <!-- TPM support not currently built on loongarch64 -->
     <video/>
     <memballoon model='none'/>
     <!-- No default model for <panic/> on loongarch64 -->
diff --git a/tests/qemuxmlconfdata/ppc64-pseries-default-models.ppc64-latest.abi-update.args b/tests/qemuxmlconfdata/ppc64-pseries-default-models.ppc64-latest.abi-update.args
index 1395f19bfe..f4ae38f1b5 100644
--- a/tests/qemuxmlconfdata/ppc64-pseries-default-models.ppc64-latest.abi-update.args
+++ b/tests/qemuxmlconfdata/ppc64-pseries-default-models.ppc64-latest.abi-update.args
@@ -32,6 +32,9 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
 -device '{"driver":"rtl8139","netdev":"hostnet0","id":"net0","mac":"52:54:00:09:a4:37","bus":"pci.0","addr":"0x1"}' \
 -chardev pty,id=charserial0 \
 -device '{"driver":"spapr-vty","chardev":"charserial0","id":"serial0","reg":805306368}' \
+-chardev socket,id=chrtpm,path=/dev/test \
+-tpmdev emulator,id=tpm-tpm0,chardev=chrtpm \
+-device '{"driver":"tpm-spapr","tpmdev":"tpm-tpm0","id":"tpm0","reg":16384}' \
 -audiodev '{"id":"audio1","driver":"none"}' \
 -device '{"driver":"VGA","id":"video0","vgamem_mb":16,"bus":"pci.0","addr":"0x3"}' \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
diff --git a/tests/qemuxmlconfdata/ppc64-pseries-default-models.ppc64-latest.abi-update.xml b/tests/qemuxmlconfdata/ppc64-pseries-default-models.ppc64-latest.abi-update.xml
index 2304c6f786..24eed24ab6 100644
--- a/tests/qemuxmlconfdata/ppc64-pseries-default-models.ppc64-latest.abi-update.xml
+++ b/tests/qemuxmlconfdata/ppc64-pseries-default-models.ppc64-latest.abi-update.xml
@@ -42,6 +42,10 @@
       <target type='serial' port='0'/>
       <address type='spapr-vio' reg='0x30000000'/>
     </console>
+    <tpm model='tpm-spapr'>
+      <backend type='emulator' version='2.0'/>
+      <address type='spapr-vio' reg='0x00004000'/>
+    </tpm>
     <audio id='1' type='none'/>
     <video>
       <model type='vga' vram='16384' heads='1' primary='yes'/>
diff --git a/tests/qemuxmlconfdata/ppc64-pseries-default-models.ppc64-latest.args b/tests/qemuxmlconfdata/ppc64-pseries-default-models.ppc64-latest.args
index 84c341a24d..c833b6cbf9 100644
--- a/tests/qemuxmlconfdata/ppc64-pseries-default-models.ppc64-latest.args
+++ b/tests/qemuxmlconfdata/ppc64-pseries-default-models.ppc64-latest.args
@@ -32,6 +32,9 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
 -device '{"driver":"rtl8139","netdev":"hostnet0","id":"net0","mac":"52:54:00:09:a4:37","bus":"pci.0","addr":"0x1"}' \
 -chardev pty,id=charserial0 \
 -device '{"driver":"spapr-vty","chardev":"charserial0","id":"serial0","reg":805306368}' \
+-chardev socket,id=chrtpm,path=/dev/test \
+-tpmdev emulator,id=tpm-tpm0,chardev=chrtpm \
+-device '{"driver":"tpm-spapr","tpmdev":"tpm-tpm0","id":"tpm0","reg":16384}' \
 -audiodev '{"id":"audio1","driver":"none"}' \
 -device '{"driver":"VGA","id":"video0","vgamem_mb":16,"bus":"pci.0","addr":"0x3"}' \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
diff --git a/tests/qemuxmlconfdata/ppc64-pseries-default-models.ppc64-latest.xml b/tests/qemuxmlconfdata/ppc64-pseries-default-models.ppc64-latest.xml
index f342093ec8..4cf7257536 100644
--- a/tests/qemuxmlconfdata/ppc64-pseries-default-models.ppc64-latest.xml
+++ b/tests/qemuxmlconfdata/ppc64-pseries-default-models.ppc64-latest.xml
@@ -42,6 +42,10 @@
       <target type='serial' port='0'/>
       <address type='spapr-vio' reg='0x30000000'/>
     </console>
+    <tpm model='tpm-spapr'>
+      <backend type='emulator' version='2.0'/>
+      <address type='spapr-vio' reg='0x00004000'/>
+    </tpm>
     <audio id='1' type='none'/>
     <video>
       <model type='vga' vram='16384' heads='1' primary='yes'/>
diff --git a/tests/qemuxmlconfdata/ppc64-pseries-default-models.xml b/tests/qemuxmlconfdata/ppc64-pseries-default-models.xml
index 4c2d16f01a..afb2d5fc43 100644
--- a/tests/qemuxmlconfdata/ppc64-pseries-default-models.xml
+++ b/tests/qemuxmlconfdata/ppc64-pseries-default-models.xml
@@ -14,6 +14,9 @@
       <mac address='52:54:00:09:a4:37'/>
     </interface>
     <serial type='pty'/>
+    <tpm>
+      <backend type='emulator'/>
+    </tpm>
     <video/>
     <memballoon model='none'/>
     <panic/>
diff --git a/tests/qemuxmlconfdata/riscv64-virt-default-models.riscv64-latest.abi-update.args b/tests/qemuxmlconfdata/riscv64-virt-default-models.riscv64-latest.abi-update.args
index 28b56d876c..8f878120b0 100644
--- a/tests/qemuxmlconfdata/riscv64-virt-default-models.riscv64-latest.abi-update.args
+++ b/tests/qemuxmlconfdata/riscv64-virt-default-models.riscv64-latest.abi-update.args
@@ -36,6 +36,9 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
 -device '{"driver":"virtio-net-pci","netdev":"hostnet0","id":"net0","mac":"52:54:00:09:a4:37","bus":"pci.2","addr":"0x0"}' \
 -chardev pty,id=charserial0 \
 -serial chardev:charserial0 \
+-chardev socket,id=chrtpm,path=/dev/test \
+-tpmdev emulator,id=tpm-tpm0,chardev=chrtpm \
+-device '{"driver":"tpm-tis-device","tpmdev":"tpm-tpm0","id":"tpm0"}' \
 -audiodev '{"id":"audio1","driver":"none"}' \
 -device '{"driver":"virtio-vga","id":"video0","max_outputs":1,"bus":"pci.4","addr":"0x0"}' \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
diff --git a/tests/qemuxmlconfdata/riscv64-virt-default-models.riscv64-latest.abi-update.xml b/tests/qemuxmlconfdata/riscv64-virt-default-models.riscv64-latest.abi-update.xml
index 942bd21f9e..a3a701b8e4 100644
--- a/tests/qemuxmlconfdata/riscv64-virt-default-models.riscv64-latest.abi-update.xml
+++ b/tests/qemuxmlconfdata/riscv64-virt-default-models.riscv64-latest.abi-update.xml
@@ -58,6 +58,9 @@
     <console type='pty'>
       <target type='serial' port='0'/>
     </console>
+    <tpm model='tpm-tis'>
+      <backend type='emulator' version='1.2'/>
+    </tpm>
     <audio id='1' type='none'/>
     <video>
       <model type='virtio' heads='1' primary='yes'/>
diff --git a/tests/qemuxmlconfdata/riscv64-virt-default-models.riscv64-latest.args b/tests/qemuxmlconfdata/riscv64-virt-default-models.riscv64-latest.args
index 28b56d876c..8f878120b0 100644
--- a/tests/qemuxmlconfdata/riscv64-virt-default-models.riscv64-latest.args
+++ b/tests/qemuxmlconfdata/riscv64-virt-default-models.riscv64-latest.args
@@ -36,6 +36,9 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
 -device '{"driver":"virtio-net-pci","netdev":"hostnet0","id":"net0","mac":"52:54:00:09:a4:37","bus":"pci.2","addr":"0x0"}' \
 -chardev pty,id=charserial0 \
 -serial chardev:charserial0 \
+-chardev socket,id=chrtpm,path=/dev/test \
+-tpmdev emulator,id=tpm-tpm0,chardev=chrtpm \
+-device '{"driver":"tpm-tis-device","tpmdev":"tpm-tpm0","id":"tpm0"}' \
 -audiodev '{"id":"audio1","driver":"none"}' \
 -device '{"driver":"virtio-vga","id":"video0","max_outputs":1,"bus":"pci.4","addr":"0x0"}' \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
diff --git a/tests/qemuxmlconfdata/riscv64-virt-default-models.riscv64-latest.xml b/tests/qemuxmlconfdata/riscv64-virt-default-models.riscv64-latest.xml
index 942bd21f9e..a3a701b8e4 100644
--- a/tests/qemuxmlconfdata/riscv64-virt-default-models.riscv64-latest.xml
+++ b/tests/qemuxmlconfdata/riscv64-virt-default-models.riscv64-latest.xml
@@ -58,6 +58,9 @@
     <console type='pty'>
       <target type='serial' port='0'/>
     </console>
+    <tpm model='tpm-tis'>
+      <backend type='emulator' version='1.2'/>
+    </tpm>
     <audio id='1' type='none'/>
     <video>
       <model type='virtio' heads='1' primary='yes'/>
diff --git a/tests/qemuxmlconfdata/riscv64-virt-default-models.xml b/tests/qemuxmlconfdata/riscv64-virt-default-models.xml
index d421b080a8..b89295af16 100644
--- a/tests/qemuxmlconfdata/riscv64-virt-default-models.xml
+++ b/tests/qemuxmlconfdata/riscv64-virt-default-models.xml
@@ -14,6 +14,9 @@
       <mac address='52:54:00:09:a4:37'/>
     </interface>
     <serial type='pty'/>
+    <tpm>
+      <backend type='emulator'/>
+    </tpm>
     <video/>
     <memballoon model='none'/>
     <!-- No default model for <panic/> on riscv64 -->
diff --git a/tests/qemuxmlconfdata/s390x-ccw-default-models.xml b/tests/qemuxmlconfdata/s390x-ccw-default-models.xml
index a196129628..dd97349e6f 100644
--- a/tests/qemuxmlconfdata/s390x-ccw-default-models.xml
+++ b/tests/qemuxmlconfdata/s390x-ccw-default-models.xml
@@ -14,6 +14,7 @@
       <mac address='52:54:00:09:a4:37'/>
     </interface>
     <serial type='pty'/>
+    <!-- TPM support not currently built on s390x -->
     <video/>
     <memballoon model='none'/>
     <panic/>
diff --git a/tests/qemuxmlconfdata/x86_64-pc-default-models.x86_64-latest.abi-update.args b/tests/qemuxmlconfdata/x86_64-pc-default-models.x86_64-latest.abi-update.args
index 3220a40959..6563b05937 100644
--- a/tests/qemuxmlconfdata/x86_64-pc-default-models.x86_64-latest.abi-update.args
+++ b/tests/qemuxmlconfdata/x86_64-pc-default-models.x86_64-latest.abi-update.args
@@ -32,6 +32,9 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
 -device '{"driver":"rtl8139","netdev":"hostnet0","id":"net0","mac":"52:54:00:09:a4:37","bus":"pci.0","addr":"0x3"}' \
 -chardev pty,id=charserial0 \
 -device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0","index":0}' \
+-chardev socket,id=chrtpm,path=/dev/test \
+-tpmdev emulator,id=tpm-tpm0,chardev=chrtpm \
+-device '{"driver":"tpm-tis","tpmdev":"tpm-tpm0","id":"tpm0"}' \
 -audiodev '{"id":"audio1","driver":"none"}' \
 -device '{"driver":"cirrus-vga","id":"video0","bus":"pci.0","addr":"0x2"}' \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
diff --git a/tests/qemuxmlconfdata/x86_64-pc-default-models.x86_64-latest.abi-update.xml b/tests/qemuxmlconfdata/x86_64-pc-default-models.x86_64-latest.abi-update.xml
index dc563fdaf9..512d4bd597 100644
--- a/tests/qemuxmlconfdata/x86_64-pc-default-models.x86_64-latest.abi-update.xml
+++ b/tests/qemuxmlconfdata/x86_64-pc-default-models.x86_64-latest.abi-update.xml
@@ -39,6 +39,9 @@
     </console>
     <input type='mouse' bus='ps2'/>
     <input type='keyboard' bus='ps2'/>
+    <tpm model='tpm-tis'>
+      <backend type='emulator' version='1.2'/>
+    </tpm>
     <audio id='1' type='none'/>
     <video>
       <model type='cirrus' vram='16384' heads='1' primary='yes'/>
diff --git a/tests/qemuxmlconfdata/x86_64-pc-default-models.x86_64-latest.args b/tests/qemuxmlconfdata/x86_64-pc-default-models.x86_64-latest.args
index 3220a40959..6563b05937 100644
--- a/tests/qemuxmlconfdata/x86_64-pc-default-models.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/x86_64-pc-default-models.x86_64-latest.args
@@ -32,6 +32,9 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
 -device '{"driver":"rtl8139","netdev":"hostnet0","id":"net0","mac":"52:54:00:09:a4:37","bus":"pci.0","addr":"0x3"}' \
 -chardev pty,id=charserial0 \
 -device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0","index":0}' \
+-chardev socket,id=chrtpm,path=/dev/test \
+-tpmdev emulator,id=tpm-tpm0,chardev=chrtpm \
+-device '{"driver":"tpm-tis","tpmdev":"tpm-tpm0","id":"tpm0"}' \
 -audiodev '{"id":"audio1","driver":"none"}' \
 -device '{"driver":"cirrus-vga","id":"video0","bus":"pci.0","addr":"0x2"}' \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
diff --git a/tests/qemuxmlconfdata/x86_64-pc-default-models.x86_64-latest.xml b/tests/qemuxmlconfdata/x86_64-pc-default-models.x86_64-latest.xml
index dc563fdaf9..512d4bd597 100644
--- a/tests/qemuxmlconfdata/x86_64-pc-default-models.x86_64-latest.xml
+++ b/tests/qemuxmlconfdata/x86_64-pc-default-models.x86_64-latest.xml
@@ -39,6 +39,9 @@
     </console>
     <input type='mouse' bus='ps2'/>
     <input type='keyboard' bus='ps2'/>
+    <tpm model='tpm-tis'>
+      <backend type='emulator' version='1.2'/>
+    </tpm>
     <audio id='1' type='none'/>
     <video>
       <model type='cirrus' vram='16384' heads='1' primary='yes'/>
diff --git a/tests/qemuxmlconfdata/x86_64-pc-default-models.xml b/tests/qemuxmlconfdata/x86_64-pc-default-models.xml
index 6727d2f6a0..7f4c9f8662 100644
--- a/tests/qemuxmlconfdata/x86_64-pc-default-models.xml
+++ b/tests/qemuxmlconfdata/x86_64-pc-default-models.xml
@@ -14,6 +14,9 @@
       <mac address='52:54:00:09:a4:37'/>
     </interface>
     <serial type='pty'/>
+    <tpm>
+      <backend type='emulator'/>
+    </tpm>
     <video/>
     <memballoon model='none'/>
     <panic/>
diff --git a/tests/qemuxmlconfdata/x86_64-q35-default-models.x86_64-latest.abi-update.args b/tests/qemuxmlconfdata/x86_64-q35-default-models.x86_64-latest.abi-update.args
index b9905c6446..29ea0bedac 100644
--- a/tests/qemuxmlconfdata/x86_64-q35-default-models.x86_64-latest.abi-update.args
+++ b/tests/qemuxmlconfdata/x86_64-q35-default-models.x86_64-latest.abi-update.args
@@ -35,6 +35,9 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
 -device '{"driver":"rtl8139","netdev":"hostnet0","id":"net0","mac":"52:54:00:09:a4:37","bus":"pci.2","addr":"0x1"}' \
 -chardev pty,id=charserial0 \
 -device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0","index":0}' \
+-chardev socket,id=chrtpm,path=/dev/test \
+-tpmdev emulator,id=tpm-tpm0,chardev=chrtpm \
+-device '{"driver":"tpm-tis","tpmdev":"tpm-tpm0","id":"tpm0"}' \
 -audiodev '{"id":"audio1","driver":"none"}' \
 -device '{"driver":"cirrus-vga","id":"video0","bus":"pcie.0","addr":"0x1"}' \
 -global ICH9-LPC.noreboot=off \
diff --git a/tests/qemuxmlconfdata/x86_64-q35-default-models.x86_64-latest.abi-update.xml b/tests/qemuxmlconfdata/x86_64-q35-default-models.x86_64-latest.abi-update.xml
index 782fe39491..6406229b2f 100644
--- a/tests/qemuxmlconfdata/x86_64-q35-default-models.x86_64-latest.abi-update.xml
+++ b/tests/qemuxmlconfdata/x86_64-q35-default-models.x86_64-latest.abi-update.xml
@@ -56,6 +56,9 @@
     </console>
     <input type='mouse' bus='ps2'/>
     <input type='keyboard' bus='ps2'/>
+    <tpm model='tpm-tis'>
+      <backend type='emulator' version='1.2'/>
+    </tpm>
     <audio id='1' type='none'/>
     <video>
       <model type='cirrus' vram='16384' heads='1' primary='yes'/>
diff --git a/tests/qemuxmlconfdata/x86_64-q35-default-models.x86_64-latest.args b/tests/qemuxmlconfdata/x86_64-q35-default-models.x86_64-latest.args
index b9905c6446..29ea0bedac 100644
--- a/tests/qemuxmlconfdata/x86_64-q35-default-models.x86_64-latest.args
+++ b/tests/qemuxmlconfdata/x86_64-q35-default-models.x86_64-latest.args
@@ -35,6 +35,9 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
 -device '{"driver":"rtl8139","netdev":"hostnet0","id":"net0","mac":"52:54:00:09:a4:37","bus":"pci.2","addr":"0x1"}' \
 -chardev pty,id=charserial0 \
 -device '{"driver":"isa-serial","chardev":"charserial0","id":"serial0","index":0}' \
+-chardev socket,id=chrtpm,path=/dev/test \
+-tpmdev emulator,id=tpm-tpm0,chardev=chrtpm \
+-device '{"driver":"tpm-tis","tpmdev":"tpm-tpm0","id":"tpm0"}' \
 -audiodev '{"id":"audio1","driver":"none"}' \
 -device '{"driver":"cirrus-vga","id":"video0","bus":"pcie.0","addr":"0x1"}' \
 -global ICH9-LPC.noreboot=off \
diff --git a/tests/qemuxmlconfdata/x86_64-q35-default-models.x86_64-latest.xml b/tests/qemuxmlconfdata/x86_64-q35-default-models.x86_64-latest.xml
index 782fe39491..6406229b2f 100644
--- a/tests/qemuxmlconfdata/x86_64-q35-default-models.x86_64-latest.xml
+++ b/tests/qemuxmlconfdata/x86_64-q35-default-models.x86_64-latest.xml
@@ -56,6 +56,9 @@
     </console>
     <input type='mouse' bus='ps2'/>
     <input type='keyboard' bus='ps2'/>
+    <tpm model='tpm-tis'>
+      <backend type='emulator' version='1.2'/>
+    </tpm>
     <audio id='1' type='none'/>
     <video>
       <model type='cirrus' vram='16384' heads='1' primary='yes'/>
diff --git a/tests/qemuxmlconfdata/x86_64-q35-default-models.xml b/tests/qemuxmlconfdata/x86_64-q35-default-models.xml
index 5cdf07f9d3..65fb76f2dc 100644
--- a/tests/qemuxmlconfdata/x86_64-q35-default-models.xml
+++ b/tests/qemuxmlconfdata/x86_64-q35-default-models.xml
@@ -14,6 +14,9 @@
       <mac address='52:54:00:09:a4:37'/>
     </interface>
     <serial type='pty'/>
+    <tpm>
+      <backend type='emulator'/>
+    </tpm>
     <video/>
     <memballoon model='none'/>
     <panic/>
-- 
2.45.1
Re: [PATCH 1/3] tests: Add TPM coverage to default-models tests
Posted by Peter Krempa 4 months, 3 weeks ago
On Mon, May 27, 2024 at 19:31:34 +0200, Andrea Bolognani wrote:
> We have a non-trivial amount of architecture-specific logic
> dealing with TPM, so it's good to have coverage for it.
> 
> Note that TPM supports seems to be currently missing from s390x
> and loongarch64 QEMU builds. I'm not entirely sure whether

I presume you mean that TPM support was not built into the QEMU builds
used to capture the capability dumps, right?

> there's a good reason for that or it's simply an oversight, but
> either way we have to skip them for now.
> 
> Signed-off-by: Andrea Bolognani <abologna@redhat.com>
> ---
>  ...aarch64-virt-default-models.aarch64-latest.abi-update.args | 3 +++
>  .../aarch64-virt-default-models.aarch64-latest.abi-update.xml | 3 +++
>  .../aarch64-virt-default-models.aarch64-latest.args           | 3 +++
>  .../aarch64-virt-default-models.aarch64-latest.xml            | 3 +++
>  tests/qemuxmlconfdata/aarch64-virt-default-models.xml         | 3 +++
>  tests/qemuxmlconfdata/loongarch64-virt-default-models.xml     | 1 +
>  .../ppc64-pseries-default-models.ppc64-latest.abi-update.args | 3 +++
>  .../ppc64-pseries-default-models.ppc64-latest.abi-update.xml  | 4 ++++
>  .../ppc64-pseries-default-models.ppc64-latest.args            | 3 +++
>  .../ppc64-pseries-default-models.ppc64-latest.xml             | 4 ++++
>  tests/qemuxmlconfdata/ppc64-pseries-default-models.xml        | 3 +++
>  ...riscv64-virt-default-models.riscv64-latest.abi-update.args | 3 +++
>  .../riscv64-virt-default-models.riscv64-latest.abi-update.xml | 3 +++
>  .../riscv64-virt-default-models.riscv64-latest.args           | 3 +++
>  .../riscv64-virt-default-models.riscv64-latest.xml            | 3 +++
>  tests/qemuxmlconfdata/riscv64-virt-default-models.xml         | 3 +++
>  tests/qemuxmlconfdata/s390x-ccw-default-models.xml            | 1 +
>  .../x86_64-pc-default-models.x86_64-latest.abi-update.args    | 3 +++
>  .../x86_64-pc-default-models.x86_64-latest.abi-update.xml     | 3 +++
>  .../x86_64-pc-default-models.x86_64-latest.args               | 3 +++
>  .../x86_64-pc-default-models.x86_64-latest.xml                | 3 +++
>  tests/qemuxmlconfdata/x86_64-pc-default-models.xml            | 3 +++
>  .../x86_64-q35-default-models.x86_64-latest.abi-update.args   | 3 +++
>  .../x86_64-q35-default-models.x86_64-latest.abi-update.xml    | 3 +++
>  .../x86_64-q35-default-models.x86_64-latest.args              | 3 +++
>  .../x86_64-q35-default-models.x86_64-latest.xml               | 3 +++
>  tests/qemuxmlconfdata/x86_64-q35-default-models.xml           | 3 +++
>  27 files changed, 79 insertions(+)

[...]

> diff --git a/tests/qemuxmlconfdata/loongarch64-virt-default-models.xml b/tests/qemuxmlconfdata/loongarch64-virt-default-models.xml
> index 109fb3b3ea..e59ebdeed4 100644
> --- a/tests/qemuxmlconfdata/loongarch64-virt-default-models.xml
> +++ b/tests/qemuxmlconfdata/loongarch64-virt-default-models.xml
> @@ -14,6 +14,7 @@
>        <mac address='52:54:00:09:a4:37'/>
>      </interface>
>      <serial type='pty'/>
> +    <!-- TPM support not currently built on loongarch64 -->
>      <video/>
>      <memballoon model='none'/>


[...]


> diff --git a/tests/qemuxmlconfdata/s390x-ccw-default-models.xml b/tests/qemuxmlconfdata/s390x-ccw-default-models.xml
> index a196129628..dd97349e6f 100644
> --- a/tests/qemuxmlconfdata/s390x-ccw-default-models.xml
> +++ b/tests/qemuxmlconfdata/s390x-ccw-default-models.xml
> @@ -14,6 +14,7 @@
>        <mac address='52:54:00:09:a4:37'/>
>      </interface>
>      <serial type='pty'/>
> +    <!-- TPM support not currently built on s390x -->

Both the commit message and this comment isn't really clear whether TPM
is not supported by the platform itself or just was omitted when
building qemu which was used for the caps dump.

I think it will be even harder to understand this for anyone who finds
this comment later.

I suggest:

  TPM was not compiled into the QEMU binary used for the capability
  dump, but platform supports it

Or something similar more clear.

Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Re: [PATCH 1/3] tests: Add TPM coverage to default-models tests
Posted by Andrea Bolognani 4 months, 3 weeks ago
On Tue, May 28, 2024 at 08:59:46AM GMT, Peter Krempa wrote:
> On Mon, May 27, 2024 at 19:31:34 +0200, Andrea Bolognani wrote:
> > Note that TPM supports seems to be currently missing from s390x
> > and loongarch64 QEMU builds. I'm not entirely sure whether
> > there's a good reason for that or it's simply an oversight, but
> > either way we have to skip them for now.
>
> I presume you mean that TPM support was not built into the QEMU builds
> used to capture the capability dumps, right?

That's just the thing: I don't know :)

In both cases the default configuration disables it, but it's unclear
to me whether that is something that could be addressed with a simple
patch or there are factors at play that make TPM inherently
incompatible with these architectures.

> > +++ b/tests/qemuxmlconfdata/s390x-ccw-default-models.xml
> > @@ -14,6 +14,7 @@
> >        <mac address='52:54:00:09:a4:37'/>
> >      </interface>
> >      <serial type='pty'/>
> > +    <!-- TPM support not currently built on s390x -->

For s390x, Thomas has confirmed that TPM is just not a thing and will
never be a thing, so while the comment is technically accurate I
agree that stronger language should be used to reflect the situation.

Thomas, please correct me if I got this wrong :)

> > +++ b/tests/qemuxmlconfdata/loongarch64-virt-default-models.xml
> > @@ -14,6 +14,7 @@
> >        <mac address='52:54:00:09:a4:37'/>
> >      </interface>
> >      <serial type='pty'/>
> > +    <!-- TPM support not currently built on loongarch64 -->

For loongarch64, maybe Xianglai Li can provide some insight. Is TPM
something that could be flipped on at the QEMU level?

-- 
Andrea Bolognani / Red Hat / Virtualization