qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PULL v3 06/13] glib-compat: add 2.38/2.40/2.46 asserts


From: Michael Roth
Subject: [Qemu-devel] [PULL v3 06/13] glib-compat: add 2.38/2.40/2.46 asserts
Date: Sat, 17 Oct 2015 11:59:13 -0500

From: Marc-André Lureau <address@hidden>

Those are mostly useful for writing tests.

Signed-off-by: Marc-André Lureau <address@hidden>
Reviewed-by: Claudio Fontana <address@hidden>
Signed-off-by: Michael Roth <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
-- 
1.9.1




reply via email to

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