[Spice-devel,spice-common] Fix build in systems with Glib version older than 2.38

Submitted by Eduardo Lima (Etrunko) on March 30, 2016, 12:12 p.m.

Details

Message ID 1459339976-16765-1-git-send-email-etrunko@redhat.com
State New
Headers show
Series "Fix build in systems with Glib version older than 2.38" ( rev: 1 ) in Spice

Not browsing as part of any series.

Commit Message

Eduardo Lima (Etrunko) March 30, 2016, 12:12 p.m.
From: "Eduardo Lima (Etrunko)" <etrunko@redhat.com>

Tests now include functions only available in glib 2.38. To avoid
setting the dependency bar too high, we simply put them between #ifdef
guards.

Signed-off-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
---
 tests/test-logging.c     | 4 ++++
 tests/test-marshallers.c | 7 +++++++
 2 files changed, 11 insertions(+)

Patch hide | download patch | download mbox

diff --git a/tests/test-logging.c b/tests/test-logging.c
index eed149e..69eff24 100644
--- a/tests/test-logging.c
+++ b/tests/test-logging.c
@@ -43,6 +43,7 @@  LOG_OTHER_HELPER(message, MESSAGE)
 LOG_OTHER_HELPER(warning, WARNING)
 LOG_OTHER_HELPER(critical, CRITICAL)
 
+#ifdef GLIB_VERSION_2_38
 /* Checks that spice_warning() aborts after changing SPICE_ABORT_LEVEL */
 static void test_spice_abort_level(void)
 {
@@ -376,6 +377,7 @@  static void test_spice_g_messages_debug_all(void)
     g_test_trap_assert_stdout("*spice_debug\n*spice_info\n*g_debug\n*g_info\n*other_debug\n*other_info\n");
     g_test_trap_assert_stderr("*g_message\n*other_message\n");
 }
+#endif /* GLIB_VERSION_2_38 */
 
 static void handle_sigabrt(int sig)
 {
@@ -399,6 +401,7 @@  int main(int argc, char **argv)
      * test cases are going to test */
     g_log_set_always_fatal(fatal_mask & G_LOG_LEVEL_MASK);
 
+#ifdef GLIB_VERSION_2_38
     g_test_add_func("/spice-common/spice-abort-level", test_spice_abort_level);
     g_test_add_func("/spice-common/spice-abort-level-gwarning", test_spice_abort_level_g_warning);
     g_test_add_func("/spice-common/spice-debug-level", test_spice_debug_level);
@@ -412,6 +415,7 @@  int main(int argc, char **argv)
     g_test_add_func("/spice-common/spice-fatal-return-if-fail", test_spice_fatal_return_if_fail);
     g_test_add_func("/spice-common/spice-non-fatal-greturn-if-fail", test_spice_non_fatal_g_return_if_fail);
     g_test_add_func("/spice-common/spice-fatal-warning", test_spice_fatal_warning);
+#endif /* GLIB_VERSION_2_38 */
 
     return g_test_run();
 }
diff --git a/tests/test-marshallers.c b/tests/test-marshallers.c
index d2c80e5..bc27b50 100644
--- a/tests/test-marshallers.c
+++ b/tests/test-marshallers.c
@@ -4,6 +4,13 @@ 
 #include "common/marshaller.h"
 #include "generated_test_marshallers.h"
 
+#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); \
+                                           } while (0)
+#endif
+
 static uint8_t expected_data[] = { 0x02, 0x00, 0x00, 0x00, /* data_size */
                                    0x08, 0x00, 0x00, 0x00, /* data offset */
                                    0xef, 0xcd, 0xab, 0x90, 0x78, 0x56, 0x34, 0x12, /* data */

Comments

On Wed, Mar 30, 2016 at 09:12:56AM -0300, Eduardo Lima (Etrunko) wrote:
> From: "Eduardo Lima (Etrunko)" <etrunko@redhat.com>
> 
> Tests now include functions only available in glib 2.38. To avoid
> setting the dependency bar too high, we simply put them between #ifdef
> guards.
> 
> Signed-off-by: Eduardo Lima (Etrunko) <etrunko@redhat.com>
> ---
>  tests/test-logging.c     | 4 ++++
>  tests/test-marshallers.c | 7 +++++++
>  2 files changed, 11 insertions(+)
> 
> diff --git a/tests/test-logging.c b/tests/test-logging.c
> index eed149e..69eff24 100644
> --- a/tests/test-logging.c
> +++ b/tests/test-logging.c
> @@ -43,6 +43,7 @@ LOG_OTHER_HELPER(message, MESSAGE)
>  LOG_OTHER_HELPER(warning, WARNING)
>  LOG_OTHER_HELPER(critical, CRITICAL)
>  
> +#ifdef GLIB_VERSION_2_38

Would be better as

#if GLIB_CHECK_VERSION(2,38,0)

>  /* Checks that spice_warning() aborts after changing SPICE_ABORT_LEVEL */
>  static void test_spice_abort_level(void)
>  {
> @@ -376,6 +377,7 @@ static void test_spice_g_messages_debug_all(void)
>      g_test_trap_assert_stdout("*spice_debug\n*spice_info\n*g_debug\n*g_info\n*other_debug\n*other_info\n");
>      g_test_trap_assert_stderr("*g_message\n*other_message\n");
>  }
> +#endif /* GLIB_VERSION_2_38 */
>  
>  static void handle_sigabrt(int sig)
>  {
> @@ -399,6 +401,7 @@ int main(int argc, char **argv)
>       * test cases are going to test */
>      g_log_set_always_fatal(fatal_mask & G_LOG_LEVEL_MASK);
>  
> +#ifdef GLIB_VERSION_2_38
>      g_test_add_func("/spice-common/spice-abort-level", test_spice_abort_level);
>      g_test_add_func("/spice-common/spice-abort-level-gwarning", test_spice_abort_level_g_warning);
>      g_test_add_func("/spice-common/spice-debug-level", test_spice_debug_level);
> @@ -412,6 +415,7 @@ int main(int argc, char **argv)
>      g_test_add_func("/spice-common/spice-fatal-return-if-fail", test_spice_fatal_return_if_fail);
>      g_test_add_func("/spice-common/spice-non-fatal-greturn-if-fail", test_spice_non_fatal_g_return_if_fail);
>      g_test_add_func("/spice-common/spice-fatal-warning", test_spice_fatal_warning);
> +#endif /* GLIB_VERSION_2_38 */
>  
>      return g_test_run();
>  }
> diff --git a/tests/test-marshallers.c b/tests/test-marshallers.c
> index d2c80e5..bc27b50 100644
> --- a/tests/test-marshallers.c
> +++ b/tests/test-marshallers.c
> @@ -4,6 +4,13 @@
>  #include "common/marshaller.h"
>  #include "generated_test_marshallers.h"
>  
> +#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); \
> +                                           } while (0)

I'd just go with #define g_assert_true g_assert

Christophe