Am 24.03.2014 11:02, schrieb Marcel Apfelbaum: > There is an issue with iasl on big endian machines: It > cannot disassemble acpi tables taken from little endian > machines, so we cannot check the expected tables. > > The acpi test will check if the expected aml files > can be disassembled, and will issue an warning not > failing the test on those machines until this > problem is solved by the acpica community. > > Signed-off-by: Marcel Apfelbaum <marce...@redhat.com> > --- > V3 -> V4: > Addressed all upstream comments: > - Instead of disabling iasl for big endian machines, > the test checks if the expected aml files can be > disassembled, if not it issues a warning instead > of failing the test > > V2 -> V3: > Addressed Michael S. Tsirkin's review: > - tests don't need to re-run detection, use configure > to figure out if it is an LE machine. > > V1 -> V2: > Addressed an offline tip for a much cleaner > macro line, thanks! > > tests/acpi-test.c | 26 +++++++++++++++----------- > 1 file changed, 15 insertions(+), 11 deletions(-) > > diff --git a/tests/acpi-test.c b/tests/acpi-test.c > index 249fe03..76fbccf 100644 > --- a/tests/acpi-test.c > +++ b/tests/acpi-test.c > @@ -456,13 +456,12 @@ static bool load_asl(GArray *sdts, AcpiSdtTable *sdt) > /* pass 'out' and 'out_err' in order to be redirected */ > ret = g_spawn_command_line_sync(command_line->str, &out, &out_err, NULL, > &error); > g_assert_no_error(error); > - > if (ret) { > ret = g_file_get_contents(sdt->asl_file, (gchar **)&sdt->asl, > &sdt->asl_len, &error); > g_assert(ret); > g_assert_no_error(error); > - g_assert(sdt->asl_len); > + ret = (sdt->asl_len > 0); > } > > g_free(out); > @@ -560,15 +559,20 @@ static void test_acpi_asl(test_data *data) > g_assert(!err || exp_err); > > if (g_strcmp0(asl->str, exp_asl->str)) { > - uint32_t signature = cpu_to_le32(exp_sdt->header.signature); > - sdt->tmp_files_retain = true; > - exp_sdt->tmp_files_retain = true; > - fprintf(stderr, > - "acpi-test: Warning! %.4s mismatch. " > - "Actual [asl:%s, aml:%s], Expected [asl:%s, aml:%s].\n", > - (gchar *)&signature, > - sdt->asl_file, sdt->aml_file, > - exp_sdt->asl_file, exp_sdt->aml_file); > + if (exp_err) { > + fprintf(stderr, > + "Warning! iasl couldn't parse the expected aml\n");
Should these two be g_test_message()s? That's used in other tests - downside is the message appears in the .xml files generated as intermediary for the HTML report but did (in my case) not show up on stdout/stderr. Maybe we should try to fix that? Paolo? Stefan? Regards, Andreas > + } else { > + uint32_t signature = cpu_to_le32(exp_sdt->header.signature); > + sdt->tmp_files_retain = true; > + exp_sdt->tmp_files_retain = true; > + fprintf(stderr, > + "acpi-test: Warning! %.4s mismatch. " > + "Actual [asl:%s, aml:%s], Expected [asl:%s, > aml:%s].\n", > + (gchar *)&signature, > + sdt->asl_file, sdt->aml_file, > + exp_sdt->asl_file, exp_sdt->aml_file); > + } > } > g_string_free(asl, true); > g_string_free(exp_asl, true); > -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg