diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c index d80ea7f7f3..0ce55182f2 100644 --- a/tests/bios-tables-test.c +++ b/tests/bios-tables-test.c @@ -375,6 +375,20 @@ static void test_acpi_asl(test_data *data) sdt = &g_array_index(data->tables, AcpiSdtTable, i); exp_sdt = &g_array_index(exp_data.tables, AcpiSdtTable, i); + if (sdt->aml_len == exp_sdt->aml_len && + !memcmp(sdt->aml, exp_sdt->aml, sdt->aml_len)) { + /* Identical table binaries: no need to disassemble. */ + continue; + } + + fprintf(stderr, + "acpi-test: Warning! %.4s binary file mismatch. " + "Actual [aml:%s], Expected [aml:%s].\n", + exp_sdt->aml, sdt->aml_file, exp_sdt->aml_file); + + all_tables_match = all_tables_match && + test_acpi_find_diff_allowed(exp_sdt); + err = load_asl(data->tables, sdt); asl = normalize_asl(sdt->asl); @@ -413,8 +427,6 @@ static void test_acpi_asl(test_data *data) } } } - all_tables_match = all_tables_match && - test_acpi_find_diff_allowed(exp_sdt); } g_string_free(asl, true); g_string_free(exp_asl, true);