gtestutils: make the new assert messages more detailed
authorDan Winship <danw@gnome.org>
Fri, 14 Feb 2014 21:12:50 +0000 (16:12 -0500)
committerDan Winship <danw@gnome.org>
Mon, 17 Feb 2014 16:33:37 +0000 (11:33 -0500)
g_assert_true(), g_assert_false(), g_assert_null(), and
g_assert_nonnull() simply printed out the expression they were
checking, without any further explanation of what went wrong. (In
particular, "g_assert_true(x)" and "g_assert_false(x)" would both
print the same thing on failure.) Add a little bit more context.

https://bugzilla.gnome.org/show_bug.cgi?id=724385

glib/gtestutils.h

index d6b3e52..49986d2 100644 (file)
@@ -66,19 +66,19 @@ typedef void (*GTestFixtureFunc) (gpointer      fixture,
                                                  #err, err, dom, c); } while (0)
 #define g_assert_true(expr)             do { if G_LIKELY (expr) ; else \
                                                g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
-                                                                    #expr); \
+                                                                    "'" #expr "' should be TRUE"); \
                                            } while (0)
 #define g_assert_false(expr)            do { if G_LIKELY (!(expr)) ; else \
                                                g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
-                                                                    #expr); \
+                                                                    "'" #expr "' should be FALSE"); \
                                            } while (0)
 #define g_assert_null(expr)             do { if G_LIKELY ((expr) == NULL) ; else \
                                                g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
-                                                                    #expr); \
+                                                                    "'" #expr "' should be NULL"); \
                                            } while (0)
 #define g_assert_nonnull(expr)          do { if G_LIKELY ((expr) != NULL) ; else \
                                                g_assertion_message (G_LOG_DOMAIN, __FILE__, __LINE__, G_STRFUNC, \
-                                                                    #expr); \
+                                                                    "'" #expr "' should not be NULL"); \
                                            } while (0)
 #ifdef G_DISABLE_ASSERT
 #define g_assert_not_reached()          do { (void) 0; } while (0)