mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-05-06 18:28:03 +02:00
core/tests: allow temporarily suppressing logging during tests
Often, during tests we want to assert against the logged messages.
In fact, most tests enable assertions for all logging and enforce
them with g_test_assert_expected_messages(). So, this is common.
However, sometimes it can be cumbersome to understand which logging
lines will be produced. For example, the next commits will call
nm_dhcp_manager_get() during the tests, which initializes NMDhcpManager
and logs a message which plugin was selected (or an additional warning,
if the selected plugin was not found). The availability of the DHCP plugin
depends on searching the path for "/usr/bin/dhclient", so from testing code
it's hard to determine what will be logged.
Instead, add a way to temporarily disable logging during testing.
(cherry picked from commit 35cecd32fd)
This commit is contained in:
parent
9672ea128e
commit
e2d777ff13
1 changed files with 36 additions and 0 deletions
|
|
@ -1337,6 +1337,42 @@ _nmtst_assert_resolve_relative_path_equals (const char *f1, const char *f2, cons
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
#ifdef __NETWORKMANAGER_LOGGING_H__
|
||||||
|
static inline gpointer
|
||||||
|
nmtst_logging_disable (gboolean always)
|
||||||
|
{
|
||||||
|
gpointer p;
|
||||||
|
|
||||||
|
g_assert (nmtst_initialized ());
|
||||||
|
if (!always && __nmtst_internal.no_expect_message) {
|
||||||
|
/* The caller does not want to @always suppress logging. Instead,
|
||||||
|
* the caller wants to suppress unexpected log messages that would
|
||||||
|
* fail assertions (since we possibly assert against all unexpected
|
||||||
|
* log messages).
|
||||||
|
*
|
||||||
|
* If the test is run with no-expect-message, then don't suppress
|
||||||
|
* the loggings, because they also wouldn't fail assertions. */
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
p = g_memdup (_nm_logging_enabled_state, sizeof (_nm_logging_enabled_state));
|
||||||
|
memset (_nm_logging_enabled_state, 0, sizeof (_nm_logging_enabled_state));
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
nmtst_logging_reenable (gpointer old_state)
|
||||||
|
{
|
||||||
|
g_assert (nmtst_initialized ());
|
||||||
|
if (old_state) {
|
||||||
|
memcpy (_nm_logging_enabled_state, old_state, sizeof (_nm_logging_enabled_state));
|
||||||
|
g_free (old_state);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
#ifdef NM_SETTING_IP_CONFIG_H
|
#ifdef NM_SETTING_IP_CONFIG_H
|
||||||
static inline void
|
static inline void
|
||||||
nmtst_setting_ip_config_add_address (NMSettingIPConfig *s_ip,
|
nmtst_setting_ip_config_add_address (NMSettingIPConfig *s_ip,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue