mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-26 20:30:08 +01: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
|
||||
static inline void
|
||||
nmtst_setting_ip_config_add_address (NMSettingIPConfig *s_ip,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue