@@ -34,6 +34,7 @@ typedef struct {
gchar *asl; /* asl code generated from aml */
gsize asl_len;
gchar *asl_file;
+ bool asl_file_retain; /* do not delete the temp asl */
} QEMU_PACKED AcpiSdtTable;
typedef struct {
@@ -161,7 +162,7 @@ static void free_test_data(test_data *data)
g_free(temp->asl);
}
if (temp->asl_file) {
- if (g_strstr_len(temp->asl_file, -1, "asl-")) {
+ if (!temp->asl_file_retain) {
unlink(temp->asl_file);
}
g_free(temp->asl_file);
@@ -532,7 +533,15 @@ static void test_acpi_asl(test_data *data)
load_asl(exp_data.tables, exp_sdt);
exp_asl = normalize_asl(exp_sdt->asl);
- g_assert(!g_strcmp0(asl->str, exp_asl->str));
+ if (g_strcmp0(asl->str, exp_asl->str)) {
+ sdt->asl_file_retain = true;
+ exp_sdt->asl_file_retain = true;
+ fprintf(stderr,
+ "acpi-test: Warning! %.4s mismatch. "
+ "Orig asl: %s, expected asl %s.\n",
+ (gchar *)&exp_sdt->header.signature,
+ sdt->asl_file, exp_sdt->asl_file);
+ }
g_string_free(asl, true);
g_string_free(exp_asl, true);
}
The asl comparison will break every time the ACPI tables are updated. This may break the git bisect. Instead of failing print a warning on stderr including the retained asl files, so they can be compared offline. Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com> --- tests/acpi-test.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-)