mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-27 00:00:08 +01:00
core: merge branch 'th/memleaks'
Fix memleaks and enable valgrind checks for most unit tests except ifupdown plugin. For ifupdown tests, there are some leaks that are not yet fixed. This is still to do. To run checks with valgrind, configure with --with-valgrind. Especially for libnm and libnm-glib tests, there are several leaks that are (probably?) not the fault of NetworkManager code. Hence, several suppressions were added to valgrind.suppressions. On different systems and different version of glib, these suppressions might not match and the test will fail there. The valgrind.suppressions should be reviewed, cleaned up and adjusted for more systems (and different glib library versions).
This commit is contained in:
commit
2f595aba80
63 changed files with 546 additions and 158 deletions
|
|
@ -28,6 +28,7 @@ test_dispatcher_envp_LDADD = \
|
|||
|
||||
###########################################
|
||||
|
||||
@VALGRIND_RULES@
|
||||
TESTS = test-dispatcher-envp
|
||||
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -212,12 +212,12 @@ parse_ip4 (GKeyFile *kf, GVariant **out_props, const char *section, GError **err
|
|||
split = g_strsplit_set (tmp, " ", -1);
|
||||
g_free (tmp);
|
||||
|
||||
if (g_strv_length (split) > 0) {
|
||||
if (split && g_strv_length (split) > 0) {
|
||||
for (iter = split; iter && *iter; iter++)
|
||||
g_strstrip (*iter);
|
||||
g_variant_builder_add (&props, "{sv}", "domains", g_variant_new_strv ((gpointer) split, -1));
|
||||
g_strfreev (split);
|
||||
}
|
||||
g_strfreev (split);
|
||||
|
||||
/* nameservers */
|
||||
if (!add_uint_array (kf, &props, "ip4", "nameservers", error))
|
||||
|
|
@ -233,7 +233,7 @@ parse_ip4 (GKeyFile *kf, GVariant **out_props, const char *section, GError **err
|
|||
split = g_strsplit_set (tmp, ",", -1);
|
||||
g_free (tmp);
|
||||
|
||||
if (g_strv_length (split) > 0) {
|
||||
if (split && g_strv_length (split) > 0) {
|
||||
addresses = g_ptr_array_new_with_free_func ((GDestroyNotify) nm_ip_address_unref);
|
||||
for (iter = split; iter && *iter; iter++) {
|
||||
NMIPAddress *addr;
|
||||
|
|
@ -275,7 +275,7 @@ parse_ip4 (GKeyFile *kf, GVariant **out_props, const char *section, GError **err
|
|||
split = g_strsplit_set (tmp, ",", -1);
|
||||
g_free (tmp);
|
||||
|
||||
if (g_strv_length (split) > 0) {
|
||||
if (split && g_strv_length (split) > 0) {
|
||||
routes = g_ptr_array_new_with_free_func ((GDestroyNotify) nm_ip_route_unref);
|
||||
for (iter = split; iter && *iter; iter++) {
|
||||
NMIPRoute *route;
|
||||
|
|
@ -336,11 +336,15 @@ parse_dhcp (GKeyFile *kf,
|
|||
g_variant_builder_init (&props, G_VARIANT_TYPE ("a{sv}"));
|
||||
for (iter = keys; iter && *iter; iter++) {
|
||||
val = g_key_file_get_string (kf, group_name, *iter, error);
|
||||
if (!val)
|
||||
if (!val) {
|
||||
g_strfreev (keys);
|
||||
g_variant_builder_clear (&props);
|
||||
return FALSE;
|
||||
}
|
||||
g_variant_builder_add (&props, "{sv}", *iter, g_variant_new_string (val));
|
||||
g_free (val);
|
||||
}
|
||||
g_strfreev (keys);
|
||||
|
||||
*out_props = g_variant_builder_end (&props);
|
||||
return TRUE;
|
||||
|
|
@ -367,6 +371,21 @@ get_dispatcher_file (const char *file,
|
|||
gboolean success = FALSE;
|
||||
char **keys, **iter, *val;
|
||||
|
||||
g_assert (!error || !*error);
|
||||
g_assert (out_con_dict && !*out_con_dict);
|
||||
g_assert (out_con_props && !*out_con_props);
|
||||
g_assert (out_device_props && !*out_device_props);
|
||||
g_assert (out_device_ip4_props && !*out_device_ip4_props);
|
||||
g_assert (out_device_ip6_props && !*out_device_ip6_props);
|
||||
g_assert (out_device_dhcp4_props && !*out_device_dhcp4_props);
|
||||
g_assert (out_device_dhcp6_props && !*out_device_dhcp6_props);
|
||||
g_assert (out_vpn_ip_iface && !*out_vpn_ip_iface);
|
||||
g_assert (out_vpn_ip4_props && !*out_vpn_ip4_props);
|
||||
g_assert (out_vpn_ip6_props && !*out_vpn_ip6_props);
|
||||
g_assert (out_expected_iface && !*out_expected_iface);
|
||||
g_assert (out_action && !*out_action);
|
||||
g_assert (out_env && !*out_env);
|
||||
|
||||
kf = g_key_file_new ();
|
||||
if (!g_key_file_load_from_file (kf, file, G_KEY_FILE_NONE, error))
|
||||
return FALSE;
|
||||
|
|
@ -520,6 +539,7 @@ test_generic (const char *file, const char *override_vpn_ip_iface)
|
|||
|
||||
g_assert_cmpstr (expected_iface, ==, out_iface);
|
||||
|
||||
g_strfreev (denv);
|
||||
g_free (out_iface);
|
||||
g_free (vpn_ip_iface);
|
||||
g_free (expected_iface);
|
||||
|
|
|
|||
|
|
@ -6532,6 +6532,7 @@ nmc_setting_get_valid_properties (NMSetting *setting)
|
|||
valid_props[i++] = g_strdup (key_name);
|
||||
}
|
||||
valid_props[i] = NULL;
|
||||
g_free (props);
|
||||
|
||||
return valid_props;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -891,6 +891,7 @@ AM_CONDITIONAL(REQUIRE_ROOT_TESTS, test "$enable_tests" == "root")
|
|||
AS_IF([test "$with_valgrind" != "no"],
|
||||
AC_SUBST(VALGRIND_RULES, 'TESTS_ENVIRONMENT = "$(top_srcdir)/tools/run-test-valgrind.sh" "$(LIBTOOL)" "$(with_valgrind)" "$(top_srcdir)/valgrind.suppressions"'),
|
||||
AC_SUBST(VALGRIND_RULES, []))
|
||||
AM_CONDITIONAL(WITH_VALGRIND, test "${with_valgrind}" != "no")
|
||||
|
||||
GTK_DOC_CHECK(1.0)
|
||||
|
||||
|
|
|
|||
|
|
@ -1054,8 +1054,8 @@ typedef enum {
|
|||
g_variant_builder_add (&__setting_builder, "{sv}", \
|
||||
__cur_property_name, \
|
||||
__property_val); \
|
||||
} else \
|
||||
g_variant_unref (__property_val); \
|
||||
} \
|
||||
g_variant_unref (__property_val); \
|
||||
} \
|
||||
\
|
||||
if (__cur_setting_name) \
|
||||
|
|
|
|||
|
|
@ -304,6 +304,8 @@ nm_connection_replace_settings (NMConnection *connection,
|
|||
for (s = settings; s; s = s->next)
|
||||
_nm_connection_add_setting (connection, s->data);
|
||||
|
||||
g_slist_free (settings);
|
||||
|
||||
if (changed)
|
||||
g_signal_emit (connection, signals[CHANGED], 0);
|
||||
return TRUE;
|
||||
|
|
|
|||
|
|
@ -1884,6 +1884,7 @@ nm_setting_802_1x_get_private_key_format (NMSetting8021x *setting)
|
|||
g_error_free (error);
|
||||
return NM_SETTING_802_1X_CK_FORMAT_UNKNOWN;
|
||||
}
|
||||
g_error_free (error);
|
||||
return NM_SETTING_802_1X_CK_FORMAT_RAW_KEY;
|
||||
default:
|
||||
break;
|
||||
|
|
@ -2164,6 +2165,7 @@ nm_setting_802_1x_get_phase2_private_key_format (NMSetting8021x *setting)
|
|||
g_error_free (error);
|
||||
return NM_SETTING_802_1X_CK_FORMAT_UNKNOWN;
|
||||
}
|
||||
g_error_free (error);
|
||||
return NM_SETTING_802_1X_CK_FORMAT_RAW_KEY;
|
||||
default:
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -968,8 +968,9 @@ find_virtual_interface_name (GVariant *connection_dict)
|
|||
|
||||
/* All of the deprecated virtual interface name properties were named "interface-name". */
|
||||
if (!g_variant_lookup (setting_dict, "interface-name", "&s", &interface_name))
|
||||
return NULL;
|
||||
interface_name = NULL;
|
||||
|
||||
g_variant_unref (setting_dict);
|
||||
return interface_name;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_DCB)
|
|||
typedef struct {
|
||||
NMSettingDcbFlags app_fcoe_flags;
|
||||
gint app_fcoe_priority;
|
||||
const char * app_fcoe_mode;
|
||||
char * app_fcoe_mode;
|
||||
|
||||
NMSettingDcbFlags app_iscsi_flags;
|
||||
gint app_iscsi_priority;
|
||||
|
|
@ -793,6 +793,7 @@ set_property (GObject *object, guint prop_id,
|
|||
priv->app_fcoe_priority = g_value_get_int (value);
|
||||
break;
|
||||
case PROP_APP_FCOE_MODE:
|
||||
g_free (priv->app_fcoe_mode);
|
||||
priv->app_fcoe_mode = g_value_dup_string (value);
|
||||
break;
|
||||
case PROP_APP_ISCSI_FLAGS:
|
||||
|
|
@ -896,6 +897,16 @@ get_property (GObject *object, guint prop_id,
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
finalize (GObject *object)
|
||||
{
|
||||
NMSettingDcbPrivate *priv = NM_SETTING_DCB_GET_PRIVATE (object);
|
||||
|
||||
g_free (priv->app_fcoe_mode);
|
||||
|
||||
G_OBJECT_CLASS (nm_setting_dcb_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
nm_setting_dcb_class_init (NMSettingDcbClass *setting_class)
|
||||
{
|
||||
|
|
@ -907,6 +918,7 @@ nm_setting_dcb_class_init (NMSettingDcbClass *setting_class)
|
|||
/* virtual methods */
|
||||
object_class->set_property = set_property;
|
||||
object_class->get_property = get_property;
|
||||
object_class->finalize = finalize;
|
||||
parent_class->verify = verify;
|
||||
|
||||
/* Properties */
|
||||
|
|
|
|||
|
|
@ -130,6 +130,7 @@ set_property (GObject *object, guint prop_id,
|
|||
|
||||
switch (prop_id) {
|
||||
case PROP_CONFIG:
|
||||
g_free (priv->config);
|
||||
priv->config = g_value_dup_string (value);
|
||||
break;
|
||||
default:
|
||||
|
|
@ -154,6 +155,16 @@ get_property (GObject *object, guint prop_id,
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
finalize (GObject *object)
|
||||
{
|
||||
NMSettingTeamPortPrivate *priv = NM_SETTING_TEAM_PORT_GET_PRIVATE (object);
|
||||
|
||||
g_free (priv->config);
|
||||
|
||||
G_OBJECT_CLASS (nm_setting_team_port_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
nm_setting_team_port_class_init (NMSettingTeamPortClass *setting_class)
|
||||
{
|
||||
|
|
@ -165,6 +176,7 @@ nm_setting_team_port_class_init (NMSettingTeamPortClass *setting_class)
|
|||
/* virtual methods */
|
||||
object_class->set_property = set_property;
|
||||
object_class->get_property = get_property;
|
||||
object_class->finalize = finalize;
|
||||
parent_class->verify = verify;
|
||||
|
||||
/* Properties */
|
||||
|
|
|
|||
|
|
@ -434,27 +434,24 @@ nm_setting_wired_get_s390_option (NMSettingWired *setting,
|
|||
const char **out_key,
|
||||
const char **out_value)
|
||||
{
|
||||
NMSettingWiredPrivate *priv;
|
||||
guint32 num_keys;
|
||||
GList *keys;
|
||||
const char *_key = NULL, *_value = NULL;
|
||||
const char *_key, *_value;
|
||||
GHashTableIter iter;
|
||||
guint i = 0;
|
||||
|
||||
g_return_val_if_fail (NM_IS_SETTING_WIRED (setting), FALSE);
|
||||
|
||||
priv = NM_SETTING_WIRED_GET_PRIVATE (setting);
|
||||
|
||||
num_keys = nm_setting_wired_get_num_s390_options (setting);
|
||||
g_return_val_if_fail (idx < num_keys, FALSE);
|
||||
|
||||
keys = g_hash_table_get_keys (priv->s390_options);
|
||||
_key = g_list_nth_data (keys, idx);
|
||||
_value = g_hash_table_lookup (priv->s390_options, _key);
|
||||
|
||||
if (out_key)
|
||||
*out_key = _key;
|
||||
if (out_value)
|
||||
*out_value = _value;
|
||||
return TRUE;
|
||||
g_hash_table_iter_init (&iter, NM_SETTING_WIRED_GET_PRIVATE (setting)->s390_options);
|
||||
while (g_hash_table_iter_next (&iter, (gpointer) &_key, (gpointer) &_value)) {
|
||||
if (i == idx) {
|
||||
if (out_key)
|
||||
*out_key = _key;
|
||||
if (out_value)
|
||||
*out_value = _value;
|
||||
return TRUE;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
g_return_val_if_reached (FALSE);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1802,6 +1802,7 @@ nm_utils_ip_addresses_from_variant (GVariant *value,
|
|||
g_variant_unref (attr_val);
|
||||
}
|
||||
|
||||
g_variant_unref (addr_var);
|
||||
g_ptr_array_add (addresses, addr);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ LDADD = \
|
|||
$(top_builddir)/libnm-core/libnm-core.la \
|
||||
$(GLIB_LIBS)
|
||||
|
||||
@VALGRIND_RULES@
|
||||
TESTS = $(noinst_PROGRAMS)
|
||||
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ out:
|
|||
static void
|
||||
test_cert (gconstpointer test_data)
|
||||
{
|
||||
char *path;
|
||||
gs_free char *path;
|
||||
GByteArray *array;
|
||||
NMCryptoFileFormat format = NM_CRYPTO_FILE_FORMAT_UNKNOWN;
|
||||
GError *error = NULL;
|
||||
|
|
@ -226,6 +226,7 @@ test_is_pkcs12 (const char *path, gboolean expect_fail)
|
|||
if (expect_fail) {
|
||||
g_assert_error (error, NM_CRYPTO_ERROR, NM_CRYPTO_ERROR_INVALID_DATA);
|
||||
g_assert (!is_pkcs12);
|
||||
g_clear_error (&error);
|
||||
} else {
|
||||
g_assert_no_error (error);
|
||||
g_assert (is_pkcs12);
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@
|
|||
#include <string.h>
|
||||
|
||||
#include <nm-utils.h>
|
||||
#include "gsystem-local-alloc.h"
|
||||
|
||||
#include "nm-setting-private.h"
|
||||
#include "nm-utils.h"
|
||||
|
|
@ -648,7 +649,7 @@ test_setting_ip4_config_address_data (void)
|
|||
static void
|
||||
test_setting_gsm_apn_spaces (void)
|
||||
{
|
||||
NMSettingGsm *s_gsm;
|
||||
gs_unref_object NMSettingGsm *s_gsm;
|
||||
const char *tmp;
|
||||
|
||||
s_gsm = (NMSettingGsm *) nm_setting_gsm_new ();
|
||||
|
|
@ -676,7 +677,7 @@ test_setting_gsm_apn_spaces (void)
|
|||
static void
|
||||
test_setting_gsm_apn_bad_chars (void)
|
||||
{
|
||||
NMSettingGsm *s_gsm;
|
||||
gs_unref_object NMSettingGsm *s_gsm;
|
||||
|
||||
s_gsm = (NMSettingGsm *) nm_setting_gsm_new ();
|
||||
ASSERT (s_gsm != NULL,
|
||||
|
|
@ -714,7 +715,7 @@ test_setting_gsm_apn_bad_chars (void)
|
|||
static void
|
||||
test_setting_gsm_apn_underscore (void)
|
||||
{
|
||||
NMSettingGsm *s_gsm;
|
||||
gs_unref_object NMSettingGsm *s_gsm;
|
||||
|
||||
s_gsm = (NMSettingGsm *) nm_setting_gsm_new ();
|
||||
g_assert (s_gsm);
|
||||
|
|
@ -729,7 +730,7 @@ test_setting_gsm_apn_underscore (void)
|
|||
static void
|
||||
test_setting_gsm_without_number (void)
|
||||
{
|
||||
NMSettingGsm *s_gsm;
|
||||
gs_unref_object NMSettingGsm *s_gsm;
|
||||
|
||||
s_gsm = (NMSettingGsm *) nm_setting_gsm_new ();
|
||||
g_assert (s_gsm);
|
||||
|
|
@ -1551,6 +1552,7 @@ test_connection_replace_settings_bad (void)
|
|||
connection = new_test_connection ();
|
||||
success = nm_connection_replace_settings (connection, new_settings, &error);
|
||||
g_assert_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_SETTING);
|
||||
g_clear_error (&error);
|
||||
g_assert (!success);
|
||||
|
||||
g_assert (nm_connection_verify (connection, NULL));
|
||||
|
|
@ -2388,7 +2390,7 @@ test_connection_bad_base_types (void)
|
|||
static void
|
||||
test_setting_compare_id (void)
|
||||
{
|
||||
NMSetting *old, *new;
|
||||
gs_unref_object NMSetting *old, *new;
|
||||
gboolean success;
|
||||
|
||||
old = nm_setting_connection_new ();
|
||||
|
|
@ -2412,7 +2414,7 @@ test_setting_compare_id (void)
|
|||
static void
|
||||
test_setting_compare_timestamp (void)
|
||||
{
|
||||
NMSetting *old, *new;
|
||||
gs_unref_object NMSetting *old, *new;
|
||||
gboolean success;
|
||||
|
||||
old = nm_setting_connection_new ();
|
||||
|
|
@ -2457,7 +2459,7 @@ static void
|
|||
test_setting_compare_secrets (gconstpointer test_data)
|
||||
{
|
||||
const TestDataCompareSecrets *data = test_data;
|
||||
NMSetting *old, *new;
|
||||
gs_unref_object NMSetting *old, *new;
|
||||
gboolean success;
|
||||
|
||||
/* Make sure that a connection with transient/unsaved secrets compares
|
||||
|
|
@ -2488,7 +2490,7 @@ static void
|
|||
test_setting_compare_vpn_secrets (gconstpointer test_data)
|
||||
{
|
||||
const TestDataCompareSecrets *data = test_data;
|
||||
NMSetting *old, *new;
|
||||
gs_unref_object NMSetting *old, *new;
|
||||
gboolean success;
|
||||
|
||||
/* Make sure that a connection with transient/unsaved secrets compares
|
||||
|
|
@ -2764,7 +2766,7 @@ test_setting_connection_changed_signal (void)
|
|||
NMConnection *connection;
|
||||
gboolean changed = FALSE;
|
||||
NMSettingConnection *s_con;
|
||||
char *uuid;
|
||||
gs_free char *uuid;
|
||||
|
||||
connection = nm_simple_connection_new ();
|
||||
g_signal_connect (connection,
|
||||
|
|
@ -3170,7 +3172,7 @@ test_setting_802_1x_changed_signal (void)
|
|||
static void
|
||||
test_setting_old_uuid (void)
|
||||
{
|
||||
NMSetting *setting;
|
||||
gs_unref_object NMSetting *setting;
|
||||
|
||||
/* NetworkManager-0.9.4.0 generated 40-character UUIDs with no dashes,
|
||||
* like this one. Test that we maintain compatibility. */
|
||||
|
|
@ -3879,6 +3881,7 @@ test_setting_ip6_gateway (void)
|
|||
value = g_variant_lookup_value (ip6_dict, NM_SETTING_IP_CONFIG_GATEWAY, G_VARIANT_TYPE_STRING);
|
||||
g_assert (value != NULL);
|
||||
g_assert_cmpstr (g_variant_get_string (value, NULL), ==, "abcd::1");
|
||||
g_variant_unref (value);
|
||||
|
||||
value = g_variant_lookup_value (ip6_dict, NM_SETTING_IP_CONFIG_ADDRESSES, G_VARIANT_TYPE ("a(ayuay)"));
|
||||
g_assert (value != NULL);
|
||||
|
|
@ -3975,6 +3978,7 @@ test_hexstr2bin (void)
|
|||
g_assert (b);
|
||||
g_assert_cmpint (g_bytes_get_size (b), ==, items[i].expected_len);
|
||||
g_assert (memcmp (g_bytes_get_data (b, NULL), items[i].expected, g_bytes_get_size (b)) == 0);
|
||||
g_bytes_unref (b);
|
||||
} else
|
||||
g_assert (b == NULL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -176,6 +176,7 @@ test_need_tls_secrets_path (void)
|
|||
"need-tls-secrets-path-key-password",
|
||||
"expected to require private key password, but it wasn't");
|
||||
|
||||
g_ptr_array_free (hints, TRUE);
|
||||
g_object_unref (connection);
|
||||
}
|
||||
|
||||
|
|
@ -219,6 +220,7 @@ test_need_tls_secrets_blob (void)
|
|||
"need-tls-secrets-blob-key-password",
|
||||
"expected to require private key password, but it wasn't");
|
||||
|
||||
g_ptr_array_free (hints, TRUE);
|
||||
g_object_unref (connection);
|
||||
}
|
||||
|
||||
|
|
@ -345,6 +347,7 @@ test_need_tls_phase2_secrets_path (void)
|
|||
"need-tls-phase2-secrets-path-key-password",
|
||||
"expected to require private key password, but it wasn't");
|
||||
|
||||
g_ptr_array_free (hints, TRUE);
|
||||
g_object_unref (connection);
|
||||
}
|
||||
|
||||
|
|
@ -389,6 +392,7 @@ test_need_tls_phase2_secrets_blob (void)
|
|||
"need-tls-phase2-secrets-blob-key-password",
|
||||
"expected to require private key password, but it wasn't");
|
||||
|
||||
g_ptr_array_free (hints, TRUE);
|
||||
g_object_unref (connection);
|
||||
}
|
||||
|
||||
|
|
@ -559,8 +563,8 @@ test_update_secrets_wifi_bad_setting_name (void)
|
|||
g_assert_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_SETTING_NOT_FOUND);
|
||||
g_assert (success == FALSE);
|
||||
|
||||
g_clear_error (&error);
|
||||
g_variant_unref (secrets);
|
||||
|
||||
g_object_unref (connection);
|
||||
}
|
||||
|
||||
|
|
@ -668,6 +672,7 @@ test_update_secrets_whole_connection_bad_setting (void)
|
|||
g_assert_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_SETTING_NOT_FOUND);
|
||||
g_assert (success == FALSE);
|
||||
|
||||
g_clear_error (&error);
|
||||
g_variant_unref (copy);
|
||||
g_object_unref (connection);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -186,6 +186,7 @@ test_phase2_private_key_import (const char *path,
|
|||
g_object_get (s_8021x, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY, &tmp_key, NULL);
|
||||
ASSERT (tmp_key != NULL, "phase2-private-key-import", "missing private key value");
|
||||
check_scheme_path (tmp_key, path);
|
||||
g_bytes_unref (tmp_key);
|
||||
} else
|
||||
g_assert_not_reached ();
|
||||
|
||||
|
|
@ -245,6 +246,7 @@ test_wrong_password_keeps_data (const char *path, const char *password)
|
|||
"wrong-password-keeps-data", "unexpected missing error");
|
||||
ASSERT (format == NM_SETTING_802_1X_CK_FORMAT_UNKNOWN,
|
||||
"wrong-password-keeps-data", "unexpected success reading private key format");
|
||||
g_clear_error (&error);
|
||||
|
||||
/* Make sure the password hasn't changed */
|
||||
pw = nm_setting_802_1x_get_private_key_password (s_8021x);
|
||||
|
|
@ -342,6 +344,7 @@ test_wrong_phase2_password_keeps_data (const char *path, const char *password)
|
|||
"wrong-phase2-password-keeps-data", "unexpected missing error");
|
||||
ASSERT (format == NM_SETTING_802_1X_CK_FORMAT_UNKNOWN,
|
||||
"wrong-phase2-password-keeps-data", "unexpected success reading private key format");
|
||||
g_clear_error (&error);
|
||||
|
||||
/* Make sure the password hasn't changed */
|
||||
pw = nm_setting_802_1x_get_phase2_private_key_password (s_8021x);
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
#include "nm-setting-dcb.h"
|
||||
#include "nm-connection.h"
|
||||
#include "nm-errors.h"
|
||||
#include "gsystem-local-alloc.h"
|
||||
|
||||
#define DCB_FLAGS_ALL (NM_SETTING_DCB_FLAG_ENABLE | \
|
||||
NM_SETTING_DCB_FLAG_ADVERTISE | \
|
||||
|
|
@ -36,7 +37,7 @@
|
|||
static void
|
||||
test_dcb_flags_valid (void)
|
||||
{
|
||||
NMSettingDcb *s_dcb;
|
||||
gs_unref_object NMSettingDcb *s_dcb;
|
||||
GError *error = NULL;
|
||||
gboolean success;
|
||||
guint i;
|
||||
|
|
@ -89,7 +90,7 @@ test_dcb_flags_valid (void)
|
|||
static void
|
||||
test_dcb_flags_invalid (void)
|
||||
{
|
||||
NMSettingDcb *s_dcb;
|
||||
gs_unref_object NMSettingDcb *s_dcb;
|
||||
GError *error = NULL;
|
||||
gboolean success;
|
||||
|
||||
|
|
@ -148,7 +149,7 @@ test_dcb_flags_invalid (void)
|
|||
static void
|
||||
test_dcb_app_priorities (void)
|
||||
{
|
||||
NMSettingDcb *s_dcb;
|
||||
gs_unref_object NMSettingDcb *s_dcb;
|
||||
GError *error = NULL;
|
||||
gboolean success;
|
||||
|
||||
|
|
@ -210,7 +211,7 @@ test_dcb_app_priorities (void)
|
|||
static void
|
||||
test_dcb_priorities_valid (void)
|
||||
{
|
||||
NMSettingDcb *s_dcb;
|
||||
gs_unref_object NMSettingDcb *s_dcb;
|
||||
GError *error = NULL;
|
||||
gboolean success;
|
||||
guint i;
|
||||
|
|
@ -269,7 +270,7 @@ test_dcb_priorities_valid (void)
|
|||
static void
|
||||
test_dcb_bandwidth_sums (void)
|
||||
{
|
||||
NMSettingDcb *s_dcb;
|
||||
gs_unref_object NMSettingDcb *s_dcb;
|
||||
GError *error = NULL;
|
||||
gboolean success;
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,11 @@ AM_CPPFLAGS = \
|
|||
|
||||
noinst_PROGRAMS = $(TESTS)
|
||||
|
||||
if WITH_VALGRIND
|
||||
@VALGRIND_RULES@ --launch-dbus
|
||||
else
|
||||
TESTS_ENVIRONMENT = $(srcdir)/libnm-test-launch.sh
|
||||
endif
|
||||
TESTS = test-nm-client test-remote-settings-client
|
||||
|
||||
####### NMClient and non-settings tests #######
|
||||
|
|
@ -42,8 +47,6 @@ test_remote_settings_client_LDADD = \
|
|||
|
||||
###########################################
|
||||
|
||||
TESTS_ENVIRONMENT = $(srcdir)/libnm-glib-test-launch.sh
|
||||
|
||||
endif
|
||||
|
||||
EXTRA_DIST = libnm-glib-test-launch.sh
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@
|
|||
|
||||
#include "nm-remote-settings.h"
|
||||
#include "common.h"
|
||||
#include "gsystem-local-alloc.h"
|
||||
|
||||
static NMTestServiceInfo *sinfo;
|
||||
static NMRemoteSettings *settings = NULL;
|
||||
|
|
@ -63,7 +64,7 @@ add_cb (NMRemoteSettings *s,
|
|||
static void
|
||||
test_add_connection (void)
|
||||
{
|
||||
NMConnection *connection;
|
||||
gs_unref_object NMConnection *connection = NULL;
|
||||
NMSettingConnection *s_con;
|
||||
NMSettingWired *s_wired;
|
||||
char *uuid;
|
||||
|
|
@ -256,6 +257,7 @@ test_make_visible (void)
|
|||
break;
|
||||
}
|
||||
}
|
||||
g_slist_free (list);
|
||||
g_assert (found == TRUE);
|
||||
|
||||
g_free (path);
|
||||
|
|
@ -298,6 +300,7 @@ test_remove_connection (void)
|
|||
g_assert_cmpint (g_slist_length (list), >, 0);
|
||||
|
||||
connection = NM_REMOTE_CONNECTION (list->data);
|
||||
g_slist_free (list);
|
||||
g_assert (connection);
|
||||
g_assert (remote == connection);
|
||||
path = g_strdup (nm_connection_get_path (NM_CONNECTION (connection)));
|
||||
|
|
@ -329,6 +332,7 @@ test_remove_connection (void)
|
|||
g_assert ((gpointer) connection != (gpointer) candidate);
|
||||
g_assert_cmpstr (path, ==, nm_connection_get_path (candidate));
|
||||
}
|
||||
g_slist_free (list);
|
||||
|
||||
g_free (path);
|
||||
g_object_unref (proxy);
|
||||
|
|
|
|||
|
|
@ -1241,7 +1241,7 @@ nm_connection_to_hash (NMConnection *connection, NMSettingHashFlags flags)
|
|||
g_return_val_if_fail (NM_IS_CONNECTION (connection), NULL);
|
||||
|
||||
ret = g_hash_table_new_full (g_str_hash, g_str_equal,
|
||||
g_free, (GDestroyNotify) g_hash_table_destroy);
|
||||
g_free, (GDestroyNotify) g_hash_table_unref);
|
||||
|
||||
priv = NM_CONNECTION_GET_PRIVATE (connection);
|
||||
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_DCB)
|
|||
typedef struct {
|
||||
NMSettingDcbFlags app_fcoe_flags;
|
||||
gint app_fcoe_priority;
|
||||
const char * app_fcoe_mode;
|
||||
char * app_fcoe_mode;
|
||||
|
||||
NMSettingDcbFlags app_iscsi_flags;
|
||||
gint app_iscsi_priority;
|
||||
|
|
@ -833,6 +833,7 @@ set_property (GObject *object, guint prop_id,
|
|||
priv->app_fcoe_priority = g_value_get_int (value);
|
||||
break;
|
||||
case PROP_APP_FCOE_MODE:
|
||||
g_free (priv->app_fcoe_mode);
|
||||
priv->app_fcoe_mode = g_value_dup_string (value);
|
||||
break;
|
||||
case PROP_APP_ISCSI_FLAGS:
|
||||
|
|
@ -944,6 +945,16 @@ get_property (GObject *object, guint prop_id,
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
finalize (GObject *object)
|
||||
{
|
||||
NMSettingDcbPrivate *priv = NM_SETTING_DCB_GET_PRIVATE (object);
|
||||
|
||||
g_free (priv->app_fcoe_mode);
|
||||
|
||||
G_OBJECT_CLASS (nm_setting_dcb_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
nm_setting_dcb_class_init (NMSettingDcbClass *setting_class)
|
||||
{
|
||||
|
|
@ -955,6 +966,7 @@ nm_setting_dcb_class_init (NMSettingDcbClass *setting_class)
|
|||
/* virtual methods */
|
||||
object_class->set_property = set_property;
|
||||
object_class->get_property = get_property;
|
||||
object_class->finalize = finalize;
|
||||
parent_class->verify = verify;
|
||||
|
||||
/* Properties */
|
||||
|
|
|
|||
|
|
@ -130,6 +130,7 @@ set_property (GObject *object, guint prop_id,
|
|||
|
||||
switch (prop_id) {
|
||||
case PROP_CONFIG:
|
||||
g_free (priv->config);
|
||||
priv->config = g_value_dup_string (value);
|
||||
break;
|
||||
default:
|
||||
|
|
@ -154,6 +155,16 @@ get_property (GObject *object, guint prop_id,
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
finalize (GObject *object)
|
||||
{
|
||||
NMSettingTeamPortPrivate *priv = NM_SETTING_TEAM_PORT_GET_PRIVATE (object);
|
||||
|
||||
g_free (priv->config);
|
||||
|
||||
G_OBJECT_CLASS (nm_setting_team_port_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
nm_setting_team_port_class_init (NMSettingTeamPortClass *setting_class)
|
||||
{
|
||||
|
|
@ -165,6 +176,7 @@ nm_setting_team_port_class_init (NMSettingTeamPortClass *setting_class)
|
|||
/* virtual methods */
|
||||
object_class->set_property = set_property;
|
||||
object_class->get_property = get_property;
|
||||
object_class->finalize = finalize;
|
||||
parent_class->verify = verify;
|
||||
|
||||
/* Properties */
|
||||
|
|
|
|||
|
|
@ -474,27 +474,24 @@ nm_setting_wired_get_s390_option (NMSettingWired *setting,
|
|||
const char **out_key,
|
||||
const char **out_value)
|
||||
{
|
||||
NMSettingWiredPrivate *priv;
|
||||
guint32 num_keys;
|
||||
GList *keys;
|
||||
const char *_key = NULL, *_value = NULL;
|
||||
const char *_key, *_value;
|
||||
GHashTableIter iter;
|
||||
guint i = 0;
|
||||
|
||||
g_return_val_if_fail (NM_IS_SETTING_WIRED (setting), FALSE);
|
||||
|
||||
priv = NM_SETTING_WIRED_GET_PRIVATE (setting);
|
||||
|
||||
num_keys = nm_setting_wired_get_num_s390_options (setting);
|
||||
g_return_val_if_fail (idx < num_keys, FALSE);
|
||||
|
||||
keys = g_hash_table_get_keys (priv->s390_options);
|
||||
_key = g_list_nth_data (keys, idx);
|
||||
_value = g_hash_table_lookup (priv->s390_options, _key);
|
||||
|
||||
if (out_key)
|
||||
*out_key = _key;
|
||||
if (out_value)
|
||||
*out_value = _value;
|
||||
return TRUE;
|
||||
g_hash_table_iter_init (&iter, NM_SETTING_WIRED_GET_PRIVATE (setting)->s390_options);
|
||||
while (g_hash_table_iter_next (&iter, (gpointer) &_key, (gpointer) &_value)) {
|
||||
if (i == idx) {
|
||||
if (out_key)
|
||||
*out_key = _key;
|
||||
if (out_value)
|
||||
*out_value = _value;
|
||||
return TRUE;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
g_return_val_if_reached (FALSE);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ AM_CPPFLAGS = \
|
|||
-DBUILD_DIR=\"$(abs_builddir)\" \
|
||||
-DTEST_CERT_DIR=\"$(top_srcdir)/libnm-core/tests/certs/\"
|
||||
|
||||
@VALGRIND_RULES@
|
||||
TESTS = \
|
||||
test-settings-defaults \
|
||||
test-crypto \
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ out:
|
|||
static void
|
||||
test_cert (gconstpointer test_data)
|
||||
{
|
||||
char *path;
|
||||
gs_free char *path;
|
||||
GByteArray *array;
|
||||
NMCryptoFileFormat format = NM_CRYPTO_FILE_FORMAT_UNKNOWN;
|
||||
GError *error = NULL;
|
||||
|
|
@ -153,6 +153,7 @@ test_load_private_key (const char *path,
|
|||
"unexpected failure determining private key file '%s' "
|
||||
"type with invalid password (expected %d, got %d)",
|
||||
path, NM_CRYPTO_KEY_TYPE_UNKNOWN, key_type);
|
||||
g_clear_error (&error);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -183,6 +184,7 @@ test_load_private_key (const char *path,
|
|||
g_byte_array_free (decrypted, TRUE);
|
||||
}
|
||||
|
||||
g_clear_error (&error);
|
||||
g_byte_array_free (array, TRUE);
|
||||
}
|
||||
|
||||
|
|
@ -207,6 +209,7 @@ test_load_pkcs12 (const char *path,
|
|||
"%d): %d %s",
|
||||
path, NM_CRYPTO_FILE_FORMAT_PKCS12, format, error->code, error->message);
|
||||
}
|
||||
g_clear_error (&error);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
#include <sys/resource.h>
|
||||
|
||||
#include <nm-utils.h>
|
||||
#include "gsystem-local-alloc.h"
|
||||
|
||||
#include "nm-setting-private.h"
|
||||
#include "nm-setting-connection.h"
|
||||
|
|
@ -310,6 +311,13 @@ test_setting_vpn_modify_during_foreach (void)
|
|||
g_object_unref (s_vpn);
|
||||
}
|
||||
|
||||
static void
|
||||
_g_value_array_free (void *ptr)
|
||||
{
|
||||
if (ptr)
|
||||
g_value_array_free ((GValueArray *) ptr);
|
||||
}
|
||||
|
||||
#define OLD_DBUS_TYPE_G_IP6_ADDRESS (dbus_g_type_get_struct ("GValueArray", DBUS_TYPE_G_UCHAR_ARRAY, G_TYPE_UINT, G_TYPE_INVALID))
|
||||
#define OLD_DBUS_TYPE_G_ARRAY_OF_IP6_ADDRESS (dbus_g_type_get_collection ("GPtrArray", OLD_DBUS_TYPE_G_IP6_ADDRESS))
|
||||
|
||||
|
|
@ -338,7 +346,7 @@ test_setting_ip6_config_old_address_array (void)
|
|||
|
||||
g_value_init (&written_value, OLD_DBUS_TYPE_G_ARRAY_OF_IP6_ADDRESS);
|
||||
|
||||
addresses = g_ptr_array_new ();
|
||||
addresses = g_ptr_array_new_full (0, _g_value_array_free);
|
||||
array = g_value_array_new (3);
|
||||
|
||||
/* IP address */
|
||||
|
|
@ -398,6 +406,7 @@ test_setting_ip6_config_old_address_array (void)
|
|||
ASSERT (memcmp (ba->data, &gw[0], sizeof (gw)) == 0,
|
||||
"ip6-old-addr", "unexpected failure comparing gateways");
|
||||
|
||||
g_ptr_array_unref (addresses);
|
||||
g_value_unset (&written_value);
|
||||
g_value_unset (&read_value);
|
||||
g_object_unref (s_ip6);
|
||||
|
|
@ -406,7 +415,7 @@ test_setting_ip6_config_old_address_array (void)
|
|||
static void
|
||||
test_setting_gsm_apn_spaces (void)
|
||||
{
|
||||
NMSettingGsm *s_gsm;
|
||||
gs_unref_object NMSettingGsm *s_gsm;
|
||||
const char *tmp;
|
||||
|
||||
s_gsm = (NMSettingGsm *) nm_setting_gsm_new ();
|
||||
|
|
@ -434,7 +443,7 @@ test_setting_gsm_apn_spaces (void)
|
|||
static void
|
||||
test_setting_gsm_apn_bad_chars (void)
|
||||
{
|
||||
NMSettingGsm *s_gsm;
|
||||
gs_unref_object NMSettingGsm *s_gsm;
|
||||
|
||||
s_gsm = (NMSettingGsm *) nm_setting_gsm_new ();
|
||||
ASSERT (s_gsm != NULL,
|
||||
|
|
@ -472,7 +481,7 @@ test_setting_gsm_apn_bad_chars (void)
|
|||
static void
|
||||
test_setting_gsm_apn_underscore (void)
|
||||
{
|
||||
NMSettingGsm *s_gsm;
|
||||
gs_unref_object NMSettingGsm *s_gsm;
|
||||
GError *error = NULL;
|
||||
gboolean success;
|
||||
|
||||
|
|
@ -491,7 +500,7 @@ test_setting_gsm_apn_underscore (void)
|
|||
static void
|
||||
test_setting_gsm_without_number (void)
|
||||
{
|
||||
NMSettingGsm *s_gsm;
|
||||
gs_unref_object NMSettingGsm *s_gsm;
|
||||
GError *error = NULL;
|
||||
gboolean success;
|
||||
|
||||
|
|
@ -1573,6 +1582,7 @@ test_connection_good_base_types (void)
|
|||
NM_SETTING_GSM_APN, "metered.billing.sucks",
|
||||
NULL);
|
||||
nm_connection_add_setting (connection, setting);
|
||||
g_clear_object (&connection);
|
||||
|
||||
/* CDMA connection */
|
||||
connection = nm_connection_new ();
|
||||
|
|
@ -1671,7 +1681,7 @@ test_connection_bad_base_types (void)
|
|||
static void
|
||||
test_setting_compare_id (void)
|
||||
{
|
||||
NMSetting *old, *new;
|
||||
gs_unref_object NMSetting *old, *new;
|
||||
gboolean success;
|
||||
|
||||
old = nm_setting_connection_new ();
|
||||
|
|
@ -1697,7 +1707,7 @@ test_setting_compare_secrets (NMSettingSecretFlags secret_flags,
|
|||
NMSettingCompareFlags comp_flags,
|
||||
gboolean remove_secret)
|
||||
{
|
||||
NMSetting *old, *new;
|
||||
gs_unref_object NMSetting *old, *new;
|
||||
gboolean success;
|
||||
|
||||
/* Make sure that a connection with transient/unsaved secrets compares
|
||||
|
|
@ -1729,7 +1739,7 @@ test_setting_compare_vpn_secrets (NMSettingSecretFlags secret_flags,
|
|||
NMSettingCompareFlags comp_flags,
|
||||
gboolean remove_secret)
|
||||
{
|
||||
NMSetting *old, *new;
|
||||
gs_unref_object NMSetting *old, *new;
|
||||
gboolean success;
|
||||
|
||||
/* Make sure that a connection with transient/unsaved secrets compares
|
||||
|
|
@ -1908,7 +1918,7 @@ test_setting_connection_changed_signal (void)
|
|||
NMConnection *connection;
|
||||
gboolean changed = FALSE;
|
||||
NMSettingConnection *s_con;
|
||||
char *uuid;
|
||||
gs_free char *uuid;
|
||||
|
||||
connection = nm_connection_new ();
|
||||
g_signal_connect (connection,
|
||||
|
|
@ -2318,7 +2328,7 @@ static void
|
|||
test_setting_old_uuid (void)
|
||||
{
|
||||
GError *error = NULL;
|
||||
NMSetting *setting;
|
||||
gs_unref_object NMSetting *setting;
|
||||
gboolean success;
|
||||
|
||||
/* NetworkManager-0.9.4.0 generated 40-character UUIDs with no dashes,
|
||||
|
|
|
|||
|
|
@ -176,6 +176,7 @@ test_need_tls_secrets_path (void)
|
|||
"need-tls-secrets-path-key-password",
|
||||
"expected to require private key password, but it wasn't");
|
||||
|
||||
g_ptr_array_free (hints, TRUE);
|
||||
g_object_unref (connection);
|
||||
}
|
||||
|
||||
|
|
@ -219,6 +220,7 @@ test_need_tls_secrets_blob (void)
|
|||
"need-tls-secrets-blob-key-password",
|
||||
"expected to require private key password, but it wasn't");
|
||||
|
||||
g_ptr_array_free (hints, TRUE);
|
||||
g_object_unref (connection);
|
||||
}
|
||||
|
||||
|
|
@ -345,6 +347,7 @@ test_need_tls_phase2_secrets_path (void)
|
|||
"need-tls-phase2-secrets-path-key-password",
|
||||
"expected to require private key password, but it wasn't");
|
||||
|
||||
g_ptr_array_free (hints, TRUE);
|
||||
g_object_unref (connection);
|
||||
}
|
||||
|
||||
|
|
@ -389,6 +392,7 @@ test_need_tls_phase2_secrets_blob (void)
|
|||
"need-tls-phase2-secrets-blob-key-password",
|
||||
"expected to require private key password, but it wasn't");
|
||||
|
||||
g_ptr_array_free (hints, TRUE);
|
||||
g_object_unref (connection);
|
||||
}
|
||||
|
||||
|
|
@ -507,6 +511,7 @@ test_update_secrets_wifi_single_setting (void)
|
|||
tmp = nm_setting_wireless_security_get_wep_key (s_wsec, 0);
|
||||
g_assert_cmpstr (tmp, ==, wepkey);
|
||||
|
||||
g_hash_table_unref (secrets);
|
||||
g_object_unref (connection);
|
||||
}
|
||||
|
||||
|
|
@ -547,6 +552,7 @@ test_update_secrets_wifi_full_hash (void)
|
|||
tmp = nm_setting_wireless_security_get_wep_key (s_wsec, 0);
|
||||
g_assert_cmpstr (tmp, ==, wepkey);
|
||||
|
||||
g_hash_table_unref (all);
|
||||
g_object_unref (connection);
|
||||
}
|
||||
|
||||
|
|
@ -577,6 +583,8 @@ test_update_secrets_wifi_bad_setting_name (void)
|
|||
g_assert_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_SETTING_NOT_FOUND);
|
||||
g_assert (success == FALSE);
|
||||
|
||||
g_clear_error (&error);
|
||||
g_hash_table_unref (secrets);
|
||||
g_object_unref (connection);
|
||||
}
|
||||
|
||||
|
|
@ -600,7 +608,7 @@ test_update_secrets_whole_connection (void)
|
|||
secrets = nm_connection_to_hash (connection, NM_SETTING_HASH_FLAG_ALL);
|
||||
wsec_hash = g_hash_table_lookup (secrets, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME);
|
||||
g_assert (wsec_hash);
|
||||
g_hash_table_insert (wsec_hash, NM_SETTING_WIRELESS_SECURITY_WEP_KEY0, string_to_gvalue (wepkey));
|
||||
g_hash_table_insert (wsec_hash, g_strdup (NM_SETTING_WIRELESS_SECURITY_WEP_KEY0), string_to_gvalue (wepkey));
|
||||
|
||||
success = nm_connection_update_secrets (connection, NULL, secrets, &error);
|
||||
g_assert_no_error (error);
|
||||
|
|
@ -610,6 +618,7 @@ test_update_secrets_whole_connection (void)
|
|||
g_assert (s_wsec);
|
||||
g_assert_cmpstr (nm_setting_wireless_security_get_wep_key (s_wsec, 0), ==, wepkey);
|
||||
|
||||
g_hash_table_unref (secrets);
|
||||
g_object_unref (connection);
|
||||
}
|
||||
|
||||
|
|
@ -629,6 +638,7 @@ test_update_secrets_whole_connection_empty_hash (void)
|
|||
g_assert_no_error (error);
|
||||
g_assert (success == TRUE);
|
||||
g_object_unref (connection);
|
||||
g_hash_table_unref (secrets);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -650,20 +660,23 @@ test_update_secrets_whole_connection_bad_setting (void)
|
|||
secrets = nm_connection_to_hash (connection, NM_SETTING_HASH_FLAG_ALL);
|
||||
wsec_hash = g_hash_table_lookup (secrets, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME);
|
||||
g_assert (wsec_hash);
|
||||
g_hash_table_insert (wsec_hash, NM_SETTING_WIRELESS_SECURITY_WEP_KEY0, string_to_gvalue (wepkey));
|
||||
g_hash_table_insert (wsec_hash, g_strdup (NM_SETTING_WIRELESS_SECURITY_WEP_KEY0), string_to_gvalue (wepkey));
|
||||
|
||||
/* Steal the wsec setting hash so it's not deallocated, and stuff it back
|
||||
* in with a different name so we ensure libnm-util is returning the right
|
||||
* error when it finds an entry in the connection hash that doesn't match
|
||||
* any setting in the connection.
|
||||
*/
|
||||
g_hash_table_steal (secrets, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME);
|
||||
g_hash_table_insert (secrets, "asdfasdfasdfasdf", wsec_hash);
|
||||
g_hash_table_ref (wsec_hash);
|
||||
g_hash_table_remove (secrets, NM_SETTING_WIRELESS_SECURITY_SETTING_NAME);
|
||||
g_hash_table_insert (secrets, g_strdup ("asdfasdfasdfasdf"), wsec_hash);
|
||||
|
||||
success = nm_connection_update_secrets (connection, NULL, secrets, &error);
|
||||
g_assert_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_SETTING_NOT_FOUND);
|
||||
g_assert (success == FALSE);
|
||||
|
||||
g_clear_error (&error);
|
||||
g_hash_table_destroy (secrets);
|
||||
g_object_unref (connection);
|
||||
}
|
||||
|
||||
|
|
@ -716,6 +729,7 @@ test_update_secrets_null_setting_name_with_setting_hash (void)
|
|||
g_assert_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_SETTING_NOT_FOUND);
|
||||
g_assert (!success);
|
||||
|
||||
g_clear_error (&error);
|
||||
g_hash_table_destroy (secrets);
|
||||
g_object_unref (connection);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -188,6 +188,7 @@ test_phase2_private_key_import (const char *path,
|
|||
g_object_get (s_8021x, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY, &tmp_key, NULL);
|
||||
ASSERT (tmp_key != NULL, "phase2-private-key-import", "missing private key value");
|
||||
check_scheme_path (tmp_key, path);
|
||||
g_byte_array_free (tmp_key, TRUE);
|
||||
} else
|
||||
g_assert_not_reached ();
|
||||
|
||||
|
|
@ -249,6 +250,7 @@ test_wrong_password_keeps_data (const char *path, const char *password)
|
|||
"wrong-password-keeps-data", "unexpected missing error");
|
||||
ASSERT (format == NM_SETTING_802_1X_CK_FORMAT_UNKNOWN,
|
||||
"wrong-password-keeps-data", "unexpected success reading private key format");
|
||||
g_clear_error (&error);
|
||||
|
||||
/* Make sure the password hasn't changed */
|
||||
pw = nm_setting_802_1x_get_private_key_password (s_8021x);
|
||||
|
|
@ -346,6 +348,7 @@ test_wrong_phase2_password_keeps_data (const char *path, const char *password)
|
|||
"wrong-phase2-password-keeps-data", "unexpected missing error");
|
||||
ASSERT (format == NM_SETTING_802_1X_CK_FORMAT_UNKNOWN,
|
||||
"wrong-phase2-password-keeps-data", "unexpected success reading private key format");
|
||||
g_clear_error (&error);
|
||||
|
||||
/* Make sure the password hasn't changed */
|
||||
pw = nm_setting_802_1x_get_phase2_private_key_password (s_8021x);
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
#include <nm-utils.h>
|
||||
#include <nm-glib-compat.h>
|
||||
#include "nm-setting-dcb.h"
|
||||
#include "gsystem-local-alloc.h"
|
||||
|
||||
#define DCB_FLAGS_ALL (NM_SETTING_DCB_FLAG_ENABLE | \
|
||||
NM_SETTING_DCB_FLAG_ADVERTISE | \
|
||||
|
|
@ -34,7 +35,7 @@
|
|||
static void
|
||||
test_dcb_flags_valid (void)
|
||||
{
|
||||
NMSettingDcb *s_dcb;
|
||||
gs_unref_object NMSettingDcb *s_dcb;
|
||||
GError *error = NULL;
|
||||
gboolean success;
|
||||
guint i;
|
||||
|
|
@ -87,7 +88,7 @@ test_dcb_flags_valid (void)
|
|||
static void
|
||||
test_dcb_flags_invalid (void)
|
||||
{
|
||||
NMSettingDcb *s_dcb;
|
||||
gs_unref_object NMSettingDcb *s_dcb;
|
||||
GError *error = NULL;
|
||||
gboolean success;
|
||||
|
||||
|
|
@ -146,7 +147,7 @@ test_dcb_flags_invalid (void)
|
|||
static void
|
||||
test_dcb_app_priorities (void)
|
||||
{
|
||||
NMSettingDcb *s_dcb;
|
||||
gs_unref_object NMSettingDcb *s_dcb;
|
||||
GError *error = NULL;
|
||||
gboolean success;
|
||||
|
||||
|
|
@ -208,7 +209,7 @@ test_dcb_app_priorities (void)
|
|||
static void
|
||||
test_dcb_priorities_valid (void)
|
||||
{
|
||||
NMSettingDcb *s_dcb;
|
||||
gs_unref_object NMSettingDcb *s_dcb;
|
||||
GError *error = NULL;
|
||||
gboolean success;
|
||||
guint i;
|
||||
|
|
@ -267,7 +268,7 @@ test_dcb_priorities_valid (void)
|
|||
static void
|
||||
test_dcb_bandwidth_sums (void)
|
||||
{
|
||||
NMSettingDcb *s_dcb;
|
||||
gs_unref_object NMSettingDcb *s_dcb;
|
||||
GError *error = NULL;
|
||||
gboolean success;
|
||||
|
||||
|
|
|
|||
|
|
@ -349,6 +349,7 @@ _nm_dbus_bind_properties (gpointer object, gpointer skeleton)
|
|||
skeleton, properties[i]->name,
|
||||
G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE);
|
||||
}
|
||||
g_free (properties);
|
||||
}
|
||||
|
||||
static char *
|
||||
|
|
|
|||
|
|
@ -17,6 +17,11 @@ LDADD = \
|
|||
|
||||
noinst_PROGRAMS = $(TESTS)
|
||||
|
||||
if WITH_VALGRIND
|
||||
@VALGRIND_RULES@ --launch-dbus
|
||||
else
|
||||
TESTS_ENVIRONMENT = $(srcdir)/libnm-test-launch.sh
|
||||
endif
|
||||
TESTS = test-nm-client test-remote-settings-client test-secret-agent
|
||||
|
||||
test_nm_client_SOURCES = \
|
||||
|
|
@ -33,9 +38,6 @@ test_secret_agent_SOURCES = \
|
|||
common.c \
|
||||
common.h \
|
||||
test-secret-agent.c
|
||||
|
||||
TESTS_ENVIRONMENT = $(srcdir)/libnm-test-launch.sh
|
||||
|
||||
endif
|
||||
|
||||
EXTRA_DIST = libnm-test-launch.sh
|
||||
|
|
|
|||
|
|
@ -370,7 +370,7 @@ add_remove_cb (GObject *s,
|
|||
{
|
||||
NMRemoteConnection *connection;
|
||||
gboolean *done = user_data;
|
||||
GError *error = NULL;
|
||||
gs_free_error GError *error = NULL;
|
||||
|
||||
connection = nm_client_add_connection_finish (client, result, &error);
|
||||
g_assert_error (error, NM_CLIENT_ERROR, NM_CLIENT_ERROR_OBJECT_CREATION_FAILED);
|
||||
|
|
@ -426,7 +426,7 @@ add_bad_cb (GObject *s,
|
|||
gpointer user_data)
|
||||
{
|
||||
gboolean *done = user_data;
|
||||
GError *error = NULL;
|
||||
gs_free_error GError *error = NULL;
|
||||
|
||||
remote = nm_client_add_connection_finish (client, result, &error);
|
||||
g_assert_error (error, NM_CONNECTION_ERROR, NM_CONNECTION_ERROR_INVALID_PROPERTY);
|
||||
|
|
@ -469,7 +469,7 @@ save_hostname_cb (GObject *s,
|
|||
gpointer user_data)
|
||||
{
|
||||
gboolean *done = user_data;
|
||||
GError *error = NULL;
|
||||
gs_free_error GError *error = NULL;
|
||||
|
||||
nm_client_save_hostname_finish (client, result, &error);
|
||||
g_assert_no_error (error);
|
||||
|
|
|
|||
|
|
@ -354,7 +354,7 @@ connection_activated_none_cb (GObject *c,
|
|||
{
|
||||
TestSecretAgentData *sadata = user_data;
|
||||
NMActiveConnection *ac;
|
||||
GError *error = NULL;
|
||||
gs_free_error GError *error = NULL;
|
||||
|
||||
ac = nm_client_activate_connection_finish (sadata->client, result, &error);
|
||||
g_assert_error (error, NM_AGENT_MANAGER_ERROR, NM_AGENT_MANAGER_ERROR_NO_SECRETS);
|
||||
|
|
@ -399,8 +399,8 @@ connection_activated_no_secrets_cb (GObject *c,
|
|||
gpointer user_data)
|
||||
{
|
||||
TestSecretAgentData *sadata = user_data;
|
||||
NMActiveConnection *ac;
|
||||
GError *error = NULL;
|
||||
gs_unref_object NMActiveConnection *ac = NULL;
|
||||
gs_free_error GError *error = NULL;
|
||||
|
||||
ac = nm_client_activate_connection_finish (sadata->client, result, &error);
|
||||
g_assert_error (error, NM_AGENT_MANAGER_ERROR, NM_AGENT_MANAGER_ERROR_NO_SECRETS);
|
||||
|
|
@ -434,8 +434,8 @@ connection_activated_cancel_cb (GObject *c,
|
|||
gpointer user_data)
|
||||
{
|
||||
TestSecretAgentData *sadata = user_data;
|
||||
NMActiveConnection *ac;
|
||||
GError *error = NULL;
|
||||
gs_unref_object NMActiveConnection *ac;
|
||||
gs_free_error GError *error = NULL;
|
||||
|
||||
ac = nm_client_activate_connection_finish (sadata->client, result, &error);
|
||||
g_assert_error (error, NM_AGENT_MANAGER_ERROR, NM_AGENT_MANAGER_ERROR_USER_CANCELED);
|
||||
|
|
|
|||
|
|
@ -8323,7 +8323,7 @@ dispose (GObject *object)
|
|||
|
||||
_cleanup_generic_post (self, FALSE);
|
||||
|
||||
g_clear_pointer (&priv->ip6_saved_properties, g_hash_table_unref);
|
||||
g_hash_table_remove_all (priv->ip6_saved_properties);
|
||||
|
||||
if (priv->recheck_assume_id) {
|
||||
g_source_remove (priv->recheck_assume_id);
|
||||
|
|
@ -8339,8 +8339,7 @@ dispose (GObject *object)
|
|||
priv->con_provider = NULL;
|
||||
}
|
||||
|
||||
g_hash_table_unref (priv->available_connections);
|
||||
priv->available_connections = NULL;
|
||||
g_hash_table_remove_all (priv->available_connections);
|
||||
|
||||
if (priv->carrier_wait_id) {
|
||||
g_source_remove (priv->carrier_wait_id);
|
||||
|
|
@ -8377,6 +8376,9 @@ finalize (GObject *object)
|
|||
g_free (priv->type_desc);
|
||||
g_free (priv->dhcp_anycast_address);
|
||||
|
||||
g_hash_table_unref (priv->ip6_saved_properties);
|
||||
g_hash_table_unref (priv->available_connections);
|
||||
|
||||
G_OBJECT_CLASS (nm_device_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,5 +23,6 @@ test_wifi_ap_utils_SOURCES = \
|
|||
|
||||
test_wifi_ap_utils_LDADD = $(top_builddir)/src/libNetworkManager.la
|
||||
|
||||
@VALGRIND_RULES@
|
||||
TESTS = test-wifi-ap-utils
|
||||
|
||||
|
|
|
|||
|
|
@ -140,6 +140,7 @@ process_dhclient_rfc3442_route (const char **octets,
|
|||
g_free (str_addr);
|
||||
goto error;
|
||||
}
|
||||
g_free (str_addr);
|
||||
tmp_addr &= nm_utils_ip4_prefix_to_netmask ((guint32) tmp);
|
||||
route->network = tmp_addr;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ test_dhcp_utils_LDADD = \
|
|||
|
||||
#################################
|
||||
|
||||
@VALGRIND_RULES@
|
||||
TESTS = test-dhcp-dhclient test-dhcp-utils
|
||||
|
||||
EXTRA_DIST = \
|
||||
|
|
|
|||
|
|
@ -430,6 +430,9 @@ test_one_duid (const char *escaped, const guint8 *unescaped, guint len)
|
|||
g_assert (w);
|
||||
g_assert_cmpint (strlen (escaped), ==, strlen (w));
|
||||
g_assert_cmpstr (escaped, ==, w);
|
||||
|
||||
g_byte_array_free (t, TRUE);
|
||||
g_free (w);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
|
|
@ -19,5 +19,6 @@ test_dnsmasq_utils_SOURCES = \
|
|||
test_dnsmasq_utils_LDADD = \
|
||||
$(top_builddir)/src/libNetworkManager.la
|
||||
|
||||
@VALGRIND_RULES@
|
||||
TESTS = test-dnsmasq-utils
|
||||
|
||||
|
|
|
|||
|
|
@ -286,6 +286,8 @@ finalize (GObject *gobject)
|
|||
g_slist_free (priv->no_auto_default.specs);
|
||||
g_strfreev (priv->no_auto_default.arr);
|
||||
|
||||
g_key_file_unref (priv->keyfile);
|
||||
|
||||
G_OBJECT_CLASS (nm_config_data_parent_class)->finalize (gobject);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -471,8 +471,8 @@ read_config (GKeyFile *keyfile, const char *path, GError **error)
|
|||
|
||||
if (keys[k][len - 1] == '+') {
|
||||
char *base_key = g_strndup (keys[k], len - 1);
|
||||
const char *old_val = g_key_file_get_value (keyfile, groups[g], base_key, NULL);
|
||||
const char *new_val = g_key_file_get_value (kf, groups[g], keys[k], NULL);
|
||||
char *old_val = g_key_file_get_value (keyfile, groups[g], base_key, NULL);
|
||||
char *new_val = g_key_file_get_value (kf, groups[g], keys[k], NULL);
|
||||
|
||||
if (old_val && *old_val) {
|
||||
char *combined = g_strconcat (old_val, ",", new_val, NULL);
|
||||
|
|
@ -483,6 +483,8 @@ read_config (GKeyFile *keyfile, const char *path, GError **error)
|
|||
g_key_file_set_value (keyfile, groups[g], base_key, new_val);
|
||||
|
||||
g_free (base_key);
|
||||
g_free (old_val);
|
||||
g_free (new_val);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -109,7 +109,7 @@ test_cleanup_linux_CPPFLAGS = \
|
|||
-DKERNEL_HACKS=1
|
||||
test_cleanup_linux_LDADD = $(PLATFORM_LDADD)
|
||||
|
||||
#@VALGRIND_RULES@
|
||||
@VALGRIND_RULES@
|
||||
TESTS = test-link-fake test-address-fake test-route-fake test-cleanup-fake test-address-linux test-route-linux test-cleanup-linux
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -178,6 +178,7 @@ done:
|
|||
if (lines)
|
||||
g_strfreev (lines);
|
||||
g_free (out);
|
||||
g_free (err);
|
||||
if (success)
|
||||
*out_blocks = blocks;
|
||||
else
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ test_ibft_SOURCES = \
|
|||
test_ibft_LDADD = \
|
||||
$(top_builddir)/src/libNetworkManager.la
|
||||
|
||||
@VALGRIND_RULES@
|
||||
TESTS = test-ibft
|
||||
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ read_block (const char *iscsiadm_path, const char *expected_mac)
|
|||
}
|
||||
g_assert (block);
|
||||
|
||||
g_slist_foreach (blocks, (GFunc) g_ptr_array_unref, NULL);
|
||||
g_slist_free_full (blocks, (GDestroyNotify) g_ptr_array_unref);
|
||||
return block;
|
||||
}
|
||||
|
||||
|
|
@ -110,6 +110,7 @@ test_read_ibft_dhcp (void)
|
|||
g_assert_cmpstr (nm_setting_ip_config_get_method (s_ip4), ==, NM_SETTING_IP4_CONFIG_METHOD_AUTO);
|
||||
|
||||
g_object_unref (connection);
|
||||
g_ptr_array_unref (block);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -266,7 +267,7 @@ test_read_ibft_vlan (void)
|
|||
g_assert_cmpstr (nm_setting_ip_config_get_gateway (s_ip4), ==, NULL);
|
||||
|
||||
g_object_unref (connection);
|
||||
g_ptr_array_ref (block);
|
||||
g_ptr_array_unref (block);
|
||||
}
|
||||
|
||||
NMTST_DEFINE ();
|
||||
|
|
|
|||
|
|
@ -536,8 +536,6 @@ read_route_file_legacy (const char *filename, NMSettingIPConfig *s_ip4, GError *
|
|||
char **lines = NULL, **iter;
|
||||
GRegex *regex_to1, *regex_to2, *regex_via, *regex_metric;
|
||||
GMatchInfo *match_info;
|
||||
NMIPRoute *route = NULL;
|
||||
char *dest = NULL, *prefix = NULL, *next_hop = NULL, *metric = NULL;
|
||||
gint64 prefix_int, metric_int;
|
||||
gboolean success = FALSE;
|
||||
|
||||
|
|
@ -568,6 +566,9 @@ read_route_file_legacy (const char *filename, NMSettingIPConfig *s_ip4, GError *
|
|||
/* Iterate through file lines */
|
||||
lines = g_strsplit_set (contents, "\n\r", -1);
|
||||
for (iter = lines; iter && *iter; iter++) {
|
||||
gs_free char *next_hop = NULL, *dest = NULL;
|
||||
char *prefix, *metric;
|
||||
NMIPRoute *route;
|
||||
|
||||
/* Skip empty lines */
|
||||
if (g_regex_match_simple (pattern_empty, *iter, 0, 0))
|
||||
|
|
@ -587,11 +588,10 @@ read_route_file_legacy (const char *filename, NMSettingIPConfig *s_ip4, GError *
|
|||
}
|
||||
dest = g_match_info_fetch (match_info, 1);
|
||||
if (!strcmp (dest, "default"))
|
||||
strcpy (dest, "0.0.0.0");
|
||||
strcpy (dest, "0.0.0.0");
|
||||
if (!nm_utils_ipaddr_valid (AF_INET, dest)) {
|
||||
g_set_error (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_INVALID_CONNECTION,
|
||||
"Invalid IP4 route destination address '%s'", dest);
|
||||
g_free (dest);
|
||||
g_match_info_free (match_info);
|
||||
goto error;
|
||||
}
|
||||
|
|
@ -606,7 +606,6 @@ read_route_file_legacy (const char *filename, NMSettingIPConfig *s_ip4, GError *
|
|||
if (errno || prefix_int <= 0 || prefix_int > 32) {
|
||||
g_set_error (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_INVALID_CONNECTION,
|
||||
"Invalid IP4 route destination prefix '%s'", prefix);
|
||||
g_free (dest);
|
||||
g_free (prefix);
|
||||
goto error;
|
||||
}
|
||||
|
|
@ -622,13 +621,10 @@ read_route_file_legacy (const char *filename, NMSettingIPConfig *s_ip4, GError *
|
|||
"Invalid IP4 route gateway address '%s'",
|
||||
next_hop);
|
||||
g_match_info_free (match_info);
|
||||
g_free (dest);
|
||||
g_free (next_hop);
|
||||
goto error;
|
||||
}
|
||||
} else {
|
||||
/* we don't make distinction between missing GATEWAY IP and 0.0.0.0 */
|
||||
next_hop = NULL;
|
||||
}
|
||||
g_match_info_free (match_info);
|
||||
|
||||
|
|
@ -643,8 +639,6 @@ read_route_file_legacy (const char *filename, NMSettingIPConfig *s_ip4, GError *
|
|||
g_match_info_free (match_info);
|
||||
g_set_error (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_INVALID_CONNECTION,
|
||||
"Invalid IP4 route metric '%s'", metric);
|
||||
g_free (dest);
|
||||
g_free (next_hop);
|
||||
g_free (metric);
|
||||
goto error;
|
||||
}
|
||||
|
|
@ -653,13 +647,11 @@ read_route_file_legacy (const char *filename, NMSettingIPConfig *s_ip4, GError *
|
|||
g_match_info_free (match_info);
|
||||
|
||||
route = nm_ip_route_new (AF_INET, dest, prefix_int, next_hop, metric_int, error);
|
||||
if (!route) {
|
||||
g_free (dest);
|
||||
g_free (next_hop);
|
||||
if (!route)
|
||||
goto error;
|
||||
}
|
||||
if (!nm_setting_ip_config_add_route (s_ip4, route))
|
||||
PARSE_WARNING ("duplicate IP4 route");
|
||||
nm_ip_route_unref (route);
|
||||
}
|
||||
|
||||
success = TRUE;
|
||||
|
|
@ -667,8 +659,6 @@ read_route_file_legacy (const char *filename, NMSettingIPConfig *s_ip4, GError *
|
|||
error:
|
||||
g_free (contents);
|
||||
g_strfreev (lines);
|
||||
if (route)
|
||||
nm_ip_route_unref (route);
|
||||
g_regex_unref (regex_to1);
|
||||
g_regex_unref (regex_to2);
|
||||
g_regex_unref (regex_via);
|
||||
|
|
@ -743,7 +733,6 @@ read_route6_file (const char *filename, NMSettingIPConfig *s_ip6, GError **error
|
|||
char **lines = NULL, **iter;
|
||||
GRegex *regex_to1, *regex_to2, *regex_via, *regex_metric;
|
||||
GMatchInfo *match_info;
|
||||
NMIPRoute *route = NULL;
|
||||
char *dest = NULL, *prefix = NULL, *next_hop = NULL, *metric = NULL;
|
||||
gint64 prefix_int, metric_int;
|
||||
gboolean success = FALSE;
|
||||
|
|
@ -775,6 +764,7 @@ read_route6_file (const char *filename, NMSettingIPConfig *s_ip6, GError **error
|
|||
/* Iterate through file lines */
|
||||
lines = g_strsplit_set (contents, "\n\r", -1);
|
||||
for (iter = lines; iter && *iter; iter++) {
|
||||
NMIPRoute *route;
|
||||
|
||||
/* Skip empty lines */
|
||||
if (g_regex_match_simple (pattern_empty, *iter, 0, 0))
|
||||
|
|
@ -864,6 +854,7 @@ read_route6_file (const char *filename, NMSettingIPConfig *s_ip6, GError **error
|
|||
goto error;
|
||||
if (!nm_setting_ip_config_add_route (s_ip6, route))
|
||||
PARSE_WARNING ("duplicate IP6 route");
|
||||
nm_ip_route_unref (route);
|
||||
}
|
||||
|
||||
success = TRUE;
|
||||
|
|
@ -871,8 +862,6 @@ read_route6_file (const char *filename, NMSettingIPConfig *s_ip6, GError **error
|
|||
error:
|
||||
g_free (contents);
|
||||
g_strfreev (lines);
|
||||
if (route)
|
||||
nm_ip_route_unref (route);
|
||||
g_regex_unref (regex_to1);
|
||||
g_regex_unref (regex_to2);
|
||||
g_regex_unref (regex_via);
|
||||
|
|
@ -3073,7 +3062,8 @@ make_wpa_setting (shvarFile *ifcfg,
|
|||
if (psk) {
|
||||
g_object_set (wsec, NM_SETTING_WIRELESS_SECURITY_PSK, psk, NULL);
|
||||
g_free (psk);
|
||||
}
|
||||
} else if (error)
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (adhoc)
|
||||
|
|
@ -4464,6 +4454,7 @@ make_vlan_setting (shvarFile *ifcfg,
|
|||
goto error;
|
||||
}
|
||||
g_object_set (s_vlan, NM_SETTING_VLAN_PARENT, parent, NULL);
|
||||
g_clear_pointer (&parent, g_free);
|
||||
|
||||
if (svTrueValue (ifcfg, "REORDER_HDR", FALSE))
|
||||
vlan_flags |= NM_VLAN_FLAG_REORDER_HEADERS;
|
||||
|
|
@ -4482,6 +4473,8 @@ make_vlan_setting (shvarFile *ifcfg,
|
|||
parse_prio_map_list (s_vlan, ifcfg, "VLAN_INGRESS_PRIORITY_MAP", NM_VLAN_INGRESS_MAP);
|
||||
parse_prio_map_list (s_vlan, ifcfg, "VLAN_EGRESS_PRIORITY_MAP", NM_VLAN_EGRESS_MAP);
|
||||
|
||||
g_free (iface_name);
|
||||
|
||||
return (NMSetting *) s_vlan;
|
||||
|
||||
error:
|
||||
|
|
@ -4655,7 +4648,8 @@ connection_from_file_full (const char *filename,
|
|||
{
|
||||
NMConnection *connection = NULL;
|
||||
shvarFile *parsed;
|
||||
char *type, *devtype, *bootproto;
|
||||
gs_free char *type = NULL;
|
||||
char *devtype, *bootproto;
|
||||
NMSetting *s_ip4, *s_ip6, *s_port, *s_dcb = NULL;
|
||||
const char *ifcfg_name = NULL;
|
||||
|
||||
|
|
@ -4699,8 +4693,6 @@ connection_from_file_full (const char *filename,
|
|||
}
|
||||
g_free (bootproto);
|
||||
|
||||
type = NULL;
|
||||
|
||||
devtype = svGetValue (parsed, "DEVICETYPE", FALSE);
|
||||
if (devtype) {
|
||||
if (!strcasecmp (devtype, TYPE_TEAM))
|
||||
|
|
@ -4788,7 +4780,6 @@ connection_from_file_full (const char *filename,
|
|||
PARSE_WARNING ("connection type was unrecognized but device was not uniquely identified; device may be managed");
|
||||
goto done;
|
||||
}
|
||||
g_free (type);
|
||||
|
||||
if (!connection)
|
||||
goto done;
|
||||
|
|
|
|||
|
|
@ -372,10 +372,12 @@ svSetValue (shvarFile *s, const char *key, const char *value, gboolean verbatim)
|
|||
if (oldval) {
|
||||
/* delete line */
|
||||
s->lineList = g_list_remove_link (s->lineList, s->current);
|
||||
g_free (s->current->data);
|
||||
g_list_free_1 (s->current);
|
||||
s->modified = TRUE;
|
||||
}
|
||||
goto bail; /* do not need keyValue */
|
||||
g_free (keyValue);
|
||||
goto end;
|
||||
}
|
||||
|
||||
if (!oldval) {
|
||||
|
|
@ -387,21 +389,19 @@ svSetValue (shvarFile *s, const char *key, const char *value, gboolean verbatim)
|
|||
|
||||
if (strcmp (oldval, newval) != 0) {
|
||||
/* change line */
|
||||
if (s->current)
|
||||
if (s->current) {
|
||||
g_free (s->current->data);
|
||||
s->current->data = keyValue;
|
||||
else
|
||||
} else
|
||||
s->lineList = g_list_append (s->lineList, keyValue);
|
||||
s->modified = TRUE;
|
||||
}
|
||||
} else
|
||||
g_free (keyValue);
|
||||
|
||||
end:
|
||||
g_free (newval);
|
||||
g_free (oldval);
|
||||
return;
|
||||
|
||||
bail:
|
||||
g_free (keyValue);
|
||||
goto end;
|
||||
}
|
||||
|
||||
/* Write the current contents iff modified. Returns FALSE on error
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ test_ifcfg_rh_utils_SOURCES = \
|
|||
test_ifcfg_rh_utils_LDADD = \
|
||||
$(top_builddir)/src/libNetworkManager.la
|
||||
|
||||
@VALGRIND_RULES@
|
||||
TESTS = test-ifcfg-rh-utils test-ifcfg-rh
|
||||
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -377,7 +377,7 @@ test_read_unmanaged_unrecognized (void)
|
|||
{
|
||||
NMConnection *connection;
|
||||
NMSettingConnection *s_con;
|
||||
char *unhandled_spec = NULL;
|
||||
gs_free char *unhandled_spec = NULL;
|
||||
GError *error = NULL;
|
||||
const char *expected_id = "PigeonNet";
|
||||
guint64 expected_timestamp = 0;
|
||||
|
|
@ -408,7 +408,7 @@ test_read_unrecognized (void)
|
|||
{
|
||||
NMConnection *connection;
|
||||
NMSettingConnection *s_con;
|
||||
char *unhandled_spec = NULL;
|
||||
gs_free char *unhandled_spec = NULL;
|
||||
GError *error = NULL;
|
||||
const char *expected_id = "U Can't Touch This";
|
||||
guint64 expected_timestamp = 0;
|
||||
|
|
@ -5341,6 +5341,7 @@ test_read_wifi_band_a_channel_mismatch (void)
|
|||
NULL, TYPE_WIRELESS, NULL, &error);
|
||||
g_assert (connection == NULL);
|
||||
g_assert_error (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_INVALID_CONNECTION);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -5353,6 +5354,7 @@ test_read_wifi_band_bg_channel_mismatch (void)
|
|||
NULL, TYPE_WIRELESS, NULL, &error);
|
||||
g_assert (connection == NULL);
|
||||
g_assert_error (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_INVALID_CONNECTION);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
|
||||
#define TEST_IFCFG_WIRED_QETH_STATIC TEST_IFCFG_DIR"/network-scripts/ifcfg-test-wired-qeth-static"
|
||||
|
|
@ -9523,6 +9525,7 @@ test_write_wifi_wpa_then_wep_with_perms (void)
|
|||
keyfile = utils_get_keys_path (testfile);
|
||||
unlink (keyfile);
|
||||
unlink (testfile);
|
||||
g_free (keyfile);
|
||||
|
||||
g_free (testfile);
|
||||
g_object_unref (reread);
|
||||
|
|
@ -10185,6 +10188,7 @@ test_write_wired_pppoe (void)
|
|||
"wired-pppoe-write", "unexpected success writing connection to disk");
|
||||
|
||||
g_object_unref (connection);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -10247,6 +10251,7 @@ test_write_vpn (void)
|
|||
"vpn-write", "unexpected success writing connection to disk");
|
||||
|
||||
g_object_unref (connection);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -10329,6 +10334,7 @@ test_write_mobile_broadband (gboolean gsm)
|
|||
"mobile-broadband-write", "unexpected success writing connection to disk");
|
||||
|
||||
g_object_unref (connection);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
|
||||
#define TEST_IFCFG_BRIDGE_MAIN TEST_IFCFG_DIR"/network-scripts/ifcfg-test-bridge-main"
|
||||
|
|
@ -10955,6 +10961,7 @@ test_read_ibft_ignored (void)
|
|||
NULL, &error);
|
||||
g_assert_error (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_INVALID_CONNECTION);
|
||||
g_assert (connection == NULL);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
|
||||
#define TEST_IFCFG_BOND_MAIN TEST_IFCFG_DIR"/network-scripts/ifcfg-test-bond-main"
|
||||
|
|
@ -11750,6 +11757,7 @@ test_read_dcb_bad_booleans (void)
|
|||
g_assert_error (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_INVALID_CONNECTION);
|
||||
g_assert (strstr (error->message, "invalid boolean digit"));
|
||||
g_assert (connection == NULL);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -11767,6 +11775,7 @@ test_read_dcb_short_booleans (void)
|
|||
g_assert_error (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_INVALID_CONNECTION);
|
||||
g_assert (strstr (error->message, "boolean array must be 8 characters"));
|
||||
g_assert (connection == NULL);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -11784,6 +11793,7 @@ test_read_dcb_bad_uints (void)
|
|||
g_assert_error (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_INVALID_CONNECTION);
|
||||
g_assert (strstr (error->message, "invalid uint digit"));
|
||||
g_assert (connection == NULL);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -11801,6 +11811,7 @@ test_read_dcb_short_uints (void)
|
|||
g_assert_error (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_INVALID_CONNECTION);
|
||||
g_assert (strstr (error->message, "uint array must be 8 characters"));
|
||||
g_assert (connection == NULL);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -11818,6 +11829,7 @@ test_read_dcb_bad_percent (void)
|
|||
g_assert_error (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_INVALID_CONNECTION);
|
||||
g_assert (strstr (error->message, "invalid percent element"));
|
||||
g_assert (connection == NULL);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -11835,6 +11847,7 @@ test_read_dcb_short_percent (void)
|
|||
g_assert_error (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_INVALID_CONNECTION);
|
||||
g_assert (strstr (error->message, "percent array must be 8 elements"));
|
||||
g_assert (connection == NULL);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -11852,6 +11865,7 @@ test_read_dcb_pgpct_not_100 (void)
|
|||
g_assert_error (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_INVALID_CONNECTION);
|
||||
g_assert (strstr (error->message, "invalid percentage sum"));
|
||||
g_assert (connection == NULL);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -12207,6 +12221,7 @@ test_write_team_port (void)
|
|||
val = svGetValue (f, "TEAM_PORT_CONFIG", TRUE);
|
||||
g_assert (val);
|
||||
g_assert_cmpstr (val, ==, escaped_expected_config);
|
||||
g_free (val);
|
||||
val = svGetValue (f, "TEAM_MASTER", TRUE);
|
||||
g_assert (val);
|
||||
g_assert_cmpstr (val, ==, "team0");
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@
|
|||
#include <nm-utils.h>
|
||||
|
||||
#include "nm-logging.h"
|
||||
#include "gsystem-local-alloc.h"
|
||||
#include "common.h"
|
||||
#include "shvar.h"
|
||||
#include "reader.h"
|
||||
|
|
@ -2112,13 +2113,16 @@ static void
|
|||
write_ip4_aliases (NMConnection *connection, char *base_ifcfg_path)
|
||||
{
|
||||
NMSettingIPConfig *s_ip4;
|
||||
char *base_ifcfg_dir, *base_ifcfg_name, *base_name;
|
||||
gs_free char *base_ifcfg_dir = NULL, *base_ifcfg_name = NULL;
|
||||
const char*base_name;
|
||||
int i, num, base_ifcfg_name_len, base_name_len;
|
||||
GDir *dir;
|
||||
|
||||
base_ifcfg_dir = g_path_get_dirname (base_ifcfg_path);
|
||||
base_ifcfg_name = g_path_get_basename (base_ifcfg_path);
|
||||
base_ifcfg_name_len = strlen (base_ifcfg_name);
|
||||
if (!g_str_has_prefix (base_ifcfg_name, IFCFG_TAG))
|
||||
g_return_if_reached ();
|
||||
base_name = base_ifcfg_name + strlen (IFCFG_TAG);
|
||||
base_name_len = strlen (base_name);
|
||||
|
||||
|
|
@ -2190,9 +2194,6 @@ write_ip4_aliases (NMConnection *connection, char *base_ifcfg_path)
|
|||
svWriteFile (ifcfg, 0644, NULL);
|
||||
svCloseFile (ifcfg);
|
||||
}
|
||||
|
||||
g_free (base_ifcfg_name);
|
||||
g_free (base_ifcfg_dir);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
|
|
|||
|
|
@ -23,6 +23,8 @@ test_ifupdown_SOURCES = \
|
|||
test_ifupdown_LDADD = \
|
||||
$(top_builddir)/src/libNetworkManager.la
|
||||
|
||||
# TODO: enable valgrind for ifupdown. Currently it fails.
|
||||
#@VALGRIND_RULES@
|
||||
TESTS = test-ifupdown
|
||||
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -869,6 +869,7 @@ parity_parser (NMSetting *setting, const char *key, GKeyFile *keyfile, const cha
|
|||
int_val = 'X';
|
||||
}
|
||||
}
|
||||
g_free (str_val);
|
||||
}
|
||||
|
||||
if (!int_val)
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ test_keyfile_LDADD = \
|
|||
$(DBUS_LIBS) \
|
||||
$(CODE_COVERAGE_LDFLAGS)
|
||||
|
||||
@VALGRIND_RULES@
|
||||
TESTS = test-keyfile
|
||||
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -1515,6 +1515,7 @@ test_write_intlike_ssid (void)
|
|||
g_assert_no_error (error);
|
||||
g_assert (tmp);
|
||||
g_assert_cmpstr (tmp, ==, "101");
|
||||
g_free (tmp);
|
||||
|
||||
g_key_file_free (keyfile);
|
||||
|
||||
|
|
@ -1601,6 +1602,7 @@ test_write_intlike_ssid_2 (void)
|
|||
g_assert_no_error (error);
|
||||
g_assert (tmp);
|
||||
g_assert_cmpstr (tmp, ==, "11\\;12\\;13\\;");
|
||||
g_free (tmp);
|
||||
|
||||
g_key_file_free (keyfile);
|
||||
|
||||
|
|
@ -2511,6 +2513,7 @@ test_write_wired_8021x_tls_connection_path (void)
|
|||
tmp2 = g_path_get_dirname (testfile);
|
||||
if (g_strcmp0 (tmp2, TEST_KEYFILES_DIR) == 0)
|
||||
relative = TRUE;
|
||||
g_free (tmp2);
|
||||
|
||||
/* CA cert */
|
||||
tmp = g_key_file_get_string (keyfile,
|
||||
|
|
@ -3098,6 +3101,7 @@ test_write_new_wired_group_name (void)
|
|||
unlink (testfile);
|
||||
g_free (testfile);
|
||||
|
||||
g_key_file_unref (kf);
|
||||
g_object_unref (reread);
|
||||
g_object_unref (connection);
|
||||
}
|
||||
|
|
@ -3236,6 +3240,7 @@ test_write_new_wireless_group_names (void)
|
|||
unlink (testfile);
|
||||
g_free (testfile);
|
||||
|
||||
g_key_file_unref (kf);
|
||||
g_object_unref (reread);
|
||||
g_object_unref (connection);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,4 +18,5 @@ test_supplicant_config_SOURCES = \
|
|||
test_supplicant_config_LDADD = \
|
||||
$(top_builddir)/src/libNetworkManager.la
|
||||
|
||||
@VALGRIND_RULES@
|
||||
TESTS = test-supplicant-config
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@ test_wifi_open (void)
|
|||
NMSettingConnection *s_con;
|
||||
NMSettingWireless *s_wifi;
|
||||
NMSettingIPConfig *s_ip4;
|
||||
NMSupplicantConfig *config;
|
||||
gs_unref_object NMSupplicantConfig *config;
|
||||
GHashTable *hash;
|
||||
char *uuid;
|
||||
gboolean success;
|
||||
|
|
@ -191,6 +191,7 @@ test_wifi_open (void)
|
|||
validate_opt ("wifi-open", hash, "bssid", TYPE_KEYWORD, bssid_str, -1);
|
||||
validate_opt ("wifi-open", hash, "key_mgmt", TYPE_KEYWORD, "NONE", -1);
|
||||
|
||||
g_hash_table_unref (hash);
|
||||
g_object_unref (connection);
|
||||
}
|
||||
|
||||
|
|
@ -206,7 +207,7 @@ test_wifi_wep_key (const char *detail,
|
|||
NMSettingWireless *s_wifi;
|
||||
NMSettingWirelessSecurity *s_wsec;
|
||||
NMSettingIPConfig *s_ip4;
|
||||
NMSupplicantConfig *config;
|
||||
gs_unref_object NMSupplicantConfig *config;
|
||||
GHashTable *hash;
|
||||
char *uuid;
|
||||
gboolean success;
|
||||
|
|
@ -305,6 +306,7 @@ test_wifi_wep_key (const char *detail,
|
|||
validate_opt (detail, hash, "wep_tx_keyidx", TYPE_INT, GINT_TO_POINTER (0), -1);
|
||||
validate_opt (detail, hash, "wep_key0", TYPE_BYTES, expected, expected_size);
|
||||
|
||||
g_hash_table_unref (hash);
|
||||
g_object_unref (connection);
|
||||
}
|
||||
|
||||
|
|
@ -343,7 +345,7 @@ test_wifi_wpa_psk (const char *detail,
|
|||
NMSettingWireless *s_wifi;
|
||||
NMSettingWirelessSecurity *s_wsec;
|
||||
NMSettingIPConfig *s_ip4;
|
||||
NMSupplicantConfig *config;
|
||||
gs_unref_object NMSupplicantConfig *config;
|
||||
GHashTable *hash;
|
||||
char *uuid;
|
||||
gboolean success;
|
||||
|
|
@ -454,6 +456,7 @@ test_wifi_wpa_psk (const char *detail,
|
|||
validate_opt (detail, hash, "group", TYPE_KEYWORD, "TKIP CCMP", -1);
|
||||
validate_opt (detail, hash, "psk", key_type, expected, expected_size);
|
||||
|
||||
g_hash_table_unref (hash);
|
||||
g_object_unref (connection);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -86,6 +86,7 @@ EXTRA_DIST = test-secret-agent.py
|
|||
|
||||
###########################################
|
||||
|
||||
@VALGRIND_RULES@
|
||||
TESTS = \
|
||||
test-ip4-config \
|
||||
test-ip6-config \
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ test_config_SOURCES = \
|
|||
test_config_LDADD = \
|
||||
$(top_builddir)/src/libNetworkManager.la
|
||||
|
||||
@VALGRIND_RULES@
|
||||
TESTS = test-config
|
||||
|
||||
EXTRA_DIST = \
|
||||
|
|
|
|||
|
|
@ -61,12 +61,6 @@ dispose (GObject *object)
|
|||
g_object_class->dispose (object);
|
||||
}
|
||||
|
||||
static void
|
||||
finalize (GObject *object)
|
||||
{
|
||||
g_object_class->finalize (object);
|
||||
}
|
||||
|
||||
static guint32
|
||||
get_generic_capabilities (NMDevice *device)
|
||||
{
|
||||
|
|
@ -84,7 +78,6 @@ nm_test_device_class_init (NMTestDeviceClass *klass)
|
|||
object_class->constructor = constructor;
|
||||
object_class->constructed = constructed;
|
||||
object_class->dispose = dispose;
|
||||
object_class->finalize = finalize;
|
||||
|
||||
device_class->get_generic_capabilities = get_generic_capabilities;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@
|
|||
#include <nm-simple-connection.h>
|
||||
#include <nm-setting-connection.h>
|
||||
#include "nm-device-ethernet-utils.h"
|
||||
#include "gsystem-local-alloc.h"
|
||||
|
||||
static NMConnection *
|
||||
_new_connection (const char *id)
|
||||
|
|
@ -45,7 +46,7 @@ _new_connection (const char *id)
|
|||
static void
|
||||
test_defname_no_connections (void)
|
||||
{
|
||||
char *name;
|
||||
gs_free char *name;
|
||||
|
||||
name = nm_device_ethernet_utils_get_default_wired_name (NULL);
|
||||
g_assert_cmpstr (name, ==, "Wired connection 1");
|
||||
|
|
@ -57,7 +58,7 @@ static void
|
|||
test_defname_no_conflict (void)
|
||||
{
|
||||
GSList *list = NULL;
|
||||
char *name;
|
||||
gs_free char *name;
|
||||
|
||||
list = g_slist_append (list, _new_connection ("asdfasdfasdfadf"));
|
||||
list = g_slist_append (list, _new_connection ("work wifi"));
|
||||
|
|
@ -75,7 +76,7 @@ static void
|
|||
test_defname_conflict (void)
|
||||
{
|
||||
GSList *list = NULL;
|
||||
char *name;
|
||||
gs_free char *name;
|
||||
|
||||
list = g_slist_append (list, _new_connection ("asdfasdfasdfadf"));
|
||||
list = g_slist_append (list, _new_connection ("Wired connection 1"));
|
||||
|
|
@ -93,7 +94,7 @@ static void
|
|||
test_defname_multiple_conflicts (void)
|
||||
{
|
||||
GSList *list = NULL;
|
||||
char *name;
|
||||
gs_free char *name;
|
||||
|
||||
list = g_slist_append (list, _new_connection ("random gsm connection"));
|
||||
list = g_slist_append (list, _new_connection ("home wifi"));
|
||||
|
|
|
|||
|
|
@ -3,6 +3,14 @@
|
|||
LIBTOOL="$1"; shift
|
||||
VALGRIND="$1"; shift
|
||||
SUPPRESSIONS="$1"; shift
|
||||
if [ "$1" = "--launch-dbus" ]; then
|
||||
# Spawn DBus if there's none
|
||||
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
|
||||
eval `dbus-launch --sh-syntax`
|
||||
trap "kill $DBUS_SESSION_BUS_PID" EXIT
|
||||
fi
|
||||
shift
|
||||
fi
|
||||
TEST="$1"; shift
|
||||
|
||||
LOGFILE="valgrind-`echo "$TEST" | tr -cd '[:alpha:]-'`.log"
|
||||
|
|
@ -19,6 +27,11 @@ $LIBTOOL --mode=execute "$VALGRIND" \
|
|||
"$TEST"
|
||||
RESULT=$?
|
||||
|
||||
if [ $RESULT -eq 0 -a "$(wc -c "$LOGFILE" | awk '{print$1}')" -ne 0 ]; then
|
||||
echo "valgrind succeeded, but log is not empty: $LOGFILE"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ $RESULT -ne 0 -a $RESULT -ne 77 ]; then
|
||||
echo "Don't forget to check the valgrind log at '`realpath $LOGFILE`'." >&2
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -129,3 +129,217 @@
|
|||
match-leak-kinds: possible
|
||||
fun:calloc
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
_glib_sigaction
|
||||
Memcheck:Param
|
||||
rt_sigaction(act->sa_flags)
|
||||
fun:__libc_sigaction
|
||||
fun:unref_unix_signal_handler_unlocked
|
||||
fun:g_child_watch_finalize
|
||||
fun:g_source_unref_internal
|
||||
fun:g_main_context_dispatch
|
||||
fun:g_main_context_iterate.isra.24
|
||||
fun:g_main_loop_run
|
||||
...
|
||||
}
|
||||
|
||||
{
|
||||
# FIXME: dunny why this is needed. Clean up later.
|
||||
_dispatcher_test
|
||||
Memcheck:Leak
|
||||
match-leak-kinds: definite
|
||||
fun:malloc
|
||||
fun:g_malloc
|
||||
fun:g_slice_alloc
|
||||
fun:g_variant_new_from_bytes
|
||||
fun:g_variant_new_from_trusted
|
||||
fun:parse_dhcp
|
||||
fun:get_dispatcher_file
|
||||
...
|
||||
fun:g_test_run_suite_internal
|
||||
fun:g_test_run_suite_internal
|
||||
fun:g_test_run_suite
|
||||
}
|
||||
|
||||
{
|
||||
_gdbus_1
|
||||
Memcheck:Leak
|
||||
match-leak-kinds: definite
|
||||
fun:malloc
|
||||
fun:g_malloc
|
||||
fun:g_slice_alloc
|
||||
fun:g_slice_alloc0
|
||||
fun:get_dispatch
|
||||
fun:g_main_context_dispatch
|
||||
fun:g_main_context_iterate.isra.24
|
||||
fun:g_main_loop_run
|
||||
fun:gdbus_shared_thread_func
|
||||
fun:g_thread_proxy
|
||||
fun:start_thread
|
||||
fun:clone
|
||||
}
|
||||
|
||||
{
|
||||
_gdbus_2
|
||||
Memcheck:Leak
|
||||
match-leak-kinds: definite
|
||||
fun:malloc
|
||||
fun:g_malloc
|
||||
fun:g_slice_alloc
|
||||
fun:g_slice_alloc0
|
||||
fun:g_main_context_push_thread_default
|
||||
fun:gdbus_shared_thread_func
|
||||
fun:g_thread_proxy
|
||||
fun:start_thread
|
||||
fun:clone
|
||||
}
|
||||
|
||||
{
|
||||
_gdbus_3
|
||||
Memcheck:Leak
|
||||
match-leak-kinds: definite
|
||||
fun:calloc
|
||||
fun:g_malloc0
|
||||
fun:_g_socket_read_with_control_messages
|
||||
fun:_g_dbus_worker_do_read_unlocked
|
||||
fun:_g_dbus_worker_do_read_cb
|
||||
fun:g_simple_async_result_complete
|
||||
fun:complete_in_idle_cb
|
||||
fun:g_main_context_dispatch
|
||||
fun:g_main_context_iterate.isra.24
|
||||
fun:g_main_loop_run
|
||||
fun:gdbus_shared_thread_func
|
||||
fun:g_thread_proxy
|
||||
}
|
||||
|
||||
{
|
||||
_gdbus_4
|
||||
Memcheck:Leak
|
||||
match-leak-kinds: definite
|
||||
fun:calloc
|
||||
fun:g_malloc0
|
||||
fun:thread_memory_from_self.part.12
|
||||
fun:g_slice_alloc
|
||||
fun:g_slice_alloc0
|
||||
fun:g_main_context_push_thread_default
|
||||
fun:gdbus_shared_thread_func
|
||||
fun:g_thread_proxy
|
||||
fun:start_thread
|
||||
fun:clone
|
||||
}
|
||||
|
||||
{
|
||||
_gdbus_5
|
||||
Memcheck:Leak
|
||||
match-leak-kinds: definite
|
||||
...
|
||||
fun:g_dbus_message_new_from_blob
|
||||
...
|
||||
}
|
||||
|
||||
{
|
||||
_gdbus_9
|
||||
Memcheck:Leak
|
||||
match-leak-kinds: definite
|
||||
fun:malloc
|
||||
fun:g_malloc
|
||||
fun:g_slice_alloc
|
||||
fun:g_slice_alloc0
|
||||
fun:get_dispatch
|
||||
fun:g_main_current_source
|
||||
fun:g_task_return
|
||||
fun:g_task_thread_pool_thread
|
||||
fun:g_thread_pool_thread_proxy
|
||||
fun:g_thread_proxy
|
||||
fun:start_thread
|
||||
fun:clone
|
||||
}
|
||||
|
||||
{
|
||||
_gdbus_10
|
||||
Memcheck:Leak
|
||||
match-leak-kinds: definite
|
||||
fun:malloc
|
||||
fun:g_malloc
|
||||
fun:g_slice_alloc
|
||||
fun:g_slice_alloc0
|
||||
fun:g_system_thread_new
|
||||
fun:g_thread_new_internal
|
||||
fun:g_thread_pool_start_thread.part.0
|
||||
fun:g_thread_pool_push
|
||||
fun:g_task_start_task_thread
|
||||
fun:g_task_run_in_thread
|
||||
fun:g_async_initable_real_init_async
|
||||
fun:g_bus_get
|
||||
}
|
||||
|
||||
{
|
||||
_gdbus_11
|
||||
Memcheck:Leak
|
||||
match-leak-kinds: definite
|
||||
fun:calloc
|
||||
fun:g_malloc0
|
||||
fun:thread_memory_from_self.part.12
|
||||
fun:g_slice_alloc
|
||||
fun:g_slice_alloc0
|
||||
fun:get_dispatch
|
||||
fun:g_main_current_source
|
||||
fun:g_task_return
|
||||
fun:g_task_thread_pool_thread
|
||||
fun:g_thread_pool_thread_proxy
|
||||
fun:g_thread_proxy
|
||||
fun:start_thread
|
||||
}
|
||||
|
||||
{
|
||||
_gdbus_12
|
||||
Memcheck:Leak
|
||||
match-leak-kinds: definite
|
||||
fun:malloc
|
||||
fun:g_malloc
|
||||
fun:g_slice_alloc
|
||||
fun:g_error_new_valist
|
||||
fun:g_error_new
|
||||
fun:g_dbus_error_new_for_dbus_error
|
||||
fun:g_dbus_error_set_dbus_error
|
||||
fun:g_dbus_message_to_gerror
|
||||
fun:decode_method_reply
|
||||
fun:g_dbus_connection_call_sync_internal
|
||||
fun:g_dbus_proxy_call_sync_internal
|
||||
fun:g_dbus_proxy_call_sync
|
||||
}
|
||||
|
||||
{
|
||||
_gdbus_15
|
||||
Memcheck:Leak
|
||||
match-leak-kinds: definite
|
||||
fun:malloc
|
||||
fun:g_malloc
|
||||
fun:g_slice_alloc
|
||||
fun:g_hash_table_new_full
|
||||
fun:demarshal_map
|
||||
fun:_dbus_gvalue_demarshal
|
||||
fun:dbus_g_proxy_end_call_internal
|
||||
fun:dbus_g_proxy_end_call
|
||||
fun:get_permissions_reply
|
||||
fun:complete_pending_call_and_unlock
|
||||
fun:dbus_connection_dispatch
|
||||
fun:message_queue_dispatch
|
||||
}
|
||||
|
||||
{
|
||||
_gdbus_16
|
||||
Memcheck:Leak
|
||||
match-leak-kinds: definite
|
||||
fun:calloc
|
||||
fun:g_malloc0
|
||||
fun:_g_dbus_worker_send_message
|
||||
fun:g_dbus_connection_send_message_unlocked
|
||||
fun:unsubscribe_id_internal
|
||||
fun:g_dbus_connection_signal_unsubscribe
|
||||
fun:g_dbus_proxy_finalize
|
||||
...
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue