qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] tests/libqos: Utilize newer glib spawn check


From: Thomas Huth
Subject: Re: [Qemu-devel] [PATCH] tests/libqos: Utilize newer glib spawn check
Date: Wed, 22 Aug 2018 09:36:18 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1

On 2018-08-21 21:05, Eric Blake wrote:
> During development, I got a 'make check' failure that claimed:
> 
> qemu-img returned status code 32512
> **
> ERROR:tests/libqos/libqos.c:202:mkimg: assertion failed: (!rc)
> 
> But 32512 is too big for a normal exit status value, which means we
> failed to use WEXITSTATUS() to shift the bits to the desired value
> for printing.  However, instead of worrying about how to portably
> parse g_spawn()'s rc in the proper platform-dependent manner, it's
> better to just rely on the fact that we now require glib 2.40 (since
> commit e7b3af815) and can therefore use glib's portable checker
> instead, where the message under my same condition improves to:
> 
> Child process exited with code 127
> **
> ERROR:tests/libqos/libqos.c:192:mkimg: assertion failed: (ret && !err)
> 
> Signed-off-by: Eric Blake <address@hidden>
> 
> ---
> This appears to be the only remaining vestige of a comment mentioning
> glib < 2.40.
> ---
>  tests/libqos/libqos.c | 12 +-----------
>  1 file changed, 1 insertion(+), 11 deletions(-)
> 
> diff --git a/tests/libqos/libqos.c b/tests/libqos/libqos.c
> index 013ca68581c..c5141873448 100644
> --- a/tests/libqos/libqos.c
> +++ b/tests/libqos/libqos.c
> @@ -185,22 +185,12 @@ void mkimg(const char *file, const char *fmt, unsigned 
> size_mb)
>      cli = g_strdup_printf("%s create -f %s %s %uM", qemu_img_abs_path,
>                            fmt, file, size_mb);
>      ret = g_spawn_command_line_sync(cli, &out, &out2, &rc, &err);
> -    if (err) {
> +    if (err || !g_spawn_check_exit_status(rc, &err)) {
>          fprintf(stderr, "%s\n", err->message);
>          g_error_free(err);
>      }
>      g_assert(ret && !err);
> 
> -    /* In glib 2.34, we have g_spawn_check_exit_status. in 2.12, we don't.
> -     * glib 2.43.91 implementation assumes that any non-zero is an error for
> -     * windows, but uses extra precautions for Linux. However,
> -     * 0 is only possible if the program exited normally, so that should be
> -     * sufficient for our purposes on all platforms, here. */
> -    if (rc) {
> -        fprintf(stderr, "qemu-img returned status code %d\n", rc);
> -    }
> -    g_assert(!rc);
> -
>      g_free(out);
>      g_free(out2);
>      g_free(cli);
> 

Reviewed-by: Thomas Huth <address@hidden>



reply via email to

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