On Fri, Dec 29, 2017 at 04:16:42PM +0100, Igor Mammedov wrote: > It turns out that FADT isn't actually tested for changes > against reference table, since it happens to be the 1st > table in RSDT which is currently ignored. > Fix it by making sure that all tables from RSDT are added > to test list. > > Signed-off-by: Igor Mammedov <imamm...@redhat.com>
This was intentional, wasn't it? The reason IIRC was that FADT includes things like the DSDT address which can change at any time. So I think we'll have to tweak the FADT to compare it. E.g. replace any non-zero pointer with a known pattern, and fix up the checksum. What do you think? > --- > tests/bios-tables-test.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c > index 81c558e..c5dccdb 100644 > --- a/tests/bios-tables-test.c > +++ b/tests/bios-tables-test.c > @@ -248,14 +248,14 @@ static void test_acpi_dsdt_table(test_data *data) > /* Load all tables and add to test list directly RSDT referenced tables */ > static void fetch_rsdt_referenced_tables(test_data *data) > { > - int tables_nr = data->rsdt_tables_nr - 1; /* fadt is first */ > + int tables_nr = data->rsdt_tables_nr; > int i; > > for (i = 0; i < tables_nr; i++) { > AcpiSdtTable ssdt_table; > uint32_t addr; > > - addr = le32_to_cpu(data->rsdt_tables_addr[i + 1]); /* fadt is first > */ > + addr = le32_to_cpu(data->rsdt_tables_addr[i]); > fetch_table(&ssdt_table, addr); > > /* Add table to ASL test tables list */ > -- > 2.7.4