SET(TC_SOURCES
utc-intelligent-network-monitoring-common.c
utc-intelligent-network-monitoring.c
+ utc-intelligent-network-monitoring-link.c
+ utc-intelligent-network-monitoring-link-address.c
+ utc-intelligent-network-monitoring-link-route.c
)
PKG_CHECK_MODULES(${CAPI_LIB} REQUIRED
extern int utc_inm_wifi_ap_foreach_vsie_p(void);
extern int utc_inm_wifi_ap_foreach_vsie_n(void);
+extern int utc_inm_inm_foreach_link_p(void);
+extern int utc_inm_inm_foreach_link_n(void);
+extern int utc_inm_connection_get_link_p(void);
+extern int utc_inm_connection_get_link_n(void);
+
+extern void utc_inm_link_startup(void);
+extern void utc_inm_link_cleanup(void);
+extern int utc_inm_link_destroy_p(void);
+extern int utc_inm_link_destroy_n(void);
+extern int utc_inm_link_clone_p(void);
+extern int utc_inm_link_clone_n(void);
+extern int utc_inm_link_get_interface_name_p(void);
+extern int utc_inm_link_get_interface_name_n(void);
+extern int utc_inm_link_get_flags_p(void);
+extern int utc_inm_link_get_flags_n(void);
+extern int utc_inm_link_get_operation_state_p(void);
+extern int utc_inm_link_get_operation_state_n(void);
+extern int utc_inm_link_get_received_bytes_p(void);
+extern int utc_inm_link_get_received_bytes_n(void);
+extern int utc_inm_link_get_sent_bytes_p(void);
+extern int utc_inm_link_get_sent_bytes_n(void);
+extern int utc_inm_link_foreach_address_p(void);
+extern int utc_inm_link_foreach_address_n(void);
+extern int utc_inm_link_foreach_route_p(void);
+extern int utc_inm_link_foreach_route_n(void);
+
+extern void utc_inm_link_address_startup(void);
+extern void utc_inm_link_address_cleanup(void);
+extern int utc_inm_link_address_destroy_p(void);
+extern int utc_inm_link_address_destroy_n(void);
+extern int utc_inm_link_address_clone_p(void);
+extern int utc_inm_link_address_clone_n(void);
+extern int utc_inm_link_address_get_family_p(void);
+extern int utc_inm_link_address_get_family_n(void);
+extern int utc_inm_link_address_get_prefix_length_p(void);
+extern int utc_inm_link_address_get_family_n(void);
+extern int utc_inm_link_address_get_scope_p(void);
+extern int utc_inm_link_address_get_scope_n(void);
+extern int utc_inm_link_address_get_string_p(void);
+extern int utc_inm_link_address_get_string_n(void);
+
+extern void utc_inm_link_route_startup(void);
+extern void utc_inm_link_route_cleanup(void);
+extern int utc_inm_link_route_destroy_p(void);
+extern int utc_inm_link_route_destroy_n(void);
+extern int utc_inm_link_route_clone_p(void);
+extern int utc_inm_link_route_clone_n(void);
+extern int utc_inm_link_route_get_destination_p(void);
+extern int utc_inm_link_route_get_destination_n(void);
+extern int utc_inm_link_route_get_gateway_p(void);
+extern int utc_inm_link_route_get_gateway_n(void);
+extern int utc_inm_link_route_get_interface_p(void);
+extern int utc_inm_link_route_get_interface_n(void);
+extern int utc_inm_link_route_is_default_p(void);
+extern int utc_inm_link_route_is_default_n(void);
+extern int utc_inm_link_route_get_type_p(void);
+extern int utc_inm_link_route_get_type_n(void);
testcase tc_array[] = {
{"utc_inm_set_ethernet_cable_state_changed_cb_n", utc_inm_set_ethernet_cable_state_changed_cb_n, utc_inm_startup, utc_inm_cleanup},
{"utc_inm_wifi_ap_get_assoc_status_code_n", utc_inm_wifi_ap_get_assoc_status_code_n, utc_inm_startup, utc_inm_cleanup},
{"utc_inm_wifi_ap_foreach_vsie_p", utc_inm_wifi_ap_foreach_vsie_p, utc_inm_startup, utc_inm_cleanup},
{"utc_inm_wifi_ap_foreach_vsie_n", utc_inm_wifi_ap_foreach_vsie_n, utc_inm_startup, utc_inm_cleanup},
+ {"utc_inm_inm_foreach_link_p", utc_inm_inm_foreach_link_p, utc_inm_startup, utc_inm_cleanup},
+ {"utc_inm_inm_foreach_link_n", utc_inm_inm_foreach_link_n, utc_inm_startup, utc_inm_cleanup},
+ {"utc_inm_connection_get_link_p", utc_inm_connection_get_link_p, utc_inm_startup, utc_inm_cleanup},
+ {"utc_inm_connection_get_link_n", utc_inm_connection_get_link_n, utc_inm_startup, utc_inm_cleanup},
+
+ {"utc_inm_link_destroy_p", utc_inm_link_destroy_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_destroy_n", utc_inm_link_destroy_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_clone_p", utc_inm_link_clone_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_clone_n", utc_inm_link_clone_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_interface_name_p", utc_inm_link_get_interface_name_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_interface_name_n", utc_inm_link_get_interface_name_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_flags_p", utc_inm_link_get_flags_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_flags_n", utc_inm_link_get_flags_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_operation_state_p", utc_inm_link_get_operation_state_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_operation_state_n", utc_inm_link_get_operation_state_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_received_bytes_p", utc_inm_link_get_received_bytes_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_received_bytes_n", utc_inm_link_get_received_bytes_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_sent_bytes_p", utc_inm_link_get_sent_bytes_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_sent_bytes_n", utc_inm_link_get_sent_bytes_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_foreach_address_p", utc_inm_link_foreach_address_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_foreach_address_n", utc_inm_link_foreach_address_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_foreach_route_p", utc_inm_link_foreach_route_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_foreach_route_n", utc_inm_link_foreach_route_n, utc_inm_link_startup, utc_inm_link_cleanup},
+
+ {"utc_inm_link_address_destroy_p", utc_inm_link_address_destroy_p, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_destroy_n", utc_inm_link_address_destroy_n, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_clone_p", utc_inm_link_address_clone_p, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_clone_n", utc_inm_link_address_clone_n, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_get_family_p", utc_inm_link_address_get_family_p, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_get_family_n", utc_inm_link_address_get_family_n, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_get_prefix_length_p", utc_inm_link_address_get_prefix_length_p, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_get_family_n", utc_inm_link_address_get_family_n, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_get_scope_p", utc_inm_link_address_get_scope_p, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_get_scope_n", utc_inm_link_address_get_scope_n, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_get_string_p", utc_inm_link_address_get_string_p, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_get_string_n", utc_inm_link_address_get_string_n, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+
+ {"utc_inm_link_route_destroy_p", utc_inm_link_route_destroy_p, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_destroy_n", utc_inm_link_route_destroy_n, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_clone_p", utc_inm_link_route_clone_p, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_clone_n", utc_inm_link_route_clone_n, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_destination_p", utc_inm_link_route_get_destination_p, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_destination_n", utc_inm_link_route_get_destination_n, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_gateway_p", utc_inm_link_route_get_gateway_p, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_gateway_n", utc_inm_link_route_get_gateway_n, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_interface_p", utc_inm_link_route_get_interface_p, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_interface_n", utc_inm_link_route_get_interface_n, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_is_default_p", utc_inm_link_route_is_default_p, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_is_default_n", utc_inm_link_route_is_default_n, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_type_p", utc_inm_link_route_get_type_p, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_type_n", utc_inm_link_route_get_type_n, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+
{NULL, NULL}
};
extern int utc_inm_wifi_ap_foreach_vsie_p(void);
extern int utc_inm_wifi_ap_foreach_vsie_n(void);
+extern int utc_inm_inm_foreach_link_p(void);
+extern int utc_inm_inm_foreach_link_n(void);
+extern int utc_inm_connection_get_link_p(void);
+extern int utc_inm_connection_get_link_n(void);
+
+extern void utc_inm_link_startup(void);
+extern void utc_inm_link_cleanup(void);
+extern int utc_inm_link_destroy_p(void);
+extern int utc_inm_link_destroy_n(void);
+extern int utc_inm_link_clone_p(void);
+extern int utc_inm_link_clone_n(void);
+extern int utc_inm_link_get_interface_name_p(void);
+extern int utc_inm_link_get_interface_name_n(void);
+extern int utc_inm_link_get_flags_p(void);
+extern int utc_inm_link_get_flags_n(void);
+extern int utc_inm_link_get_operation_state_p(void);
+extern int utc_inm_link_get_operation_state_n(void);
+extern int utc_inm_link_get_received_bytes_p(void);
+extern int utc_inm_link_get_received_bytes_n(void);
+extern int utc_inm_link_get_sent_bytes_p(void);
+extern int utc_inm_link_get_sent_bytes_n(void);
+extern int utc_inm_link_foreach_address_p(void);
+extern int utc_inm_link_foreach_address_n(void);
+extern int utc_inm_link_foreach_route_p(void);
+extern int utc_inm_link_foreach_route_n(void);
+
+extern void utc_inm_link_address_startup(void);
+extern void utc_inm_link_address_cleanup(void);
+extern int utc_inm_link_address_destroy_p(void);
+extern int utc_inm_link_address_destroy_n(void);
+extern int utc_inm_link_address_clone_p(void);
+extern int utc_inm_link_address_clone_n(void);
+extern int utc_inm_link_address_get_family_p(void);
+extern int utc_inm_link_address_get_family_n(void);
+extern int utc_inm_link_address_get_prefix_length_p(void);
+extern int utc_inm_link_address_get_family_n(void);
+extern int utc_inm_link_address_get_scope_p(void);
+extern int utc_inm_link_address_get_scope_n(void);
+extern int utc_inm_link_address_get_string_p(void);
+extern int utc_inm_link_address_get_string_n(void);
+
+extern void utc_inm_link_route_startup(void);
+extern void utc_inm_link_route_cleanup(void);
+extern int utc_inm_link_route_destroy_p(void);
+extern int utc_inm_link_route_destroy_n(void);
+extern int utc_inm_link_route_clone_p(void);
+extern int utc_inm_link_route_clone_n(void);
+extern int utc_inm_link_route_get_destination_p(void);
+extern int utc_inm_link_route_get_destination_n(void);
+extern int utc_inm_link_route_get_gateway_p(void);
+extern int utc_inm_link_route_get_gateway_n(void);
+extern int utc_inm_link_route_get_interface_p(void);
+extern int utc_inm_link_route_get_interface_n(void);
+extern int utc_inm_link_route_is_default_p(void);
+extern int utc_inm_link_route_is_default_n(void);
+extern int utc_inm_link_route_get_type_p(void);
+extern int utc_inm_link_route_get_type_n(void);
testcase tc_array[] = {
{"utc_inm_set_ethernet_cable_state_changed_cb_n", utc_inm_set_ethernet_cable_state_changed_cb_n, utc_inm_startup, utc_inm_cleanup},
{"utc_inm_wifi_ap_get_assoc_status_code_n", utc_inm_wifi_ap_get_assoc_status_code_n, utc_inm_startup, utc_inm_cleanup},
{"utc_inm_wifi_ap_foreach_vsie_p", utc_inm_wifi_ap_foreach_vsie_p, utc_inm_startup, utc_inm_cleanup},
{"utc_inm_wifi_ap_foreach_vsie_n", utc_inm_wifi_ap_foreach_vsie_n, utc_inm_startup, utc_inm_cleanup},
+ {"utc_inm_inm_foreach_link_p", utc_inm_inm_foreach_link_p, utc_inm_startup, utc_inm_cleanup},
+ {"utc_inm_inm_foreach_link_n", utc_inm_inm_foreach_link_n, utc_inm_startup, utc_inm_cleanup},
+ {"utc_inm_connection_get_link_p", utc_inm_connection_get_link_p, utc_inm_startup, utc_inm_cleanup},
+ {"utc_inm_connection_get_link_n", utc_inm_connection_get_link_n, utc_inm_startup, utc_inm_cleanup},
+
+ {"utc_inm_link_destroy_p", utc_inm_link_destroy_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_destroy_n", utc_inm_link_destroy_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_clone_p", utc_inm_link_clone_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_clone_n", utc_inm_link_clone_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_interface_name_p", utc_inm_link_get_interface_name_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_interface_name_n", utc_inm_link_get_interface_name_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_flags_p", utc_inm_link_get_flags_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_flags_n", utc_inm_link_get_flags_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_operation_state_p", utc_inm_link_get_operation_state_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_operation_state_n", utc_inm_link_get_operation_state_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_received_bytes_p", utc_inm_link_get_received_bytes_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_received_bytes_n", utc_inm_link_get_received_bytes_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_sent_bytes_p", utc_inm_link_get_sent_bytes_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_sent_bytes_n", utc_inm_link_get_sent_bytes_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_foreach_address_p", utc_inm_link_foreach_address_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_foreach_address_n", utc_inm_link_foreach_address_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_foreach_route_p", utc_inm_link_foreach_route_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_foreach_route_n", utc_inm_link_foreach_route_n, utc_inm_link_startup, utc_inm_link_cleanup},
+
+ {"utc_inm_link_address_destroy_p", utc_inm_link_address_destroy_p, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_destroy_n", utc_inm_link_address_destroy_n, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_clone_p", utc_inm_link_address_clone_p, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_clone_n", utc_inm_link_address_clone_n, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_get_family_p", utc_inm_link_address_get_family_p, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_get_family_n", utc_inm_link_address_get_family_n, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_get_prefix_length_p", utc_inm_link_address_get_prefix_length_p, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_get_family_n", utc_inm_link_address_get_family_n, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_get_scope_p", utc_inm_link_address_get_scope_p, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_get_scope_n", utc_inm_link_address_get_scope_n, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_get_string_p", utc_inm_link_address_get_string_p, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+
+ {"utc_inm_link_route_destroy_p", utc_inm_link_route_destroy_p, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_destroy_n", utc_inm_link_route_destroy_n, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_clone_p", utc_inm_link_route_clone_p, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_clone_n", utc_inm_link_route_clone_n, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_destination_p", utc_inm_link_route_get_destination_p, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_destination_n", utc_inm_link_route_get_destination_n, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_gateway_p", utc_inm_link_route_get_gateway_p, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_gateway_n", utc_inm_link_route_get_gateway_n, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_interface_p", utc_inm_link_route_get_interface_p, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_interface_n", utc_inm_link_route_get_interface_n, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_is_default_p", utc_inm_link_route_is_default_p, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_is_default_n", utc_inm_link_route_is_default_n, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_type_p", utc_inm_link_route_get_type_p, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_type_n", utc_inm_link_route_get_type_n, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+
{NULL, NULL}
};
extern int utc_inm_wifi_ap_foreach_vsie_p(void);
extern int utc_inm_wifi_ap_foreach_vsie_n(void);
+extern int utc_inm_inm_foreach_link_p(void);
+extern int utc_inm_inm_foreach_link_n(void);
+extern int utc_inm_connection_get_link_p(void);
+extern int utc_inm_connection_get_link_n(void);
+
+extern void utc_inm_link_startup(void);
+extern void utc_inm_link_cleanup(void);
+extern int utc_inm_link_destroy_p(void);
+extern int utc_inm_link_destroy_n(void);
+extern int utc_inm_link_clone_p(void);
+extern int utc_inm_link_clone_n(void);
+extern int utc_inm_link_get_interface_name_p(void);
+extern int utc_inm_link_get_interface_name_n(void);
+extern int utc_inm_link_get_flags_p(void);
+extern int utc_inm_link_get_flags_n(void);
+extern int utc_inm_link_get_operation_state_p(void);
+extern int utc_inm_link_get_operation_state_n(void);
+extern int utc_inm_link_get_received_bytes_p(void);
+extern int utc_inm_link_get_received_bytes_n(void);
+extern int utc_inm_link_get_sent_bytes_p(void);
+extern int utc_inm_link_get_sent_bytes_n(void);
+extern int utc_inm_link_foreach_address_p(void);
+extern int utc_inm_link_foreach_address_n(void);
+extern int utc_inm_link_foreach_route_p(void);
+extern int utc_inm_link_foreach_route_n(void);
+
+extern void utc_inm_link_address_startup(void);
+extern void utc_inm_link_address_cleanup(void);
+extern int utc_inm_link_address_destroy_p(void);
+extern int utc_inm_link_address_destroy_n(void);
+extern int utc_inm_link_address_clone_p(void);
+extern int utc_inm_link_address_clone_n(void);
+extern int utc_inm_link_address_get_family_p(void);
+extern int utc_inm_link_address_get_family_n(void);
+extern int utc_inm_link_address_get_prefix_length_p(void);
+extern int utc_inm_link_address_get_family_n(void);
+extern int utc_inm_link_address_get_scope_p(void);
+extern int utc_inm_link_address_get_scope_n(void);
+extern int utc_inm_link_address_get_string_p(void);
+extern int utc_inm_link_address_get_string_n(void);
+
+extern void utc_inm_link_route_startup(void);
+extern void utc_inm_link_route_cleanup(void);
+extern int utc_inm_link_route_destroy_p(void);
+extern int utc_inm_link_route_destroy_n(void);
+extern int utc_inm_link_route_clone_p(void);
+extern int utc_inm_link_route_clone_n(void);
+extern int utc_inm_link_route_get_destination_p(void);
+extern int utc_inm_link_route_get_destination_n(void);
+extern int utc_inm_link_route_get_gateway_p(void);
+extern int utc_inm_link_route_get_gateway_n(void);
+extern int utc_inm_link_route_get_interface_p(void);
+extern int utc_inm_link_route_get_interface_n(void);
+extern int utc_inm_link_route_is_default_p(void);
+extern int utc_inm_link_route_is_default_n(void);
+extern int utc_inm_link_route_get_type_p(void);
+extern int utc_inm_link_route_get_type_n(void);
testcase tc_array[] = {
{"utc_inm_set_ethernet_cable_state_changed_cb_n", utc_inm_set_ethernet_cable_state_changed_cb_n, utc_inm_startup, utc_inm_cleanup},
{"utc_inm_wifi_ap_get_assoc_status_code_n", utc_inm_wifi_ap_get_assoc_status_code_n, utc_inm_startup, utc_inm_cleanup},
{"utc_inm_wifi_ap_foreach_vsie_p", utc_inm_wifi_ap_foreach_vsie_p, utc_inm_startup, utc_inm_cleanup},
{"utc_inm_wifi_ap_foreach_vsie_n", utc_inm_wifi_ap_foreach_vsie_n, utc_inm_startup, utc_inm_cleanup},
+ {"utc_inm_inm_foreach_link_p", utc_inm_inm_foreach_link_p, utc_inm_startup, utc_inm_cleanup},
+ {"utc_inm_inm_foreach_link_n", utc_inm_inm_foreach_link_n, utc_inm_startup, utc_inm_cleanup},
+ {"utc_inm_connection_get_link_p", utc_inm_connection_get_link_p, utc_inm_startup, utc_inm_cleanup},
+ {"utc_inm_connection_get_link_n", utc_inm_connection_get_link_n, utc_inm_startup, utc_inm_cleanup},
+
+ {"utc_inm_link_destroy_p", utc_inm_link_destroy_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_destroy_n", utc_inm_link_destroy_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_clone_p", utc_inm_link_clone_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_clone_n", utc_inm_link_clone_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_interface_name_p", utc_inm_link_get_interface_name_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_interface_name_n", utc_inm_link_get_interface_name_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_flags_p", utc_inm_link_get_flags_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_flags_n", utc_inm_link_get_flags_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_operation_state_p", utc_inm_link_get_operation_state_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_operation_state_n", utc_inm_link_get_operation_state_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_received_bytes_p", utc_inm_link_get_received_bytes_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_received_bytes_n", utc_inm_link_get_received_bytes_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_sent_bytes_p", utc_inm_link_get_sent_bytes_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_get_sent_bytes_n", utc_inm_link_get_sent_bytes_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_foreach_address_p", utc_inm_link_foreach_address_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_foreach_address_n", utc_inm_link_foreach_address_n, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_foreach_route_p", utc_inm_link_foreach_route_p, utc_inm_link_startup, utc_inm_link_cleanup},
+ {"utc_inm_link_foreach_route_n", utc_inm_link_foreach_route_n, utc_inm_link_startup, utc_inm_link_cleanup},
+
+ {"utc_inm_link_address_destroy_p", utc_inm_link_address_destroy_p, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_destroy_n", utc_inm_link_address_destroy_n, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_clone_p", utc_inm_link_address_clone_p, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_clone_n", utc_inm_link_address_clone_n, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_get_family_p", utc_inm_link_address_get_family_p, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_get_family_n", utc_inm_link_address_get_family_n, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_get_prefix_length_p", utc_inm_link_address_get_prefix_length_p, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_get_family_n", utc_inm_link_address_get_family_n, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_get_scope_p", utc_inm_link_address_get_scope_p, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_get_scope_n", utc_inm_link_address_get_scope_n, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+ {"utc_inm_link_address_get_string_p", utc_inm_link_address_get_string_p, utc_inm_link_address_startup, utc_inm_link_address_cleanup},
+
+ {"utc_inm_link_route_destroy_p", utc_inm_link_route_destroy_p, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_destroy_n", utc_inm_link_route_destroy_n, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_clone_p", utc_inm_link_route_clone_p, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_clone_n", utc_inm_link_route_clone_n, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_destination_p", utc_inm_link_route_get_destination_p, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_destination_n", utc_inm_link_route_get_destination_n, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_gateway_p", utc_inm_link_route_get_gateway_p, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_gateway_n", utc_inm_link_route_get_gateway_n, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_interface_p", utc_inm_link_route_get_interface_p, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_interface_n", utc_inm_link_route_get_interface_n, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_is_default_p", utc_inm_link_route_is_default_p, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_is_default_n", utc_inm_link_route_is_default_n, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_type_p", utc_inm_link_route_get_type_p, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+ {"utc_inm_link_route_get_type_n", utc_inm_link_route_get_type_n, utc_inm_link_route_startup, utc_inm_link_route_cleanup},
+
{NULL, NULL}
};
return 1;
}
+int inm_get_current_link(inm_link_h *link)
+{
+ inm_connection_h profile;
+ inm_connection_type_e type;
+ int rv;
+
+ rv = inm_get_current_connection(g_hInm, &profile);
+ PRINT_RETURN("inm_get_current_connection", rv);
+ if(rv != INM_ERROR_NONE)
+ return rv;
+
+ rv = inm_connection_get_type(profile, &type);
+ PRINT_RETURN("inm_connection_get_type", rv);
+ if(rv != INM_ERROR_NONE)
+ return rv;
+
+ if (type != INM_CONNECTION_TYPE_WIFI &&
+ type != INM_CONNECTION_TYPE_ETHERNET) {
+ PRINT_RETURN("unwanted connection type", rv);
+ }
+
+ rv = inm_connection_get_link(profile, link);
+ PRINT_RETURN("inm_connection_get_link", rv);
+
+ rv = inm_connection_destroy(&profile);
+ PRINT_RETURN("inm_connection_destroy", rv);
+
+ return rv;
+}
+
+static bool __save_address_callback(inm_link_address_h address, void *user_data)
+{
+ int rv = inm_link_address_clone(&g_hAddress, address);
+ PRINT_RETURN("inm_link_address_clone", rv);
+
+ return FALSE;
+}
+
+int inm_save_any_address(inm_link_h link)
+{
+ assert(link);
+
+ int rv = inm_link_foreach_address(link, __save_address_callback, NULL);
+
+ return rv;
+}
+
+static bool __save_route_callback(inm_link_route_h route, void *user_data)
+{
+ int rv = inm_link_route_clone(&g_hRoute, route);
+ PRINT_RETURN("inm_link_route_clone", rv);
+
+ return FALSE;
+}
+
+int inm_save_any_route(inm_link_h link)
+{
+ assert(link);
+
+ int rv = inm_link_foreach_route(link, __save_route_callback, NULL);
+
+ return rv;
+}
+
void inm_wifi_state_changed_callback(inm_wifi_state_e result, void* user_data)
{
PRINT_RETURN("inm_wifi_state_changed_callback", result);
PRINT_RETURN("inm_set_cellular_state_changed_callback", INM_ERROR_NONE);
}
+bool inm_foreach_link_callback(inm_link_h link, void *user_data)
+{
+ PRINT_RETURN("inm_foreach_link_callback", INM_ERROR_NONE);
+ return false;
+}
+
+bool inm_foreach_address_callback(inm_link_address_h address, void *user_data)
+{
+ PRINT_RETURN("inm_foreach_address_callback", INM_ERROR_NONE);
+ return false;
+}
+bool inm_foreach_route_callback(inm_link_route_h route, void *user_data)
+{
+ PRINT_RETURN("inm_foreach_route_callback", INM_ERROR_NONE);
+ return false;
+}
inm_h g_hInm;
inm_connection_h profile_temp;
inm_connection_h g_hConnection;
+inm_link_h g_hLink;
+inm_link_address_h g_hAddress;
+inm_link_route_h g_hRoute;
-#define RUN_GMAIN_LOOP {\
+#define RUN_GMAIN_LOOP do {\
g_pMainLoop = g_main_loop_new(NULL, false);\
g_nTimeoutId = g_timeout_add(GMAINTIMEOUT, inm_callback_timeout, g_pMainLoop);\
if (INM_DEBUG) {\
g_main_loop_run(g_pMainLoop);\
g_source_remove(g_nTimeoutId);\
g_pMainLoop = NULL;\
-}
-
-#define QUIT_GMAIN_LOOP {\
- if (g_pMainLoop) {\
- if (INM_DEBUG) {\
- FPRINTF("[%s:%d] Quit mainloop [%p]\\n", __FILE__, __LINE__, g_pMainLoop);\
- dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Quit mainloop [%p]", __FILE__, __LINE__, g_pMainLoop);\
+} while (0)
+
+#define QUIT_GMAIN_LOOP do {\
+ if (g_pMainLoop) {\
+ if (INM_DEBUG) {\
+ FPRINTF("[%s:%d] Quit mainloop [%p]\\n", __FILE__, __LINE__, g_pMainLoop);\
+ dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Quit mainloop [%p]", __FILE__, __LINE__, g_pMainLoop);\
+ }\
+ g_main_loop_quit(g_pMainLoop);\
}\
- g_main_loop_quit(g_pMainLoop);\
-}\
-}
-
-#define PRINT_RETURN(api, ret) {\
- if (INM_DEBUG) {\
- FPRINTF("[%s:%d] %s returned = %s\\n",\
- __FILE__, __LINE__, api, inm_get_error(ret));\
- dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] %s returned = %s",\
- __FILE__, __LINE__, api, inm_get_error(ret));\
- }\
-}
+ } while (0)
-#define CHECK_RETURN(api, ret, val) {\
- if (INM_DEBUG) {\
- if (ret != val) {\
- FPRINTF("[%s:%d] %s failed, error returned = %s\\n",\
+#define PRINT_RETURN(api, ret) do {\
+ if (INM_DEBUG) {\
+ FPRINTF("[%s:%d] %s returned = %s\\n",\
__FILE__, __LINE__, api, inm_get_error(ret));\
- dlog_print(DLOG_ERROR, "NativeTCT", "[%s:%d] %s failed, error returned = %s",\
+ dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] %s returned = %s",\
__FILE__, __LINE__, api, inm_get_error(ret));\
- return 1;\
- } else {\
- PRINT_RETURN(api, ret);\
}\
- }\
-}
+ } while (0)
+
+#define CHECK_RETURN(api, ret, val) do{\
+ if (INM_DEBUG) {\
+ if (ret != val) {\
+ FPRINTF("[%s:%d] %s failed, error returned = %s\\n",\
+ __FILE__, __LINE__, api, inm_get_error(ret));\
+ dlog_print(DLOG_ERROR, "NativeTCT", "[%s:%d] %s failed, error returned = %s",\
+ __FILE__, __LINE__, api, inm_get_error(ret));\
+ return 1;\
+ } else {\
+ PRINT_RETURN(api, ret);\
+ }\
+ }\
+ } while (0)
gboolean inm_callback_timeout(gpointer data);
char* inm_get_error(int error);
bool inm_get_value_from_configfile(char* key, char* value);
bool inm_check_feature_supported(char *key);
int inm_get_any_profile(inm_connection_h *profile);
+int inm_get_current_link(inm_link_h *link);
+int inm_save_any_address(inm_link_h link);
+int inm_save_any_route(inm_link_h link);
void inm_wifi_state_changed_callback(inm_wifi_state_e result, void* user_data);
void inm_connection_state_changed_callback(inm_connection_state_e state, void* user_data);
void inm_set_cellular_state_changed_callback(inm_cellular_state_e result, void* user_data);
void inm_set_wifi_state_changed_callback(inm_wifi_state_e result, void* user_data);
void inm_set_ethernet_state_changed_callback(inm_ethernet_state_e result, void* user_data);
+bool inm_foreach_link_callback(inm_link_h link, void *user_data);
+bool inm_foreach_address_callback(inm_link_address_h address, void *user_data);
+bool inm_foreach_route_callback(inm_link_route_h route, void *user_data);
#endif /* _INTELLIGENT_NETWORK_MONITORING_COMMON_H_ */
--- /dev/null
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "utc-intelligent-network-monitoring-common.h"
+
+
+
+/**
+ * @function utc_inm_link_address_startup
+ * @since_tizen 5.5
+ * @description Initializes inm link address.Called before each test
+ * @parameter NA
+ * @return NA
+ */
+void utc_inm_link_address_startup(void)
+{
+ g_bFeatureInm = inm_check_feature_supported(FEATURE_INM);
+ g_hLink = NULL;
+ g_hAddress = NULL;
+
+ int ret = inm_initialize(&g_hInm);
+ PRINT_RETURN("inm_initialize", ret);
+ if (ret != INM_ERROR_NONE) {
+ if (ret != INM_ERROR_NOT_SUPPORTED || !g_bFeatureInm) {
+ FPRINTF("[%s:%d] Fail to initialize\\n", __FILE__, __LINE__);
+ dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Fail to initialize", __FILE__, __LINE__);
+ }
+ return;
+ }
+
+ ret = inm_get_current_link(&g_hLink);
+ if (ret != INM_ERROR_NONE || !g_hLink) {
+ FPRINTF("[%s:%d] Fail to get current link\\n", __FILE__, __LINE__);
+ dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Fail to get current link", __FILE__, __LINE__);
+ return;
+ }
+
+ ret = inm_save_any_address(g_hLink);
+ if (ret != INM_ERROR_NONE || !g_hAddress) {
+ FPRINTF("[%s:%d] Fail to get current link address\\n", __FILE__, __LINE__);
+ dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Fail to get current address", __FILE__, __LINE__);
+ return;
+ }
+}
+
+/**
+ * @function utc_inm_link_address_cleanup
+ * @since_tizen 5.5
+ * @description Deinitializes inm link address.Called after each test.
+ * @parameter NA
+ * @return NA
+ */
+void utc_inm_link_address_cleanup(void)
+{
+ int ret;
+
+ ret = inm_link_address_destroy(g_hAddress);
+ PRINT_RETURN("inm_link_address_destroy", ret);
+ g_hAddress = NULL;
+
+ ret = inm_link_destroy(g_hLink);
+ PRINT_RETURN("inm_link_destroy", ret);
+ g_hLink = NULL;
+
+ ret = inm_deinitialize(g_hInm);
+ PRINT_RETURN("inm_deinitialize", ret);
+ g_hInm = NULL;
+}
+
+/*****************************************
+ * CAPI_NETWORK_INM_LINK_MODULE
+ *****************************************/
+
+/**
+ * @testcase utc_inm_link_address_destroy_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Destroys the address handle.
+ * @scenario Invoking inm_link_address_destroy with valid parameter.
+ */
+int utc_inm_link_address_destroy_p(void)
+{
+ inm_link_address_h address_clone = NULL;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_address_destroy(address_clone);
+ CHECK_RETURN("inm_link_address_destroy", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_address_clone(&address_clone, g_hAddress);
+ CHECK_RETURN("inm_link_address_clone", ret, INM_ERROR_NONE);
+
+ ret = inm_link_address_destroy(address_clone);
+ CHECK_RETURN("inm_link_address_destroy", ret, INM_ERROR_NONE);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_address_destroy_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description inm_link_address_destroy should fail with invalid parameter.
+ * @scenario Verify inm_link_destroy by passing invalid parameter.
+ */
+int utc_inm_link_address_destroy_n(void)
+{
+ int ret = inm_link_address_destroy(NULL);
+
+ if (!g_bFeatureInm)
+ CHECK_RETURN("inm_link_address_destroy", ret, INM_ERROR_NOT_SUPPORTED);
+ else
+ CHECK_RETURN("inm_link_address_destroy", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_address_clone_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Clones a link address handle.
+ * @scenario Verify inm_link_address_clone with valid parameter and destroy it.
+ */
+int utc_inm_link_address_clone_p(void)
+{
+ inm_link_address_h address_clone = NULL;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_address_clone(&address_clone, g_hAddress);
+ CHECK_RETURN("inm_link_clone", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_address_clone(&address_clone, g_hAddress);
+ CHECK_RETURN("inm_link_clone", ret, INM_ERROR_NONE);
+
+ ret = inm_link_address_destroy(address_clone);
+ PRINT_RETURN("inm_link_address_destroy", ret);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_address_clone_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description Should not Clones a link address handle.
+ * @scenario Verify inm_link_clone by passing invalid parameters.
+ */
+int utc_inm_link_address_clone_n(void)
+{
+ inm_link_address_h address_clone = NULL;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_address_clone(&address_clone, g_hAddress);
+ CHECK_RETURN("inm_link_clone", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_address_clone(NULL, NULL);
+ CHECK_RETURN("inm_link_clone", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_address_clone(&address_clone, NULL);
+ CHECK_RETURN("inm_link_clone", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_address_clone(NULL, g_hAddress);
+ CHECK_RETURN("inm_link_clone", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_address_get_family_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Get the address family.
+ * @scenario Invoking inm_link_address_get_family with valid parameter.
+ */
+int utc_inm_link_address_get_family_p(void)
+{
+ inm_address_family_e family;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_address_get_family(g_hAddress, &family);
+ CHECK_RETURN("inm_link_address_get_family", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_address_get_family(g_hAddress, &family);
+ CHECK_RETURN("inm_link_address_get_family", ret, INM_ERROR_NONE);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_address_get_family_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description Should not return address family.
+ * @scenario Verify inm_link_address_get_family by passing invalid parameter.
+ */
+int utc_inm_link_address_get_family_n(void)
+{
+ inm_address_family_e family;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_address_get_family(g_hAddress, &family);
+ CHECK_RETURN("inm_link_address_get_family", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_address_get_family(NULL, NULL);
+ CHECK_RETURN("inm_link_address_get_family", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_address_get_family(NULL, &family);
+ CHECK_RETURN("inm_link_address_get_family", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_address_get_family(g_hAddress, NULL);
+ CHECK_RETURN("inm_link_address_get_family", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_address_get_prefix_length_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Get the address prefix length.
+ * @scenario Invoking inm_link_address_get_prefix_length with valid parameter.
+ */
+int utc_inm_link_address_get_prefix_length_p(void)
+{
+ int prefix_length;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_address_get_prefix_length(g_hAddress, &prefix_length);
+ CHECK_RETURN("inm_link_address_get_prefix_length", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_address_get_prefix_length(g_hAddress, &prefix_length);
+ CHECK_RETURN("inm_link_address_get_prefix_length", ret, INM_ERROR_NONE);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_address_get_prefix_length_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description Should not return address prefix length.
+ * @scenario Verify inm_link_address_get_prefix_length by passing invalid parameter.
+ */
+int utc_inm_link_address_get_prefix_length_n(void)
+{
+ int prefix_length;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_address_get_prefix_length(g_hAddress, &prefix_length);
+ CHECK_RETURN("inm_link_address_get_prefix_length", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_address_get_prefix_length(NULL, NULL);
+ CHECK_RETURN("inm_link_address_get_prefix_length", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_address_get_prefix_length(NULL, &prefix_length);
+ CHECK_RETURN("inm_link_address_get_prefix_length", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_address_get_prefix_length(g_hAddress, NULL);
+ CHECK_RETURN("inm_link_address_get_prefix_length", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_address_get_scope_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Get the address scope.
+ * @scenario Invoking inm_link_address_get_scope with valid parameter.
+ */
+int utc_inm_link_address_get_scope_p(void)
+{
+ inm_link_scope_e scope;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_address_get_scope(g_hAddress, &scope);
+ CHECK_RETURN("inm_link_address_get_scope", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_address_get_scope(g_hAddress, &scope);
+ CHECK_RETURN("inm_link_address_get_scope", ret, INM_ERROR_NONE);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_address_get_scope_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description Should not return address scope.
+ * @scenario Verify inm_link_address_get_scope by passing invalid parameter.
+ */
+int utc_inm_link_address_get_scope_n(void)
+{
+ inm_link_scope_e scope;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_address_get_scope(g_hAddress, &scope);
+ CHECK_RETURN("inm_link_address_get_family", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_address_get_scope(NULL, NULL);
+ CHECK_RETURN("inm_link_address_get_family", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_address_get_scope(NULL, &scope);
+ CHECK_RETURN("inm_link_address_get_family", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_address_get_scope(g_hAddress, NULL);
+ CHECK_RETURN("inm_link_address_get_family", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_address_get_string_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Get the address string.
+ * @scenario Invoking inm_link_address_get_string with valid parameter.
+ */
+int utc_inm_link_address_get_string_p(void)
+{
+ char *p_addr_str = NULL;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_address_get_string(g_hAddress, &p_addr_str);
+ CHECK_RETURN("inm_link_address_get_string", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_address_get_string(g_hAddress, &p_addr_str);
+ if (!p_addr_str)
+ CHECK_RETURN("inm_link_address_get_string", ret, INM_ERROR_DATA_NOT_FOUND);
+ else
+ CHECK_RETURN("inm_link_address_get_string", ret, INM_ERROR_NONE);
+ FREE_MEMORY_TC(p_addr_str);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_address_get_string_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description Should not return address string.
+ * @scenario Verify inm_link_address_get_string by passing invalid parameter.
+ */
+int utc_inm_link_address_get_string_n(void)
+{
+ char *p_addr_str = NULL;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_address_get_string(g_hAddress, &p_addr_str);
+ CHECK_RETURN("inm_link_address_get_string", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_address_get_string(NULL, NULL);
+ CHECK_RETURN("inm_link_address_get_string", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_address_get_string(NULL, &p_addr_str);
+ CHECK_RETURN("inm_link_address_get_string", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_address_get_string(g_hAddress, NULL);
+ CHECK_RETURN("inm_link_address_get_string", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
--- /dev/null
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "utc-intelligent-network-monitoring-common.h"
+
+/**
+ * @function utc_inm_link_route_startup
+ * @since_tizen 5.5
+ * @description Initializes inm link route.Called before each test
+ * @parameter NA
+ * @return NA
+ */
+void utc_inm_link_route_startup(void)
+{
+ g_bFeatureInm = inm_check_feature_supported(FEATURE_INM);
+ g_hLink = NULL;
+
+ int ret = inm_initialize(&g_hInm);
+ PRINT_RETURN("inm_initialize", ret);
+ if (ret != INM_ERROR_NONE) {
+ if (ret != INM_ERROR_NOT_SUPPORTED || !g_bFeatureInm) {
+ FPRINTF("[%s:%d] Fail to initialize\\n", __FILE__, __LINE__);
+ dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Fail to initialize", __FILE__, __LINE__);
+ }
+ return;
+ }
+
+ ret = inm_get_current_link(&g_hLink);
+ if (ret != INM_ERROR_NONE || !g_hLink) {
+ FPRINTF("[%s:%d] Fail to get current link\\n", __FILE__, __LINE__);
+ dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Fail to get current link", __FILE__, __LINE__);
+ return;
+ }
+
+ ret = inm_save_any_route(g_hLink);
+ if (ret != INM_ERROR_NONE || !g_hRoute) {
+ FPRINTF("[%s:%d] Fail to get current link route\\n", __FILE__, __LINE__);
+ dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Fail to get current route", __FILE__, __LINE__);
+ return;
+ }
+}
+
+/**
+ * @function utc_inm_link_route_cleanup
+ * @since_tizen 5.5
+ * @description Deinitializes inm.Called after each test.
+ * @parameter NA
+ * @return NA
+ */
+void utc_inm_link_route_cleanup(void)
+{
+ int ret;
+
+ ret = inm_link_route_destroy(g_hRoute);
+ PRINT_RETURN("inm_link_route_destroy", ret);
+ g_hRoute = NULL;
+
+ ret = inm_link_destroy(g_hLink);
+ PRINT_RETURN("inm_link_destroy", ret);
+ g_hLink = NULL;
+
+ ret = inm_deinitialize(g_hInm);
+ PRINT_RETURN("inm_deinitialize", ret);
+ g_hInm = NULL;
+}
+
+/*****************************************
+ * CAPI_NETWORK_INM_LINK_MODULE
+ *****************************************/
+
+/**
+ * @testcase utc_inm_link_route_destroy_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Destroys the route handle.
+ * @scenario Invoking inm_link_route_destroy with valid parameter.
+ */
+int utc_inm_link_route_destroy_p(void)
+{
+ inm_link_route_h route_clone = NULL;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_route_destroy(route_clone);
+ CHECK_RETURN("inm_link_route_destroy", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_route_clone(&route_clone, g_hRoute);
+ CHECK_RETURN("inm_link_route_clone", ret, INM_ERROR_NONE);
+
+ ret = inm_link_route_destroy(route_clone);
+ CHECK_RETURN("inm_link_route_destroy", ret, INM_ERROR_NONE);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_route_destroy_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description inm_link_route_destroy should fail with invalid parameter.
+ * @scenario Verify inm_link_destroy by passing invalid parameter.
+ */
+int utc_inm_link_route_destroy_n(void)
+{
+ int ret = inm_link_route_destroy(NULL);
+ if (!g_bFeatureInm)
+ CHECK_RETURN("inm_link_route_destroy", ret, INM_ERROR_NOT_SUPPORTED);
+ else
+ CHECK_RETURN("inm_link_route_destroy", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_route_clone_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Clones a link route handle.
+ * @scenario Verify inm_link_route_clone with valid parameter and destroy it.
+ */
+int utc_inm_link_route_clone_p(void)
+{
+ inm_link_route_h route_clone = NULL;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_route_clone(&route_clone, g_hRoute);
+ CHECK_RETURN("inm_link_clone", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_route_clone(&route_clone, g_hRoute);
+ CHECK_RETURN("inm_link_route_clone", ret, INM_ERROR_NONE);
+
+ ret = inm_link_route_destroy(route_clone);
+ PRINT_RETURN("inm_link_route_destroy", ret);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_route_clone_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description Should not Clones a link route handle.
+ * @scenario Verify inm_link_clone by passing invalid parameters.
+ */
+int utc_inm_link_route_clone_n(void)
+{
+ inm_link_route_h route_clone = NULL;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_route_clone(&route_clone, g_hRoute);
+ CHECK_RETURN("inm_link_route_clone", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_route_clone(NULL, NULL);
+ CHECK_RETURN("inm_link_route_clone", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_route_clone(&route_clone, NULL);
+ CHECK_RETURN("inm_link_route_clone", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_route_clone(NULL, g_hRoute);
+ CHECK_RETURN("inm_link_route_clone", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_route_get_destination_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Get the route destination.
+ * @scenario Invoking inm_link_route_get_destination with valid parameter.
+ */
+int utc_inm_link_route_get_destination_p(void)
+{
+ char *destination = NULL;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_route_get_destination(g_hRoute, &destination);
+ CHECK_RETURN("inm_link_route_get_destination", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_route_get_destination(g_hRoute, &destination);
+ if (!destination)
+ CHECK_RETURN("inm_link_route_get_destination", ret, INM_ERROR_DATA_NOT_FOUND);
+ else
+ CHECK_RETURN("inm_link_route_get_destination", ret, INM_ERROR_NONE);
+ FREE_MEMORY_TC(destination);
+
+ return 0;
+}
+
+
+/**
+ * @testcase utc_inm_link_route_get_destination_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description Should not return route destination.
+ * @scenario Verify inm_link_route_get_destination by passing invalid parameter.
+ */
+int utc_inm_link_route_get_destination_n(void)
+{
+ char *destination = NULL;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_route_get_destination(g_hRoute, &destination);
+ CHECK_RETURN("inm_link_route_get_destination", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_route_get_destination(NULL, NULL);
+ CHECK_RETURN("inm_link_route_get_destination", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_route_get_destination(NULL, &destination);
+ CHECK_RETURN("inm_link_route_get_destination", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_route_get_destination(g_hRoute, NULL);
+ CHECK_RETURN("inm_link_route_get_destination", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_route_get_gateway_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Get the route gateway.
+ * @scenario Invoking inm_link_route_get_gateway with valid parameter.
+ */
+int utc_inm_link_route_get_gateway_p(void)
+{
+ char *gateway = NULL;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_route_get_gateway(g_hRoute, &gateway);
+ CHECK_RETURN("inm_link_route_get_gateway", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_route_get_gateway(g_hRoute, &gateway);
+ if (!gateway)
+ CHECK_RETURN("inm_link_route_get_gateway", ret, INM_ERROR_DATA_NOT_FOUND);
+ else
+ CHECK_RETURN("inm_link_route_get_gateway", ret, INM_ERROR_NONE);
+ FREE_MEMORY_TC(gateway);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_route_get_gateway_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description Should not return route gateway.
+ * @scenario Verify inm_link_route_get_gateway by passing invalid parameter.
+ */
+int utc_inm_link_route_get_gateway_n(void)
+{
+ char *gateway = NULL;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_route_get_gateway(g_hRoute, &gateway);
+ CHECK_RETURN("inm_link_route_get_gateway", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_route_get_gateway(NULL, NULL);
+ CHECK_RETURN("inm_link_route_get_gateway", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_route_get_gateway(NULL, &gateway);
+ CHECK_RETURN("inm_link_route_get_gateway", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_route_get_gateway(g_hRoute, NULL);
+ CHECK_RETURN("inm_link_route_get_gateway", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_route_get_interface_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Get the route interface.
+ * @scenario Invoking inm_link_route_get_interface with valid parameter.
+ */
+int utc_inm_link_route_get_interface_p(void)
+{
+ char *interface = NULL;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_route_get_interface(g_hRoute, &interface);
+ CHECK_RETURN("inm_link_route_get_interface", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_route_get_interface(g_hRoute, &interface);
+ if (!interface)
+ CHECK_RETURN("inm_link_route_get_interface", ret, INM_ERROR_DATA_NOT_FOUND);
+ else
+ CHECK_RETURN("inm_link_route_get_interface", ret, INM_ERROR_NONE);
+ FREE_MEMORY_TC(interface);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_route_get_interface_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description Should not return route interface.
+ * @scenario Verify inm_link_route_get_interface by passing invalid parameter.
+ */
+int utc_inm_link_route_get_interface_n(void)
+{
+ char *interface = NULL;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_route_get_interface(g_hRoute, &interface);
+ CHECK_RETURN("inm_link_route_get_interface", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_route_get_interface(NULL, NULL);
+ CHECK_RETURN("inm_link_route_get_interface", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_route_get_interface(NULL, &interface);
+ CHECK_RETURN("inm_link_route_get_interface", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_route_get_interface(g_hRoute, NULL);
+ CHECK_RETURN("inm_link_route_get_interface", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_route_is_default_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Check if route is default route.
+ * @scenario Invoking inm_link_route_is_default with valid parameter.
+ */
+int utc_inm_link_route_is_default_p(void)
+{
+ bool is_default;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_route_is_default(g_hRoute, &is_default);
+ CHECK_RETURN("inm_link_route_get_interface", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_route_is_default(g_hRoute, &is_default);
+ CHECK_RETURN("inm_link_route_get_gateway", ret, INM_ERROR_NONE);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_route_is_default_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description Should not return route is default.
+ * @scenario Verify inm_link_route_is_default by passing invalid parameter.
+ */
+int utc_inm_link_route_is_default_n(void)
+{
+ bool is_default;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_route_is_default(g_hRoute, &is_default);
+ CHECK_RETURN("inm_link_route_is_default", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_route_is_default(NULL, NULL);
+ CHECK_RETURN("inm_link_route_is_default", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_route_is_default(NULL, &is_default);
+ CHECK_RETURN("inm_link_route_is_default", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_route_is_default(g_hRoute, NULL);
+ CHECK_RETURN("inm_link_route_is_default", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_route_get_type_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Gets the route type.
+ * @scenario Invoking inm_link_route_get_type with valid parameter.
+ */
+int utc_inm_link_route_get_type_p(void)
+{
+ inm_link_route_type_e type;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_route_get_type(g_hRoute, &type);
+ CHECK_RETURN("inm_link_route_get_type", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_route_get_type(g_hRoute, &type);
+ CHECK_RETURN("inm_link_route_get_type", ret, INM_ERROR_NONE);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_route_get_type_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description Should not return route type.
+ * @scenario Verify inm_link_route_get_type by passing invalid parameter.
+ */
+int utc_inm_link_route_get_type_n(void)
+{
+ inm_link_route_type_e type;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_route_get_type(g_hRoute, &type);
+ CHECK_RETURN("inm_link_route_get_type", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_route_get_type(NULL, NULL);
+ CHECK_RETURN("inm_link_route_get_type", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_route_get_type(NULL, &type);
+ CHECK_RETURN("inm_link_route_get_type", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_route_get_type(g_hRoute, NULL);
+ CHECK_RETURN("inm_link_route_get_type", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
--- /dev/null
+/*
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "utc-intelligent-network-monitoring-common.h"
+
+/**
+ * @function utc_inm_link_startup
+ * @since_tizen 5.5
+ * @description Initializes inm link.Called before each test
+ * @parameter NA
+ * @return NA
+ */
+void utc_inm_link_startup(void)
+{
+ g_bFeatureInm = inm_check_feature_supported(FEATURE_INM);
+ g_hLink = NULL;
+
+ int ret = inm_initialize(&g_hInm);
+ PRINT_RETURN("inm_initialize", ret);
+ if (ret != INM_ERROR_NONE) {
+ if (ret != INM_ERROR_NOT_SUPPORTED || !g_bFeatureInm) {
+ FPRINTF("[%s:%d] Fail to initialize\\n", __FILE__, __LINE__);
+ dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Fail to initialize", __FILE__, __LINE__);
+ }
+ return;
+ }
+
+ ret = inm_get_current_link(&g_hLink);
+ if (ret != INM_ERROR_NONE || !g_hLink) {
+ FPRINTF("[%s:%d] Fail to get current link\\n", __FILE__, __LINE__);
+ dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Fail to get current link", __FILE__, __LINE__);
+ return;
+ }
+}
+
+/**
+ * @function utc_inm_link_cleanup
+ * @since_tizen 5.5
+ * @description Deinitializes inm link.Called after each test.
+ * @parameter NA
+ * @return NA
+ */
+void utc_inm_link_cleanup(void)
+{
+ int ret;
+
+ ret = inm_link_destroy(g_hLink);
+ PRINT_RETURN("inm_link_destroy", ret);
+ g_hLink = NULL;
+
+ ret = inm_deinitialize(g_hInm);
+ PRINT_RETURN("inm_deinitialize", ret);
+ g_hInm = NULL;
+}
+
+/*****************************************
+ * CAPI_NETWORK_INM_LINK_MODULE
+ *****************************************/
+
+/**
+ * @testcase utc_inm_link_destroy_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Destroys the link handle.
+ * @scenario Invoking inm_link_destroy with valid parameter.
+ */
+int utc_inm_link_destroy_p(void)
+{
+ inm_link_h link_clone = NULL;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_destroy(link_clone);
+ CHECK_RETURN("inm_link_destroy", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ if (g_hLink != NULL) {
+ ret = inm_link_clone(&link_clone, g_hLink);
+ CHECK_RETURN("inm_link_clone", ret, INM_ERROR_NONE);
+ }
+
+ ret = inm_link_destroy(link_clone);
+ CHECK_RETURN("inm_link_destroy", ret, INM_ERROR_NONE);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_destroy_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description inm_link_destroy should fail with invalid parameter.
+ * @scenario Verify inm_link_destroy by passing invalid parameter.
+ */
+int utc_inm_link_destroy_n(void)
+{
+ int ret = inm_link_destroy(NULL);
+
+ if (!g_bFeatureInm)
+ CHECK_RETURN("inm_link_destroy", ret, INM_ERROR_NOT_SUPPORTED);
+ else
+ CHECK_RETURN("inm_link_destroy", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_clone_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Clones a link handle.
+ * @scenario Verify inm_link_clone with valid parameter and destroy it.
+ */
+int utc_inm_link_clone_p(void)
+{
+ inm_link_h link_cloned = NULL;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_clone(&link_cloned, g_hLink);
+ CHECK_RETURN("inm_link_clone", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_clone(&link_cloned, g_hLink);
+ CHECK_RETURN("inm_link_clone", ret, INM_ERROR_NONE);
+
+ ret = inm_link_destroy(link_cloned);
+ PRINT_RETURN("inm_link_destroy", ret);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_clone_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description Should not Clones a profile handle.
+ * @scenario Verify inm_link_clone by passing invalid parameters.
+ */
+int utc_inm_link_clone_n(void)
+{
+ inm_link_h link_cloned = NULL;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_clone(&link_cloned, g_hLink);
+ CHECK_RETURN("inm_link_clone", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_clone(NULL, NULL);
+ CHECK_RETURN("inm_link_clone", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_clone(NULL, g_hLink);
+ CHECK_RETURN("inm_link_clone", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_clone(&link_cloned, NULL);
+ CHECK_RETURN("inm_link_clone", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_get_interface_name_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Gets the link interface name.
+ * @scenario Invoking inm_link_get_interface_name with valid link handle.
+ */
+int utc_inm_link_get_interface_name_p(void)
+{
+ char *name = NULL;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_get_interface_name(g_hLink, &name);
+ CHECK_RETURN("inm_link_get_interface_name", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_get_interface_name(g_hLink, &name);
+ FREE_MEMORY_TC(name);
+ CHECK_RETURN("inm_link_get_interface_name", ret, INM_ERROR_NONE);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_get_interface_name_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description Should not return link name.
+ * @scenario Verify inm_link_get_interface_name by passing invalid parameter.
+ */
+int utc_inm_link_get_interface_name_n(void)
+{
+ char *name = NULL;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_get_interface_name(g_hLink, &name);
+ CHECK_RETURN("inm_link_get_interface_name", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_get_interface_name(NULL, NULL);
+ CHECK_RETURN("inm_link_get_interface_name", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_get_interface_name(NULL, &name);
+ CHECK_RETURN("inm_link_get_interface_name", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_get_interface_name(g_hLink, NULL);
+ CHECK_RETURN("inm_link_get_interface_name", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_get_flags_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Gets the link flags.
+ * @scenario Invoking inm_link_get_flags with valid link handle.
+ */
+int utc_inm_link_get_flags_p(void)
+{
+ int flags;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_get_flags(g_hLink, &flags);
+ CHECK_RETURN("inm_link_get_flags", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_get_flags(g_hLink, &flags);
+ CHECK_RETURN("inm_link_get_flags", ret, INM_ERROR_NONE);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_get_flags_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description Should not return link flags.
+ * @scenario Verify inm_link_get_flags by passing invalid parameter.
+ */
+int utc_inm_link_get_flags_n(void)
+{
+ int flags;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_get_flags(g_hLink, &flags);
+ CHECK_RETURN("inm_link_get_flags", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_get_flags(NULL, NULL);
+ CHECK_RETURN("inm_link_get_flags", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_get_flags(NULL, &flags);
+ CHECK_RETURN("inm_link_get_flags", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_get_flags(g_hLink, NULL);
+ CHECK_RETURN("inm_link_get_flags", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_get_operation_state_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Gets the link operation state.
+ * @scenario Invoking inm_link_get_operation_state with valid link handle.
+ */
+int utc_inm_link_get_operation_state_p(void)
+{
+ inm_link_oper_state_e operation_state;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_get_operation_state(g_hLink, &operation_state);
+ CHECK_RETURN("inm_link_get_operation_state", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_get_operation_state(g_hLink, &operation_state);
+ CHECK_RETURN("inm_link_get_operation_state", ret, INM_ERROR_NONE);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_get_operation_state_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description Should not return link operation state.
+ * @scenario Verify inm_link_get_operation_state by passing invalid parameter.
+ */
+int utc_inm_link_get_operation_state_n(void)
+{
+ inm_link_oper_state_e operation_state;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_get_operation_state(g_hLink, &operation_state);
+ CHECK_RETURN("inm_link_get_operation_state", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+ ret = inm_link_get_operation_state(NULL, NULL);
+ CHECK_RETURN("inm_link_get_operation_state", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_get_operation_state(NULL, &operation_state);
+ CHECK_RETURN("inm_link_get_operation_state", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_get_operation_state(g_hLink, NULL);
+ CHECK_RETURN("inm_link_get_operation_state", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_get_received_bytes_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Gets the link received bytes.
+ * @scenario Invoking inm_link_get_received_bytes with valid link handle.
+ */
+int utc_inm_link_get_received_bytes_p(void)
+{
+ unsigned long long bytes;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_get_received_bytes(g_hLink, &bytes);
+ CHECK_RETURN("inm_link_get_received_bytes", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_get_received_bytes(g_hLink, &bytes);
+ CHECK_RETURN("inm_link_get_received_bytes", ret, INM_ERROR_NONE);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_get_received_bytes_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description Should not return link received bytes.
+ * @scenario Verify inm_link_get_received_bytes by passing invalid parameter.
+ */
+int utc_inm_link_get_received_bytes_n(void)
+{
+ unsigned long long bytes;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_get_received_bytes(g_hLink, &bytes);
+ CHECK_RETURN("inm_link_get_received_bytes", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_get_received_bytes(NULL, NULL);
+ CHECK_RETURN("inm_link_get_received_bytes", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_get_received_bytes(NULL, &bytes);
+ CHECK_RETURN("inm_link_get_received_bytes", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_get_received_bytes(g_hLink, NULL);
+ CHECK_RETURN("inm_link_get_received_bytes", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_get_sent_bytes_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Gets the link sent bytes.
+ * @scenario Invoking inm_link_get_sent_bytes with valid link handle.
+ */
+int utc_inm_link_get_sent_bytes_p(void)
+{
+ unsigned long long bytes;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_get_sent_bytes(g_hLink, &bytes);
+ CHECK_RETURN("inm_link_get_sent_bytes", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_get_sent_bytes(g_hLink, &bytes);
+ CHECK_RETURN("inm_link_get_sent_bytes", ret, INM_ERROR_NONE);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_get_sent_bytes_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description Should not return link sent bytes.
+ * @scenario Verify inm_link_get_sent_bytes by passing invalid parameter.
+ */
+int utc_inm_link_get_sent_bytes_n(void)
+{
+ unsigned long long bytes;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_get_sent_bytes(g_hLink, &bytes);
+ CHECK_RETURN("inm_link_get_sent_bytes", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_get_sent_bytes(NULL, NULL);
+ CHECK_RETURN("inm_link_get_sent_bytes", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_get_sent_bytes(NULL, &bytes);
+ CHECK_RETURN("inm_link_get_sent_bytes", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_link_get_sent_bytes(g_hLink, NULL);
+ CHECK_RETURN("inm_link_get_sent_bytes", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_foreach_address_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Gets the link address information.
+ * @scenario Get all the network interface address information. Ensure no error.
+ */
+int utc_inm_link_foreach_address_p(void)
+{
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_foreach_address(g_hLink, inm_foreach_address_callback, NULL);
+ CHECK_RETURN("inm_link_foreach_address", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_foreach_address(g_hLink, inm_foreach_address_callback, NULL);
+ CHECK_RETURN("inm_link_foreach_address", ret, INM_ERROR_NONE);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_foreach_address_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description Verify inm_link_foreach_address by passing invalid parameters
+ * @scenario Pass invalid parameters and ensure network interface information are not returned.
+ * Ensure return value should be INM_ERROR_INVALID_PARAMETER.
+ */
+int utc_inm_link_foreach_address_n(void)
+{
+ int ret = INM_ERROR_NONE;
+
+ ret = inm_link_foreach_address(NULL, NULL, NULL);
+
+ if (!g_bFeatureInm)
+ CHECK_RETURN("inm_link_foreach_address", ret, INM_ERROR_NOT_SUPPORTED);
+ else
+ CHECK_RETURN("inm_link_foreach_address", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+
+/**
+ * @testcase utc_inm_link_foreach_route_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Gets the link route information.
+ * @scenario Get all the network interface route information. Ensure no error.
+ */
+int utc_inm_link_foreach_route_p(void)
+{
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_link_foreach_route(g_hLink, inm_foreach_route_callback, NULL);
+ CHECK_RETURN("inm_link_foreach_route", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_link_foreach_route(g_hLink, inm_foreach_route_callback, NULL);
+ CHECK_RETURN("inm_link_foreach_route", ret, INM_ERROR_NONE);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_link_foreach_route_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description Verify inm_link_foreach_route by passing invalid parameters
+ * @scenario Pass invalid parameters and ensure network interface information are not returned.
+ * Ensure return value should be INM_ERROR_INVALID_PARAMETER.
+ */
+int utc_inm_link_foreach_route_n(void)
+{
+ int ret = INM_ERROR_NONE;
+
+ ret = inm_link_foreach_route(NULL, NULL, NULL);
+
+ if (!g_bFeatureInm)
+ CHECK_RETURN("inm_link_foreach_route", ret, INM_ERROR_NOT_SUPPORTED);
+ else
+ CHECK_RETURN("inm_link_foreach_route", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
return 0;
}
+/**
+ * @testcase utc_inm_inm_foreach_link_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Gets the link information.
+ * @scenario Get all the network interface information. Ensure no error.
+ */
+int utc_inm_inm_foreach_link_p(void)
+{
+ int ret = INM_ERROR_NONE;
+
+ ret = inm_foreach_link(g_hInm, inm_foreach_link_callback, NULL);
+ if (!g_bFeatureInm)
+ CHECK_RETURN("inm_foreach_link", ret, INM_ERROR_NOT_SUPPORTED);
+ else
+ CHECK_RETURN("inm_foreach_link", ret, INM_ERROR_NONE);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_inm_foreach_link_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description Verify inm_inm_foreach_link by passing invalid parameters
+ * @scenario Pass invalid parameters and ensure network interface information are not returned.
+ * Ensure return value should be INM_ERROR_INVALID_PARAMETER.
+ */
+int utc_inm_inm_foreach_link_n(void)
+{
+ int ret = INM_ERROR_NONE;
+
+ ret = inm_foreach_link(g_hInm, NULL, NULL);
+
+ if (!g_bFeatureInm)
+ CHECK_RETURN("inm_foreach_link", ret, INM_ERROR_NOT_SUPPORTED);
+ else
+ CHECK_RETURN("inm_foreach_link", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_connection_get_link_p
+ * @since_tizen 5.5
+ * @type Positive
+ * @description Gets the link from connection.
+ * @scenario Invoking inm_connection_get_link with valid parameter.
+ */
+int utc_inm_connection_get_link_p(void)
+{
+ inm_connection_h profile_h = NULL;
+ inm_link_h link = NULL;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_connection_get_link(profile_h, &link);
+ CHECK_RETURN("inm_connection_get_link", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ ret = inm_get_current_link(&link);
+ CHECK_RETURN("inm_connection_get_link", ret, INM_ERROR_NONE);
+
+ ret = inm_link_destroy(link);
+ PRINT_RETURN("inm_link_destroy", ret);
+
+ return 0;
+}
+
+/**
+ * @testcase utc_inm_connection_get_link_n
+ * @since_tizen 5.5
+ * @type Negative
+ * @description inm_connection_get_link should fail with invalid parameter.
+ * @scenario Verify inm_connection_get_link by passing invalid parameter.
+ */
+int utc_inm_connection_get_link_n(void)
+{
+ inm_connection_h profile_h = NULL;
+ inm_link_h link = NULL;
+ int ret = INM_ERROR_NONE;
+
+ if (!g_bFeatureInm) {
+ ret = inm_connection_get_link(profile_h, &link);
+ CHECK_RETURN("inm_connection_get_link", ret, INM_ERROR_NOT_SUPPORTED);
+ return 0;
+ }
+
+ inm_get_any_profile(&profile_h);
+
+ ret = inm_connection_get_link(NULL, NULL);
+ CHECK_RETURN("inm_connection_get_link", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_connection_get_link(profile_h, NULL);
+ CHECK_RETURN("inm_connection_get_link", ret, INM_ERROR_INVALID_PARAMETER);
+ ret = inm_connection_get_link(NULL, &link);
+ CHECK_RETURN("inm_connection_get_link", ret, INM_ERROR_INVALID_PARAMETER);
+
+ return 0;
+}