From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42801) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zj3Ri-0005wO-F7 for qemu-devel@nongnu.org; Mon, 05 Oct 2015 06:56:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zj3Rd-000555-Bk for qemu-devel@nongnu.org; Mon, 05 Oct 2015 06:56:42 -0400 Received: from lhrrgout.huawei.com ([194.213.3.17]:13761) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zj3Rd-00054r-3T for qemu-devel@nongnu.org; Mon, 05 Oct 2015 06:56:37 -0400 References: <1443812991-17356-1-git-send-email-marcandre.lureau@redhat.com> <1443812991-17356-41-git-send-email-marcandre.lureau@redhat.com> From: Claudio Fontana Message-ID: <5612575E.2090604@huawei.com> Date: Mon, 5 Oct 2015 12:56:30 +0200 MIME-Version: 1.0 In-Reply-To: <1443812991-17356-41-git-send-email-marcandre.lureau@redhat.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH v5 40/48] glib-compat: add 2.38/2.40/2.46 asserts List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: marcandre.lureau@redhat.com, qemu-devel@nongnu.org Cc: pbonzini@redhat.com, drjones@redhat.com, cam@cs.ualberta.ca, stefanha@redhat.com On 02.10.2015 21:09, marcandre.lureau@redhat.com wrote: > From: Marc-André Lureau > > Those are mostly useful for writing tests. > > Signed-off-by: Marc-André Lureau > --- > 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