From: Yu Date: Tue, 15 Jan 2019 00:30:00 +0000 (+0900) Subject: [UTC][intelligent-network-monitoring][ACR-1320][Add new CAPIs to get network interfac... X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b908264eb642f86c356dbc42917823d5c8ce9195;p=test%2Ftct%2Fnative%2Fapi.git [UTC][intelligent-network-monitoring][ACR-1320][Add new CAPIs to get network interface link informations] Change-Id: I6e7eeabfd229757417df323615ba7b3c9753a7d2 Signed-off-by: Yu jiung --- diff --git a/src/utc/intelligent-network-monitoring/CMakeLists.txt b/src/utc/intelligent-network-monitoring/CMakeLists.txt index d6a8e3579..9982d9541 100755 --- a/src/utc/intelligent-network-monitoring/CMakeLists.txt +++ b/src/utc/intelligent-network-monitoring/CMakeLists.txt @@ -8,6 +8,9 @@ SET(CAPI_LIB "capi-network-inm") 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 diff --git a/src/utc/intelligent-network-monitoring/tct-intelligent-network-monitoring-core_mobile.h b/src/utc/intelligent-network-monitoring/tct-intelligent-network-monitoring-core_mobile.h index 7f67e3526..62a3579ca 100755 --- a/src/utc/intelligent-network-monitoring/tct-intelligent-network-monitoring-core_mobile.h +++ b/src/utc/intelligent-network-monitoring/tct-intelligent-network-monitoring-core_mobile.h @@ -154,6 +154,63 @@ extern int utc_inm_wifi_ap_get_assoc_status_code_n(void); 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}, @@ -286,6 +343,58 @@ testcase tc_array[] = { {"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} }; diff --git a/src/utc/intelligent-network-monitoring/tct-intelligent-network-monitoring-core_tizeniot.h b/src/utc/intelligent-network-monitoring/tct-intelligent-network-monitoring-core_tizeniot.h index 7f67e3526..50622c6f0 100755 --- a/src/utc/intelligent-network-monitoring/tct-intelligent-network-monitoring-core_tizeniot.h +++ b/src/utc/intelligent-network-monitoring/tct-intelligent-network-monitoring-core_tizeniot.h @@ -154,6 +154,63 @@ extern int utc_inm_wifi_ap_get_assoc_status_code_n(void); 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}, @@ -286,6 +343,57 @@ testcase tc_array[] = { {"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} }; diff --git a/src/utc/intelligent-network-monitoring/tct-intelligent-network-monitoring-core_wearable.h b/src/utc/intelligent-network-monitoring/tct-intelligent-network-monitoring-core_wearable.h index 7f67e3526..50622c6f0 100755 --- a/src/utc/intelligent-network-monitoring/tct-intelligent-network-monitoring-core_wearable.h +++ b/src/utc/intelligent-network-monitoring/tct-intelligent-network-monitoring-core_wearable.h @@ -154,6 +154,63 @@ extern int utc_inm_wifi_ap_get_assoc_status_code_n(void); 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}, @@ -286,6 +343,57 @@ testcase tc_array[] = { {"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} }; diff --git a/src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring-common.c b/src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring-common.c index 9354cc3c0..f58a0fe1b 100755 --- a/src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring-common.c +++ b/src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring-common.c @@ -166,6 +166,70 @@ int inm_get_any_profile(inm_connection_h *profile) 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); @@ -246,5 +310,21 @@ void inm_set_ethernet_state_changed_callback(inm_ethernet_state_e result, void* 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; +} diff --git a/src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring-common.h b/src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring-common.h index 4d24f19c1..90930ee8c 100755 --- a/src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring-common.h +++ b/src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring-common.h @@ -51,10 +51,13 @@ bool g_bFeatureAllNotSupported; 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) {\ @@ -64,46 +67,49 @@ inm_connection_h g_hConnection; 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); @@ -117,6 +123,9 @@ void inm_set_channel_interference_callback(int freq, double channel_intf, void* 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_ */ diff --git a/src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring-link-address.c b/src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring-link-address.c new file mode 100644 index 000000000..3ec863b90 --- /dev/null +++ b/src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring-link-address.c @@ -0,0 +1,398 @@ +/* + * 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; +} diff --git a/src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring-link-route.c b/src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring-link-route.c new file mode 100644 index 000000000..5735b61ae --- /dev/null +++ b/src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring-link-route.c @@ -0,0 +1,456 @@ +/* + * 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; +} + diff --git a/src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring-link.c b/src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring-link.c new file mode 100644 index 000000000..56122ad99 --- /dev/null +++ b/src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring-link.c @@ -0,0 +1,525 @@ +/* + * 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; +} diff --git a/src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring.c b/src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring.c index 6b9f1c408..acd566214 100755 --- a/src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring.c +++ b/src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring.c @@ -3990,3 +3990,103 @@ int utc_inm_wifi_ap_foreach_vsie_n(void) 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; +}