On Fri, 25 Aug 2023 11:36:06 +0800 Zhao Liu <[email protected]> wrote:
> From: Zhao Liu <[email protected]> > > 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 <[email protected]> > Signed-off-by: Zhao Liu <[email protected]> > --- > 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); > }
