[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] tests: report errors when iasl exits with non-z
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH] tests: report errors when iasl exits with non-zero status |
Date: |
Thu, 16 Nov 2017 17:48:55 +0200 |
On Wed, Oct 18, 2017 at 02:15:28PM +0100, Daniel P. Berrange wrote:
> If iasl exits with non-zero status, the test unhelpfully just reports
> that the AML did not match, because the data files it thought iasl
> generated do not exist. This adds an explicit check for the exit status
> of iasl and prints stderr if it was non-zero. Thus gives us a fighting
> chance of diagnosing why iasl failed.
>
> Signed-off-by: Daniel P. Berrange <address@hidden>
Given the state of iasl, I'm not sure this will not
give false positives where iasl returns an error status
but does produce a valid input.
I propose this is reworked to just add a warning about the
bad status, but still attempt to process the file.
> ---
> tests/bios-tables-test.c | 24 ++++++++++++++++++------
> 1 file changed, 18 insertions(+), 6 deletions(-)
>
> diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c
> index 564da45f65..ee441f1e17 100644
> --- a/tests/bios-tables-test.c
> +++ b/tests/bios-tables-test.c
> @@ -304,6 +304,7 @@ static bool load_asl(GArray *sdts, AcpiSdtTable *sdt)
> gchar *out, *out_err;
> gboolean ret;
> int i;
> + int status;
>
> fd = g_file_open_tmp("asl-XXXXXX.dsl", &sdt->asl_file, &error);
> g_assert_no_error(error);
> @@ -324,14 +325,25 @@ static bool 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 */
> - ret = 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,
> &status, &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);
> - ret = (sdt->asl_len > 0);
> + if (status != 0) {
> + g_printerr("'%s' exited with status %d", command_line->str,
> status);
> + if (!g_str_equal(out, "")) {
> + g_printerr("%s", out);
> + }
> + if (!g_str_equal(out_err, "")) {
> + g_printerr("%s", out_err);
> + }
> + ret = FALSE;
> + } else {
> + ret = g_file_get_contents(sdt->asl_file, (gchar **)&sdt->asl,
> + &sdt->asl_len, &error);
> + g_assert(ret);
> + g_assert_no_error(error);
> + ret = (sdt->asl_len > 0);
> + }
> }
>
> g_free(out);
> --
> 2.13.6
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH] tests: report errors when iasl exits with non-zero status,
Michael S. Tsirkin <=