On Mon, Feb 24, 2014 at 02:09:18PM +0200, Marcel Apfelbaum wrote: > If the expected (offline) acpi tables loaded correctly, > it is safe to assume the iasl installation is OK and > issue an error if the actual tables differ from expected > ones. > > Signed-off-by: Marcel Apfelbaum <marce...@redhat.com>
I'm not sure I agree with this one. It turned out to be too aggressive in the past as expected files get out of sync sometimes. What I would do is this: if IASL did not produce errors or warnings on expected files, it should not produce them on actual files either. > --- > tests/acpi-test.c | 24 ++++++++++++++++-------- > 1 file changed, 16 insertions(+), 8 deletions(-) > > diff --git a/tests/acpi-test.c b/tests/acpi-test.c > index 2ce8c18..639b3ab 100644 > --- a/tests/acpi-test.c > +++ b/tests/acpi-test.c > @@ -411,7 +411,7 @@ static bool compare_signature(AcpiSdtTable *sdt, uint32_t > signature) > return sdt->header.signature == signature; > } > > -static void load_asl(GArray *sdts, AcpiSdtTable *sdt) > +static bool load_asl(GArray *sdts, AcpiSdtTable *sdt) > { > AcpiSdtTable *temp; > GError *error = NULL; > @@ -440,18 +440,22 @@ static void load_asl(GArray *sdts, AcpiSdtTable *sdt) > g_string_append_printf(command_line, "-d %s", sdt->aml_file); > > /* pass 'out' and 'out_err' in order to be redirected */ > - g_spawn_command_line_sync(command_line->str, &out, &out_err, NULL, > &error); > + ret = g_spawn_command_line_sync(command_line->str, &out, &out_err, NULL, > &error); > g_assert_no_error(error); > > - 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); > + 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); > + } > > g_free(out); > g_free(out_err); > g_string_free(command_line, true); > + > + return !ret; > } > > #define COMMENT_END "*/" > @@ -518,6 +522,7 @@ static void test_acpi_asl(test_data *data) > int i; > AcpiSdtTable *sdt, *exp_sdt; > test_data exp_data; > + gboolean err; > > memset(&exp_data, 0, sizeof(exp_data)); > exp_data.tables = load_expected_aml(data); > @@ -531,7 +536,7 @@ static void test_acpi_asl(test_data *data) > load_asl(data->tables, sdt); > asl = normalize_asl(sdt->asl); > > - load_asl(exp_data.tables, exp_sdt); > + err = load_asl(exp_data.tables, exp_sdt); > exp_asl = normalize_asl(exp_sdt->asl); > > if (g_strcmp0(asl->str, exp_asl->str)) { > @@ -543,6 +548,9 @@ static void test_acpi_asl(test_data *data) > (gchar *)&exp_sdt->header.signature, > sdt->asl_file, sdt->aml_file, > exp_sdt->asl_file, exp_sdt->aml_file); > + if (!err) { /* expected data loaded, iasl OK */ > + g_assert(false); > + } > } > g_string_free(asl, true); > g_string_free(exp_asl, true); > -- > 1.8.3.1