[Spice-devel] [PATCH spice-common 1/4] log: replace spice log with glib

marcandre.lureau at redhat.com marcandre.lureau at redhat.com
Mon Jun 12 08:19:51 UTC 2017


From: Marc-André Lureau <marcandre.lureau at redhat.com>

Remove all the deprecated spice log macro/environment variables
facility in favour of glib. The following patches will bring some new
log macro with "category" and structured logging.

Signed-off-by: Marc-André Lureau <marcandre.lureau at redhat.com>
---
 common/log.c         | 177 -----------------------------
 common/log.h         | 121 ++++++++------------
 tests/test-logging.c | 316 +--------------------------------------------------
 3 files changed, 52 insertions(+), 562 deletions(-)

diff --git a/common/log.c b/common/log.c
index 92f5bc0..6a15a30 100644
--- a/common/log.c
+++ b/common/log.c
@@ -18,180 +18,3 @@
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
-
-#include <glib.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <sys/types.h>
-#ifndef _MSC_VER
-#include <unistd.h>
-#endif
-
-#include "log.h"
-#include "backtrace.h"
-
-static int glib_debug_level = INT_MAX;
-static int abort_mask = 0;
-
-#ifndef SPICE_ABORT_MASK_DEFAULT
-#ifdef SPICE_DISABLE_ABORT
-#define SPICE_ABORT_MASK_DEFAULT 0
-#else
-#define SPICE_ABORT_MASK_DEFAULT (G_LOG_LEVEL_CRITICAL|G_LOG_LEVEL_ERROR)
-#endif
-#endif
-
-typedef enum {
-    SPICE_LOG_LEVEL_ERROR,
-    SPICE_LOG_LEVEL_CRITICAL,
-    SPICE_LOG_LEVEL_WARNING,
-    SPICE_LOG_LEVEL_INFO,
-    SPICE_LOG_LEVEL_DEBUG,
-} SpiceLogLevel;
-
-static GLogLevelFlags spice_log_level_to_glib(SpiceLogLevel level)
-{
-    static const GLogLevelFlags glib_levels[] = {
-        [ SPICE_LOG_LEVEL_ERROR ] = G_LOG_LEVEL_ERROR,
-        [ SPICE_LOG_LEVEL_CRITICAL ] = G_LOG_LEVEL_CRITICAL,
-        [ SPICE_LOG_LEVEL_WARNING ] = G_LOG_LEVEL_WARNING,
-        [ SPICE_LOG_LEVEL_INFO ] = G_LOG_LEVEL_INFO,
-        [ SPICE_LOG_LEVEL_DEBUG ] = G_LOG_LEVEL_DEBUG,
-    };
-    g_return_val_if_fail (level >= 0, G_LOG_LEVEL_ERROR);
-    g_return_val_if_fail (level < G_N_ELEMENTS(glib_levels), G_LOG_LEVEL_DEBUG);
-
-    return glib_levels[level];
-}
-
-static void spice_log_set_debug_level(void)
-{
-    if (glib_debug_level == INT_MAX) {
-        const char *debug_str = g_getenv("SPICE_DEBUG_LEVEL");
-        if (debug_str != NULL) {
-            int debug_level;
-            char *debug_env;
-
-            /* FIXME: To be removed after enough deprecation time */
-            g_warning("Setting SPICE_DEBUG_LEVEL is deprecated, use G_MESSAGES_DEBUG instead");
-            debug_level = atoi(debug_str);
-            if (debug_level > SPICE_LOG_LEVEL_DEBUG) {
-                debug_level = SPICE_LOG_LEVEL_DEBUG;
-            }
-            glib_debug_level = spice_log_level_to_glib(debug_level);
-
-            /* If the debug level is too high, make sure we don't try to enable
-             * display of glib debug logs */
-            if (debug_level < SPICE_LOG_LEVEL_INFO)
-                return;
-
-            /* Make sure GLib default log handler will show the debug messages. Messing with
-             * environment variables like this is ugly, but this only happens when the legacy
-             * SPICE_DEBUG_LEVEL is used
-             */
-            debug_env = (char *)g_getenv("G_MESSAGES_DEBUG");
-            if (debug_env == NULL) {
-                g_setenv("G_MESSAGES_DEBUG", SPICE_LOG_DOMAIN, FALSE);
-            } else {
-                debug_env = g_strconcat(debug_env, " ", SPICE_LOG_DOMAIN, NULL);
-                g_setenv("G_MESSAGES_DEBUG", SPICE_LOG_DOMAIN, FALSE);
-                g_free(debug_env);
-            }
-        }
-    }
-}
-
-static void spice_log_set_abort_level(void)
-{
-    if (abort_mask == 0) {
-        const char *abort_str = g_getenv("SPICE_ABORT_LEVEL");
-        if (abort_str != NULL) {
-            GLogLevelFlags glib_abort_level;
-
-            /* FIXME: To be removed after enough deprecation time */
-            g_warning("Setting SPICE_ABORT_LEVEL is deprecated, use G_DEBUG instead");
-            glib_abort_level = spice_log_level_to_glib(atoi(abort_str));
-            unsigned int fatal_mask = G_LOG_FATAL_MASK;
-            while (glib_abort_level >= G_LOG_LEVEL_ERROR) {
-                fatal_mask |= glib_abort_level;
-                glib_abort_level >>= 1;
-            }
-            abort_mask = fatal_mask;
-            g_log_set_fatal_mask(SPICE_LOG_DOMAIN, fatal_mask);
-        } else {
-            abort_mask = SPICE_ABORT_MASK_DEFAULT;
-        }
-    }
-}
-
-static void spice_logger(const gchar *log_domain,
-                         GLogLevelFlags log_level,
-                         const gchar *message,
-                         gpointer user_data G_GNUC_UNUSED)
-{
-    if ((log_level & G_LOG_LEVEL_MASK) > glib_debug_level) {
-        return; // do not print anything
-    }
-    g_log_default_handler(log_domain, log_level, message, NULL);
-}
-
-SPICE_CONSTRUCTOR_FUNC(spice_log_init)
-{
-
-    spice_log_set_debug_level();
-    spice_log_set_abort_level();
-    g_log_set_handler(SPICE_LOG_DOMAIN,
-                      G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
-                      spice_logger, NULL);
-    /* Threading is always enabled from 2.31.0 onwards */
-    /* Our logging is potentially used from different threads.
-     * Older glibs require that g_thread_init() is called when
-     * doing that. */
-#if !GLIB_CHECK_VERSION(2, 31, 0)
-    if (!g_thread_supported())
-        g_thread_init(NULL);
-#endif
-}
-
-static void spice_logv(const char *log_domain,
-                       GLogLevelFlags log_level,
-                       const char *strloc,
-                       const char *function,
-                       const char *format,
-                       va_list args)
-{
-    GString *log_msg;
-
-    if ((log_level & G_LOG_LEVEL_MASK) > glib_debug_level) {
-        return; // do not print anything
-    }
-
-    log_msg = g_string_new(NULL);
-    if (strloc && function) {
-        g_string_append_printf(log_msg, "%s:%s: ", strloc, function);
-    }
-    if (format) {
-        g_string_append_vprintf(log_msg, format, args);
-    }
-    g_log(log_domain, log_level, "%s", log_msg->str);
-    g_string_free(log_msg, TRUE);
-
-    if ((abort_mask & log_level) != 0) {
-        spice_backtrace();
-        abort();
-    }
-}
-
-void spice_log(const char *log_domain,
-               GLogLevelFlags log_level,
-               const char *strloc,
-               const char *function,
-               const char *format,
-               ...)
-{
-    va_list args;
-
-    va_start (args, format);
-    spice_logv (log_domain, log_level, strloc, function, format, args);
-    va_end (args);
-}
diff --git a/common/log.h b/common/log.h
index 1ea2313..b86fd08 100644
--- a/common/log.h
+++ b/common/log.h
@@ -18,87 +18,58 @@
 #ifndef H_SPICE_LOG
 #define H_SPICE_LOG
 
