* [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables
@ 2021-07-12 15:09 Stefan Berger
2021-07-12 15:09 ` [PATCH v3 1/9] tests: Rename TestState to TPMTestState Stefan Berger
` (9 more replies)
0 siblings, 10 replies; 22+ messages in thread
From: Stefan Berger @ 2021-07-12 15:09 UTC (permalink / raw
To: qemu-devel, marcandre.lureau; +Cc: philmd, Stefan Berger
This series of patches adds test case for TPM 1.2 ACPI tables.
Stefan
v3:
- Define enum TPMVersion for when CONFIG_TPM is not defined
affected patches 2 and 6
v2:
- Proper handling of renaming of files holding expected ACPI data
Stefan Berger (9):
tests: Rename TestState to TPMTestState
tests: Add tpm_version field to TPMTestState and fill it
tests: acpi: Prepare for renaming of TPM2 related ACPI files
tests: Add suffix 'tpm2' or 'tpm12' to ACPI table files
tests: acpi: tpm2: Add the renamed ACPI files and drop old ones
tests: tpm: Create TPM 1.2 response in TPM emulator
tests: acpi: prepare for new TPM 1.2 related tables
tests: acpi: Add test cases for TPM 1.2 with TCPA table
tests: acpi: tpm1.2: Add expected TPM 1.2 ACPI blobs
tests/data/acpi/q35/DSDT.tis.tpm12 | Bin 0 -> 8465 bytes
.../data/acpi/q35/{DSDT.tis => DSDT.tis.tpm2} | Bin
tests/data/acpi/q35/TCPA.tis.tpm12 | Bin 0 -> 50 bytes
.../data/acpi/q35/{TPM2.tis => TPM2.tis.tpm2} | Bin
tests/qtest/bios-tables-test.c | 20 ++++++++++-----
tests/qtest/tpm-crb-test.c | 5 ++--
tests/qtest/tpm-emu.c | 24 +++++++++++++-----
tests/qtest/tpm-emu.h | 18 ++++++++++---
tests/qtest/tpm-tis-device-test.c | 3 ++-
tests/qtest/tpm-tis-test.c | 3 ++-
tests/qtest/tpm-tis-util.c | 2 +-
11 files changed, 55 insertions(+), 20 deletions(-)
create mode 100644 tests/data/acpi/q35/DSDT.tis.tpm12
rename tests/data/acpi/q35/{DSDT.tis => DSDT.tis.tpm2} (100%)
create mode 100644 tests/data/acpi/q35/TCPA.tis.tpm12
rename tests/data/acpi/q35/{TPM2.tis => TPM2.tis.tpm2} (100%)
--
2.31.1
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH v3 1/9] tests: Rename TestState to TPMTestState
2021-07-12 15:09 [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables Stefan Berger
@ 2021-07-12 15:09 ` Stefan Berger
2021-07-12 15:09 ` [PATCH v3 2/9] tests: Add tpm_version field to TPMTestState and fill it Stefan Berger
` (8 subsequent siblings)
9 siblings, 0 replies; 22+ messages in thread
From: Stefan Berger @ 2021-07-12 15:09 UTC (permalink / raw
To: qemu-devel, marcandre.lureau
Cc: Igor Mammedov, Stefan Berger, philmd, Stefan Berger
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
---
tests/qtest/bios-tables-test.c | 2 +-
tests/qtest/tpm-crb-test.c | 4 ++--
tests/qtest/tpm-emu.c | 6 +++---
tests/qtest/tpm-emu.h | 6 +++---
tests/qtest/tpm-tis-device-test.c | 2 +-
tests/qtest/tpm-tis-test.c | 2 +-
tests/qtest/tpm-tis-util.c | 2 +-
7 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
index 51d3a4e239..a622f91a37 100644
--- a/tests/qtest/bios-tables-test.c
+++ b/tests/qtest/bios-tables-test.c
@@ -1098,7 +1098,7 @@ static void test_acpi_tcg_tpm(const char *machine, const char *tpm_if,
gchar *tmp_dir_name = g_strdup_printf("qemu-test_acpi_%s_tcg_%s.XXXXXX",
machine, tpm_if);
char *tmp_path = g_dir_make_tmp(tmp_dir_name, NULL);
- TestState test;
+ TPMTestState test;
test_data data;
GThread *thread;
char *args, *variant = g_strdup_printf(".%s", tpm_if);
diff --git a/tests/qtest/tpm-crb-test.c b/tests/qtest/tpm-crb-test.c
index ed533900d1..50936f1482 100644
--- a/tests/qtest/tpm-crb-test.c
+++ b/tests/qtest/tpm-crb-test.c
@@ -26,7 +26,7 @@ uint64_t tpm_tis_base_addr = TPM_TIS_ADDR_BASE;
static void tpm_crb_test(const void *data)
{
- const TestState *s = data;
+ const TPMTestState *s = data;
uint32_t intfid = readl(TPM_CRB_ADDR_BASE + A_CRB_INTF_ID);
uint32_t csize = readl(TPM_CRB_ADDR_BASE + A_CRB_CTRL_CMD_SIZE);
uint64_t caddr = readq(TPM_CRB_ADDR_BASE + A_CRB_CTRL_CMD_LADDR);
@@ -145,7 +145,7 @@ int main(int argc, char **argv)
int ret;
char *args, *tmp_path = g_dir_make_tmp("qemu-tpm-crb-test.XXXXXX", NULL);
GThread *thread;
- TestState test;
+ TPMTestState test;
module_call_init(MODULE_INIT_QOM);
g_test_init(&argc, &argv, NULL);
diff --git a/tests/qtest/tpm-emu.c b/tests/qtest/tpm-emu.c
index 2e8eb7b94f..b9cddcc240 100644
--- a/tests/qtest/tpm-emu.c
+++ b/tests/qtest/tpm-emu.c
@@ -18,7 +18,7 @@
#include "qapi/error.h"
#include "tpm-emu.h"
-void tpm_emu_test_wait_cond(TestState *s)
+void tpm_emu_test_wait_cond(TPMTestState *s)
{
gint64 end_time = g_get_monotonic_time() + 5 * G_TIME_SPAN_SECOND;
@@ -36,7 +36,7 @@ void tpm_emu_test_wait_cond(TestState *s)
static void *tpm_emu_tpm_thread(void *data)
{
- TestState *s = data;
+ TPMTestState *s = data;
QIOChannel *ioc = s->tpm_ioc;
s->tpm_msg = g_new(struct tpm_hdr, 1);
@@ -71,7 +71,7 @@ static void *tpm_emu_tpm_thread(void *data)
void *tpm_emu_ctrl_thread(void *data)
{
- TestState *s = data;
+ TPMTestState *s = data;
QIOChannelSocket *lioc = qio_channel_socket_new();
QIOChannel *ioc;
diff --git a/tests/qtest/tpm-emu.h b/tests/qtest/tpm-emu.h
index 73f3bed0c4..b066ad63fb 100644
--- a/tests/qtest/tpm-emu.h
+++ b/tests/qtest/tpm-emu.h
@@ -26,7 +26,7 @@ struct tpm_hdr {
char buffer[];
} QEMU_PACKED;
-typedef struct TestState {
+typedef struct TPMTestState {
GMutex data_mutex;
GCond data_cond;
bool data_cond_signal;
@@ -34,9 +34,9 @@ typedef struct TestState {
QIOChannel *tpm_ioc;
GThread *emu_tpm_thread;
struct tpm_hdr *tpm_msg;
-} TestState;
+} TPMTestState;
-void tpm_emu_test_wait_cond(TestState *s);
+void tpm_emu_test_wait_cond(TPMTestState *s);
void *tpm_emu_ctrl_thread(void *data);
#endif /* TESTS_TPM_EMU_H */
diff --git a/tests/qtest/tpm-tis-device-test.c b/tests/qtest/tpm-tis-device-test.c
index 63ed36440f..d36ae20243 100644
--- a/tests/qtest/tpm-tis-device-test.c
+++ b/tests/qtest/tpm-tis-device-test.c
@@ -33,7 +33,7 @@ int main(int argc, char **argv)
{
char *tmp_path = g_dir_make_tmp("qemu-tpm-tis-device-test.XXXXXX", NULL);
GThread *thread;
- TestState test;
+ TPMTestState test;
char *args;
int ret;
diff --git a/tests/qtest/tpm-tis-test.c b/tests/qtest/tpm-tis-test.c
index 79ffbc943e..6fee4779ea 100644
--- a/tests/qtest/tpm-tis-test.c
+++ b/tests/qtest/tpm-tis-test.c
@@ -29,7 +29,7 @@ int main(int argc, char **argv)
int ret;
char *args, *tmp_path = g_dir_make_tmp("qemu-tpm-tis-test.XXXXXX", NULL);
GThread *thread;
- TestState test;
+ TPMTestState test;
module_call_init(MODULE_INIT_QOM);
g_test_init(&argc, &argv, NULL);
diff --git a/tests/qtest/tpm-tis-util.c b/tests/qtest/tpm-tis-util.c
index 9aff503fd8..939893bf01 100644
--- a/tests/qtest/tpm-tis-util.c
+++ b/tests/qtest/tpm-tis-util.c
@@ -373,7 +373,7 @@ void tpm_tis_test_check_access_reg_release(const void *data)
*/
void tpm_tis_test_check_transmit(const void *data)
{
- const TestState *s = data;
+ const TPMTestState *s = data;
uint8_t access;
uint32_t sts;
uint16_t bcount;
--
2.31.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v3 2/9] tests: Add tpm_version field to TPMTestState and fill it
2021-07-12 15:09 [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables Stefan Berger
2021-07-12 15:09 ` [PATCH v3 1/9] tests: Rename TestState to TPMTestState Stefan Berger
@ 2021-07-12 15:09 ` Stefan Berger
2021-07-12 15:09 ` [PATCH v3 3/9] tests: acpi: Prepare for renaming of TPM2 related ACPI files Stefan Berger
` (7 subsequent siblings)
9 siblings, 0 replies; 22+ messages in thread
From: Stefan Berger @ 2021-07-12 15:09 UTC (permalink / raw
To: qemu-devel, marcandre.lureau; +Cc: Stefan Berger, philmd, Stefan Berger
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
---
v3:
- Added enum TPMVersion for when CONFIG_TPM is not defined
---
tests/qtest/bios-tables-test.c | 5 +++--
tests/qtest/tpm-crb-test.c | 1 +
tests/qtest/tpm-emu.c | 13 ++++++++++---
tests/qtest/tpm-emu.h | 8 ++++++++
tests/qtest/tpm-tis-device-test.c | 1 +
tests/qtest/tpm-tis-test.c | 1 +
6 files changed, 24 insertions(+), 5 deletions(-)
diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
index a622f91a37..93c9d306b5 100644
--- a/tests/qtest/bios-tables-test.c
+++ b/tests/qtest/bios-tables-test.c
@@ -1092,7 +1092,7 @@ static void test_acpi_piix4_tcg_numamem(void)
uint64_t tpm_tis_base_addr;
static void test_acpi_tcg_tpm(const char *machine, const char *tpm_if,
- uint64_t base)
+ uint64_t base, enum TPMVersion tpm_version)
{
#ifdef CONFIG_TPM
gchar *tmp_dir_name = g_strdup_printf("qemu-test_acpi_%s_tcg_%s.XXXXXX",
@@ -1113,6 +1113,7 @@ static void test_acpi_tcg_tpm(const char *machine, const char *tpm_if,
g_mutex_init(&test.data_mutex);
g_cond_init(&test.data_cond);
test.data_cond_signal = false;
+ test.tpm_version = tpm_version;
thread = g_thread_new(NULL, tpm_emu_ctrl_thread, &test);
tpm_emu_test_wait_cond(&test);
@@ -1145,7 +1146,7 @@ static void test_acpi_tcg_tpm(const char *machine, const char *tpm_if,
static void test_acpi_q35_tcg_tpm_tis(void)
{
- test_acpi_tcg_tpm("q35", "tis", 0xFED40000);
+ test_acpi_tcg_tpm("q35", "tis", 0xFED40000, TPM_VERSION_2_0);
}
static void test_acpi_tcg_dimm_pxm(const char *machine)
diff --git a/tests/qtest/tpm-crb-test.c b/tests/qtest/tpm-crb-test.c
index 50936f1482..7b94453390 100644
--- a/tests/qtest/tpm-crb-test.c
+++ b/tests/qtest/tpm-crb-test.c
@@ -156,6 +156,7 @@ int main(int argc, char **argv)
g_mutex_init(&test.data_mutex);
g_cond_init(&test.data_cond);
test.data_cond_signal = false;
+ test.tpm_version = TPM_VERSION_2_0;
thread = g_thread_new(NULL, tpm_emu_ctrl_thread, &test);
tpm_emu_test_wait_cond(&test);
diff --git a/tests/qtest/tpm-emu.c b/tests/qtest/tpm-emu.c
index b9cddcc240..8baf49eafd 100644
--- a/tests/qtest/tpm-emu.c
+++ b/tests/qtest/tpm-emu.c
@@ -56,9 +56,16 @@ static void *tpm_emu_tpm_thread(void *data)
s->tpm_msg->code = be32_to_cpu(s->tpm_msg->code);
/* reply error */
- s->tpm_msg->tag = cpu_to_be16(TPM2_ST_NO_SESSIONS);
- s->tpm_msg->len = cpu_to_be32(sizeof(struct tpm_hdr));
- s->tpm_msg->code = cpu_to_be32(TPM_RC_FAILURE);
+ switch (s->tpm_version) {
+ case TPM_VERSION_2_0:
+ s->tpm_msg->tag = cpu_to_be16(TPM2_ST_NO_SESSIONS);
+ s->tpm_msg->len = cpu_to_be32(sizeof(struct tpm_hdr));
+ s->tpm_msg->code = cpu_to_be32(TPM_RC_FAILURE);
+ break;
+ default:
+ g_debug("unsupport TPM version %u", s->tpm_version);
+ g_assert_not_reached();
+ }
qio_channel_write(ioc, (char *)s->tpm_msg, be32_to_cpu(s->tpm_msg->len),
&error_abort);
}
diff --git a/tests/qtest/tpm-emu.h b/tests/qtest/tpm-emu.h
index b066ad63fb..610519883a 100644
--- a/tests/qtest/tpm-emu.h
+++ b/tests/qtest/tpm-emu.h
@@ -18,6 +18,7 @@
#include "qemu/sockets.h"
#include "io/channel.h"
+#include "sysemu/tpm.h"
struct tpm_hdr {
uint16_t tag;
@@ -26,6 +27,12 @@ struct tpm_hdr {
char buffer[];
} QEMU_PACKED;
+#ifndef CONFIG_TPM
+enum TPMVersion {
+ TPM_VERSION_2_0 = 2,
+};
+#endif
+
typedef struct TPMTestState {
GMutex data_mutex;
GCond data_cond;
@@ -34,6 +41,7 @@ typedef struct TPMTestState {
QIOChannel *tpm_ioc;
GThread *emu_tpm_thread;
struct tpm_hdr *tpm_msg;
+ enum TPMVersion tpm_version;
} TPMTestState;
void tpm_emu_test_wait_cond(TPMTestState *s);
diff --git a/tests/qtest/tpm-tis-device-test.c b/tests/qtest/tpm-tis-device-test.c
index d36ae20243..3ddefb51ec 100644
--- a/tests/qtest/tpm-tis-device-test.c
+++ b/tests/qtest/tpm-tis-device-test.c
@@ -46,6 +46,7 @@ int main(int argc, char **argv)
g_mutex_init(&test.data_mutex);
g_cond_init(&test.data_cond);
test.data_cond_signal = false;
+ test.tpm_version = TPM_VERSION_2_0;
thread = g_thread_new(NULL, tpm_emu_ctrl_thread, &test);
tpm_emu_test_wait_cond(&test);
diff --git a/tests/qtest/tpm-tis-test.c b/tests/qtest/tpm-tis-test.c
index 6fee4779ea..a4a25ba745 100644
--- a/tests/qtest/tpm-tis-test.c
+++ b/tests/qtest/tpm-tis-test.c
@@ -40,6 +40,7 @@ int main(int argc, char **argv)
g_mutex_init(&test.data_mutex);
g_cond_init(&test.data_cond);
test.data_cond_signal = false;
+ test.tpm_version = TPM_VERSION_2_0;
thread = g_thread_new(NULL, tpm_emu_ctrl_thread, &test);
tpm_emu_test_wait_cond(&test);
--
2.31.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v3 3/9] tests: acpi: Prepare for renaming of TPM2 related ACPI files
2021-07-12 15:09 [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables Stefan Berger
2021-07-12 15:09 ` [PATCH v3 1/9] tests: Rename TestState to TPMTestState Stefan Berger
2021-07-12 15:09 ` [PATCH v3 2/9] tests: Add tpm_version field to TPMTestState and fill it Stefan Berger
@ 2021-07-12 15:09 ` Stefan Berger
2021-07-12 15:09 ` [PATCH v3 4/9] tests: Add suffix 'tpm2' or 'tpm12' to ACPI table files Stefan Berger
` (6 subsequent siblings)
9 siblings, 0 replies; 22+ messages in thread
From: Stefan Berger @ 2021-07-12 15:09 UTC (permalink / raw
To: qemu-devel, marcandre.lureau
Cc: Igor Mammedov, Stefan Berger, Michael S . Tsirkin, philmd,
Stefan Berger
Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
---
tests/data/acpi/q35/DSDT.tis.tpm2 | 0
tests/data/acpi/q35/TPM2.tis.tpm2 | 0
tests/qtest/bios-tables-test-allowed-diff.h | 2 ++
3 files changed, 2 insertions(+)
create mode 100644 tests/data/acpi/q35/DSDT.tis.tpm2
create mode 100644 tests/data/acpi/q35/TPM2.tis.tpm2
diff --git a/tests/data/acpi/q35/DSDT.tis.tpm2 b/tests/data/acpi/q35/DSDT.tis.tpm2
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/data/acpi/q35/TPM2.tis.tpm2 b/tests/data/acpi/q35/TPM2.tis.tpm2
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index dfb8523c8b..b301b8fa06 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1 +1,3 @@
/* List of comma-separated changed AML files to ignore */
+"tests/data/acpi/q35/DSDT.tis.tpm2",
+"tests/data/acpi/q35/TPM2.tis.tpm2",
--
2.31.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v3 4/9] tests: Add suffix 'tpm2' or 'tpm12' to ACPI table files
2021-07-12 15:09 [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables Stefan Berger
` (2 preceding siblings ...)
2021-07-12 15:09 ` [PATCH v3 3/9] tests: acpi: Prepare for renaming of TPM2 related ACPI files Stefan Berger
@ 2021-07-12 15:09 ` Stefan Berger
2021-07-12 15:09 ` [PATCH v3 5/9] tests: acpi: tpm2: Add the renamed ACPI files and drop old ones Stefan Berger
` (5 subsequent siblings)
9 siblings, 0 replies; 22+ messages in thread
From: Stefan Berger @ 2021-07-12 15:09 UTC (permalink / raw
To: qemu-devel, marcandre.lureau
Cc: Igor Mammedov, Stefan Berger, Michael S . Tsirkin, philmd,
Stefan Berger
Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
---
tests/qtest/bios-tables-test.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
index 93c9d306b5..4ccbe56158 100644
--- a/tests/qtest/bios-tables-test.c
+++ b/tests/qtest/bios-tables-test.c
@@ -1101,7 +1101,8 @@ static void test_acpi_tcg_tpm(const char *machine, const char *tpm_if,
TPMTestState test;
test_data data;
GThread *thread;
- char *args, *variant = g_strdup_printf(".%s", tpm_if);
+ const char *suffix = tpm_version == TPM_VERSION_2_0 ? "tpm2" : "tpm12";
+ char *args, *variant = g_strdup_printf(".%s.%s", tpm_if, suffix);
tpm_tis_base_addr = base;
--
2.31.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v3 5/9] tests: acpi: tpm2: Add the renamed ACPI files and drop old ones
2021-07-12 15:09 [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables Stefan Berger
` (3 preceding siblings ...)
2021-07-12 15:09 ` [PATCH v3 4/9] tests: Add suffix 'tpm2' or 'tpm12' to ACPI table files Stefan Berger
@ 2021-07-12 15:09 ` Stefan Berger
2021-07-12 15:09 ` [PATCH v3 6/9] tests: tpm: Create TPM 1.2 response in TPM emulator Stefan Berger
` (4 subsequent siblings)
9 siblings, 0 replies; 22+ messages in thread
From: Stefan Berger @ 2021-07-12 15:09 UTC (permalink / raw
To: qemu-devel, marcandre.lureau
Cc: Igor Mammedov, Stefan Berger, Michael S . Tsirkin, philmd,
Stefan Berger
Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Acked-by: Igor Mammedov <imammedo@redhat.com>
---
tests/data/acpi/q35/DSDT.tis | Bin 8465 -> 0 bytes
tests/data/acpi/q35/DSDT.tis.tpm2 | Bin 0 -> 8465 bytes
tests/data/acpi/q35/TPM2.tis | Bin 76 -> 0 bytes
tests/data/acpi/q35/TPM2.tis.tpm2 | Bin 0 -> 76 bytes
tests/qtest/bios-tables-test-allowed-diff.h | 2 --
5 files changed, 2 deletions(-)
delete mode 100644 tests/data/acpi/q35/DSDT.tis
delete mode 100644 tests/data/acpi/q35/TPM2.tis
diff --git a/tests/data/acpi/q35/DSDT.tis b/tests/data/acpi/q35/DSDT.tis
deleted file mode 100644
index 15a26a14e4be5280c0f1cc09f66428311100b7ab..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 8465
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
Mh>{=D$sDl%17maSY5)KL
diff --git a/tests/data/acpi/q35/DSDT.tis.tpm2 b/tests/data/acpi/q35/DSDT.tis.tpm2
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..15a26a14e4be5280c0f1cc09f66428311100b7ab 100644
GIT binary patch
literal 8465
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
Mh>{=D$sDl%17maSY5)KL
literal 0
HcmV?d00001
diff --git a/tests/data/acpi/q35/TPM2.tis b/tests/data/acpi/q35/TPM2.tis
deleted file mode 100644
index fe0f05987be40f1c1742ae189df7821adc522fc0..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 76
wcmWFu@HO&bU|?Vob@F%i2v%^42yj*a0!E-1hz+8V0UI(0%m%6W&kkY&0CHRh0RR91
diff --git a/tests/data/acpi/q35/TPM2.tis.tpm2 b/tests/data/acpi/q35/TPM2.tis.tpm2
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..fe0f05987be40f1c1742ae189df7821adc522fc0 100644
GIT binary patch
literal 76
wcmWFu@HO&bU|?Vob@F%i2v%^42yj*a0!E-1hz+8V0UI(0%m%6W&kkY&0CHRh0RR91
literal 0
HcmV?d00001
diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index b301b8fa06..dfb8523c8b 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1,3 +1 @@
/* List of comma-separated changed AML files to ignore */
-"tests/data/acpi/q35/DSDT.tis.tpm2",
-"tests/data/acpi/q35/TPM2.tis.tpm2",
--
2.31.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v3 6/9] tests: tpm: Create TPM 1.2 response in TPM emulator
2021-07-12 15:09 [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables Stefan Berger
` (4 preceding siblings ...)
2021-07-12 15:09 ` [PATCH v3 5/9] tests: acpi: tpm2: Add the renamed ACPI files and drop old ones Stefan Berger
@ 2021-07-12 15:09 ` Stefan Berger
2021-07-12 15:09 ` [PATCH v3 7/9] tests: acpi: prepare for new TPM 1.2 related tables Stefan Berger
` (3 subsequent siblings)
9 siblings, 0 replies; 22+ messages in thread
From: Stefan Berger @ 2021-07-12 15:09 UTC (permalink / raw
To: qemu-devel, marcandre.lureau; +Cc: Stefan Berger, philmd, Stefan Berger
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
---
v3:
- Added TPM_VERSION_1_2 enum for when CONFIG_TPM is not defined
---
tests/qtest/tpm-emu.c | 5 +++++
tests/qtest/tpm-emu.h | 4 ++++
2 files changed, 9 insertions(+)
diff --git a/tests/qtest/tpm-emu.c b/tests/qtest/tpm-emu.c
index 8baf49eafd..32c704194b 100644
--- a/tests/qtest/tpm-emu.c
+++ b/tests/qtest/tpm-emu.c
@@ -62,6 +62,11 @@ static void *tpm_emu_tpm_thread(void *data)
s->tpm_msg->len = cpu_to_be32(sizeof(struct tpm_hdr));
s->tpm_msg->code = cpu_to_be32(TPM_RC_FAILURE);
break;
+ case TPM_VERSION_1_2:
+ s->tpm_msg->tag = cpu_to_be16(TPM_TAG_RSP_COMMAND);
+ s->tpm_msg->len = cpu_to_be32(sizeof(struct tpm_hdr));
+ s->tpm_msg->code = cpu_to_be32(TPM_FAIL);
+ break;
default:
g_debug("unsupport TPM version %u", s->tpm_version);
g_assert_not_reached();
diff --git a/tests/qtest/tpm-emu.h b/tests/qtest/tpm-emu.h
index 610519883a..fcb5d7a1d6 100644
--- a/tests/qtest/tpm-emu.h
+++ b/tests/qtest/tpm-emu.h
@@ -16,6 +16,9 @@
#define TPM_RC_FAILURE 0x101
#define TPM2_ST_NO_SESSIONS 0x8001
+#define TPM_FAIL 9
+#define TPM_TAG_RSP_COMMAND 0xc4
+
#include "qemu/sockets.h"
#include "io/channel.h"
#include "sysemu/tpm.h"
@@ -29,6 +32,7 @@ struct tpm_hdr {
#ifndef CONFIG_TPM
enum TPMVersion {
+ TPM_VERSION_1_2 = 1,
TPM_VERSION_2_0 = 2,
};
#endif
--
2.31.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v3 7/9] tests: acpi: prepare for new TPM 1.2 related tables
2021-07-12 15:09 [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables Stefan Berger
` (5 preceding siblings ...)
2021-07-12 15:09 ` [PATCH v3 6/9] tests: tpm: Create TPM 1.2 response in TPM emulator Stefan Berger
@ 2021-07-12 15:09 ` Stefan Berger
2021-07-12 15:09 ` [PATCH v3 8/9] tests: acpi: Add test cases for TPM 1.2 with TCPA table Stefan Berger
` (2 subsequent siblings)
9 siblings, 0 replies; 22+ messages in thread
From: Stefan Berger @ 2021-07-12 15:09 UTC (permalink / raw
To: qemu-devel, marcandre.lureau
Cc: Igor Mammedov, Stefan Berger, Michael S . Tsirkin, philmd,
Stefan Berger
Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Acked-by: Igor Mammedov <imammedo@redhat.com>
---
tests/data/acpi/q35/DSDT.tis.tpm12 | 0
tests/data/acpi/q35/TCPA.tis.tpm12 | 0
tests/qtest/bios-tables-test-allowed-diff.h | 2 ++
3 files changed, 2 insertions(+)
create mode 100644 tests/data/acpi/q35/DSDT.tis.tpm12
create mode 100644 tests/data/acpi/q35/TCPA.tis.tpm12
diff --git a/tests/data/acpi/q35/DSDT.tis.tpm12 b/tests/data/acpi/q35/DSDT.tis.tpm12
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/data/acpi/q35/TCPA.tis.tpm12 b/tests/data/acpi/q35/TCPA.tis.tpm12
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index dfb8523c8b..fb093b32b9 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1 +1,3 @@
/* List of comma-separated changed AML files to ignore */
+"tests/data/acpi/q35/DSDT.tis.tpm12",
+"tests/data/acpi/q35/TCPA.tis.tpm12",
--
2.31.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v3 8/9] tests: acpi: Add test cases for TPM 1.2 with TCPA table
2021-07-12 15:09 [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables Stefan Berger
` (6 preceding siblings ...)
2021-07-12 15:09 ` [PATCH v3 7/9] tests: acpi: prepare for new TPM 1.2 related tables Stefan Berger
@ 2021-07-12 15:09 ` Stefan Berger
2021-07-12 15:09 ` [PATCH v3 9/9] tests: acpi: tpm1.2: Add expected TPM 1.2 ACPI blobs Stefan Berger
2021-07-12 15:29 ` [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables Philippe Mathieu-Daudé
9 siblings, 0 replies; 22+ messages in thread
From: Stefan Berger @ 2021-07-12 15:09 UTC (permalink / raw
To: qemu-devel, marcandre.lureau
Cc: Igor Mammedov, Stefan Berger, Michael S . Tsirkin, philmd,
Stefan Berger
Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
---
tests/qtest/bios-tables-test.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
index 4ccbe56158..ddfd2d2b2a 100644
--- a/tests/qtest/bios-tables-test.c
+++ b/tests/qtest/bios-tables-test.c
@@ -1145,11 +1145,16 @@ static void test_acpi_tcg_tpm(const char *machine, const char *tpm_if,
#endif
}
-static void test_acpi_q35_tcg_tpm_tis(void)
+static void test_acpi_q35_tcg_tpm2_tis(void)
{
test_acpi_tcg_tpm("q35", "tis", 0xFED40000, TPM_VERSION_2_0);
}
+static void test_acpi_q35_tcg_tpm12_tis(void)
+{
+ test_acpi_tcg_tpm("q35", "tis", 0xFED40000, TPM_VERSION_1_2);
+}
+
static void test_acpi_tcg_dimm_pxm(const char *machine)
{
test_data data;
@@ -1518,7 +1523,8 @@ int main(int argc, char *argv[])
return ret;
}
qtest_add_func("acpi/q35/oem-fields", test_acpi_oem_fields_q35);
- qtest_add_func("acpi/q35/tpm-tis", test_acpi_q35_tcg_tpm_tis);
+ qtest_add_func("acpi/q35/tpm2-tis", test_acpi_q35_tcg_tpm2_tis);
+ qtest_add_func("acpi/q35/tpm12-tis", test_acpi_q35_tcg_tpm12_tis);
qtest_add_func("acpi/piix4", test_acpi_piix4_tcg);
qtest_add_func("acpi/oem-fields", test_acpi_oem_fields_pc);
qtest_add_func("acpi/piix4/bridge", test_acpi_piix4_tcg_bridge);
--
2.31.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH v3 9/9] tests: acpi: tpm1.2: Add expected TPM 1.2 ACPI blobs
2021-07-12 15:09 [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables Stefan Berger
` (7 preceding siblings ...)
2021-07-12 15:09 ` [PATCH v3 8/9] tests: acpi: Add test cases for TPM 1.2 with TCPA table Stefan Berger
@ 2021-07-12 15:09 ` Stefan Berger
2021-07-12 15:29 ` [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables Philippe Mathieu-Daudé
9 siblings, 0 replies; 22+ messages in thread
From: Stefan Berger @ 2021-07-12 15:09 UTC (permalink / raw
To: qemu-devel, marcandre.lureau
Cc: Igor Mammedov, Stefan Berger, Michael S . Tsirkin, philmd,
Stefan Berger
The TCPA.tis.tpm12 file contains the following:
[000h 0000 4] Signature : "TCPA" [Trusted Computing Platform Alliance table]
[004h 0004 4] Table Length : 00000032
[008h 0008 1] Revision : 02
[009h 0009 1] Checksum : 32
[00Ah 0010 6] Oem ID : "BOCHS "
[010h 0016 8] Oem Table ID : "BXPC "
[018h 0024 4] Oem Revision : 00000001
[01Ch 0028 4] Asl Compiler ID : "BXPC"
[020h 0032 4] Asl Compiler Revision : 00000001
[024h 0036 2] Platform Class : 0000
[026h 0038 4] Min Event Log Length : 00010000
[02Ah 0042 8] Event Log Address : 0000000007FF0000
Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
Acked-by: Igor Mammedov <imammedo@redhat.com>
---
tests/data/acpi/q35/DSDT.tis.tpm12 | Bin 0 -> 8465 bytes
tests/data/acpi/q35/TCPA.tis.tpm12 | Bin 0 -> 50 bytes
tests/qtest/bios-tables-test-allowed-diff.h | 2 --
3 files changed, 2 deletions(-)
diff --git a/tests/data/acpi/q35/DSDT.tis.tpm12 b/tests/data/acpi/q35/DSDT.tis.tpm12
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..4178162b0b20b2a4a391daa73264963c28a99a3a 100644
GIT binary patch
literal 8465
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
HnFIEJ<TmVT
literal 0
HcmV?d00001
diff --git a/tests/data/acpi/q35/TCPA.tis.tpm12 b/tests/data/acpi/q35/TCPA.tis.tpm12
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..a56961b413e7715b3d60f9836d1c8f2f4c7347cb 100644
GIT binary patch
literal 50
qcmWG>4sbMLU|?V}a`Jcf2v%^42yj*a0!E-1hz+7a07U<12eAOxRtEt9
literal 0
HcmV?d00001
diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
index fb093b32b9..dfb8523c8b 100644
--- a/tests/qtest/bios-tables-test-allowed-diff.h
+++ b/tests/qtest/bios-tables-test-allowed-diff.h
@@ -1,3 +1 @@
/* List of comma-separated changed AML files to ignore */
-"tests/data/acpi/q35/DSDT.tis.tpm12",
-"tests/data/acpi/q35/TCPA.tis.tpm12",
--
2.31.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables
2021-07-12 15:09 [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables Stefan Berger
` (8 preceding siblings ...)
2021-07-12 15:09 ` [PATCH v3 9/9] tests: acpi: tpm1.2: Add expected TPM 1.2 ACPI blobs Stefan Berger
@ 2021-07-12 15:29 ` Philippe Mathieu-Daudé
2021-07-12 15:47 ` Stefan Berger
9 siblings, 1 reply; 22+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-07-12 15:29 UTC (permalink / raw
To: Stefan Berger, qemu-devel, marcandre.lureau; +Cc: Paolo Bonzini, Thomas Huth
Hi Stefan,
On 7/12/21 5:09 PM, Stefan Berger wrote:
> This series of patches adds test case for TPM 1.2 ACPI tables.
>
> Stefan
>
> v3:
> - Define enum TPMVersion for when CONFIG_TPM is not defined
> affected patches 2 and 6
I think in 11fb99e6f48..e542b71805d we missed an extra patch
for qtests. Probably (untested):
-- >8 --
diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build
index ee7347b7275..eeaa0d7302b 100644
--- a/tests/qtest/meson.build
+++ b/tests/qtest/meson.build
@@ -60,10 +60,14 @@
(config_all_devices.has_key('CONFIG_USB_UHCI') and
\
config_all_devices.has_key('CONFIG_USB_EHCI') ?
['usb-hcd-ehci-test'] : []) + \
(config_all_devices.has_key('CONFIG_USB_XHCI_NEC') ?
['usb-hcd-xhci-test'] : []) + \
- (config_all_devices.has_key('CONFIG_TPM_CRB') ? ['tpm-crb-test'] :
[]) + \
- (config_all_devices.has_key('CONFIG_TPM_CRB') ?
['tpm-crb-swtpm-test'] : []) + \
- (config_all_devices.has_key('CONFIG_TPM_TIS_ISA') ? ['tpm-tis-test']
: []) + \
- (config_all_devices.has_key('CONFIG_TPM_TIS_ISA') ?
['tpm-tis-swtpm-test'] : []) + \
+ (config_host.has_key('CONFIG_TPM') and \
+ config_all_devices.has_key('CONFIG_TPM_CRB') ? ['tpm-crb-test'] :
[]) + \
+ (config_host.has_key('CONFIG_TPM') and \
+ config_all_devices.has_key('CONFIG_TPM_CRB') ?
['tpm-crb-swtpm-test'] : []) + \
+ (config_host.has_key('CONFIG_TPM') and \
+ config_all_devices.has_key('CONFIG_TPM_TIS_ISA') ? ['tpm-tis-test']
: []) + \
+ (config_host.has_key('CONFIG_TPM') and \
+ config_all_devices.has_key('CONFIG_TPM_TIS_ISA') ?
['tpm-tis-swtpm-test'] : []) + \
(config_all_devices.has_key('CONFIG_RTL8139_PCI') ? ['rtl8139-test']
: []) + \
(config_all_devices.has_key('CONFIG_E1000E_PCI_EXPRESS') ?
['fuzz-e1000e-test'] : []) + \
(config_all_devices.has_key('CONFIG_ESP_PCI') ? ['am53c974-test'] :
[]) + \
---
Cc'ing Paolo/Thomas because there surely exists a clever way to do it...
^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables
2021-07-12 15:29 ` [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables Philippe Mathieu-Daudé
@ 2021-07-12 15:47 ` Stefan Berger
2021-07-12 16:26 ` Philippe Mathieu-Daudé
0 siblings, 1 reply; 22+ messages in thread
From: Stefan Berger @ 2021-07-12 15:47 UTC (permalink / raw
To: Philippe Mathieu-Daudé, Stefan Berger, qemu-devel,
marcandre.lureau
Cc: Paolo Bonzini, Thomas Huth
On 7/12/21 11:29 AM, Philippe Mathieu-Daudé wrote:
> Hi Stefan,
>
> On 7/12/21 5:09 PM, Stefan Berger wrote:
>> This series of patches adds test case for TPM 1.2 ACPI tables.
>>
>> Stefan
>>
>> v3:
>> - Define enum TPMVersion for when CONFIG_TPM is not defined
>> affected patches 2 and 6
> I think in 11fb99e6f48..e542b71805d we missed an extra patch
> for qtests. Probably (untested):
Shouldn't we have seen test compilation errors already?
I didn't go down this route for the build system (as you show below)
because in this series we are testing ACPI tables and I introduce the
reference to enum TPMVersion here, which wasn't needed before. The
alternative may be to go into 8/9 and eliminate all TPM code if
CONFIG_TPM is not set. The introduction of the enum now passes the tests
with --enable-tpm and --disable-tpm.
Otherwise the BIOS test are skipped due to this here:
static void test_acpi_tcg_tpm(const char *machine, const char *tpm_if,
uint64_t base, enum TPMVersion tpm_version)
{
#ifdef CONFIG_TPM
[...]
#else
g_test_skip("TPM disabled");
#endif
}
So I didn't want to clutter this code with more #ifdef CONFIG_TPM but
maybe that would be the right solution.
Stefan
>
> -- >8 --
> diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build
> index ee7347b7275..eeaa0d7302b 100644
> --- a/tests/qtest/meson.build
> +++ b/tests/qtest/meson.build
> @@ -60,10 +60,14 @@
> (config_all_devices.has_key('CONFIG_USB_UHCI') and
> \
> config_all_devices.has_key('CONFIG_USB_EHCI') ?
> ['usb-hcd-ehci-test'] : []) + \
> (config_all_devices.has_key('CONFIG_USB_XHCI_NEC') ?
> ['usb-hcd-xhci-test'] : []) + \
> - (config_all_devices.has_key('CONFIG_TPM_CRB') ? ['tpm-crb-test'] :
> []) + \
> - (config_all_devices.has_key('CONFIG_TPM_CRB') ?
> ['tpm-crb-swtpm-test'] : []) + \
> - (config_all_devices.has_key('CONFIG_TPM_TIS_ISA') ? ['tpm-tis-test']
> : []) + \
> - (config_all_devices.has_key('CONFIG_TPM_TIS_ISA') ?
> ['tpm-tis-swtpm-test'] : []) + \
> + (config_host.has_key('CONFIG_TPM') and \
> + config_all_devices.has_key('CONFIG_TPM_CRB') ? ['tpm-crb-test'] :
> []) + \
> + (config_host.has_key('CONFIG_TPM') and \
> + config_all_devices.has_key('CONFIG_TPM_CRB') ?
> ['tpm-crb-swtpm-test'] : []) + \
> + (config_host.has_key('CONFIG_TPM') and \
> + config_all_devices.has_key('CONFIG_TPM_TIS_ISA') ? ['tpm-tis-test']
> : []) + \
> + (config_host.has_key('CONFIG_TPM') and \
> + config_all_devices.has_key('CONFIG_TPM_TIS_ISA') ?
> ['tpm-tis-swtpm-test'] : []) + \
> (config_all_devices.has_key('CONFIG_RTL8139_PCI') ? ['rtl8139-test']
> : []) + \
> (config_all_devices.has_key('CONFIG_E1000E_PCI_EXPRESS') ?
> ['fuzz-e1000e-test'] : []) + \
> (config_all_devices.has_key('CONFIG_ESP_PCI') ? ['am53c974-test'] :
> []) + \
> ---
>
> Cc'ing Paolo/Thomas because there surely exists a clever way to do it...
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables
2021-07-12 15:47 ` Stefan Berger
@ 2021-07-12 16:26 ` Philippe Mathieu-Daudé
2021-07-12 18:10 ` Stefan Berger
2021-07-14 14:43 ` Markus Armbruster
0 siblings, 2 replies; 22+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-07-12 16:26 UTC (permalink / raw
To: Stefan Berger, Stefan Berger, qemu-devel, marcandre.lureau
Cc: Paolo Bonzini, Thomas Huth, Markus Armbruster
+Markus
On 7/12/21 5:47 PM, Stefan Berger wrote:
>
> On 7/12/21 11:29 AM, Philippe Mathieu-Daudé wrote:
>> Hi Stefan,
>>
>> On 7/12/21 5:09 PM, Stefan Berger wrote:
>>> This series of patches adds test case for TPM 1.2 ACPI tables.
>>>
>>> Stefan
>>>
>>> v3:
>>> - Define enum TPMVersion for when CONFIG_TPM is not defined
>>> affected patches 2 and 6
>> I think in 11fb99e6f48..e542b71805d we missed an extra patch
>> for qtests. Probably (untested):
>
> Shouldn't we have seen test compilation errors already?
>
> I didn't go down this route for the build system (as you show below)
> because in this series we are testing ACPI tables and I introduce the
> reference to enum TPMVersion here, which wasn't needed before. The
> alternative may be to go into 8/9 and eliminate all TPM code if
> CONFIG_TPM is not set. The introduction of the enum now passes the tests
> with --enable-tpm and --disable-tpm.
>
> Otherwise the BIOS test are skipped due to this here:
>
>
> static void test_acpi_tcg_tpm(const char *machine, const char *tpm_if,
> uint64_t base, enum TPMVersion tpm_version)
> {
> #ifdef CONFIG_TPM
> [...]
>
> #else
> g_test_skip("TPM disabled");
> #endif
> }
>
> So I didn't want to clutter this code with more #ifdef CONFIG_TPM but
> maybe that would be the right solution.
IMO the "right" solution is to check via QMP if TMP is supported
or not. This is now doable since commit caff255a546 ("tpm: Return
QMP error when TPM is disabled in build").
Long term we'd like to decouple the tests/ build from the various
QEMU configurations, and build the tests once.
>> -- >8 --
>> diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build
>> index ee7347b7275..eeaa0d7302b 100644
>> --- a/tests/qtest/meson.build
>> +++ b/tests/qtest/meson.build
>> @@ -60,10 +60,14 @@
>> (config_all_devices.has_key('CONFIG_USB_UHCI') and
>> \
>> config_all_devices.has_key('CONFIG_USB_EHCI') ?
>> ['usb-hcd-ehci-test'] : []) + \
>> (config_all_devices.has_key('CONFIG_USB_XHCI_NEC') ?
>> ['usb-hcd-xhci-test'] : []) + \
>> - (config_all_devices.has_key('CONFIG_TPM_CRB') ? ['tpm-crb-test'] :
>> []) + \
>> - (config_all_devices.has_key('CONFIG_TPM_CRB') ?
>> ['tpm-crb-swtpm-test'] : []) + \
>> - (config_all_devices.has_key('CONFIG_TPM_TIS_ISA') ? ['tpm-tis-test']
>> : []) + \
>> - (config_all_devices.has_key('CONFIG_TPM_TIS_ISA') ?
>> ['tpm-tis-swtpm-test'] : []) + \
>> + (config_host.has_key('CONFIG_TPM') and \
>> + config_all_devices.has_key('CONFIG_TPM_CRB') ? ['tpm-crb-test'] :
>> []) + \
>> + (config_host.has_key('CONFIG_TPM') and \
>> + config_all_devices.has_key('CONFIG_TPM_CRB') ?
>> ['tpm-crb-swtpm-test'] : []) + \
>> + (config_host.has_key('CONFIG_TPM') and \
>> + config_all_devices.has_key('CONFIG_TPM_TIS_ISA') ? ['tpm-tis-test']
>> : []) + \
>> + (config_host.has_key('CONFIG_TPM') and \
>> + config_all_devices.has_key('CONFIG_TPM_TIS_ISA') ?
>> ['tpm-tis-swtpm-test'] : []) + \
>> (config_all_devices.has_key('CONFIG_RTL8139_PCI') ? ['rtl8139-test']
>> : []) + \
>> (config_all_devices.has_key('CONFIG_E1000E_PCI_EXPRESS') ?
>> ['fuzz-e1000e-test'] : []) + \
>> (config_all_devices.has_key('CONFIG_ESP_PCI') ? ['am53c974-test'] :
>> []) + \
>> ---
>>
>> Cc'ing Paolo/Thomas because there surely exists a clever way to do it...
>>
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables
2021-07-12 16:26 ` Philippe Mathieu-Daudé
@ 2021-07-12 18:10 ` Stefan Berger
2021-07-14 14:43 ` Markus Armbruster
1 sibling, 0 replies; 22+ messages in thread
From: Stefan Berger @ 2021-07-12 18:10 UTC (permalink / raw
To: Philippe Mathieu-Daudé, Stefan Berger, qemu-devel,
marcandre.lureau
Cc: Paolo Bonzini, Thomas Huth, Markus Armbruster
On 7/12/21 12:26 PM, Philippe Mathieu-Daudé wrote:
> +Markus
>
> On 7/12/21 5:47 PM, Stefan Berger wrote:
>> On 7/12/21 11:29 AM, Philippe Mathieu-Daudé wrote:
>>> Hi Stefan,
>>>
>>> On 7/12/21 5:09 PM, Stefan Berger wrote:
>>>> This series of patches adds test case for TPM 1.2 ACPI tables.
>>>>
>>>> Stefan
>>>>
>>>> v3:
>>>> - Define enum TPMVersion for when CONFIG_TPM is not defined
>>>> affected patches 2 and 6
>>> I think in 11fb99e6f48..e542b71805d we missed an extra patch
>>> for qtests. Probably (untested):
>> Shouldn't we have seen test compilation errors already?
>>
>> I didn't go down this route for the build system (as you show below)
>> because in this series we are testing ACPI tables and I introduce the
>> reference to enum TPMVersion here, which wasn't needed before. The
>> alternative may be to go into 8/9 and eliminate all TPM code if
>> CONFIG_TPM is not set. The introduction of the enum now passes the tests
>> with --enable-tpm and --disable-tpm.
>>
>> Otherwise the BIOS test are skipped due to this here:
>>
>>
>> static void test_acpi_tcg_tpm(const char *machine, const char *tpm_if,
>> uint64_t base, enum TPMVersion tpm_version)
>> {
>> #ifdef CONFIG_TPM
>> [...]
>>
>> #else
>> g_test_skip("TPM disabled");
>> #endif
>> }
>>
>> So I didn't want to clutter this code with more #ifdef CONFIG_TPM but
>> maybe that would be the right solution.
> IMO the "right" solution is to check via QMP if TMP is supported
> or not. This is now doable since commit caff255a546 ("tpm: Return
> QMP error when TPM is disabled in build").
That above g_test_skip() could be moved to the top of the function and
be preceded by a QMP check for whether TPM is supported.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables
2021-07-12 16:26 ` Philippe Mathieu-Daudé
2021-07-12 18:10 ` Stefan Berger
@ 2021-07-14 14:43 ` Markus Armbruster
2021-07-14 20:16 ` Philippe Mathieu-Daudé
1 sibling, 1 reply; 22+ messages in thread
From: Markus Armbruster @ 2021-07-14 14:43 UTC (permalink / raw
To: Philippe Mathieu-Daudé
Cc: Thomas Huth, Stefan Berger, qemu-devel, Paolo Bonzini,
marcandre.lureau, Stefan Berger
Philippe Mathieu-Daudé <philmd@redhat.com> writes:
> +Markus
>
> On 7/12/21 5:47 PM, Stefan Berger wrote:
>>
>> On 7/12/21 11:29 AM, Philippe Mathieu-Daudé wrote:
>>> Hi Stefan,
>>>
>>> On 7/12/21 5:09 PM, Stefan Berger wrote:
>>>> This series of patches adds test case for TPM 1.2 ACPI tables.
>>>>
>>>> Stefan
>>>>
>>>> v3:
>>>> - Define enum TPMVersion for when CONFIG_TPM is not defined
>>>> affected patches 2 and 6
>>> I think in 11fb99e6f48..e542b71805d we missed an extra patch
>>> for qtests. Probably (untested):
>>
>> Shouldn't we have seen test compilation errors already?
>>
>> I didn't go down this route for the build system (as you show below)
>> because in this series we are testing ACPI tables and I introduce the
>> reference to enum TPMVersion here, which wasn't needed before. The
>> alternative may be to go into 8/9 and eliminate all TPM code if
>> CONFIG_TPM is not set. The introduction of the enum now passes the tests
>> with --enable-tpm and --disable-tpm.
>>
>> Otherwise the BIOS test are skipped due to this here:
>>
>>
>> static void test_acpi_tcg_tpm(const char *machine, const char *tpm_if,
>> uint64_t base, enum TPMVersion tpm_version)
>> {
>> #ifdef CONFIG_TPM
>> [...]
>>
>> #else
>> g_test_skip("TPM disabled");
>> #endif
>> }
>>
>> So I didn't want to clutter this code with more #ifdef CONFIG_TPM but
>> maybe that would be the right solution.
>
> IMO the "right" solution is to check via QMP if TMP is supported
> or not. This is now doable since commit caff255a546 ("tpm: Return
> QMP error when TPM is disabled in build").
>
> Long term we'd like to decouple the tests/ build from the various
> QEMU configurations, and build the tests once.
This argument applies only to macros from target-specific headers like
$TARGET-config-target.h, not to macros from config-host.h. #ifdef
CONFIG_TPM should be fine, shouldn't it?
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables
2021-07-14 14:43 ` Markus Armbruster
@ 2021-07-14 20:16 ` Philippe Mathieu-Daudé
2021-07-15 5:49 ` Markus Armbruster
0 siblings, 1 reply; 22+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-07-14 20:16 UTC (permalink / raw
To: Markus Armbruster
Cc: Thomas Huth, Stefan Berger, qemu-devel, Paolo Bonzini,
marcandre.lureau, Stefan Berger
On 7/14/21 4:43 PM, Markus Armbruster wrote:
> Philippe Mathieu-Daudé <philmd@redhat.com> writes:
>
>> +Markus
>>
>> On 7/12/21 5:47 PM, Stefan Berger wrote:
>>>
>>> On 7/12/21 11:29 AM, Philippe Mathieu-Daudé wrote:
>>>> Hi Stefan,
>>>>
>>>> On 7/12/21 5:09 PM, Stefan Berger wrote:
>>>>> This series of patches adds test case for TPM 1.2 ACPI tables.
>>>>>
>>>>> Stefan
>>>>>
>>>>> v3:
>>>>> - Define enum TPMVersion for when CONFIG_TPM is not defined
>>>>> affected patches 2 and 6
>>>> I think in 11fb99e6f48..e542b71805d we missed an extra patch
>>>> for qtests. Probably (untested):
>>>
>>> Shouldn't we have seen test compilation errors already?
>>>
>>> I didn't go down this route for the build system (as you show below)
>>> because in this series we are testing ACPI tables and I introduce the
>>> reference to enum TPMVersion here, which wasn't needed before. The
>>> alternative may be to go into 8/9 and eliminate all TPM code if
>>> CONFIG_TPM is not set. The introduction of the enum now passes the tests
>>> with --enable-tpm and --disable-tpm.
>>>
>>> Otherwise the BIOS test are skipped due to this here:
>>>
>>>
>>> static void test_acpi_tcg_tpm(const char *machine, const char *tpm_if,
>>> uint64_t base, enum TPMVersion tpm_version)
>>> {
>>> #ifdef CONFIG_TPM
>>> [...]
>>>
>>> #else
>>> g_test_skip("TPM disabled");
>>> #endif
>>> }
>>>
>>> So I didn't want to clutter this code with more #ifdef CONFIG_TPM but
>>> maybe that would be the right solution.
>>
>> IMO the "right" solution is to check via QMP if TMP is supported
>> or not. This is now doable since commit caff255a546 ("tpm: Return
>> QMP error when TPM is disabled in build").
>>
>> Long term we'd like to decouple the tests/ build from the various
>> QEMU configurations, and build the tests once.
>
> This argument applies only to macros from target-specific headers like
> $TARGET-config-target.h, not to macros from config-host.h. #ifdef
> CONFIG_TPM should be fine, shouldn't it?
Some definitions depend on the host (OS, libraries installed, ...),
others depend on the --enable/--disable ./configure options.
IMO it would be nice if we could get qtests independent of the latter.
I suppose config-host.h holds both kinds.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables
2021-07-14 20:16 ` Philippe Mathieu-Daudé
@ 2021-07-15 5:49 ` Markus Armbruster
2021-07-19 13:38 ` Igor Mammedov
0 siblings, 1 reply; 22+ messages in thread
From: Markus Armbruster @ 2021-07-15 5:49 UTC (permalink / raw
To: Philippe Mathieu-Daudé
Cc: Thomas Huth, Stefan Berger, qemu-devel, Paolo Bonzini,
marcandre.lureau, Stefan Berger
Philippe Mathieu-Daudé <philmd@redhat.com> writes:
> On 7/14/21 4:43 PM, Markus Armbruster wrote:
>> Philippe Mathieu-Daudé <philmd@redhat.com> writes:
>>
>>> +Markus
[...]
>>> IMO the "right" solution is to check via QMP if TMP is supported
>>> or not. This is now doable since commit caff255a546 ("tpm: Return
>>> QMP error when TPM is disabled in build").
>>>
>>> Long term we'd like to decouple the tests/ build from the various
>>> QEMU configurations, and build the tests once.
>>
>> This argument applies only to macros from target-specific headers like
>> $TARGET-config-target.h, not to macros from config-host.h. #ifdef
>> CONFIG_TPM should be fine, shouldn't it?
>
> Some definitions depend on the host (OS, libraries installed, ...),
> others depend on the --enable/--disable ./configure options.
>
> IMO it would be nice if we could get qtests independent of the latter.
Why?
> I suppose config-host.h holds both kinds.
Yes.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables
2021-07-15 5:49 ` Markus Armbruster
@ 2021-07-19 13:38 ` Igor Mammedov
2021-07-19 13:50 ` Markus Armbruster
0 siblings, 1 reply; 22+ messages in thread
From: Igor Mammedov @ 2021-07-19 13:38 UTC (permalink / raw
To: Markus Armbruster
Cc: Thomas Huth, Stefan Berger, qemu-devel, marcandre.lureau,
Paolo Bonzini, Philippe Mathieu-Daudé, Stefan Berger
On Thu, 15 Jul 2021 07:49:13 +0200
Markus Armbruster <armbru@redhat.com> wrote:
> Philippe Mathieu-Daudé <philmd@redhat.com> writes:
>
> > On 7/14/21 4:43 PM, Markus Armbruster wrote:
> >> Philippe Mathieu-Daudé <philmd@redhat.com> writes:
> >>
> >>> +Markus
>
> [...]
>
> >>> IMO the "right" solution is to check via QMP if TMP is supported
> >>> or not. This is now doable since commit caff255a546 ("tpm: Return
> >>> QMP error when TPM is disabled in build").
> >>>
> >>> Long term we'd like to decouple the tests/ build from the various
> >>> QEMU configurations, and build the tests once.
> >>
> >> This argument applies only to macros from target-specific headers like
> >> $TARGET-config-target.h, not to macros from config-host.h. #ifdef
> >> CONFIG_TPM should be fine, shouldn't it?
> >
> > Some definitions depend on the host (OS, libraries installed, ...),
> > others depend on the --enable/--disable ./configure options.
> >
> > IMO it would be nice if we could get qtests independent of the latter.
>
> Why?
In another mail-thread Philippe mentioned that there is desire
to use qtest out of tree to test other QEMU binaries.
However, just probing for features at runtime aren't going
to help with the goal as tests are tailored for the latest
CLI/QMP/ABI. To make it work we would have practically
introduce versioned tests.
So I wonder why one external acceptance-tests suite is not
sufficient, that we would want to hijack relatively simple
internal qtest at expense of increased resources needed to
run/write unit tests.
> > I suppose config-host.h holds both kinds.
>
> Yes.
>
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables
2021-07-19 13:38 ` Igor Mammedov
@ 2021-07-19 13:50 ` Markus Armbruster
2021-07-19 13:56 ` Philippe Mathieu-Daudé
0 siblings, 1 reply; 22+ messages in thread
From: Markus Armbruster @ 2021-07-19 13:50 UTC (permalink / raw
To: Igor Mammedov
Cc: Thomas Huth, Stefan Berger, qemu-devel, marcandre.lureau,
Paolo Bonzini, Philippe Mathieu-Daudé, Stefan Berger
Igor Mammedov <imammedo@redhat.com> writes:
> On Thu, 15 Jul 2021 07:49:13 +0200
> Markus Armbruster <armbru@redhat.com> wrote:
>
>> Philippe Mathieu-Daudé <philmd@redhat.com> writes:
>>
>> > On 7/14/21 4:43 PM, Markus Armbruster wrote:
>> >> Philippe Mathieu-Daudé <philmd@redhat.com> writes:
>> >>
>> >>> +Markus
>>
>> [...]
>>
>> >>> IMO the "right" solution is to check via QMP if TMP is supported
>> >>> or not. This is now doable since commit caff255a546 ("tpm: Return
>> >>> QMP error when TPM is disabled in build").
>> >>>
>> >>> Long term we'd like to decouple the tests/ build from the various
>> >>> QEMU configurations, and build the tests once.
>> >>
>> >> This argument applies only to macros from target-specific headers like
>> >> $TARGET-config-target.h, not to macros from config-host.h. #ifdef
>> >> CONFIG_TPM should be fine, shouldn't it?
>> >
>> > Some definitions depend on the host (OS, libraries installed, ...),
>> > others depend on the --enable/--disable ./configure options.
>> >
>> > IMO it would be nice if we could get qtests independent of the latter.
>>
>> Why?
>
> In another mail-thread Philippe mentioned that there is desire
> to use qtest out of tree to test other QEMU binaries.
>
> However, just probing for features at runtime aren't going
> to help with the goal as tests are tailored for the latest
> CLI/QMP/ABI. To make it work we would have practically
> introduce versioned tests.
>
> So I wonder why one external acceptance-tests suite is not
> sufficient, that we would want to hijack relatively simple
> internal qtest at expense of increased resources needed to
> run/write unit tests.
Yes. qtest was not designed for use with anything but HEAD, and I doubt
we can make it fit such uses at reasonable expense.
>
>> > I suppose config-host.h holds both kinds.
>>
>> Yes.
>>
>>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables
2021-07-19 13:50 ` Markus Armbruster
@ 2021-07-19 13:56 ` Philippe Mathieu-Daudé
2021-07-19 14:44 ` Igor Mammedov
0 siblings, 1 reply; 22+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-07-19 13:56 UTC (permalink / raw
To: Markus Armbruster, Thomas Huth
Cc: Stefan Berger, QEMU Developers, Marc-André Lureau,
Paolo Bonzini, Igor Mammedov, Stefan Berger
On Mon, Jul 19, 2021 at 3:50 PM Markus Armbruster <armbru@redhat.com> wrote:
> Igor Mammedov <imammedo@redhat.com> writes:
> > On Thu, 15 Jul 2021 07:49:13 +0200
> > Markus Armbruster <armbru@redhat.com> wrote:
> >> Philippe Mathieu-Daudé <philmd@redhat.com> writes:
> >> >>> IMO the "right" solution is to check via QMP if TMP is supported
> >> >>> or not. This is now doable since commit caff255a546 ("tpm: Return
> >> >>> QMP error when TPM is disabled in build").
> >> >>>
> >> >>> Long term we'd like to decouple the tests/ build from the various
> >> >>> QEMU configurations, and build the tests once.
> >> >>
> >> >> This argument applies only to macros from target-specific headers like
> >> >> $TARGET-config-target.h, not to macros from config-host.h. #ifdef
> >> >> CONFIG_TPM should be fine, shouldn't it?
> >> >
> >> > Some definitions depend on the host (OS, libraries installed, ...),
> >> > others depend on the --enable/--disable ./configure options.
> >> >
> >> > IMO it would be nice if we could get qtests independent of the latter.
> >>
> >> Why?
> >
> > In another mail-thread Philippe mentioned that there is desire
> > to use qtest out of tree to test other QEMU binaries.
> >
> > However, just probing for features at runtime aren't going
> > to help with the goal as tests are tailored for the latest
> > CLI/QMP/ABI. To make it work we would have practically
> > introduce versioned tests.
> >
> > So I wonder why one external acceptance-tests suite is not
> > sufficient, that we would want to hijack relatively simple
> > internal qtest at expense of increased resources needed to
> > run/write unit tests.
>
> Yes. qtest was not designed for use with anything but HEAD, and I doubt
> we can make it fit such uses at reasonable expense.
One HEAD but multiple configurations...
If you want to simplify human time, can we simply run qtests once per
arch/OS but with all features enabled? Otherwise skip qtests?
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables
2021-07-19 13:56 ` Philippe Mathieu-Daudé
@ 2021-07-19 14:44 ` Igor Mammedov
2021-07-19 15:13 ` Markus Armbruster
0 siblings, 1 reply; 22+ messages in thread
From: Igor Mammedov @ 2021-07-19 14:44 UTC (permalink / raw
To: Philippe Mathieu-Daudé
Cc: Thomas Huth, Stefan Berger, QEMU Developers, Markus Armbruster,
Marc-André Lureau, Paolo Bonzini, Stefan Berger
On Mon, 19 Jul 2021 15:56:16 +0200
Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
> On Mon, Jul 19, 2021 at 3:50 PM Markus Armbruster <armbru@redhat.com> wrote:
> > Igor Mammedov <imammedo@redhat.com> writes:
> > > On Thu, 15 Jul 2021 07:49:13 +0200
> > > Markus Armbruster <armbru@redhat.com> wrote:
> > >> Philippe Mathieu-Daudé <philmd@redhat.com> writes:
>
> > >> >>> IMO the "right" solution is to check via QMP if TMP is supported
> > >> >>> or not. This is now doable since commit caff255a546 ("tpm: Return
> > >> >>> QMP error when TPM is disabled in build").
> > >> >>>
> > >> >>> Long term we'd like to decouple the tests/ build from the various
> > >> >>> QEMU configurations, and build the tests once.
> > >> >>
> > >> >> This argument applies only to macros from target-specific headers like
> > >> >> $TARGET-config-target.h, not to macros from config-host.h. #ifdef
> > >> >> CONFIG_TPM should be fine, shouldn't it?
> > >> >
> > >> > Some definitions depend on the host (OS, libraries installed, ...),
> > >> > others depend on the --enable/--disable ./configure options.
> > >> >
> > >> > IMO it would be nice if we could get qtests independent of the latter.
> > >>
> > >> Why?
> > >
> > > In another mail-thread Philippe mentioned that there is desire
> > > to use qtest out of tree to test other QEMU binaries.
> > >
> > > However, just probing for features at runtime aren't going
> > > to help with the goal as tests are tailored for the latest
> > > CLI/QMP/ABI. To make it work we would have practically
> > > introduce versioned tests.
> > >
> > > So I wonder why one external acceptance-tests suite is not
> > > sufficient, that we would want to hijack relatively simple
> > > internal qtest at expense of increased resources needed to
> > > run/write unit tests.
> >
> > Yes. qtest was not designed for use with anything but HEAD, and I doubt
> > we can make it fit such uses at reasonable expense.
>
> One HEAD but multiple configurations...
Even assuming reconfigure won't cause world rebuild,
It will be a win only if number of configuration probes
is small.
However it doesn't scale for large numbers and it might be
faster to rebuild affected tests in the end. (worst case: #probes * #targets)
I wonder if we can do probing once & cache it somewhere to avoid ^^^.
> If you want to simplify human time, can we simply run qtests once per
> arch/OS but with all features enabled? Otherwise skip qtests?
>
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables
2021-07-19 14:44 ` Igor Mammedov
@ 2021-07-19 15:13 ` Markus Armbruster
0 siblings, 0 replies; 22+ messages in thread
From: Markus Armbruster @ 2021-07-19 15:13 UTC (permalink / raw
To: Igor Mammedov
Cc: Thomas Huth, Stefan Berger, QEMU Developers,
Marc-André Lureau, Paolo Bonzini,
Philippe Mathieu-Daudé, Stefan Berger
Igor Mammedov <imammedo@redhat.com> writes:
> On Mon, 19 Jul 2021 15:56:16 +0200
> Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
>
>> On Mon, Jul 19, 2021 at 3:50 PM Markus Armbruster <armbru@redhat.com> wrote:
>> > Igor Mammedov <imammedo@redhat.com> writes:
>> > > On Thu, 15 Jul 2021 07:49:13 +0200
>> > > Markus Armbruster <armbru@redhat.com> wrote:
>> > >> Philippe Mathieu-Daudé <philmd@redhat.com> writes:
>>
>> > >> >>> IMO the "right" solution is to check via QMP if TMP is supported
>> > >> >>> or not. This is now doable since commit caff255a546 ("tpm: Return
>> > >> >>> QMP error when TPM is disabled in build").
>> > >> >>>
>> > >> >>> Long term we'd like to decouple the tests/ build from the various
>> > >> >>> QEMU configurations, and build the tests once.
>> > >> >>
>> > >> >> This argument applies only to macros from target-specific headers like
>> > >> >> $TARGET-config-target.h, not to macros from config-host.h. #ifdef
>> > >> >> CONFIG_TPM should be fine, shouldn't it?
>> > >> >
>> > >> > Some definitions depend on the host (OS, libraries installed, ...),
>> > >> > others depend on the --enable/--disable ./configure options.
>> > >> >
>> > >> > IMO it would be nice if we could get qtests independent of the latter.
>> > >>
>> > >> Why?
>> > >
>> > > In another mail-thread Philippe mentioned that there is desire
>> > > to use qtest out of tree to test other QEMU binaries.
>> > >
>> > > However, just probing for features at runtime aren't going
>> > > to help with the goal as tests are tailored for the latest
>> > > CLI/QMP/ABI. To make it work we would have practically
>> > > introduce versioned tests.
>> > >
>> > > So I wonder why one external acceptance-tests suite is not
>> > > sufficient, that we would want to hijack relatively simple
>> > > internal qtest at expense of increased resources needed to
>> > > run/write unit tests.
>> >
>> > Yes. qtest was not designed for use with anything but HEAD, and I doubt
>> > we can make it fit such uses at reasonable expense.
>>
>> One HEAD but multiple configurations...
>
> Even assuming reconfigure won't cause world rebuild,
> It will be a win only if number of configuration probes
> is small.
> However it doesn't scale for large numbers and it might be
> faster to rebuild affected tests in the end. (worst case: #probes * #targets)
> I wonder if we can do probing once & cache it somewhere to avoid ^^^.
As far as I can tell, the time to compile these tests is dwarved several
times over by the time to run them. In other words, most of the waste
to optimize out hides in the test programs, not in compiling them.
>> If you want to simplify human time, can we simply run qtests once per
>> arch/OS but with all features enabled? Otherwise skip qtests?
How build configuration and tests interact is poorly understood. We
instead use brute force: run all the tests for all configurations,
always. To do better without sacrificing coverage, we need to
understand better. Sadly, I don't see that happening.
^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2021-07-19 15:15 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-07-12 15:09 [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables Stefan Berger
2021-07-12 15:09 ` [PATCH v3 1/9] tests: Rename TestState to TPMTestState Stefan Berger
2021-07-12 15:09 ` [PATCH v3 2/9] tests: Add tpm_version field to TPMTestState and fill it Stefan Berger
2021-07-12 15:09 ` [PATCH v3 3/9] tests: acpi: Prepare for renaming of TPM2 related ACPI files Stefan Berger
2021-07-12 15:09 ` [PATCH v3 4/9] tests: Add suffix 'tpm2' or 'tpm12' to ACPI table files Stefan Berger
2021-07-12 15:09 ` [PATCH v3 5/9] tests: acpi: tpm2: Add the renamed ACPI files and drop old ones Stefan Berger
2021-07-12 15:09 ` [PATCH v3 6/9] tests: tpm: Create TPM 1.2 response in TPM emulator Stefan Berger
2021-07-12 15:09 ` [PATCH v3 7/9] tests: acpi: prepare for new TPM 1.2 related tables Stefan Berger
2021-07-12 15:09 ` [PATCH v3 8/9] tests: acpi: Add test cases for TPM 1.2 with TCPA table Stefan Berger
2021-07-12 15:09 ` [PATCH v3 9/9] tests: acpi: tpm1.2: Add expected TPM 1.2 ACPI blobs Stefan Berger
2021-07-12 15:29 ` [PATCH v3 0/9] tests: Add test cases for TPM 1.2 ACPI tables Philippe Mathieu-Daudé
2021-07-12 15:47 ` Stefan Berger
2021-07-12 16:26 ` Philippe Mathieu-Daudé
2021-07-12 18:10 ` Stefan Berger
2021-07-14 14:43 ` Markus Armbruster
2021-07-14 20:16 ` Philippe Mathieu-Daudé
2021-07-15 5:49 ` Markus Armbruster
2021-07-19 13:38 ` Igor Mammedov
2021-07-19 13:50 ` Markus Armbruster
2021-07-19 13:56 ` Philippe Mathieu-Daudé
2021-07-19 14:44 ` Igor Mammedov
2021-07-19 15:13 ` Markus Armbruster
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.