X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=test%2Fconnection_test.c;h=4a63bac9377269e2d2ea5c926da8c4c18823c6ab;hb=afff118d65ed2025921408235af65e78ca97cb32;hp=b931a52f2c33124b2765a0b61b0d85464e5f3bb1;hpb=143f9e94e013c8759e70c67cc167f5129fe8ad51;p=platform%2Fcore%2Fapi%2Fconnection.git diff --git a/test/connection_test.c b/test/connection_test.c index b931a52..4a63bac 100755 --- a/test/connection_test.c +++ b/test/connection_test.c @@ -231,6 +231,10 @@ static const char *test_print_error(connection_error_e error) return "CONNECTION_ERROR_PERMISSION_DENIED"; case CONNECTION_ERROR_NOT_SUPPORTED: return "CONNECTION_ERROR_NOT_SUPPORTED"; + case CONNECTION_ERROR_NOT_INITIALIZED: + return "CONNECTION_ERROR_NOT_INITIALIZED"; + case CONNECTION_ERROR_ALREADY_INITIALIZED: + return "CONNECTION_ERROR_ALREADY_INITIALIZED"; default: return "CONNECTION_ERROR_UNKNOWN"; } @@ -879,8 +883,18 @@ static void test_print_network_info(connection_profile_h profile, connection_add if (connection_profile_get_ip_config_type(profile, address_family, &ip_type) != CONNECTION_ERROR_NONE) printf("Fail to get ipconfig type!\n"); - else - printf("Ipconfig type : %d\n", ip_type); + else { + if (ip_type == CONNECTION_IP_CONFIG_TYPE_STATIC) + printf("ip type : %s\n", "CONNECTION_IP_CONFIG_TYPE_STATIC"); + else if (ip_type == CONNECTION_IP_CONFIG_TYPE_DYNAMIC) + printf("ip type : %s\n", "CONNECTION_IP_CONFIG_TYPE_DYNAMIC"); + else if (ip_type == CONNECTION_IP_CONFIG_TYPE_AUTO) + printf("ip type : %s\n", "CONNECTION_IP_CONFIG_TYPE_AUTO"); + else if (ip_type == CONNECTION_IP_CONFIG_TYPE_FIXED) + printf("ip type : %s\n", "CONNECTION_IP_CONFIG_TYPE_FIXED"); + else + printf("ip type : %s\n", "CONNECTION_IP_CONFIG_TYPE_NONE"); + } if (connection_profile_get_ip_address(profile, address_family, &ip) != CONNECTION_ERROR_NONE) printf("Fail to get IP address!\n"); @@ -923,8 +937,14 @@ static void test_print_network_info(connection_profile_h profile, connection_add if (connection_profile_get_dns_config_type(profile, address_family, &dns_type) != CONNECTION_ERROR_NONE) printf("Fail to get DNS configuration type!\n"); - else - printf("DNS configuration type : %d\n", dns_type); + else { + if (dns_type == CONNECTION_DNS_CONFIG_TYPE_STATIC) + printf("DNS config type : %s\n", "CONNECTION_DNS_CONFIG_TYPE_STATIC"); + else if (dns_type == CONNECTION_DNS_CONFIG_TYPE_DYNAMIC) + printf("DNS config type : %s\n", "CONNECTION_DNS_CONFIG_TYPE_DYNAMIC"); + else + printf("DNS config type : %s\n", "CONNECTION_DNS_CONFIG_TYPE_NONE"); + } if (connection_profile_get_dns_address(profile, 1, address_family, &dns1) != CONNECTION_ERROR_NONE) printf("Fail to get DNS1!\n"); @@ -942,8 +962,14 @@ static void test_print_network_info(connection_profile_h profile, connection_add if (connection_profile_get_proxy_type(profile, &proxy_type) != CONNECTION_ERROR_NONE) printf("Fail to get proxy type!\n"); - else - printf("Proxy type : %d\n", proxy_type); + else { + if (proxy_type == CONNECTION_PROXY_TYPE_DIRECT) + printf("proxy type : %s\n", "CONNECTION_PROXY_TYPE_DIRECT"); + else if (proxy_type == CONNECTION_PROXY_TYPE_AUTO) + printf("proxy type : %s\n", "CONNECTION_PROXY_TYPE_AUTO"); + else + printf("proxy type : %s\n", "CONNECTION_PROXY_TYPE_MANUAL"); + } if (connection_profile_get_proxy_address(profile, address_family, &proxy) != CONNECTION_ERROR_NONE) printf("Fail to get proxy!\n"); @@ -1007,6 +1033,65 @@ int test_deregister_client(void) return 1; } +int test_register_client_cs(void) +{ + int tid = 0; + test_get_user_int("Input a TID in C# API :", &tid); + + int err = connection_create_cs(tid, &connection); + + if (CONNECTION_ERROR_NONE == err) { + connection_set_type_changed_cb(connection, test_type_changed_callback, NULL); + connection_set_ip_address_changed_cb(connection, test_ip_changed_callback, NULL); + connection_set_proxy_address_changed_cb(connection, test_proxy_changed_callback, NULL); + connection_set_ethernet_cable_state_chaged_cb(connection, + test_get_ethernet_cable_state_callback, NULL); + } else { + printf("Client registration failed [%s]\n", test_print_error(err)); + return -1; + } + + printf("Client registration success\n"); + return 1; +} + +int test_deregister_client_cs(void) +{ + int rv = 0; + GSList *list; + connection_profile_h profile; + int tid = 0; + + test_get_user_int("Input a TID in C# API :", &tid); + + if (connection != NULL) + rv = connection_destroy_cs(tid, connection); + else { + printf("Cannot deregister : Handle is NULL\n"); + rv = CONNECTION_ERROR_INVALID_OPERATION; + } + + if (rv != CONNECTION_ERROR_NONE) { + printf("Client deregistration fail [%s]\n", test_print_error(rv)); + return -1; + } + + if (state_cb_list) { + for (list = state_cb_list; list; list = list->next) { + profile = list->data; + connection_profile_destroy(profile); + } + + g_slist_free(state_cb_list); + state_cb_list = NULL; + } + + connection = NULL; + printf("Client deregistration success\n"); + + return 1; +} + int test_get_network_state(void) { int rv = 0; @@ -2161,6 +2246,141 @@ int test_get_tcpdump_state(void) return 1; } +int test_mptcp_enable(void) +{ + int rv = 0; + bool supported = false; + rv = connection_mptcp_is_supported(connection, &supported); + if (rv != CONNECTION_ERROR_NONE) { + printf("Failure[%s]\n", test_print_error(rv)); + return -1; + } + printf("MPTCP Support: %d\n", supported); + + rv = connection_mptcp_enable(connection, CONNECTION_MPTCP_ENABLE_ALL); + if (rv != CONNECTION_ERROR_NONE) { + printf("Failure[%s]\n", test_print_error(rv)); + return -1; + } + return 1; +} + +int test_mptcp_disable(void) +{ + int rv = 0; + rv = connection_mptcp_disable(connection); + + if (rv != CONNECTION_ERROR_NONE) { + printf("Failure[%s]\n", test_print_error(rv)); + return -1; + } + return 1; +} + +int test_mptcp_set_path_manager(void) +{ + int rv = 0; + int input = 0; + rv = test_get_user_int("Input Path Manager (1: default, 2: fullmesh)", &input); + + switch (input) { + case 1: + rv = connection_mptcp_set_path_manager(connection, CONNECTION_MPTCP_PM_DEFAULT); + break; + case 2: + rv = connection_mptcp_set_path_manager(connection, CONNECTION_MPTCP_PM_FULLMESH); + break; + default: + printf("Invalid input!!\n"); + return -1; + } + + if (rv != CONNECTION_ERROR_NONE) { + printf("Failure[%s]\n", test_print_error(rv)); + return -1; + } + + return 1; +} + +int test_mptcp_get_path_manager(void) +{ + int rv = 0; + connection_mptcp_path_manager_e pm; + + rv = connection_mptcp_get_path_manager(connection, &pm); + if (rv != CONNECTION_ERROR_NONE) { + printf("Failure[%s]\n", test_print_error(rv)); + return -1; + } + + switch (pm) { + case CONNECTION_MPTCP_PM_DEFAULT: + printf("Path Manager: Default\n"); + break; + case CONNECTION_MPTCP_PM_FULLMESH: + printf("Path Manager: FullMesh\n"); + break; + default: + printf("Error: Invalid Path Manager\n"); + return -1; + } + + return 1; +} + +int test_mptcp_set_scheduler(void) +{ + int rv = 0; + int input = 0; + rv = test_get_user_int("Input Scheduler (1: default, 2: roundrobin)", &input); + + switch (input) { + case 1: + rv = connection_mptcp_set_scheduler(connection, CONNECTION_MPTCP_SCHEDULER_DEFAULT); + break; + case 2: + rv = connection_mptcp_set_scheduler(connection, CONNECTION_MPTCP_SCHEDULER_ROUNDROBIN); + break; + default: + printf("Invalid input!!\n"); + return -1; + } + + if (rv != CONNECTION_ERROR_NONE) { + printf("Failure[%s]\n", test_print_error(rv)); + return -1; + } + + return 1; +} + +int test_mptcp_get_scheduler(void) +{ + int rv = 0; + connection_mptcp_scheduler_e scheduler; + + rv = connection_mptcp_get_scheduler(connection, &scheduler); + if (rv != CONNECTION_ERROR_NONE) { + printf("Failure[%s]\n", test_print_error(rv)); + return -1; + } + + switch (scheduler) { + case CONNECTION_MPTCP_SCHEDULER_DEFAULT: + printf("Scheduler: Default\n"); + break; + case CONNECTION_MPTCP_SCHEDULER_ROUNDROBIN: + printf("Scheduler: RountRobin\n"); + break; + default: + printf("Error: Invalid Scheduler\n"); + return -1; + } + + return 1; +} + int main(int argc, char **argv) { GMainLoop *mainloop; @@ -2242,6 +2462,14 @@ gboolean test_thread(GIOChannel *source, GIOCondition condition, gpointer data) printf("H - Start TCP Dump\n"); printf("I - Stop TCP Dump\n"); printf("J - Get TCP Dump State\n"); + printf("K - Enable MPTCP (internal)\n"); + printf("L - Disable MPTCP (internal)\n"); + printf("M - Set MPTCP Path Manager (internal)\n"); + printf("N - Get MPTCP Path Manager (internal)\n"); + printf("O - Set MPTCP Scheduler (internal)\n"); + printf("P - Get MPTCP Scheduler (internal)\n"); + printf(LOG_GREEN "Q - Create Handle and set callbacks in C# API\n" LOG_END); + printf("R - Destroy Handle(unset callbacks automatically in C# API)\n"); printf(LOG_RED "0 - Exit \n" LOG_END); printf("ENTER - Show options menu.......\n"); } @@ -2375,6 +2603,30 @@ gboolean test_thread(GIOChannel *source, GIOCondition condition, gpointer data) case 'J': rv = test_get_tcpdump_state(); break; + case 'K': + rv = test_mptcp_enable(); + break; + case 'L': + rv = test_mptcp_disable(); + break; + case 'M': + rv = test_mptcp_set_path_manager(); + break; + case 'N': + rv = test_mptcp_get_path_manager(); + break; + case 'O': + rv = test_mptcp_set_scheduler(); + break; + case 'P': + rv = test_mptcp_get_scheduler(); + break; + case 'Q': + rv = test_register_client_cs(); + break; + case 'R': + rv = test_deregister_client_cs(); + break; }