> On 27-Feb-2024, at 21:17, Igor Mammedov <imammedo@redhat.com> wrote:
>
> Cureently it not possible to run SMBIOS test without ACPI one,
> which gets into the way when testing ACPI-less configs.
>
> Extract SMBIOS testing into separate routines that could also
> be run without ACPI dependency and use that for testing SMBIOS.
>
> As the 1st user add "acpi/piix4/smbios-options" test case.
>
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Ani Sinha <anisinha@redhat.com>
> ---
> tests/qtest/bios-tables-test.c | 47 +++++++++++++++++++++++++++-------
> 1 file changed, 38 insertions(+), 9 deletions(-)
>
> diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c
> index 21811a1ab5..b2992bafa8 100644
> --- a/tests/qtest/bios-tables-test.c
> +++ b/tests/qtest/bios-tables-test.c
> @@ -858,16 +858,8 @@ static void test_vm_prepare(const char *params, test_data *data)
> g_free(args);
> }
>
> -static void process_acpi_tables_noexit(test_data *data)
> +static void process_smbios_tables_noexit(test_data *data)
> {
> - test_acpi_load_tables(data);
> -
> - if (getenv(ACPI_REBUILD_EXPECTED_AML)) {
> - dump_aml_files(data, true);
> - } else {
> - test_acpi_asl(data);
> - }
> -
> /*
> * TODO: make SMBIOS tests work with UEFI firmware,
> * Bug on uefi-test-tools to provide entry point:
> @@ -879,6 +871,27 @@ static void process_acpi_tables_noexit(test_data *data)
> }
> }
>
> +static void test_smbios(const char *params, test_data *data)
> +{
> + test_vm_prepare(params, data);
> + boot_sector_test(data->qts);
> + process_smbios_tables_noexit(data);
> + qtest_quit(data->qts);
> +}
> +
> +static void process_acpi_tables_noexit(test_data *data)
> +{
> + test_acpi_load_tables(data);
> +
> + if (getenv(ACPI_REBUILD_EXPECTED_AML)) {
> + dump_aml_files(data, true);
> + } else {
> + test_acpi_asl(data);
> + }
> +
> + process_smbios_tables_noexit(data);
> +}
> +
> static void process_acpi_tables(test_data *data)
> {
> process_acpi_tables_noexit(data);
> @@ -2064,6 +2077,20 @@ static void test_acpi_q35_pvpanic_isa(void)
> free_test_data(&data);
> }
>
> +static void test_acpi_pc_smbios_options(void)
> +{
> + uint8_t req_type11[] = { 11 };
> + test_data data = {
> + .machine = MACHINE_PC,
> + .variant = ".pc_smbios_options",
> + .required_struct_types = req_type11,
> + .required_struct_types_len = ARRAY_SIZE(req_type11),
> + };
> +
> + test_smbios("-smbios type=11,value=TEST", &data);
> + free_test_data(&data);
> +}
> +
> static void test_oem_fields(test_data *data)
> {
> int i;
> @@ -2215,6 +2242,8 @@ int main(int argc, char *argv[])
> #ifdef CONFIG_POSIX
> qtest_add_func("acpi/piix4/acpierst", test_acpi_piix4_acpi_erst);
> #endif
> + qtest_add_func("acpi/piix4/smbios-options",
> + test_acpi_pc_smbios_options);
> }
> if (qtest_has_machine(MACHINE_Q35)) {
> qtest_add_func("acpi/q35", test_acpi_q35_tcg);
> --
> 2.39.3
>