[Spice-devel] [PATCH spice-server 10/10] tests: Avoid to disable all deprecation warnings just for expect functions

Frediano Ziglio fziglio at redhat.com
Tue Sep 12 07:48:06 UTC 2017


> 
> On Mon, Sep 11, 2017 at 11:15:47AM +0100, Frediano Ziglio wrote:
> > In case GLib don't provide these functions we use replacements so
> > there's no need to have a warning if these functions are called.
> > This potentially capture other compatibility issues in the tests
> > that would be ignored having all deprecation warnings disabled.
> > Tested with GLib 2.28 and 2.52.
> > 
> > Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> > ---
> >  server/tests/Makefile.am        | 12 ------------
> >  server/tests/test-glib-compat.h | 20 ++++++++++++++++++++
> >  2 files changed, 20 insertions(+), 12 deletions(-)
> > 
> > diff --git a/server/tests/Makefile.am b/server/tests/Makefile.am
> > index d50c590c3..2efc136d4 100644
> > --- a/server/tests/Makefile.am
> > +++ b/server/tests/Makefile.am
> > @@ -128,18 +128,6 @@ libtest_stat4_a_CPPFLAGS = $(AM_CPPFLAGS)
> > -DTEST_COMPRESS_STAT=1 -DTEST_RED_WORK
> >  
> >  test_qxl_parsing_LDADD = ../libserver.la $(LDADD)
> >  
> > -# Fallback implementations are provided for older glibs for the recent
> > glib
> > -# methods this test is using, so no need to warn about them
> > -test_vdagent_CPPFLAGS =			\
> > -	$(AM_CPPFLAGS)			\
> > -	-UGLIB_VERSION_MIN_REQUIRED	\
> > -	-UGLIB_VERSION_MAX_ALLOWED	\
> > -	$(NULL)
> > -test_codecs_parsing_CPPFLAGS = $(test_vdagent_CPPFLAGS)
> > -test_qxl_parsing_CPPFLAGS = $(test_vdagent_CPPFLAGS)
> > -test_fail_on_null_core_interface_CPPFLAGS = $(test_vdagent_CPPFLAGS)
> > -test_leaks_CPPFLAGS = $(test_vdagent_CPPFLAGS)
> > -
> >  if HAVE_GSTREAMER
> >  test_gst_SOURCES = test-gst.c \
> >  	$(NULL)
> > diff --git a/server/tests/test-glib-compat.h
> > b/server/tests/test-glib-compat.h
> > index a364012f4..91425cc44 100644
> > --- a/server/tests/test-glib-compat.h
> > +++ b/server/tests/test-glib-compat.h
> > @@ -29,6 +29,26 @@ void g_test_assert_expected_messages_internal(const char
> > *domain,
> >      g_test_assert_expected_messages_internal (G_LOG_DOMAIN, __FILE__,
> >      __LINE__, G_STRFUNC)
> >  void g_test_expect_message(const gchar *log_domain, GLogLevelFlags
> >  log_level,
> >                             const gchar *pattern);
> > +#else
> > +/* this avoids deprecation warning */
> > +static inline void
> > +g_test_expect_message_no_warnings(const gchar *log_domain, GLogLevelFlags
> > log_level,
> > +                                  const gchar *pattern)
> > +{
> > +    G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> > +    g_test_expect_message(log_domain, log_level, pattern);
> > +    G_GNUC_END_IGNORE_DEPRECATIONS
> > +}
> > +static inline void
> > +g_test_assert_expected_messages_internal_no_warnings(const char *domain,
> > +                                                     const char *file, int
> > line, const char *func)
> > +{
> > +    G_GNUC_BEGIN_IGNORE_DEPRECATIONS
> > +    g_test_assert_expected_messages_internal(domain, file, line, func);
> > +    G_GNUC_END_IGNORE_DEPRECATIONS
> > +}
> > +#define g_test_expect_message g_test_expect_message_no_warnings
> > +#define g_test_assert_expected_messages_internal
> > g_test_assert_expected_messages_internal_no_warnings
> 
> I don't understand why you define g_test_assert_expected_messages_internal?
> The glib < 2.34 case has
> #define g_test_assert_expected_messages() \
>     g_test_assert_expected_messages_internal (G_LOG_DOMAIN, __FILE__,
>     __LINE__, G_STRFUNC)
> but I see no such #define in the newer glib case?
> 

Is defined by GLib itself. In this case the macro is fine, it needs to be
a macro and I cannot turn it to a function as __LINE__ and __FILE__ would
refer to the function defined and not to calling code.
That's why I wrap the function used in g_test_assert_expected_messages
instead of redefining/defining the macro.

> Christophe
> 

Frediano


More information about the Spice-devel mailing list