[UTC][intelligent-network-monitoring][ACR-1350][Add new CAPIs to test default link... 86/200586/8
authorYu <jiung.yu@samsung.com>
Wed, 27 Feb 2019 05:59:12 +0000 (14:59 +0900)
committerJiung Yu <jiung.yu@samsung.com>
Wed, 10 Apr 2019 08:00:05 +0000 (08:00 +0000)
Change-Id: Ibf15dd6bbcbff684cae2839b4c20d797701b2832
Signed-off-by: Yu Jiung <jiung.yu@samsung.com>
src/utc/intelligent-network-monitoring/CMakeLists.txt
src/utc/intelligent-network-monitoring/tct-intelligent-network-monitoring-core_mobile.h
src/utc/intelligent-network-monitoring/tct-intelligent-network-monitoring-core_tizeniot.h
src/utc/intelligent-network-monitoring/tct-intelligent-network-monitoring-core_wearable.h
src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring-active.c [new file with mode: 0644]
src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring-common.c
src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring-common.h
src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring-link.c
src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring.c

index 9982d95414b1febd3b1d64838119a282765fbc50..24a853dc971c973c391c9847fe042a679047bd0a 100755 (executable)
@@ -11,6 +11,7 @@ SET(TC_SOURCES
     utc-intelligent-network-monitoring-link.c
     utc-intelligent-network-monitoring-link-address.c
     utc-intelligent-network-monitoring-link-route.c
+    utc-intelligent-network-monitoring-active.c
 )
 
 PKG_CHECK_MODULES(${CAPI_LIB} REQUIRED
index 62a3579ca32581aef73fd8c7981e47c47e27ba28..16853973a0348d0e29003b1b5a9652c375811a28 100755 (executable)
@@ -158,6 +158,8 @@ 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 int utc_inm_refresh_links_p(void);
+extern int utc_inm_refresh_links_n(void);
 
 extern void utc_inm_link_startup(void);
 extern void utc_inm_link_cleanup(void);
@@ -212,6 +214,31 @@ 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);
 
+extern void utc_inm_active_startup(void);
+extern void utc_inm_active_cleanup(void);
+extern int utc_inm_arp_request_set_packet_interval_p(void);
+extern int utc_inm_arp_request_set_packet_interval_n(void);
+extern int utc_inm_arp_request_get_packet_interval_p(void);
+extern int utc_inm_arp_request_get_packet_interval_n(void);
+extern int utc_inm_arp_request_start_stop_p(void);
+extern int utc_inm_arp_request_start_n(void);
+extern int utc_inm_arp_request_stop_n(void);
+extern int utc_inm_arp_request_start_stop_n(void);
+extern int utc_inm_default_gateway_start_stop_checking_p(void);
+extern int utc_inm_default_gateway_start_checking_n(void);
+extern int utc_inm_default_gateway_stop_checking_n(void);
+extern int utc_inm_default_dns_lookup_check_p(void);
+extern int utc_inm_default_dns_lookup_check_n(void);
+extern int utc_inm_reachable_urls_add_remove_url_to_check_p(void);
+extern int utc_inm_reachable_urls_add_url_to_check_n(void);
+extern int utc_inm_reachable_urls_remove_url_to_check_n(void);
+extern int utc_inm_reachable_default_urls_start_stop_checking_p(void);
+extern int utc_inm_reachable_urls_start_checking_n(void);
+extern int utc_inm_reachable_user_urls_start_stop_checking_p(void);
+extern int utc_inm_reachable_urls_stop_checking_n(void);
+extern int utc_inm_reachable_urls_is_check_running_p(void);
+extern int utc_inm_reachable_urls_is_check_running_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_unset_ethernet_cable_state_changed_cb_n", utc_inm_unset_ethernet_cable_state_changed_cb_n, utc_inm_startup, utc_inm_cleanup},
@@ -347,6 +374,8 @@ testcase tc_array[] = {
     {"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_refresh_links_p",  utc_inm_refresh_links_p, utc_inm_startup, utc_inm_cleanup},
+    {"utc_inm_refresh_links_n", utc_inm_refresh_links_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},
@@ -395,6 +424,28 @@ testcase tc_array[] = {
     {"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},
 
+    {"utc_inm_arp_request_set_packet_interval_p",  utc_inm_arp_request_set_packet_interval_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_arp_request_set_packet_interval_n", utc_inm_arp_request_set_packet_interval_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_arp_request_get_packet_interval_p",  utc_inm_arp_request_get_packet_interval_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_arp_request_get_packet_interval_n", utc_inm_arp_request_get_packet_interval_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_arp_request_start_stop_p",  utc_inm_arp_request_start_stop_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_arp_request_start_n", utc_inm_arp_request_start_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_arp_request_stop_n", utc_inm_arp_request_stop_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_arp_request_start_stop_n",  utc_inm_arp_request_start_stop_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_default_gateway_start_stop_checking_p", utc_inm_default_gateway_start_stop_checking_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_default_gateway_start_checking_n",  utc_inm_default_gateway_start_checking_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_default_gateway_stop_checking_n",  utc_inm_default_gateway_stop_checking_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_default_dns_lookup_check_p",  utc_inm_default_dns_lookup_check_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_default_dns_lookup_check_n",  utc_inm_default_dns_lookup_check_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_urls_add_remove_url_to_check_p",  utc_inm_reachable_urls_add_remove_url_to_check_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_urls_add_url_to_check_n",  utc_inm_reachable_urls_add_url_to_check_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_urls_remove_url_to_check_n",  utc_inm_reachable_urls_remove_url_to_check_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_default_urls_start_stop_checking_p",  utc_inm_reachable_default_urls_start_stop_checking_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_urls_start_checking_n",  utc_inm_reachable_urls_start_checking_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_user_urls_start_stop_checking_p", utc_inm_reachable_user_urls_start_stop_checking_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_urls_stop_checking_n",  utc_inm_reachable_urls_stop_checking_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_urls_is_check_running_p", utc_inm_reachable_urls_is_check_running_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_urls_is_check_running_n",  utc_inm_reachable_urls_is_check_running_n, utc_inm_active_startup, utc_inm_active_cleanup},
     {NULL, NULL}
 };
 
index 62a3579ca32581aef73fd8c7981e47c47e27ba28..16853973a0348d0e29003b1b5a9652c375811a28 100755 (executable)
@@ -158,6 +158,8 @@ 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 int utc_inm_refresh_links_p(void);
+extern int utc_inm_refresh_links_n(void);
 
 extern void utc_inm_link_startup(void);
 extern void utc_inm_link_cleanup(void);
@@ -212,6 +214,31 @@ 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);
 
+extern void utc_inm_active_startup(void);
+extern void utc_inm_active_cleanup(void);
+extern int utc_inm_arp_request_set_packet_interval_p(void);
+extern int utc_inm_arp_request_set_packet_interval_n(void);
+extern int utc_inm_arp_request_get_packet_interval_p(void);
+extern int utc_inm_arp_request_get_packet_interval_n(void);
+extern int utc_inm_arp_request_start_stop_p(void);
+extern int utc_inm_arp_request_start_n(void);
+extern int utc_inm_arp_request_stop_n(void);
+extern int utc_inm_arp_request_start_stop_n(void);
+extern int utc_inm_default_gateway_start_stop_checking_p(void);
+extern int utc_inm_default_gateway_start_checking_n(void);
+extern int utc_inm_default_gateway_stop_checking_n(void);
+extern int utc_inm_default_dns_lookup_check_p(void);
+extern int utc_inm_default_dns_lookup_check_n(void);
+extern int utc_inm_reachable_urls_add_remove_url_to_check_p(void);
+extern int utc_inm_reachable_urls_add_url_to_check_n(void);
+extern int utc_inm_reachable_urls_remove_url_to_check_n(void);
+extern int utc_inm_reachable_default_urls_start_stop_checking_p(void);
+extern int utc_inm_reachable_urls_start_checking_n(void);
+extern int utc_inm_reachable_user_urls_start_stop_checking_p(void);
+extern int utc_inm_reachable_urls_stop_checking_n(void);
+extern int utc_inm_reachable_urls_is_check_running_p(void);
+extern int utc_inm_reachable_urls_is_check_running_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_unset_ethernet_cable_state_changed_cb_n", utc_inm_unset_ethernet_cable_state_changed_cb_n, utc_inm_startup, utc_inm_cleanup},
@@ -347,6 +374,8 @@ testcase tc_array[] = {
     {"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_refresh_links_p",  utc_inm_refresh_links_p, utc_inm_startup, utc_inm_cleanup},
+    {"utc_inm_refresh_links_n", utc_inm_refresh_links_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},
@@ -395,6 +424,28 @@ testcase tc_array[] = {
     {"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},
 
+    {"utc_inm_arp_request_set_packet_interval_p",  utc_inm_arp_request_set_packet_interval_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_arp_request_set_packet_interval_n", utc_inm_arp_request_set_packet_interval_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_arp_request_get_packet_interval_p",  utc_inm_arp_request_get_packet_interval_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_arp_request_get_packet_interval_n", utc_inm_arp_request_get_packet_interval_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_arp_request_start_stop_p",  utc_inm_arp_request_start_stop_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_arp_request_start_n", utc_inm_arp_request_start_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_arp_request_stop_n", utc_inm_arp_request_stop_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_arp_request_start_stop_n",  utc_inm_arp_request_start_stop_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_default_gateway_start_stop_checking_p", utc_inm_default_gateway_start_stop_checking_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_default_gateway_start_checking_n",  utc_inm_default_gateway_start_checking_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_default_gateway_stop_checking_n",  utc_inm_default_gateway_stop_checking_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_default_dns_lookup_check_p",  utc_inm_default_dns_lookup_check_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_default_dns_lookup_check_n",  utc_inm_default_dns_lookup_check_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_urls_add_remove_url_to_check_p",  utc_inm_reachable_urls_add_remove_url_to_check_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_urls_add_url_to_check_n",  utc_inm_reachable_urls_add_url_to_check_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_urls_remove_url_to_check_n",  utc_inm_reachable_urls_remove_url_to_check_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_default_urls_start_stop_checking_p",  utc_inm_reachable_default_urls_start_stop_checking_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_urls_start_checking_n",  utc_inm_reachable_urls_start_checking_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_user_urls_start_stop_checking_p", utc_inm_reachable_user_urls_start_stop_checking_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_urls_stop_checking_n",  utc_inm_reachable_urls_stop_checking_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_urls_is_check_running_p", utc_inm_reachable_urls_is_check_running_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_urls_is_check_running_n",  utc_inm_reachable_urls_is_check_running_n, utc_inm_active_startup, utc_inm_active_cleanup},
     {NULL, NULL}
 };
 
index 62a3579ca32581aef73fd8c7981e47c47e27ba28..16853973a0348d0e29003b1b5a9652c375811a28 100755 (executable)
@@ -158,6 +158,8 @@ 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 int utc_inm_refresh_links_p(void);
+extern int utc_inm_refresh_links_n(void);
 
 extern void utc_inm_link_startup(void);
 extern void utc_inm_link_cleanup(void);
@@ -212,6 +214,31 @@ 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);
 
+extern void utc_inm_active_startup(void);
+extern void utc_inm_active_cleanup(void);
+extern int utc_inm_arp_request_set_packet_interval_p(void);
+extern int utc_inm_arp_request_set_packet_interval_n(void);
+extern int utc_inm_arp_request_get_packet_interval_p(void);
+extern int utc_inm_arp_request_get_packet_interval_n(void);
+extern int utc_inm_arp_request_start_stop_p(void);
+extern int utc_inm_arp_request_start_n(void);
+extern int utc_inm_arp_request_stop_n(void);
+extern int utc_inm_arp_request_start_stop_n(void);
+extern int utc_inm_default_gateway_start_stop_checking_p(void);
+extern int utc_inm_default_gateway_start_checking_n(void);
+extern int utc_inm_default_gateway_stop_checking_n(void);
+extern int utc_inm_default_dns_lookup_check_p(void);
+extern int utc_inm_default_dns_lookup_check_n(void);
+extern int utc_inm_reachable_urls_add_remove_url_to_check_p(void);
+extern int utc_inm_reachable_urls_add_url_to_check_n(void);
+extern int utc_inm_reachable_urls_remove_url_to_check_n(void);
+extern int utc_inm_reachable_default_urls_start_stop_checking_p(void);
+extern int utc_inm_reachable_urls_start_checking_n(void);
+extern int utc_inm_reachable_user_urls_start_stop_checking_p(void);
+extern int utc_inm_reachable_urls_stop_checking_n(void);
+extern int utc_inm_reachable_urls_is_check_running_p(void);
+extern int utc_inm_reachable_urls_is_check_running_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_unset_ethernet_cable_state_changed_cb_n", utc_inm_unset_ethernet_cable_state_changed_cb_n, utc_inm_startup, utc_inm_cleanup},
@@ -347,6 +374,8 @@ testcase tc_array[] = {
     {"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_refresh_links_p",  utc_inm_refresh_links_p, utc_inm_startup, utc_inm_cleanup},
+    {"utc_inm_refresh_links_n", utc_inm_refresh_links_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},
@@ -395,6 +424,28 @@ testcase tc_array[] = {
     {"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},
 
+    {"utc_inm_arp_request_set_packet_interval_p",  utc_inm_arp_request_set_packet_interval_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_arp_request_set_packet_interval_n", utc_inm_arp_request_set_packet_interval_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_arp_request_get_packet_interval_p",  utc_inm_arp_request_get_packet_interval_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_arp_request_get_packet_interval_n", utc_inm_arp_request_get_packet_interval_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_arp_request_start_stop_p",  utc_inm_arp_request_start_stop_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_arp_request_start_n", utc_inm_arp_request_start_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_arp_request_stop_n", utc_inm_arp_request_stop_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_arp_request_start_stop_n",  utc_inm_arp_request_start_stop_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_default_gateway_start_stop_checking_p", utc_inm_default_gateway_start_stop_checking_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_default_gateway_start_checking_n",  utc_inm_default_gateway_start_checking_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_default_gateway_stop_checking_n",  utc_inm_default_gateway_stop_checking_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_default_dns_lookup_check_p",  utc_inm_default_dns_lookup_check_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_default_dns_lookup_check_n",  utc_inm_default_dns_lookup_check_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_urls_add_remove_url_to_check_p",  utc_inm_reachable_urls_add_remove_url_to_check_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_urls_add_url_to_check_n",  utc_inm_reachable_urls_add_url_to_check_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_urls_remove_url_to_check_n",  utc_inm_reachable_urls_remove_url_to_check_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_default_urls_start_stop_checking_p",  utc_inm_reachable_default_urls_start_stop_checking_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_urls_start_checking_n",  utc_inm_reachable_urls_start_checking_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_user_urls_start_stop_checking_p", utc_inm_reachable_user_urls_start_stop_checking_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_urls_stop_checking_n",  utc_inm_reachable_urls_stop_checking_n, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_urls_is_check_running_p", utc_inm_reachable_urls_is_check_running_p, utc_inm_active_startup, utc_inm_active_cleanup},
+    {"utc_inm_reachable_urls_is_check_running_n",  utc_inm_reachable_urls_is_check_running_n, utc_inm_active_startup, utc_inm_active_cleanup},
     {NULL, NULL}
 };
 
diff --git a/src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring-active.c b/src/utc/intelligent-network-monitoring/utc-intelligent-network-monitoring-active.c
new file mode 100644 (file)
index 0000000..b252dec
--- /dev/null
@@ -0,0 +1,1044 @@
+/*
+ * Copyright (c) 2019 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_active_startup
+ * @since_tizen     5.5
+ * @description     Initializes inm active test. Called before each test
+ * @parameter       NA
+ * @return          NA
+ */
+void utc_inm_active_startup(void)
+{
+       g_bFeatureInm = inm_check_feature_supported(FEATURE_INM);
+
+       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_connection(g_hInm, &g_hConnection);
+       if (ret != INM_ERROR_NONE) {
+               FPRINTF("[%s:%d] Fail to get current profile or service\\n", __FILE__, __LINE__);
+               dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Fail to get current profile or service", __FILE__, __LINE__);
+               return;
+       }
+
+       if (g_bFeatureTelephony == false && g_bFeatureWifi == false
+               && g_bFeatureBttethering == false && g_bFeatureEthernet == false
+               && g_bFeatureInm == false) {
+               g_bFeatureAllNotSupported = true;
+               FPRINTF("[%s:%d] All feature is not supported\\n", __FILE__, __LINE__);
+               dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] all feature is not supported", __FILE__, __LINE__);
+               return;
+       }
+}
+
+/**
+ * @function        utc_inm_active_cleanup
+ * @since_tizen     5.5
+ * @description     Deinitializes inm active test. Called after each test.
+ * @parameter       NA
+ * @return          NA
+ */
+void utc_inm_active_cleanup(void)
+{
+       int ret;
+
+       ret = inm_connection_destroy(&g_hConnection);
+       if (ret != INM_ERROR_NONE)
+               FPRINTF("[%s:%d] Fail to destroy current profile or service\\n", __FILE__, __LINE__);
+               dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Fail to destroy current profile or service", __FILE__, __LINE__);
+
+       ret = inm_deinitialize(g_hInm);
+       PRINT_RETURN("inm_deinitialize", ret);
+}
+
+/**
+ * @testcase        utc_inm_arp_request_set_packet_interval_p
+ * @since_tizen     5.5
+ * @type            Positive
+ * @description     Sets the ARP request packet interval.
+ * @scenario        Sets the ARP request packet interval. Ensure no error.
+ */
+int utc_inm_arp_request_set_packet_interval_p(void)
+{
+       int ret = INM_ERROR_NONE;
+       int interval = ARP_REQUEST_PACKET_INTERVAL;
+
+       if (!g_bFeatureInm) {
+               ret = inm_arp_request_set_packet_interval(g_hInm, interval);
+               CHECK_RETURN("inm_arp_request_set_packet_interval", ret, INM_ERROR_NOT_SUPPORTED);
+               return 0;
+       }
+
+       ret = inm_arp_request_set_packet_interval(g_hInm, interval);
+       CHECK_RETURN("inm_arp_request_set_packet_interval", ret, INM_ERROR_NONE);
+
+       return 0;
+}
+
+/**
+ * @testcase        utc_inm_arp_request_set_packet_interval_n
+ * @since_tizen     5.5
+ * @type            Negative
+ * @description     Verify inm_arp_request_set_packet_interval by passing invalid parameters
+ * @scenario        Pass invalid parameters and inm_arp_request_set_packet_interval() should be failed.
+ *                  Ensure return value should be INM_ERROR_INVALID_PARAMETER.
+ */
+int utc_inm_arp_request_set_packet_interval_n(void)
+{
+       int ret = INM_ERROR_NONE;
+
+       if (!g_bFeatureInm) {
+               ret = inm_arp_request_set_packet_interval(g_hInm, 5);
+               CHECK_RETURN("inm_arp_request_set_packet_interval", ret, INM_ERROR_NOT_SUPPORTED);
+               return 0;
+       }
+
+       ret = inm_arp_request_set_packet_interval(g_hInm, 0);
+       CHECK_RETURN("inm_arp_request_set_packet_interval", ret, INM_ERROR_INVALID_PARAMETER);
+       ret = inm_arp_request_set_packet_interval(NULL, 5);
+       CHECK_RETURN("inm_arp_request_set_packet_interval", ret, INM_ERROR_INVALID_PARAMETER);
+
+       return 0;
+}
+
+static inline int __get_original_interval(int *original_interval)
+{
+       int ret;
+       ret = inm_arp_request_get_packet_interval(g_hInm, original_interval);
+
+       return  (ret != INM_ERROR_NONE) ? -1 : 0;
+}
+
+static inline  int __set_original_interval(int original_interval)
+{
+       int ret;
+       ret = inm_arp_request_set_packet_interval(g_hInm, original_interval);
+
+       return  (ret != INM_ERROR_NONE) ? -1 : 0;
+}
+
+/**
+ * @testcase        utc_inm_arp_request_get_packet_interval_p
+ * @since_tizen     5.5
+ * @type            Positive
+ * @description     Gets the ARP request packet interval.
+ * @scenario        Gets the ARP request packet interval. Ensure no error.
+ */
+int utc_inm_arp_request_get_packet_interval_p(void)
+{
+       int ret = INM_ERROR_NONE;
+       int interval = ARP_REQUEST_PACKET_INTERVAL;
+       int original_interval;
+
+       if (!g_bFeatureInm) {
+               ret = inm_arp_request_get_packet_interval(g_hInm, &interval);
+               CHECK_RETURN("inm_arp_request_get_packet_interval", ret, INM_ERROR_NOT_SUPPORTED);
+               return 0;
+       }
+
+       if (__get_original_interval(&original_interval) != 0) {
+               FPRINTF("[%s:%d] Fail to get original interval\\n", __FILE__, __LINE__);
+               dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Fail to get get original interval", __FILE__, __LINE__);
+               return -1;
+       }
+
+       ret = inm_arp_request_set_packet_interval(g_hInm, original_interval + ARP_REQUEST_PACKET_INTERVAL);
+       CHECK_RETURN("inm_arp_request_set_packet_interval", ret, INM_ERROR_NONE);
+
+       ret = inm_arp_request_get_packet_interval(g_hInm, &interval);
+       CHECK_RETURN("inm_arp_request_get_packet_interval", ret, INM_ERROR_NONE);
+
+       IS_EQUAL("inm_arp_request_get_packet_interval",
+                       interval,
+                       original_interval + ARP_REQUEST_PACKET_INTERVAL);
+
+       if (__set_original_interval(original_interval) != 0) {
+               FPRINTF("[%s:%d] Fail to get original interval\\n", __FILE__, __LINE__);
+               dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Fail to set get original interval", __FILE__, __LINE__);
+               return -1;
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase        utc_inm_arp_request_get_packet_interval_n
+ * @since_tizen     5.5
+ * @type            Negative
+ * @description     Verify inm_arp_request_get_packet_interval by passing invalid parameters
+ * @scenario        Pass invalid parameters and inm_arp_request_get_packet_interval() should be failed.
+ *                  Ensure return value should be INM_ERROR_INVALID_PARAMETER.
+ */
+int utc_inm_arp_request_get_packet_interval_n(void)
+{
+
+       int ret = INM_ERROR_NONE;
+       int interval = ARP_REQUEST_PACKET_INTERVAL;
+
+       if (!g_bFeatureInm) {
+               ret = inm_arp_request_get_packet_interval(g_hInm, &interval);
+               CHECK_RETURN("inm_arp_request_get_packet_interval", ret, INM_ERROR_NOT_SUPPORTED);
+               return 0;
+       }
+
+       ret = inm_arp_request_get_packet_interval(g_hInm, 0);
+       CHECK_RETURN("inm_arp_request_get_packet_interval", ret, INM_ERROR_INVALID_PARAMETER);
+       ret = inm_arp_request_get_packet_interval(NULL, &interval);
+       CHECK_RETURN("inm_arp_request_get_packet_interval", ret, INM_ERROR_INVALID_PARAMETER);
+
+       return 0;
+}
+
+static inline int __init_arp_request()
+{
+       int ret;
+
+       if (!g_hConnection) {
+               FPRINTF("[%s:%d] Current profile or service doesn't exist\\n", __FILE__, __LINE__);
+               dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Current profile or service doesn't exist", __FILE__, __LINE__);
+               return -1;
+       }
+
+       ret = inm_connection_get_gateway_address(g_hConnection,
+                       INM_ADDRESS_FAMILY_IPV4,
+                       &arp_requested_ip_str);
+       if (ret != INM_ERROR_NONE)  {
+               FPRINTF("[%s:%d] Current profile or service doesn't have gateway address\\n", __FILE__, __LINE__);
+               dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Current profile or service doesn't have gateway address", __FILE__, __LINE__);
+               return -1;
+       }
+
+       g_arp_requested_ip_found = FALSE;
+
+       return 0;
+}
+
+static inline void __deinit_arp_request()
+{
+       if (arp_requested_ip_str)
+               free(arp_requested_ip_str);
+
+       arp_requested_ip_str = NULL;
+       return;
+}
+
+static void __inm_arp_request_ip_found_callback(bool found, const char *ip, void *user_data)
+{
+       if (g_strcmp0(ip, arp_requested_ip_str) == 0) {
+               g_arp_requested_ip_found = found;
+               FPRINTF("[%s:%d] ARP requested %s found\\n", __FILE__, __LINE__, ip);
+               dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] ARP requested %s found", __FILE__, __LINE__, ip);
+               QUIT_GMAIN_LOOP();
+       }
+}
+
+static gboolean __arp_request_timeout_cb(gpointer data)
+{
+       g_nTimeoutId = 0;
+       QUIT_GMAIN_LOOP();
+
+       return FALSE;
+}
+
+/**
+ * @testcase        utc_inm_arp_request_start_stop_p
+ * @since_tizen     5.5
+ * @type            Positive
+ * @description     Starts the ARP request to find a device with target IP.
+ * @scenario        Finds the device with target IP. Ensure no error.
+ */
+int utc_inm_arp_request_start_stop_p(void)
+{
+       int ret = INM_ERROR_NONE;
+
+       if (!g_bFeatureInm) {
+               ret = inm_arp_request_start(g_hInm,
+                               DEFAULT_ARP_REQUEST_IP_STR,
+                               __inm_arp_request_ip_found_callback,
+                               NULL);
+               CHECK_RETURN("inm_arp_request_start", ret, INM_ERROR_NOT_SUPPORTED);
+
+               ret = inm_arp_request_stop(g_hInm,
+                               DEFAULT_ARP_REQUEST_IP_STR);
+               CHECK_RETURN("inm_arp_request_stop", ret, INM_ERROR_NOT_SUPPORTED);
+               return 0;
+       }
+
+       if (__init_arp_request() != 0)
+               return -1;
+
+       ret = inm_arp_request_start(g_hInm,
+                       arp_requested_ip_str,
+                       __inm_arp_request_ip_found_callback,
+                       NULL);
+       CHECK_RETURN("inm_arp_request_start", ret, INM_ERROR_NONE);
+
+       RUN_GMAIN_LOOP(__arp_request_timeout_cb, NULL);
+
+       ret = inm_arp_request_stop(g_hInm,
+                       arp_requested_ip_str);
+       CHECK_RETURN("inm_arp_request_stop", ret, INM_ERROR_NONE);
+
+       __deinit_arp_request();
+       if (!g_arp_requested_ip_found) {
+               FPRINTF("[%s:%d] ARP requested IP not found\\n", __FILE__, __LINE__);
+               dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] ARP requested IP not found", __FILE__, __LINE__);
+               return -1;
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase        utc_inm_arp_request_start_n
+ * @since_tizen     5.5
+ * @type            Negative
+ * @description     Verify inm_arp_request_start by passing invalid parameters
+ * @scenario        Pass invalid parameters and inm_arp_request_start() should be failed.
+ *                  Ensure return value should be INM_ERROR_INVALID_PARAMETER.
+ */
+int utc_inm_arp_request_start_n(void)
+{
+
+       int ret = INM_ERROR_NONE;
+
+       if (!g_bFeatureInm) {
+               ret = inm_arp_request_start(g_hInm,
+                               DEFAULT_ARP_REQUEST_IP_STR,
+                               __inm_arp_request_ip_found_callback,
+                               NULL);
+               CHECK_RETURN("inm_arp_request_start", ret, INM_ERROR_NOT_SUPPORTED);
+               return 0;
+       }
+
+       if (__init_arp_request() != 0)
+               return -1;
+
+       ret = inm_arp_request_start(NULL,
+                       arp_requested_ip_str,
+                       __inm_arp_request_ip_found_callback,
+                       NULL);
+       CHECK_RETURN("inm_arp_request_start", ret, INM_ERROR_INVALID_PARAMETER);
+       ret = inm_arp_request_start(g_hInm,
+                       NULL,
+                       __inm_arp_request_ip_found_callback,
+                       NULL);
+       CHECK_RETURN("inm_arp_request_start", ret, INM_ERROR_INVALID_PARAMETER);
+       ret = inm_arp_request_start(g_hInm,
+                       arp_requested_ip_str,
+                       NULL,
+                       NULL);
+       CHECK_RETURN("inm_arp_request_start", ret, INM_ERROR_INVALID_PARAMETER);
+
+       __deinit_arp_request();
+
+       return 0;
+}
+
+/**
+ * @testcase        utc_inm_arp_request_stop_n
+ * @since_tizen     5.5
+ * @type            Negative
+ * @description     Verify inm_arp_request_stop by passing invalid parameters
+ * @scenario        Pass invalid parameters and inm_arp_request_stop() should be failed.
+ *                  Ensure return value should be INM_ERROR_INVALID_PARAMETER.
+ */
+int utc_inm_arp_request_stop_n(void)
+{
+
+       int ret = INM_ERROR_NONE;
+
+       if (!g_bFeatureInm) {
+               ret = inm_arp_request_stop(g_hInm,
+                               DEFAULT_ARP_REQUEST_IP_STR);
+               CHECK_RETURN("inm_arp_request_stop", ret, INM_ERROR_NOT_SUPPORTED);
+               return 0;
+       }
+
+       if (__init_arp_request() != 0)
+               return -1;
+
+       ret = inm_arp_request_stop(NULL,
+                       arp_requested_ip_str);
+       CHECK_RETURN("inm_arp_request_stop", ret, INM_ERROR_INVALID_PARAMETER);
+       ret = inm_arp_request_stop(g_hInm,
+                       NULL);
+       CHECK_RETURN("inm_arp_request_stop", ret, INM_ERROR_INVALID_PARAMETER);
+
+       __deinit_arp_request();
+
+       return 0;
+}
+
+/**
+ * @testcase        utc_inm_arp_request_start_stop_n
+ * @since_tizen     5.5
+ * @type            Positive
+ * @description     Starts the ARP request to find a device with invalid IP.
+ * @scenario        Target IP is not found. Ensure no error.
+ */
+int utc_inm_arp_request_start_stop_n(void)
+{
+       int ret = INM_ERROR_NONE;
+
+       if (!g_bFeatureInm) {
+               ret = inm_arp_request_start(g_hInm,
+                               DEFAULT_ARP_REQUEST_IP_STR,
+                               __inm_arp_request_ip_found_callback,
+                               NULL);
+               CHECK_RETURN("inm_arp_request_start", ret, INM_ERROR_NOT_SUPPORTED);
+
+               ret = inm_arp_request_stop(g_hInm,
+                               DEFAULT_ARP_REQUEST_IP_STR);
+               CHECK_RETURN("inm_arp_request_stop", ret, INM_ERROR_NOT_SUPPORTED);
+               return 0;
+       }
+
+       g_arp_requested_ip_found = FALSE;
+       arp_requested_ip_str = g_strdup(INVALID_ARP_REQUEST_IP_STR);
+       ret = inm_arp_request_start(g_hInm,
+                       arp_requested_ip_str,
+                       __inm_arp_request_ip_found_callback,
+                       NULL);
+       CHECK_RETURN("inm_arp_request_start", ret, INM_ERROR_NONE);
+
+       RUN_GMAIN_LOOP(__arp_request_timeout_cb, NULL);
+
+       ret = inm_arp_request_stop(g_hInm,
+                       arp_requested_ip_str);
+       CHECK_RETURN("inm_arp_request_stop", ret, INM_ERROR_NONE);
+
+       g_free(arp_requested_ip_str);
+       if (g_arp_requested_ip_found) {
+               FPRINTF("[%s:%d] ARP requested Invalid IP found\\n", __FILE__, __LINE__);
+               dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] ARP requested Invalid IP found", __FILE__, __LINE__);
+               return -1;
+       }
+
+       return 0;
+}
+
+static void __inm_default_gateway_found_callback(bool found, const char *ip, void *user_data)
+{
+       g_gateway_found = found;
+       FPRINTF("[%s:%d] Gateway %s found\\n", __FILE__, __LINE__, ip);
+       dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Gateway %s found", __FILE__, __LINE__, ip);
+       QUIT_GMAIN_LOOP();
+}
+
+static gboolean __gateway_timeout_cb(gpointer data)
+{
+       g_nTimeoutId = 0;
+       QUIT_GMAIN_LOOP();
+
+       return FALSE;
+}
+
+/**
+ * @testcase        utc_inm_default_gateway_start_stop_checking_p
+ * @since_tizen     5.5
+ * @type            Positive
+ * @description     Starts the ARP request to find a gateway.
+ * @scenario        Finds the gateway. Ensure no error.
+ */
+int utc_inm_default_gateway_start_stop_checking_p(void)
+{
+       int ret = INM_ERROR_NONE;
+
+       if (!g_bFeatureInm) {
+               ret = inm_default_gateway_start_checking(g_hInm,
+                               0,
+                               __inm_default_gateway_found_callback,
+                               NULL);
+               CHECK_RETURN("inm_default_gateway_start_checking", ret, INM_ERROR_NOT_SUPPORTED);
+               return 0;
+       }
+
+       g_gateway_found = FALSE;
+       ret = inm_default_gateway_start_checking(g_hInm,
+                       0,
+                       __inm_default_gateway_found_callback,
+                       NULL);
+       CHECK_RETURN("inm_default_gateway_start_checking", ret, INM_ERROR_NONE);
+
+       RUN_GMAIN_LOOP(__gateway_timeout_cb, NULL);
+
+       ret = inm_default_gateway_stop_checking(g_hInm);
+       CHECK_RETURN("inm_default_gateway_stop_checking", ret, INM_ERROR_NONE);
+
+       if (!g_gateway_found) {
+               FPRINTF("[%s:%d] Gateway IP not found\\n", __FILE__, __LINE__);
+               dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Gateway IP not found", __FILE__, __LINE__);
+               return -1;
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase        utc_inm_default_gateway_start_checking_n
+ * @since_tizen     5.5
+ * @type            Negative
+ * @description     Verify inm_default_gateway_start_checking by passing invalid parameters
+ * @scenario        Pass invalid parameters and inm_default_gateway_start_checking() should be failed.
+ *                  Ensure return value should be INM_ERROR_INVALID_PARAMETER.
+ */
+int utc_inm_default_gateway_start_checking_n(void)
+{
+
+       int ret = INM_ERROR_NONE;
+
+       if (!g_bFeatureInm) {
+               ret = inm_default_gateway_start_checking(g_hInm,
+                               0,
+                               __inm_default_gateway_found_callback,
+                               NULL);
+               CHECK_RETURN("inm_default_gateway_start_checking", ret, INM_ERROR_NOT_SUPPORTED);
+               return 0;
+       }
+
+       ret = inm_default_gateway_start_checking(NULL,
+                       0,
+                       __inm_default_gateway_found_callback,
+                       NULL);
+       CHECK_RETURN("inm_default_gateway_start_checking", ret, INM_ERROR_INVALID_PARAMETER);
+       ret = inm_default_gateway_start_checking(g_hInm,
+                       0,
+                       NULL,
+                       NULL);
+       CHECK_RETURN("inm_default_gateway_start_checking", ret, INM_ERROR_INVALID_PARAMETER);
+
+       return 0;
+}
+
+/**
+ * @testcase        utc_inm_default_gateway_stop_checking_n
+ * @since_tizen     5.5
+ * @type            Negative
+ * @description     Verify inm_default_gateway_stop_checking by passing invalid parameters
+ * @scenario        Pass invalid parameters and inm_default_gateway_stop_checking() should be failed.
+ *                  Ensure return value should be INM_ERROR_INVALID_PARAMETER.
+ */
+int utc_inm_default_gateway_stop_checking_n(void)
+{
+       int ret = INM_ERROR_NONE;
+
+       if (!g_bFeatureInm) {
+               ret = inm_default_gateway_stop_checking(g_hInm);
+               CHECK_RETURN("inm_default_gateway_stop_checking", ret, INM_ERROR_NOT_SUPPORTED);
+               return 0;
+       }
+
+       ret = inm_default_gateway_stop_checking(NULL);
+       CHECK_RETURN("inm_default_gateway_stop_checking", ret, INM_ERROR_INVALID_PARAMETER);
+
+       return 0;
+}
+
+static void __inm_default_dns_lookup_result_callback(bool found, void *user_data)
+{
+       g_dns_lookup_finished = found;
+       FPRINTF("[%s:%d] DNS lookup accomplished\\n", __FILE__, __LINE__);
+       dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] DNS lookup accomplished", __FILE__, __LINE__);
+       QUIT_GMAIN_LOOP();
+}
+
+static gboolean __dns_lookup_timeout_cb(gpointer data)
+{
+       g_nTimeoutId = 0;
+       QUIT_GMAIN_LOOP();
+
+       return FALSE;
+}
+
+/**
+ * @testcase        utc_inm_default_dns_lookup_check_p
+ * @since_tizen     5.5
+ * @type            Positive
+ * @description     Checks the DNS lookup is available.
+ * @scenario        DNS lookup is available. Ensure no error.
+ */
+int utc_inm_default_dns_lookup_check_p(void)
+{
+       int ret = INM_ERROR_NONE;
+
+       if (!g_bFeatureInm) {
+               ret = inm_default_dns_lookup_check(g_hInm,
+                               __inm_default_dns_lookup_result_callback,
+                               NULL);
+               CHECK_RETURN("inm_default_dns_lookup_check", ret, INM_ERROR_NOT_SUPPORTED);
+               return 0;
+       }
+
+       g_dns_lookup_finished = FALSE;
+       ret = inm_default_dns_lookup_check(g_hInm,
+                       __inm_default_dns_lookup_result_callback,
+                       NULL);
+       CHECK_RETURN("inm_default_dns_lookup_check", ret, INM_ERROR_NONE);
+
+       RUN_GMAIN_LOOP(__dns_lookup_timeout_cb, NULL);
+
+       if (!g_dns_lookup_finished) {
+               FPRINTF("[%s:%d] DNS lookup is not finished\\n", __FILE__, __LINE__);
+               dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] DNS lookup is not finished", __FILE__, __LINE__);
+               return -1;
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase        utc_inm_default_dns_lookup_check_n
+ * @since_tizen     5.5
+ * @type            Negative
+ * @description     Verify inm_default_dns_lookup_check by passing invalid parameters
+ * @scenario        Pass invalid parameters and inm_default_dns_lookup_check() should be failed.
+ *                  Ensure return value should be INM_ERROR_INVALID_PARAMETER.
+ */
+int utc_inm_default_dns_lookup_check_n(void)
+{
+
+       int ret = INM_ERROR_NONE;
+
+       if (!g_bFeatureInm) {
+               ret = inm_default_dns_lookup_check(g_hInm,
+                               __inm_default_dns_lookup_result_callback,
+                               NULL);
+               CHECK_RETURN("inm_default_dns_lookup_check", ret, INM_ERROR_NOT_SUPPORTED);
+               return 0;
+       }
+
+       ret = inm_default_dns_lookup_check(g_hInm,
+                       NULL,
+                       NULL);
+       CHECK_RETURN("inm_default_dns_lookup_check", ret, INM_ERROR_INVALID_PARAMETER);
+       ret = inm_default_dns_lookup_check(NULL,
+                       __inm_default_dns_lookup_result_callback,
+                       NULL);
+       CHECK_RETURN("inm_default_dns_lookup_check", ret, INM_ERROR_INVALID_PARAMETER);
+
+       return 0;
+}
+
+/**
+ * @testcase        utc_inm_reachable_urls_add_remove_url_to_check_p
+ * @since_tizen     5.5
+ * @type            Positive
+ * @description     Adds and removes the url to test reachability.
+ * @scenario        Adds and removes the url to test reachability. Ensure no error.
+ */
+int utc_inm_reachable_urls_add_remove_url_to_check_p(void)
+{
+       int ret = INM_ERROR_NONE;
+
+       if (!g_bFeatureInm) {
+               ret = inm_reachable_urls_add_url_to_check(g_hInm, REACHABILITY_TEST_URL);
+               CHECK_RETURN("inm_reachable_urls_add_url_to_check", ret, INM_ERROR_NOT_SUPPORTED);
+
+               ret = inm_reachable_urls_remove_url_to_check(g_hInm, REACHABILITY_TEST_URL);
+               CHECK_RETURN("inm_reachable_urls_remove_url_to_check", ret, INM_ERROR_NOT_SUPPORTED);
+               return 0;
+       }
+
+       ret = inm_reachable_urls_add_url_to_check(g_hInm, REACHABILITY_TEST_URL);
+       CHECK_RETURN("inm_reachable_urls_add_url_to_check", ret, INM_ERROR_NONE);
+
+       ret = inm_reachable_urls_remove_url_to_check(g_hInm, REACHABILITY_TEST_URL);
+       CHECK_RETURN("inm_reachable_urls_remove_url_to_check", ret, INM_ERROR_NONE);
+
+       return 0;
+}
+
+/**
+ * @testcase        utc_inm_reachable_urls_add_url_to_check_n
+ * @since_tizen     5.5
+ * @type            Negative
+ * @description     Verify inm_reachable_urls_add_url_to_check by passing invalid parameters
+ * @scenario        Pass invalid parameters and inm_reachable_urls_add_url_to_check() should be failed.
+ *                  Ensure return value should be INM_ERROR_INVALID_PARAMETER.
+ */
+int utc_inm_reachable_urls_add_url_to_check_n(void)
+{
+       int ret = INM_ERROR_NONE;
+
+       if (!g_bFeatureInm) {
+               ret = inm_reachable_urls_add_url_to_check(g_hInm, REACHABILITY_TEST_URL);
+               CHECK_RETURN("inm_reachable_urls_add_url_to_check", ret, INM_ERROR_NOT_SUPPORTED);
+               return 0;
+       }
+
+       ret = inm_reachable_urls_add_url_to_check(g_hInm, NULL);
+       CHECK_RETURN("inm_reachable_urls_add_url_to_check", ret, INM_ERROR_INVALID_PARAMETER);
+       ret = inm_reachable_urls_add_url_to_check(NULL, REACHABILITY_TEST_URL);
+       CHECK_RETURN("inm_reachable_urls_add_url_to_check", ret, INM_ERROR_INVALID_PARAMETER);
+
+       return 0;
+}
+
+/**
+ * @testcase        utc_inm_reachable_urls_remove_url_to_check_n
+ * @since_tizen     5.5
+ * @type            Negative
+ * @description     Verify inm_reachable_urls_remove_url_to_check by passing invalid parameters
+ * @scenario        Pass invalid parameters and inm_reachable_urls_remove_url_to_check() should be failed.
+ *                  Ensure return value should be INM_ERROR_INVALID_PARAMETER.
+ */
+int utc_inm_reachable_urls_remove_url_to_check_n(void)
+{
+       int ret = INM_ERROR_NONE;
+
+       if (!g_bFeatureInm) {
+               ret = inm_reachable_urls_remove_url_to_check(g_hInm, REACHABILITY_TEST_URL);
+               CHECK_RETURN("inm_reachable_urls_remove_url_to_check", ret, INM_ERROR_NOT_SUPPORTED);
+               return 0;
+       }
+
+       ret = inm_reachable_urls_remove_url_to_check(g_hInm, NULL);
+       CHECK_RETURN("inm_reachable_urls_remove_url_to_check", ret, INM_ERROR_INVALID_PARAMETER);
+       ret = inm_reachable_urls_remove_url_to_check(NULL, REACHABILITY_TEST_URL);
+       CHECK_RETURN("inm_reachable_urls_remove_url_to_check", ret, INM_ERROR_INVALID_PARAMETER);
+
+       return 0;
+}
+static inline char * __print_url_result(inm_reachable_urls_check_result_e err)
+{
+       switch (err) {
+       case INM_REACHABLE_URL_CHECK_RESULT_SUCCESS:
+               return "SUCCESS\n";
+       case INM_REACHABLE_URL_CHECK_RESULT_ERROR_MALFORMED_URL:
+               return "MALFORMED_URL error\n";
+       case INM_REACHABLE_URL_CHECK_RESULT_ERROR_DNS_RESOLVE:
+               return "DNS_RESOLVE error\n";
+       case INM_REACHABLE_URL_CHECK_RESULT_ERROR_TCP_CONNECT:
+               return "TCP_CONNECT error\n";
+       case INM_REACHABLE_URL_CHECK_RESULT_ERROR_SSL:
+               return "SSL error\n";
+       case INM_REACHABLE_URL_CHECK_RESULT_ERROR_HTTP:
+               return "HTTP error\n";
+       case INM_REACHABLE_URL_CHECK_RESULT_ERROR_FILE_NOT_FOUND:
+               return "FILE_NOT_FOUND error\n";
+       case INM_REACHABLE_URL_CHECK_RESULT_ERROR_UNKNOWN:
+               return "UNKNOWN error\n";
+       }
+}
+
+static void __inm_reachable_urls_check_result_default_callback(
+               inm_reachable_urls_check_result_e result,
+               const char *url,
+               void *user_data)
+{
+       g_default_url_found = (result == INM_REACHABLE_URL_CHECK_RESULT_SUCCESS);
+       FPRINTF("[%s:%d] %s %s\\n", __FILE__, __LINE__, url, __print_url_result(result));
+       dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] %s %s\\n", __FILE__, __LINE__, url, __print_url_result(result));
+       QUIT_GMAIN_LOOP();
+}
+
+static gboolean __reachable_urls_check_timeout_cb(gpointer data)
+{
+       g_nTimeoutId = 0;
+       QUIT_GMAIN_LOOP();
+
+       return FALSE;
+}
+
+/**
+ * @testcase        utc_inm_reachable_default_urls_start_stop_checking_p
+ * @since_tizen     5.5
+ * @type            Positive
+ * @description     Checks the default URL is reachable.
+ * @scenario        URL is reachable. Ensure no error.
+ */
+int utc_inm_reachable_default_urls_start_stop_checking_p(void)
+{
+       int ret = INM_ERROR_NONE;
+
+       if (!g_bFeatureInm) {
+               ret = inm_reachable_urls_start_checking(g_hInm,
+                               INM_URL_LIST_TYPE_DEFAULT,
+                               __inm_reachable_urls_check_result_default_callback,
+                               NULL);
+               CHECK_RETURN("inm_reachable_urls_start_checking", ret, INM_ERROR_NOT_SUPPORTED);
+               return 0;
+       }
+
+       g_default_url_found = FALSE;
+       ret = inm_reachable_urls_start_checking(g_hInm,
+                       INM_URL_LIST_TYPE_DEFAULT,
+                       __inm_reachable_urls_check_result_default_callback,
+                       NULL);
+       CHECK_RETURN("inm_reachable_urls_start_checking", ret, INM_ERROR_NONE);
+
+       RUN_GMAIN_LOOP(__reachable_urls_check_timeout_cb, NULL);
+
+       ret = inm_reachable_urls_stop_checking(g_hInm,
+                       INM_URL_LIST_TYPE_DEFAULT);
+       CHECK_RETURN("inm_reachable_urls_stop_checking", ret, INM_ERROR_NONE);
+
+       if (!g_default_url_found) {
+               FPRINTF("[%s:%d] Default URL is not reachable\\n", __FILE__, __LINE__);
+               dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Default URL is not reachable", __FILE__, __LINE__);
+               return -1;
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase        utc_inm_reachable_urls_start_checking_n
+ * @since_tizen     5.5
+ * @type            Negative
+ * @description     Verify inm_reachable_urls_start_checking by passing invalid parameters
+ * @scenario        Pass invalid parameters and inm_reachable_urls_start_checking() should be failed.
+ *                  Ensure return value should be INM_ERROR_INVALID_PARAMETER.
+ */
+int utc_inm_reachable_urls_start_checking_n(void)
+{
+
+       int ret = INM_ERROR_NONE;
+
+       if (!g_bFeatureInm) {
+               ret = inm_reachable_urls_start_checking(g_hInm,
+                               INM_URL_LIST_TYPE_DEFAULT,
+                               __inm_reachable_urls_check_result_default_callback,
+                               NULL);
+               CHECK_RETURN("inm_reachable_urls_start_checking", ret, INM_ERROR_NOT_SUPPORTED);
+               return 0;
+       }
+
+       ret = inm_reachable_urls_start_checking(NULL,
+                       INM_URL_LIST_TYPE_DEFAULT,
+                       __inm_reachable_urls_check_result_default_callback,
+                       NULL);
+       CHECK_RETURN("inm_reachable_urls_start_checking", ret, INM_ERROR_INVALID_PARAMETER);
+       ret = inm_reachable_urls_start_checking(g_hInm,
+                       INM_URL_LIST_TYPE_DEFAULT,
+                       NULL,
+                       NULL);
+       CHECK_RETURN("inm_reachable_urls_start_checking", ret, INM_ERROR_INVALID_PARAMETER);
+
+       return 0;
+}
+
+static void __inm_reachable_urls_check_result_user_requested_callback(
+               inm_reachable_urls_check_result_e result,
+               const char *url,
+               void *user_data)
+{
+       g_user_requested_url_found = (result == INM_REACHABLE_URL_CHECK_RESULT_SUCCESS);
+       FPRINTF("[%s:%d] %s %s\\n", __FILE__, __LINE__, url, __print_url_result(result));
+       dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] %s %s\\n", __FILE__, __LINE__, url, __print_url_result(result));
+       QUIT_GMAIN_LOOP();
+}
+
+
+
+static inline int __init_user_requested_url()
+{
+       int ret;
+
+       ret = inm_reachable_urls_add_url_to_check(g_hInm, REACHABILITY_TEST_URL);
+       if (ret != INM_ERROR_NONE)  {
+               FPRINTF("[%s:%d] Failed to add user url\\n", __FILE__, __LINE__);
+               dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Failed to add user url", __FILE__, __LINE__);
+               return -1;
+       }
+
+       g_user_requested_url_found = FALSE;
+
+       return 0;
+}
+
+static inline void __deinit_user_requested_url()
+{
+       int ret;
+
+       ret = inm_reachable_urls_remove_url_to_check(g_hInm, REACHABILITY_TEST_URL);
+       if (ret != INM_ERROR_NONE)  {
+               FPRINTF("[%s:%d] Failed to remove user url\\n", __FILE__, __LINE__);
+               dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Failed to remove user url", __FILE__, __LINE__);
+       }
+
+       return;
+}
+
+/**
+ * @testcase        utc_inm_reachable_user_urls_start_stop_checking_p
+ * @since_tizen     5.5
+ * @type            Positive
+ * @description     Checks the user requested URL is reachable.
+ * @scenario        URL is reachable. Ensure no error.
+ */
+int utc_inm_reachable_user_urls_start_stop_checking_p(void)
+{
+       int ret = INM_ERROR_NONE;
+
+       if (!g_bFeatureInm) {
+               ret = inm_reachable_urls_start_checking(g_hInm,
+                               INM_URL_LIST_TYPE_USER,
+                               __inm_reachable_urls_check_result_user_requested_callback,
+                               NULL);
+               CHECK_RETURN("inm_reachable_urls_start_checking", ret, INM_ERROR_NOT_SUPPORTED);
+               return 0;
+       }
+
+       if (__init_user_requested_url() != 0)
+               return -1;
+
+       ret = inm_reachable_urls_start_checking(g_hInm,
+                       INM_URL_LIST_TYPE_USER,
+                       __inm_reachable_urls_check_result_user_requested_callback,
+                       NULL);
+       CHECK_RETURN("inm_reachable_urls_start_checking", ret, INM_ERROR_NONE);
+
+       RUN_GMAIN_LOOP(__reachable_urls_check_timeout_cb, NULL);
+
+       ret = inm_reachable_urls_stop_checking(g_hInm,
+                       INM_URL_LIST_TYPE_USER);
+       CHECK_RETURN("inm_reachable_urls_stop_checking", ret, INM_ERROR_NONE);
+
+       __deinit_user_requested_url();
+
+       if (!g_user_requested_url_found) {
+               FPRINTF("[%s:%d] User requested URL is not reachable\\n", __FILE__, __LINE__);
+               dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] requested URL is not reachable", __FILE__, __LINE__);
+               return -1;
+       }
+
+       return 0;
+}
+
+/**
+ * @testcase        utc_inm_reachable_urls_stop_checking_n
+ * @since_tizen     5.5
+ * @type            Negative
+ * @description     Verify inm_reachable_urls_stop_checking by passing invalid parameters
+ * @scenario        Pass invalid parameters and inm_reachable_urls_stop_checking() should be failed.
+ *                  Ensure return value should be INM_ERROR_INVALID_PARAMETER.
+ */
+int utc_inm_reachable_urls_stop_checking_n(void)
+{
+
+       int ret = INM_ERROR_NONE;
+
+       if (!g_bFeatureInm) {
+               ret = inm_reachable_urls_stop_checking(g_hInm,
+                               INM_URL_LIST_TYPE_DEFAULT);
+               CHECK_RETURN("inm_reachable_urls_stop_checking", ret, INM_ERROR_NOT_SUPPORTED);
+               return 0;
+       }
+
+       ret = inm_reachable_urls_stop_checking(NULL,
+                       INM_URL_LIST_TYPE_DEFAULT);
+       CHECK_RETURN("inm_reachable_urls_stop_checking", ret, INM_ERROR_INVALID_PARAMETER);
+
+       return 0;
+}
+
+/**
+ * @testcase        utc_inm_reachable_urls_is_check_running_p
+ * @since_tizen     5.5
+ * @type            Positive
+ * @description     Checking Url reachability is running.
+ * @scenario        Checking Url reachability is running. Ensure no error.
+ */
+int utc_inm_reachable_urls_is_check_running_p(void)
+{
+       int ret = INM_ERROR_NONE;
+       bool is_running = FALSE;
+
+       if (!g_bFeatureInm) {
+               ret = inm_reachable_urls_is_check_running(g_hInm,
+                               INM_URL_LIST_TYPE_DEFAULT,
+                               &is_running);
+               CHECK_RETURN("inm_reachable_urls_is_check_running", ret, INM_ERROR_NOT_SUPPORTED);
+               return 0;
+       }
+
+       ret = inm_reachable_urls_start_checking(g_hInm,
+                       INM_URL_LIST_TYPE_DEFAULT,
+                       __inm_reachable_urls_check_result_default_callback,
+                       NULL);
+       PRINT_RETURN("inm_reachable_urls_start_checking", ret);
+
+       ret = inm_reachable_urls_is_check_running(g_hInm,
+                       INM_URL_LIST_TYPE_DEFAULT,
+                       &is_running);
+       CHECK_RETURN("inm_reachable_urls_is_check_running", ret, INM_ERROR_NONE);
+
+       if (!is_running) {
+               FPRINTF("[%s:%d] Url reachability is not running\\n", __FILE__, __LINE__);
+               dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Url reachability is not running", __FILE__, __LINE__);
+               return -1;
+       }
+
+       ret = inm_reachable_urls_stop_checking(g_hInm,
+                       INM_URL_LIST_TYPE_DEFAULT);
+       PRINT_RETURN("inm_reachable_urls_stop_checking", ret);
+
+       ret = inm_reachable_urls_is_check_running(g_hInm,
+                       INM_URL_LIST_TYPE_DEFAULT,
+                       &is_running);
+       CHECK_RETURN("inm_reachable_urls_is_check_running", ret, INM_ERROR_NONE);
+       if (ret != INM_ERROR_NOW_IN_PROGRESS && is_running) {
+               FPRINTF("[%s:%d] Url reachability is running!\\n", __FILE__, __LINE__);
+               dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Url reachability is running!", __FILE__, __LINE__);
+               return -1;
+       }
+       return 0;
+}
+
+/**
+ * @testcase        utc_inm_reachable_urls_is_check_running_n
+ * @since_tizen     5.5
+ * @type            Negative
+ * @description     Verify inm_reachable_urls_is_check_running by passing invalid parameters
+ * @scenario        Pass invalid parameters and inm_reachable_urls_is_check_running() should be failed.
+ *                  Ensure return value should be INM_ERROR_INVALID_PARAMETER.
+ */
+int utc_inm_reachable_urls_is_check_running_n(void)
+{
+
+       int ret = INM_ERROR_NONE;
+       bool is_running = FALSE;
+
+       if (!g_bFeatureInm) {
+               ret = inm_reachable_urls_is_check_running(g_hInm,
+                               INM_URL_LIST_TYPE_DEFAULT,
+                               &is_running);
+               CHECK_RETURN("inm_reachable_urls_is_check_running", ret, INM_ERROR_NOT_SUPPORTED);
+               return 0;
+       }
+       ret = inm_reachable_urls_is_check_running(NULL,
+                       INM_URL_LIST_TYPE_DEFAULT,
+                       &is_running);
+       CHECK_RETURN("inm_reachable_urls_is_check_running", ret, INM_ERROR_INVALID_PARAMETER);
+       ret = inm_reachable_urls_is_check_running(g_hInm,
+                       INM_URL_LIST_TYPE_DEFAULT,
+                       NULL);
+       CHECK_RETURN("inm_reachable_urls_is_check_running", ret, INM_ERROR_INVALID_PARAMETER);
+
+       return 0;
+}
index d41dca86d2840421237d071cb9d9560006032a70..cad86d8192b334b74f5d99cf7a021941e3454662 100755 (executable)
@@ -222,7 +222,7 @@ void inm_wifi_state_changed_callback(inm_wifi_state_e result, void* user_data)
        PRINT_RETURN("inm_wifi_state_changed_callback", result);
 
        g_nCallbackRet = result;
-       QUIT_GMAIN_LOOP;
+       QUIT_GMAIN_LOOP();
 }
 
 void inm_connection_state_changed_callback(inm_connection_state_e state, void* user_data)
@@ -230,7 +230,7 @@ void inm_connection_state_changed_callback(inm_connection_state_e state, void* u
        char *profile_name;
        inm_connection_h profile = user_data;
 
-       QUIT_GMAIN_LOOP;
+       QUIT_GMAIN_LOOP();
 
        if (profile == NULL)
                return;
@@ -314,4 +314,3 @@ bool inm_foreach_route_callback(inm_link_route_h route, void *user_data)
        PRINT_RETURN("inm_foreach_route_callback", INM_ERROR_NONE);
        return false;
 }
-
index 90930ee8c19ec7d63efbf52ff58e9e9cecfa0752..9a2e2bc54d41e9bd1d902411b5864c64789c8649 100755 (executable)
@@ -25,7 +25,7 @@
 
 
 #define INM_DEBUG                   1
-#define GMAINTIMEOUT                20000
+#define GMAINTIMEOUT                7000
 #define FEATURE_INM                    "http://tizen.org/feature/network.inm"
 #define FEATURE_WIFI                "http://tizen.org/feature/network.wifi"
 #define FEATURE_ETHERNET            "http://tizen.org/feature/network.ethernet"
 #define FEATURE_BT_TETHERING        "http://tizen.org/feature/network.tethering.bluetooth"
 #define CALLBACK_RETURN             "callback return"
 
+#define ARP_REQUEST_PACKET_INTERVAL 5
+#define DEFAULT_ARP_REQUEST_IP_STR "192.168.0.1"
+#define INVALID_ARP_REQUEST_IP_STR "192.0.0.8"
+#define REACHABILITY_TEST_URL "www.linuxfoundation.org"
+
 //#define WIFI_EAP_USERNAME           "EAPUserName"
 //#define WIFI_EAP_PASSPHRASE         "EAPPassphrase"
 //#define WIFI_EAP_CA_CERT            "EAPCACertificate"
@@ -55,21 +60,28 @@ inm_link_h g_hLink;
 inm_link_address_h g_hAddress;
 inm_link_route_h g_hRoute;
 
+bool g_arp_requested_ip_found;
+char *arp_requested_ip_str;
+bool g_gateway_found;
+bool g_dns_lookup_finished;
+bool g_default_url_found;
+bool g_user_requested_url_found;
 
-
-#define RUN_GMAIN_LOOP do {\
+#define RUN_GMAIN_LOOP(timeout_fn, user_data) do {\
        g_pMainLoop = g_main_loop_new(NULL, false);\
-       g_nTimeoutId = g_timeout_add(GMAINTIMEOUT, inm_callback_timeout, g_pMainLoop);\
+       g_nTimeoutId = g_timeout_add(GMAINTIMEOUT, (timeout_fn), (user_data));\
        if (INM_DEBUG) {\
                FPRINTF("[%s:%d] Run mainloop [%p]\\n", __FILE__, __LINE__, g_pMainLoop);\
                dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Run mainloop [%p]", __FILE__, __LINE__, g_pMainLoop);\
        }\
        g_main_loop_run(g_pMainLoop);\
-       g_source_remove(g_nTimeoutId);\
+       if (g_nTimeoutId != 0)\
+               g_source_remove(g_nTimeoutId);\
+               g_nTimeoutId = 0;\
        g_pMainLoop = NULL;\
 } while (0)
 
-#define QUIT_GMAIN_LOOP do {\
+#define QUIT_GMAIN_LOOP() do {\
                if (g_pMainLoop) {\
                        if (INM_DEBUG) {\
                                FPRINTF("[%s:%d] Quit mainloop [%p]\\n", __FILE__, __LINE__, g_pMainLoop);\
@@ -102,6 +114,18 @@ inm_link_route_h g_hRoute;
                }\
        } while (0)
 
+#define IS_EQUAL(api, src, dst) do{\
+               if (INM_DEBUG) {\
+                       if (src != dst) {\
+                               FPRINTF("[%s:%d] %s failed, value is not equal\\n",\
+                                       __FILE__, __LINE__, api);\
+                               dlog_print(DLOG_ERROR, "NativeTCT", "[%s:%d] %s failed, value is not equal",\
+                                       __FILE__, __LINE__, api);\
+                               return 1;\
+                       }\
+               }\
+       } while (0)
+
 gboolean inm_callback_timeout(gpointer data);
 char* inm_get_error(int error);
 bool inm_get_value_from_configfile(char* key, char* value);
@@ -126,7 +150,5 @@ void inm_set_ethernet_state_changed_callback(inm_ethernet_state_e result, void*
 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_ */
 
index 56122ad99eb75ba2f020f2ca8bcbe8ae36a63f58..cc7873cec03bdcb91d8ebf8d2dbcf1b6af1fe991 100644 (file)
@@ -478,7 +478,6 @@ int utc_inm_link_foreach_address_n(void)
        return 0;
 }
 
-
 /**
  * @testcase        utc_inm_link_foreach_route_p
  * @since_tizen     5.5
index acd566214ecda6446d14b4f34199112c00f0b6d6..5aca85ab826d1e8fd844726a221834adc399fa06 100755 (executable)
@@ -4090,3 +4090,49 @@ int utc_inm_connection_get_link_n(void)
 
        return 0;
 }
+
+/**
+ * @testcase        utc_inm_refresh_links_p
+ * @since_tizen     5.5
+ * @type            Positive
+ * @description     Refreshes the link information.
+ * @scenario        Refreshes all the network interface information. Ensure no error.
+ */
+int utc_inm_refresh_links_p(void)
+{
+       int ret = INM_ERROR_NONE;
+
+       if (!g_bFeatureInm) {
+               ret = inm_refresh_links(g_hInm);
+               CHECK_RETURN("inm_refresh_links", ret, INM_ERROR_NOT_SUPPORTED);
+               return 0;
+       }
+
+       ret = inm_refresh_links(g_hInm);
+       CHECK_RETURN("inm_refresh_links", ret, INM_ERROR_NONE);
+
+       return 0;
+}
+
+/**
+ * @testcase        utc_inm_refresh_links_n
+ * @since_tizen     5.5
+ * @type            Negative
+ * @description     Verify inm_refresh_links by passing invalid parameters
+ * @scenario        Pass invalid parameters and inm_refresh_links() should be failed..
+ *                  Ensure return value should be INM_ERROR_INVALID_PARAMETER.
+ */
+int utc_inm_refresh_links_n(void)
+{
+    int ret = INM_ERROR_NONE;
+
+       ret = inm_refresh_links(NULL);
+
+       if (!g_bFeatureInm)
+               CHECK_RETURN("inm_refresh_links", ret, INM_ERROR_NOT_SUPPORTED);
+       else
+               CHECK_RETURN("inm_refresh_links", ret, INM_ERROR_INVALID_PARAMETER);
+
+       return 0;
+}
+