summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorMichael S. Tsirkin <mst@redhat.com>2019-06-04 23:41:32 -0400
committerMichael S. Tsirkin <mst@redhat.com>2019-06-05 15:54:15 -0400
commit7f36f0930ffec11a551844c0452dbce33f80a525 (patch)
treebcf203a7351a1145cedb147ad676004443ee76ff
parentab6b6a7777449905a70f7e80790719779e7f3313 (diff)
downloadfocaccia-qemu-7f36f0930ffec11a551844c0452dbce33f80a525.tar.gz
focaccia-qemu-7f36f0930ffec11a551844c0452dbce33f80a525.zip
bios-tables-test: ignore identical binaries
when binary of the tables is identical, there is no need to run iasl
to check that they are functionally equivalent.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r--tests/bios-tables-test.c16
1 files changed, 14 insertions, 2 deletions
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);