-#include <stdarg.h>
-#include <stdio.h>
-#include <glib.h>
-#include <spice/macros.h>
+#ifndef G_LOG_DOMAIN
+#define G_LOG_DOMAIN "Spice"
+#endif
 
+#include <glib.h>
+#include <stdbool.h>
 #include "macros.h"
 
-SPICE_BEGIN_DECLS
+G_BEGIN_DECLS
 
+/* deprecated, please use glib directly */
+#define spice_return_if_fail(x) g_return_if_fail(x)
+#define spice_return_val_if_fail(x, val) g_return_val_if_fail(x, val)
+#define spice_warn_if_reached() g_warn_if_reached()
+#define spice_warn_if_fail(x) g_warn_if_fail(x)
+#define spice_assert(x) g_assert(x)
+#define spice_static_assert(x) G_STATIC_ASSERT(x)
+
+/* deprecated */
 #ifndef SPICE_LOG_DOMAIN
-#define SPICE_LOG_DOMAIN "Spice"
+#define SPICE_LOG_DOMAIN __FILE__
 #endif
 
-#define SPICE_STRLOC  __FILE__ ":" G_STRINGIFY (__LINE__)
-
-void spice_log(const char *log_domain,
-               GLogLevelFlags log_level,
-               const char *strloc,
-               const char *function,
-               const char *format,
-               ...) SPICE_ATTR_PRINTF(5, 6);
-
-#define spice_return_if_fail(x) G_STMT_START {                          \
-    if G_LIKELY(x) { } else {                                           \
-        spice_log(SPICE_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, SPICE_STRLOC, G_STRFUNC, "condition `%s' failed", #x); \
-        return;                                                         \
-    }                                                                   \
-} G_STMT_END
-
-#define spice_return_val_if_fail(x, val) G_STMT_START {                 \
-    if G_LIKELY(x) { } else {                                           \
-        spice_log(SPICE_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, SPICE_STRLOC, __FUNCTION__, "condition `%s' failed", #x); \
-        return (val);                                                   \
-    }                                                                   \
-} G_STMT_END
-
-#define spice_warn_if_reached() G_STMT_START {                          \
-    spice_log(SPICE_LOG_DOMAIN, G_LOG_LEVEL_WARNING, SPICE_STRLOC, __FUNCTION__, "should not be reached"); \
-} G_STMT_END
-
-#define spice_printerr(format, ...) G_STMT_START {                      \
-    fprintf(stderr, "%s: " format "\n", __FUNCTION__, ## __VA_ARGS__);  \
-} G_STMT_END
-
-#define spice_info(format, ...) G_STMT_START {                         \
-    spice_log(SPICE_LOG_DOMAIN, G_LOG_LEVEL_INFO, SPICE_STRLOC, __FUNCTION__, format, ## __VA_ARGS__); \
-} G_STMT_END
-
-#define spice_debug(format, ...) G_STMT_START {                         \
-    spice_log(SPICE_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, SPICE_STRLOC, __FUNCTION__, format, ## __VA_ARGS__); \
-} G_STMT_END
-
-#define spice_warning(format, ...) G_STMT_START {                       \
-    spice_log(SPICE_LOG_DOMAIN, G_LOG_LEVEL_WARNING, SPICE_STRLOC, __FUNCTION__, format, ## __VA_ARGS__); \
-} G_STMT_END
-
-#define spice_critical(format, ...) G_STMT_START {                          \
-    spice_log(SPICE_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, SPICE_STRLOC, __FUNCTION__, format, ## __VA_ARGS__); \
-} G_STMT_END
-
-#define spice_error(format, ...) G_STMT_START {                         \
-    spice_log(SPICE_LOG_DOMAIN, G_LOG_LEVEL_ERROR, SPICE_STRLOC, __FUNCTION__, format, ## __VA_ARGS__); \
-} G_STMT_END
-
-#define spice_warn_if_fail(x) G_STMT_START {            \
-    if G_LIKELY(x) { } else {                           \
-        spice_warning("condition `%s' failed", #x);     \
-    }                                                   \
-} G_STMT_END
-
-#define spice_assert(x) G_STMT_START {                  \
-    if G_LIKELY(x) { } else {                           \
-        spice_error("assertion `%s' failed", #x);       \
-    }                                                   \
-} G_STMT_END
-
-/* FIXME: improve that some day.. */
-#define spice_static_assert(x) SPICE_STMT_START {       \
-    spice_assert(x);                                    \
-} SPICE_STMT_END
-
-SPICE_END_DECLS
+#define spice_printerr(format, ...) g_printerr(SPICE_LOG_DOMAIN ": " format, ## __VA_ARGS__)
+#define spice_info(format, ...) g_info(SPICE_LOG_DOMAIN ": " format, ## __VA_ARGS__)
+#define spice_warning(format, ...) g_warning(SPICE_LOG_DOMAIN ": " format, ## __VA_ARGS__)
+#define spice_critical(format, ...) g_critical(SPICE_LOG_DOMAIN ": " format, ## __VA_ARGS__)
+#define spice_error(format, ...) g_error(SPICE_LOG_DOMAIN ": " format, ## __VA_ARGS__)
+
+/* because spice_debug(NULL) exists.. */
+G_GNUC_PRINTF(5, 6)
+static inline void _spice_debug(const char *domain, const char *file,
+                                const char *line, const char *func,
+                                const char *msg, ...)
+{
+    va_list args;
+    GString *s = g_string_new(NULL);
+
+    va_start(args, msg);
+    g_string_printf(s, "%s: ", domain);
+    if (msg) {
+        g_string_append_vprintf(s, msg, args);
+    }
+    g_debug("%s", s->str);
+    va_end(args);
+    g_string_free(s, true);
+}
+
+#define spice_debug(msg, ...) \
+    _spice_debug(SPICE_LOG_DOMAIN, __FILE__, G_STRINGIFY(__LINE__), \
+                 G_STRFUNC, msg, ## __VA_ARGS__)
+
+G_END_DECLS
 
 #endif /* H_SPICE_LOG */
diff --git a/tests/test-logging.c b/tests/test-logging.c
index f1ad1b6..03f367a 100644
--- a/tests/test-logging.c
+++ b/tests/test-logging.c
@@ -18,301 +18,8 @@
 #include <config.h>
 #endif
 
-#define G_LOG_DOMAIN "Spice"
-#define SPICE_LOG_DOMAIN G_LOG_DOMAIN
-
-#include <glib.h>
-#include <stdlib.h>
-
 #include "common/log.h"
-
-#define OTHER_LOG_DOMAIN "Other"
-#define LOG_OTHER_HELPER(suffix, level)                                          \
-    static void G_PASTE(other_, suffix)(const gchar *format, ...)                \
-    {                                                                            \
-        va_list args;                                                            \
-                                                                                 \
-        va_start (args, format);                                                 \
-        g_logv(OTHER_LOG_DOMAIN, G_PASTE(G_LOG_LEVEL_, level), format, args);    \
-        va_end (args);                                                           \
-    }
-
-/* Set of helpers to log in a different log domain than "Spice" */
-LOG_OTHER_HELPER(debug, DEBUG)
-LOG_OTHER_HELPER(info, INFO)
-LOG_OTHER_HELPER(message, MESSAGE)
-LOG_OTHER_HELPER(warning, WARNING)
-LOG_OTHER_HELPER(critical, CRITICAL)
-
 #if GLIB_CHECK_VERSION(2,38,0)
-/* Checks that spice_warning() aborts after changing SPICE_ABORT_LEVEL */
-static void test_spice_abort_level(void)
-{
-    if (g_test_subprocess()) {
-        spice_warning("spice_warning");
-        return;
-    }
-    /* 2 = SPICE_LOG_LEVEL_WARNING  */
-    g_setenv("SPICE_ABORT_LEVEL", "2", TRUE);
-    g_test_trap_subprocess(NULL, 0, 0);
-    g_unsetenv("SPICE_ABORT_LEVEL");
-    g_test_trap_assert_failed();
-    g_test_trap_assert_stderr("*SPICE_ABORT_LEVEL*deprecated*");
-    g_test_trap_assert_stderr("*spice_warning*");
-}
-
-/* Checks that g_warning() aborts after changing SPICE_ABORT_LEVEL */
-static void test_spice_abort_level_g_warning(void)
-{
-    if (g_test_subprocess()) {
-        g_warning("g_warning");
-        return;
-    }
-    g_setenv("SPICE_ABORT_LEVEL", "2", TRUE);
-    g_test_trap_subprocess(NULL, 0, 0);
-    g_unsetenv("SPICE_ABORT_LEVEL");
-    g_test_trap_assert_failed();
-    g_test_trap_assert_stderr("*SPICE_ABORT_LEVEL*deprecated*");
-    g_test_trap_assert_stderr("*g_warning*");
-}
-
-/* Checks that spice_warning() aborts after setting G_DEBUG=fatal-warnings */
-static void test_spice_fatal_warning(void)
-{
-    g_setenv("G_DEBUG", "fatal-warnings", TRUE);
-    if (g_test_subprocess()) {
-        spice_warning("spice_warning");
-        return;
-    }
-    g_test_trap_subprocess(NULL, 0, 0);
-    g_test_trap_assert_failed();
-    g_test_trap_assert_stderr("*spice_warning*");
-    g_unsetenv("G_DEBUG");
-}
-
-/* Checks that spice_critical() aborts by default if SPICE_DISABLE_ABORT is not
- * defined at compile-time */
-static void test_spice_fatal_critical(void)
-{
-    if (g_test_subprocess()) {
-        spice_critical("spice_critical");
-        return;
-    }
-    g_test_trap_subprocess(NULL, 0, 0);
-#ifdef SPICE_DISABLE_ABORT
-    g_test_trap_assert_passed();
-#else
-    g_test_trap_assert_failed();
-#endif
-    g_test_trap_assert_stderr("*spice_critical*");
-}
-
-/* Checks that g_critical() does not abort by default */
-static void test_spice_non_fatal_g_critical(void)
-{
-    if (g_test_subprocess()) {
-        g_critical("g_critical");
-        return;
-    }
-    g_test_trap_subprocess(NULL, 0, 0);
-    g_test_trap_assert_passed();
-    g_test_trap_assert_stderr("*g_critical*");
-}
-
-/* Checks that g_critical() aborts after setting G_DEBUG=fatal-criticals */
-static void test_spice_fatal_g_critical(void)
-{
-    g_setenv("G_DEBUG", "fatal-criticals", TRUE);
-    if (g_test_subprocess()) {
-        g_critical("g_critical");
-        return;
-    }
-    g_test_trap_subprocess(NULL, 0, 0);
-    g_test_trap_assert_failed();
-    g_test_trap_assert_stderr("*g_critical*");
-    g_unsetenv("G_DEBUG");
-}
-
-/* Checks that spice_return_if_fail() aborts by default unless
- * SPICE_DISABLE_ABORT was defined at compile time*/
-static void test_spice_fatal_return_if_fail(void)
-{
-    if (g_test_subprocess()) {
-        spice_return_if_fail(FALSE);
-        return;
-    }
-    g_test_trap_subprocess(NULL, 0, 0);
-#ifdef SPICE_DISABLE_ABORT
-    g_test_trap_assert_passed();
-#else
-    g_test_trap_assert_failed();
-#endif
-    g_test_trap_assert_stderr("*test_spice_fatal_return_if_fail*");
-}
-
-/* Checks that g_return_if_fail() does not abort by default */
-static void test_spice_non_fatal_g_return_if_fail(void)
-{
-    if (g_test_subprocess()) {
-        g_return_if_fail(FALSE);
-        return;
-    }
-    g_test_trap_subprocess(NULL, 0, 0);
-    g_test_trap_assert_passed();
-}
-
-/* Checks that spice_*, g_* and other_* (different log domain as g_*) all
- * go through g_log() with the correct domain/log level. This then checks
- * that only logs with level 'message' or higher are shown by default.
- */
-static void test_log_levels(void)
-{
-    if (g_test_subprocess()) {
-        g_test_expect_message(SPICE_LOG_DOMAIN,
-                              G_LOG_LEVEL_WARNING,
-                              "*spice_warning");
-        spice_warning("spice_warning");
-        g_test_expect_message(SPICE_LOG_DOMAIN,
-                              G_LOG_LEVEL_INFO,
-                              "*spice_info");
-        spice_info("spice_info");
-        g_test_expect_message(SPICE_LOG_DOMAIN,
-                              G_LOG_LEVEL_DEBUG,
-                              "*spice_debug");
-        spice_debug("spice_debug");
-
-        g_test_expect_message(G_LOG_DOMAIN,
-                              G_LOG_LEVEL_CRITICAL,
-                              "*g_critical");
-        g_critical("g_critical");
-        g_test_expect_message(G_LOG_DOMAIN,
-                              G_LOG_LEVEL_WARNING,
-                              "*g_warning");
-        g_warning("g_warning");
-        g_test_expect_message(G_LOG_DOMAIN,
-                              G_LOG_LEVEL_MESSAGE,
-                              "*g_message");
-        g_message("g_message");
-        g_test_expect_message(G_LOG_DOMAIN,
-                              G_LOG_LEVEL_INFO,
-                              "*g_info");
-        g_info("g_info");
-        g_test_expect_message(G_LOG_DOMAIN,
-                              G_LOG_LEVEL_DEBUG,
-                              "*g_debug");
-        g_debug("g_debug");
-
-        g_test_expect_message(OTHER_LOG_DOMAIN,
-                              G_LOG_LEVEL_CRITICAL,
-                              "*other_critical");
-        other_critical("other_critical");
-        g_test_expect_message(OTHER_LOG_DOMAIN,
-                              G_LOG_LEVEL_WARNING,
-                              "*other_warning");
-        other_warning("other_warning");
-        g_test_expect_message(OTHER_LOG_DOMAIN,
-                              G_LOG_LEVEL_MESSAGE,
-                              "*other_message");
-        other_message("other_message");
-        g_test_expect_message(OTHER_LOG_DOMAIN,
-                              G_LOG_LEVEL_INFO,
-                              "*other_info");
-        other_info("other_info");
-        g_test_expect_message(OTHER_LOG_DOMAIN,
-                              G_LOG_LEVEL_DEBUG,
-                              "*other_debug");
-        other_debug("other_debug");
-
-        g_test_assert_expected_messages();
-
-
-        /* g_test_expected_message only checks whether the appropriate messages got up to g_log()
-         * The following calls will be caught by the parent process to check what was (not) printed
-         * to stdout/stderr
-         */
-        spice_warning("spice_warning");
-        spice_info("spice_info");
-        spice_debug("spice_debug");
-
-        g_critical("g_critical");
-        g_warning("g_warning");
-        g_message("g_message");
-        g_info("g_info");
-        g_debug("g_debug");
-
-        other_critical("other_critical");
-        other_warning("other_warning");
-        other_message("other_message");
-        other_info("other_info");
-        other_debug("other_debug");
-
-        return;
-    }
-    g_test_trap_subprocess(NULL, 0, 0);
-    g_test_trap_assert_passed();
-    g_test_trap_assert_stderr("*spice_warning\n*g_critical\n*g_warning\n*g_message\n*other_critical\n*other_warning\n*other_message\n");
-}
-
-/* Checks that SPICE_DEBUG_LEVEL impacts spice_debug(), g_debug() but not other_debug() */
-static void test_spice_debug_level(void)
-{
-    if (g_test_subprocess()) {
-        /* g_test_expected_message only checks whether the appropriate messages got up to g_log()
-         * The following calls will be caught by the parent process to check what was (not) printed
-         * to stdout/stderr
-         */
-        spice_info("spice_info");
-        g_debug("g_debug");
-        spice_debug("spice_debug");
-        other_debug("other_debug");
-
-        return;
-    }
-
-    g_unsetenv("G_MESSAGES_DEBUG");
-    g_setenv("SPICE_DEBUG_LEVEL", "5", TRUE);
-    g_test_trap_subprocess(NULL, 0, 0);
-    g_unsetenv("SPICE_DEBUG_LEVEL");
-    g_test_trap_assert_passed();
-    g_test_trap_assert_stderr("*SPICE_DEBUG_LEVEL*deprecated*");
-    g_test_trap_assert_stdout("*spice_info\n*g_debug\n*spice_debug\n");
-}
-
-/* Checks that raising SPICE_DEBUG_LEVEL allows to only show spice_warning() and spice_critical()
- * messages, as well as g_warning() and g_critical(), but does not impact other_message()
- */
-static void test_spice_debug_level_warning(void)
-{
-    if (g_test_subprocess()) {
-        spice_info("spice_info");
-        spice_debug("spice_debug");
-        spice_warning("spice_warning");
-        spice_critical("spice_critical");
-        g_debug("g_debug");
-        g_info("g_info");
-        g_message("g_message");
-        g_warning("g_warning");
-        g_critical("g_critical");
-        other_debug("other_debug");
-        other_info("other_info");
-        other_message("other_message");
-        other_warning("other_warning");
-        other_critical("other_critical");
-
-        return;
-    }
-
-    g_setenv("SPICE_ABORT_LEVEL", "0", TRUE);
-    g_setenv("SPICE_DEBUG_LEVEL", "1", TRUE);
-    g_test_trap_subprocess(NULL, 0, 0);
-    g_unsetenv("SPICE_ABORT_LEVEL");
-    g_unsetenv("SPICE_DEBUG_LEVEL");
-    g_test_trap_assert_passed();
-    g_test_trap_assert_stderr("*SPICE_DEBUG_LEVEL*deprecated*");
-    g_test_trap_assert_stderr("*SPICE_ABORT_LEVEL*deprecated*");
-    g_test_trap_assert_stderr("*spice_critical\n*g_critical\n*other_message\n*other_warning\n*other_critical\n");
-}
-
 /* Checks that setting G_MESSAGES_DEBUG to 'Spice' impacts spice_debug() and
  * g_debug() but not other_debug() */
 static void test_spice_g_messages_debug(void)
@@ -325,9 +32,9 @@ static void test_spice_g_messages_debug(void)
         g_debug("g_debug");
         g_info("g_info");
         g_message("g_message");
-        other_debug("other_debug");
-        other_info("other_info");
-        other_message("other_message");
+        g_log("Other", G_LOG_LEVEL_DEBUG, "other_debug");
+        g_log("Other", G_LOG_LEVEL_INFO, "other_info");
+        g_log("Other", G_LOG_LEVEL_MESSAGE, "other_message");
 
         return;
     }
