qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH for-2.0 V4] tests/acpi-test: do not fail if iasl


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [PATCH for-2.0 V4] tests/acpi-test: do not fail if iasl is broken
Date: Mon, 24 Mar 2014 12:42:26 +0200

On Mon, Mar 24, 2014 at 12:02:33PM +0200, Marcel Apfelbaum wrote:
> 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 <address@hidden>

Applied, improvements such as these suggested by Andreas
can be incremental on top.

> ---
> 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");
> +            } 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);
> -- 
> 1.8.3.1



reply via email to

[Prev in Thread] Current Thread [Next in Thread]