From c6e132749506e77bf5afdfd9174b497b20e7595a Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 30 Dec 2020 15:54:57 +0100 Subject: [PATCH] core: move NM_MANAGER_ERROR to shared/nm-glib-aux "src/nm-logging.c" should be independent of libnm-core. It almost is, except the error domain and code. Move NM_MANAGER_ERROR to "nm-glib-aux/nm-shared-utils.h" so that "nm-logging.c" is independent of libnm-core. --- libnm-core/nm-errors.c | 1 - shared/nm-glib-aux/nm-shared-utils.c | 2 ++ shared/nm-glib-aux/nm-shared-utils.h | 6 ++++++ src/nm-logging.c | 9 ++++----- src/tests/test-core.c | 27 +++++++++++++++++++++++++++ 5 files changed, 39 insertions(+), 6 deletions(-) diff --git a/libnm-core/nm-errors.c b/libnm-core/nm-errors.c index 106d2051f0..95a12c0717 100644 --- a/libnm-core/nm-errors.c +++ b/libnm-core/nm-errors.c @@ -14,7 +14,6 @@ NM_CACHED_QUARK_FCN("nm-agent-manager-error-quark", nm_agent_manager_error_quark NM_CACHED_QUARK_FCN("nm-connection-error-quark", nm_connection_error_quark); NM_CACHED_QUARK_FCN("nm-crypto-error-quark", nm_crypto_error_quark); NM_CACHED_QUARK_FCN("nm-device-error-quark", nm_device_error_quark); -NM_CACHED_QUARK_FCN("nm-manager-error-quark", nm_manager_error_quark); NM_CACHED_QUARK_FCN("nm-secret-agent-error-quark", nm_secret_agent_error_quark); NM_CACHED_QUARK_FCN("nm-settings-error-quark", nm_settings_error_quark); NM_CACHED_QUARK_FCN("nm-vpn-plugin-error-quark", nm_vpn_plugin_error_quark); diff --git a/shared/nm-glib-aux/nm-shared-utils.c b/shared/nm-glib-aux/nm-shared-utils.c index 5f5f41ae2e..f42b53c394 100644 --- a/shared/nm-glib-aux/nm-shared-utils.c +++ b/shared/nm-glib-aux/nm-shared-utils.c @@ -2267,6 +2267,8 @@ _nm_utils_ascii_str_to_bool(const char *str, int default_value) /*****************************************************************************/ +NM_CACHED_QUARK_FCN("nm-manager-error-quark", nm_manager_error_quark); + NM_CACHED_QUARK_FCN("nm-utils-error-quark", nm_utils_error_quark); void diff --git a/shared/nm-glib-aux/nm-shared-utils.h b/shared/nm-glib-aux/nm-shared-utils.h index a78682f6a1..669c9fbcb4 100644 --- a/shared/nm-glib-aux/nm-shared-utils.h +++ b/shared/nm-glib-aux/nm-shared-utils.h @@ -982,6 +982,12 @@ typedef enum { #define NM_UTILS_ERROR (nm_utils_error_quark()) GQuark nm_utils_error_quark(void); +GQuark nm_manager_error_quark(void); +#define _NM_MANAGER_ERROR (nm_manager_error_quark()) + +#define _NM_MANAGER_ERROR_UNKNOWN_LOG_LEVEL 10 +#define _NM_MANAGER_ERROR_UNKNOWN_LOG_DOMAIN 11 + void nm_utils_error_set_cancelled(GError **error, gboolean is_disposing, const char *instance_name); static inline GError * diff --git a/src/nm-logging.c b/src/nm-logging.c index a646bb574f..495d5aca3c 100644 --- a/src/nm-logging.c +++ b/src/nm-logging.c @@ -24,7 +24,6 @@ #include "nm-glib-aux/nm-logging-base.h" #include "nm-glib-aux/nm-time-utils.h" -#include "nm-errors.h" /*****************************************************************************/ @@ -247,8 +246,8 @@ match_log_level(const char *level, NMLogLevel *out_level, GError **error) return TRUE; g_set_error(error, - NM_MANAGER_ERROR, - NM_MANAGER_ERROR_UNKNOWN_LOG_LEVEL, + _NM_MANAGER_ERROR, + _NM_MANAGER_ERROR_UNKNOWN_LOG_LEVEL, _("Unknown log level '%s'"), level); return FALSE; @@ -355,8 +354,8 @@ nm_logging_setup(const char *level, const char *domains, char **bad_domains, GEr if (!bits) { if (!bad_domains) { g_set_error(error, - NM_MANAGER_ERROR, - NM_MANAGER_ERROR_UNKNOWN_LOG_DOMAIN, + _NM_MANAGER_ERROR, + _NM_MANAGER_ERROR_UNKNOWN_LOG_DOMAIN, _("Unknown log domain '%s'"), s); return FALSE; diff --git a/src/tests/test-core.c b/src/tests/test-core.c index 002723464e..87136dc3f1 100644 --- a/src/tests/test-core.c +++ b/src/tests/test-core.c @@ -104,6 +104,32 @@ test_logging_domains(void) /*****************************************************************************/ +static void +test_logging_error(void) +{ + gs_free_error GError *error = NULL; + gboolean success; + + g_assert_cmpint(NM_MANAGER_ERROR, ==, _NM_MANAGER_ERROR); + G_STATIC_ASSERT_EXPR(NM_MANAGER_ERROR_UNKNOWN_LOG_LEVEL == _NM_MANAGER_ERROR_UNKNOWN_LOG_LEVEL); + G_STATIC_ASSERT_EXPR(NM_MANAGER_ERROR_UNKNOWN_LOG_DOMAIN + == _NM_MANAGER_ERROR_UNKNOWN_LOG_DOMAIN); + + success = nm_logging_setup("bogus", "ALL", NULL, &error); + nmtst_assert_no_success(success, error); + g_assert_cmpint(error->domain, ==, NM_MANAGER_ERROR); + g_assert_cmpint(error->code, ==, NM_MANAGER_ERROR_UNKNOWN_LOG_LEVEL); + nm_clear_pointer(&error, g_error_free); + + success = nm_logging_setup("debug", "bogus", NULL, &error); + nmtst_assert_no_success(success, error); + g_assert_cmpint(error->domain, ==, NM_MANAGER_ERROR); + g_assert_cmpint(error->code, ==, NM_MANAGER_ERROR_UNKNOWN_LOG_DOMAIN); + nm_clear_pointer(&error, g_error_free); +} + +/*****************************************************************************/ + static void _test_same_prefix(const char *a1, const char *a2, guint8 plen) { @@ -2544,6 +2570,7 @@ main(int argc, char **argv) nmtst_init_with_logging(&argc, &argv, NULL, "ALL"); g_test_add_func("/general/test_logging_domains", test_logging_domains); + g_test_add_func("/general/test_logging_error", test_logging_error); g_test_add_func("/general/nm_utils_strbuf_append", test_nm_utils_strbuf_append);