@@ -350,9 +57,9 @@ static void test_spice_g_messages_debug_all(void)
         g_debug("g_debug");
         g_info("g_info");
         g_message("g_message");
-        other_debug("other_debug");
-        other_info("other_info");
-        other_message("other_message");
+        g_log("Other", G_LOG_LEVEL_DEBUG, "other_debug");
+        g_log("Other", G_LOG_LEVEL_INFO, "other_info");
+        g_log("Other", G_LOG_LEVEL_MESSAGE, "other_message");
 
         return;
     }
@@ -387,19 +94,8 @@ int main(int argc, char **argv)
     g_log_set_always_fatal(fatal_mask & G_LOG_LEVEL_MASK);
 
 #if GLIB_CHECK_VERSION(2,38,0)
-    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);
-    g_test_add_func("/spice-common/spice-debug-level-warning", test_spice_debug_level_warning);
     g_test_add_func("/spice-common/spice-g-messages-debug", test_spice_g_messages_debug);
     g_test_add_func("/spice-common/spice-g-messages-debug-all", test_spice_g_messages_debug_all);
-    g_test_add_func("/spice-common/spice-log-levels", test_log_levels);
-    g_test_add_func("/spice-common/spice-fatal-critical", test_spice_fatal_critical);
-    g_test_add_func("/spice-common/spice-non-fatal-gcritical", test_spice_non_fatal_g_critical);
-    g_test_add_func("/spice-common/spice-fatal-gcritical", test_spice_fatal_g_critical);
-    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_CHECK_VERSION(2,38,0) */
 
     return g_test_run();
-- 
2.13.0.91.g00982b8dd



More information about the Spice-devel mailing list