Message ID | 20230825033619.2075837-4-zhao1.liu@linux.intel.com |
---|---|
State | New |
Headers | show |
Series | tests: Add CPU topology related smbios test cases | expand |
On Fri, 25 Aug 2023 11:36:06 +0800 Zhao Liu <zhao1.liu@linux.intel.com> wrote: > From: Zhao Liu <zhao1.liu@intel.com> > > This tests the commit d79a284a44bb7 ("hw/smbios: Fix smbios_smp_sockets > calculation"). > > Test the count of type4 tables for multiple sockets case. > > Suggested-by: Igor Mammedov <imammedo@redhat.com> > Signed-off-by: Zhao Liu <zhao1.liu@intel.com> > --- > tests/qtest/bios-tables-test.c | 33 ++++++++++++++++++++++++++++++++- > 1 file changed, 32 insertions(+), 1 deletion(-) > > diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c > index 47ba20b9579b..8679255449cf 100644 > --- a/tests/qtest/bios-tables-test.c > +++ b/tests/qtest/bios-tables-test.c > @@ -97,6 +97,7 @@ typedef struct { > uint16_t smbios_core_count2; > uint8_t *required_struct_types; > int required_struct_types_len; > + int type4_count; > QTestState *qts; > } test_data; > > @@ -673,12 +674,21 @@ static void smbios_cpu_test(test_data *data, uint32_t addr, > } > } > > +static void smbios_type4_count_test(test_data *data, int type4_count) > +{ > + int expected_type4_count = data->type4_count; > + > + if (expected_type4_count) { > + g_assert_cmpuint(type4_count, ==, expected_type4_count); > + } > +} > + > static void test_smbios_structs(test_data *data, SmbiosEntryPointType ep_type) > { > DECLARE_BITMAP(struct_bitmap, SMBIOS_MAX_TYPE+1) = { 0 }; > > SmbiosEntryPoint *ep_table = &data->smbios_ep_table; > - int i = 0, len, max_len = 0; > + int i = 0, len, max_len = 0, type4_count = 0; > uint8_t type, prv, crt; > uint64_t addr; > > @@ -704,6 +714,7 @@ static void test_smbios_structs(test_data *data, SmbiosEntryPointType ep_type) > > if (type == 4) { > smbios_cpu_test(data, addr, ep_type); > + type4_count++; > } > > /* seek to end of unformatted string area of this struct ("\0\0") */ > @@ -747,6 +758,8 @@ static void test_smbios_structs(test_data *data, SmbiosEntryPointType ep_type) > for (i = 0; i < data->required_struct_types_len; i++) { > g_assert(test_bit(data->required_struct_types[i], struct_bitmap)); > } > + > + smbios_type4_count_test(data, type4_count); > } > > static void test_acpi_load_tables(test_data *data) > @@ -970,6 +983,22 @@ static void test_acpi_q35_tcg(void) > free_test_data(&data); > } > > +static void test_acpi_q35_tcg_type4_count(void) > +{ > + test_data data = { > + .machine = MACHINE_Q35, > + .variant = ".type4-count", > + .required_struct_types = base_required_struct_types, > + .required_struct_types_len = ARRAY_SIZE(base_required_struct_types), > + .type4_count = 5, > + }; > + > + test_acpi_one("-machine smbios-entry-point-type=64 " > + "-smp cpus=100,maxcpus=120,sockets=5," > + "dies=2,cores=4,threads=3", &data); I'd add to commit message an explanation why above topology was picked up > + free_test_data(&data); > +} > + > static void test_acpi_q35_tcg_core_count2(void) > { > test_data data = { > @@ -2135,6 +2164,8 @@ int main(int argc, char *argv[]) > if (has_kvm) { > qtest_add_func("acpi/q35/kvm/xapic", test_acpi_q35_kvm_xapic); > qtest_add_func("acpi/q35/kvm/dmar", test_acpi_q35_kvm_dmar); > + qtest_add_func("acpi/q35/type4-count", > + test_acpi_q35_tcg_type4_count); > qtest_add_func("acpi/q35/core-count2", > test_acpi_q35_tcg_core_count2); > }
On Fri, Sep 15, 2023 at 02:54:32PM +0200, Igor Mammedov wrote: > Date: Fri, 15 Sep 2023 14:54:32 +0200 > From: Igor Mammedov <imammedo@redhat.com> > Subject: Re: [PATCH 03/16] tests: bios-tables-test: Add test for smbios > type4 count > X-Mailer: Claws Mail 4.1.1 (GTK 3.24.38; x86_64-redhat-linux-gnu) > > On Fri, 25 Aug 2023 11:36:06 +0800 > Zhao Liu <zhao1.liu@linux.intel.com> wrote: > > > From: Zhao Liu <zhao1.liu@intel.com> > > > > This tests the commit d79a284a44bb7 ("hw/smbios: Fix smbios_smp_sockets > > calculation"). > > > > Test the count of type4 tables for multiple sockets case. > > > > Suggested-by: Igor Mammedov <imammedo@redhat.com> > > Signed-off-by: Zhao Liu <zhao1.liu@intel.com> > > --- > > tests/qtest/bios-tables-test.c | 33 ++++++++++++++++++++++++++++++++- > > 1 file changed, 32 insertions(+), 1 deletion(-) > > > > diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c > > index 47ba20b9579b..8679255449cf 100644 > > --- a/tests/qtest/bios-tables-test.c > > +++ b/tests/qtest/bios-tables-test.c > > @@ -97,6 +97,7 @@ typedef struct { > > uint16_t smbios_core_count2; > > uint8_t *required_struct_types; > > int required_struct_types_len; > > + int type4_count; > > QTestState *qts; > > } test_data; > > > > @@ -673,12 +674,21 @@ static void smbios_cpu_test(test_data *data, uint32_t addr, > > } > > } > > > > +static void smbios_type4_count_test(test_data *data, int type4_count) > > +{ > > + int expected_type4_count = data->type4_count; > > + > > + if (expected_type4_count) { > > + g_assert_cmpuint(type4_count, ==, expected_type4_count); > > + } > > +} > > + > > static void test_smbios_structs(test_data *data, SmbiosEntryPointType ep_type) > > { > > DECLARE_BITMAP(struct_bitmap, SMBIOS_MAX_TYPE+1) = { 0 }; > > > > SmbiosEntryPoint *ep_table = &data->smbios_ep_table; > > - int i = 0, len, max_len = 0; > > + int i = 0, len, max_len = 0, type4_count = 0; > > uint8_t type, prv, crt; > > uint64_t addr; > > > > @@ -704,6 +714,7 @@ static void test_smbios_structs(test_data *data, SmbiosEntryPointType ep_type) > > > > if (type == 4) { > > smbios_cpu_test(data, addr, ep_type); > > + type4_count++; > > } > > > > /* seek to end of unformatted string area of this struct ("\0\0") */ > > @@ -747,6 +758,8 @@ static void test_smbios_structs(test_data *data, SmbiosEntryPointType ep_type) > > for (i = 0; i < data->required_struct_types_len; i++) { > > g_assert(test_bit(data->required_struct_types[i], struct_bitmap)); > > } > > + > > + smbios_type4_count_test(data, type4_count); > > } > > > > static void test_acpi_load_tables(test_data *data) > > @@ -970,6 +983,22 @@ static void test_acpi_q35_tcg(void) > > free_test_data(&data); > > } > > > > +static void test_acpi_q35_tcg_type4_count(void) > > +{ > > + test_data data = { > > + .machine = MACHINE_Q35, > > + .variant = ".type4-count", > > + .required_struct_types = base_required_struct_types, > > + .required_struct_types_len = ARRAY_SIZE(base_required_struct_types), > > + .type4_count = 5, > > + }; > > + > > + test_acpi_one("-machine smbios-entry-point-type=64 " > > + "-smp cpus=100,maxcpus=120,sockets=5," > > + "dies=2,cores=4,threads=3", &data); > > I'd add to commit message an explanation why above topology was picked up Ok. I'll. Because it defines mutiple sockets and smbios build type4 per socket. Thanks, Zhao > > > + free_test_data(&data); > > +} > > + > > static void test_acpi_q35_tcg_core_count2(void) > > { > > test_data data = { > > @@ -2135,6 +2164,8 @@ int main(int argc, char *argv[]) > > if (has_kvm) { > > qtest_add_func("acpi/q35/kvm/xapic", test_acpi_q35_kvm_xapic); > > qtest_add_func("acpi/q35/kvm/dmar", test_acpi_q35_kvm_dmar); > > + qtest_add_func("acpi/q35/type4-count", > > + test_acpi_q35_tcg_type4_count); > > qtest_add_func("acpi/q35/core-count2", > > test_acpi_q35_tcg_core_count2); > > } >
diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c index 47ba20b9579b..8679255449cf 100644 --- a/tests/qtest/bios-tables-test.c +++ b/tests/qtest/bios-tables-test.c @@ -97,6 +97,7 @@ typedef struct { uint16_t smbios_core_count2; uint8_t *required_struct_types; int required_struct_types_len; + int type4_count; QTestState *qts; } test_data; @@ -673,12 +674,21 @@ static void smbios_cpu_test(test_data *data, uint32_t addr, } } +static void smbios_type4_count_test(test_data *data, int type4_count) +{ + int expected_type4_count = data->type4_count; + + if (expected_type4_count) { + g_assert_cmpuint(type4_count, ==, expected_type4_count); + } +} + static void test_smbios_structs(test_data *data, SmbiosEntryPointType ep_type) { DECLARE_BITMAP(struct_bitmap, SMBIOS_MAX_TYPE+1) = { 0 }; SmbiosEntryPoint *ep_table = &data->smbios_ep_table; - int i = 0, len, max_len = 0; + int i = 0, len, max_len = 0, type4_count = 0; uint8_t type, prv, crt; uint64_t addr; @@ -704,6 +714,7 @@ static void test_smbios_structs(test_data *data, SmbiosEntryPointType ep_type) if (type == 4) { smbios_cpu_test(data, addr, ep_type); + type4_count++; } /* seek to end of unformatted string area of this struct ("\0\0") */ @@ -747,6 +758,8 @@ static void test_smbios_structs(test_data *data, SmbiosEntryPointType ep_type) for (i = 0; i < data->required_struct_types_len; i++) { g_assert(test_bit(data->required_struct_types[i], struct_bitmap)); } + + smbios_type4_count_test(data, type4_count); } static void test_acpi_load_tables(test_data *data) @@ -970,6 +983,22 @@ static void test_acpi_q35_tcg(void) free_test_data(&data); } +static void test_acpi_q35_tcg_type4_count(void) +{ + test_data data = { + .machine = MACHINE_Q35, + .variant = ".type4-count", + .required_struct_types = base_required_struct_types, + .required_struct_types_len = ARRAY_SIZE(base_required_struct_types), + .type4_count = 5, + }; + + test_acpi_one("-machine smbios-entry-point-type=64 " + "-smp cpus=100,maxcpus=120,sockets=5," + "dies=2,cores=4,threads=3", &data); + free_test_data(&data); +} + static void test_acpi_q35_tcg_core_count2(void) { test_data data = { @@ -2135,6 +2164,8 @@ int main(int argc, char *argv[]) if (has_kvm) { qtest_add_func("acpi/q35/kvm/xapic", test_acpi_q35_kvm_xapic); qtest_add_func("acpi/q35/kvm/dmar", test_acpi_q35_kvm_dmar); + qtest_add_func("acpi/q35/type4-count", + test_acpi_q35_tcg_type4_count); qtest_add_func("acpi/q35/core-count2", test_acpi_q35_tcg_core_count2); }