qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v5 40/48] glib-compat: add 2.38/2.40/2.46 assert


From: Claudio Fontana
Subject: Re: [Qemu-devel] [PATCH v5 40/48] glib-compat: add 2.38/2.40/2.46 asserts
Date: Mon, 5 Oct 2015 12:56:30 +0200
User-agent: Mozilla/5.0 (Windows NT 6.1; rv:38.0) Gecko/20100101 Thunderbird/38.2.0

On 02.10.2015 21:09, address@hidden wrote:
> From: Marc-André Lureau <address@hidden>
> 
> Those are mostly useful for writing tests.
> 
> Signed-off-by: Marc-André Lureau <address@hidden>
> ---
>  include/glib-compat.h | 61 
> +++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 61 insertions(+)
> 
> diff --git a/include/glib-compat.h b/include/glib-compat.h
> index 318e000..fb25f43 100644
> --- a/include/glib-compat.h
> +++ b/include/glib-compat.h
> @@ -165,4 +165,65 @@ static inline GThread *g_thread_new(const char *name,
>  #define CompatGCond GCond
>  #endif /* glib 2.31 */
>  
> +#ifndef g_assert_true
> +#define g_assert_true(expr)                                                  
>   \
> +    do {                                                                     
>   \
> +        if (G_LIKELY(expr)) {                                                
>   \
> +        } else {                                                             
>   \
> +            g_assertion_message(G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 
>   \
> +                                "'" #expr "' should be TRUE");               
>   \
> +        }                                                                    
>   \
> +    } while (0)
> +#endif
> +
> +#ifndef g_assert_false
> +#define g_assert_false(expr)                                                 
>   \
> +    do {                                                                     
>   \
> +        if (G_LIKELY(!(expr))) {                                             
>   \
> +        } else {                                                             
>   \
> +            g_assertion_message(G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 
>   \
> +                                "'" #expr "' should be FALSE");              
>   \
> +        }                                                                    
>   \
> +    } while (0)
> +#endif
> +
> +#ifndef g_assert_null
> +#define g_assert_null(expr)                                                  
>   \
> +    do {                                                                     
>   \
> +        if (G_LIKELY((expr) == NULL)) {                                      
>   \
> +        } else {                                                             
>   \
> +            g_assertion_message(G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 
>   \
> +                                "'" #expr "' should be NULL");               
>   \
> +        }                                                                    
>   \
> +    } while (0)
> +#endif
> +
> +#ifndef g_assert_nonnull
> +#define g_assert_nonnull(expr)                                               
>   \
> +    do {                                                                     
>   \
> +        if (G_LIKELY((expr) != NULL)) {                                      
>   \
> +        } else {                                                             
>   \
> +            g_assertion_message(G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 
>   \
> +                                "'" #expr "' should not be NULL");           
>   \
> +        }                                                                    
>   \
> +    } while (0)
> +#endif
> +
> +#ifndef g_assert_cmpmem
> +#define g_assert_cmpmem(m1, l1, m2, l2)                                      
>   \
> +    do {                                                                     
>   \
> +        gconstpointer __m1 = m1, __m2 = m2;                                  
>   \
> +        int __l1 = l1, __l2 = l2;                                            
>   \
> +        if (__l1 != __l2) {                                                  
>   \
> +            g_assertion_message_cmpnum(                                      
>   \
> +                G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC,                 
>   \
> +                #l1 " (len(" #m1 ")) == " #l2 " (len(" #m2 "))", __l1, "==", 
>   \
> +                __l2, 'i');                                                  
>   \
> +        } else if (memcmp(__m1, __m2, __l1) != 0) {                          
>   \
> +            g_assertion_message(G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, 
>   \
> +                                "assertion failed (" #m1 " == " #m2 ")");    
>   \
> +        }                                                                    
>   \
> +    } while (0)
> +#endif
> +
>  #endif
> 

Hi, I did not find g_assertion_message in any of the exported GLIB APIs.
In fact, I found it in glib/gtestutils.h under the section "internal ABI".
This is a hint that we should not be using it right?

Ciao,

CLaudio



reply via email to

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