From 46a2380972d3ef23e51ca0f398471c30aacd1981 Mon Sep 17 00:00:00 2001 From: Cheoleun Moon Date: Wed, 5 Feb 2020 16:44:46 +0900 Subject: [PATCH] Add test code for match_filter --- src/include/wifi-aware-gdbus.h | 2 +- src/wifi-aware-private.c | 16 +++++---- src/wifi-aware-publish.c | 2 ++ test/wifi-aware-test.c | 82 +++++++++++++++++++++++++++++++++++++----- 4 files changed, 87 insertions(+), 15 deletions(-) diff --git a/src/include/wifi-aware-gdbus.h b/src/include/wifi-aware-gdbus.h index 21e424b..e6f5a09 100644 --- a/src/include/wifi-aware-gdbus.h +++ b/src/include/wifi-aware-gdbus.h @@ -32,7 +32,7 @@ extern "C" { #define WIFI_AWARE_DISCOVERY_INTERFACE WIFI_AWARE_INTERFACE ".discovery" #define WIFI_AWARE_DISCOVERY_PATH WIFI_AWARE_PATH "/discovery" -#define WIFI_AWARE_DBUS_REPLY_TIMEOUT_ASYNC 10 * 1000 +#define WIFI_AWARE_DBUS_REPLY_TIMEOUT_ASYNC (10 * 1000) #define DBUS_DEBUG_VARIANT(parameters) \ do {\ diff --git a/src/wifi-aware-private.c b/src/wifi-aware-private.c index 594b3fd..ad3b12d 100644 --- a/src/wifi-aware-private.c +++ b/src/wifi-aware-private.c @@ -153,6 +153,10 @@ bool _wifi_aware_handle_is_valid(wifi_aware_h wifi_aware) return true; } +static void __print_match_filter(unsigned char *filter, size_t filter_len) +{ +} + static wifi_aware_error_e __parse_enable_reply(GVariant *reply, wifi_aware_s *aware) { int error; @@ -174,7 +178,7 @@ static void __enable_request_reply(GObject *src, GAsyncResult *res, gpointer use reply = g_dbus_connection_call_finish(conn, res, &dbus_error); if (dbus_error != NULL) { - WIFI_AWARE_LOGE("Enable Request failure %s", dbus_error->message); + WIFI_AWARE_LOGE("Enable Request failure: %s", dbus_error->message); error = _wifi_aware_convert_error_string_to_enum(dbus_error->message); g_error_free(dbus_error); } @@ -200,13 +204,13 @@ static void __publish_request_reply(GObject *src, GAsyncResult *res, gpointer us reply = g_dbus_connection_call_finish(conn, res, &dbus_error); if (dbus_error != NULL) { - WIFI_AWARE_LOGE("Publish Request failure %s", dbus_error->message); + WIFI_AWARE_LOGE("Publish Request failure: %s", dbus_error->message); error = _wifi_aware_convert_error_string_to_enum(dbus_error->message); g_error_free(dbus_error); } else { - g_variant_get(reply, "(ui)", &publish_id); - WIFI_AWARE_LOGI("Publish ID: %u", publish_id); + g_variant_get(reply, "(ui)", &publish_id, &error); + WIFI_AWARE_LOGI("Publish ID: %u", publish_id, &error); } if (aware->published_cb) @@ -228,12 +232,12 @@ static void __subscribe_request_reply(GObject *src, GAsyncResult *res, gpointer reply = g_dbus_connection_call_finish(conn, res, &dbus_error); if (dbus_error != NULL) { - WIFI_AWARE_LOGE("Subscribe Request failure %s", dbus_error->message); + WIFI_AWARE_LOGE("Subscribe Request failure: %s", dbus_error->message); error = _wifi_aware_convert_error_string_to_enum(dbus_error->message); g_error_free(dbus_error); } else { - g_variant_get(reply, "(ui)", &subscribe_id); + g_variant_get(reply, "(ui)", &subscribe_id, &error); WIFI_AWARE_LOGI("Subscribe ID: %u", subscribe_id); } diff --git a/src/wifi-aware-publish.c b/src/wifi-aware-publish.c index 4dcc258..697c066 100644 --- a/src/wifi-aware-publish.c +++ b/src/wifi-aware-publish.c @@ -143,6 +143,8 @@ API int wifi_aware_publish_config_set_match_filter(wifi_aware_publish_config_h c CHECK_FEATURE_SUPPORTED(TIZEN_FEATURE_WIFI_AWARE); RET_VAL_IF(config == NULL, WIFI_AWARE_ERROR_INVALID_PARAMETER, "wifi_aware_publish_config_h is NULL"); + // TODO: Check if len is valid + wifi_aware_publish_request_s *req = (wifi_aware_publish_request_s *)config; memcpy(req->match_filter, match_filter, len); req->match_filter_len = len; diff --git a/test/wifi-aware-test.c b/test/wifi-aware-test.c index 3f89af1..e5a696a 100644 --- a/test/wifi-aware-test.c +++ b/test/wifi-aware-test.c @@ -339,6 +339,49 @@ static void __published_cb(wifi_aware_error_e error, unsigned int publish_id, vo printf("Subscribe Request fails. Error: %s\n", __print_error(error)); } +static void __print_match_filter(unsigned char filter[MAX_MATCH_FILTER_LEN + 1], int filter_len) +{ + int len = 0; + int i = 0; + while (i < filter_len) { + len = filter[i]; + printf("%d: ", len); + for (int j = 1; j <= len; ++j) { + printf("%d, ", filter[i + j]); + } + printf("\n"); + i += len + 1; + } +} + +static int __set_match_filter(unsigned char match_filter[MAX_MATCH_FILTER_LEN + 1]) +{ + int total_num; + int total_len = 0; + int len; + char filter[MAX_MATCH_FILTER_LEN + 1]; + printf("Total number of match filter items: "); + if (scanf("%d", &total_num) < 0) + return -1; + + for (int i = 0; i < total_num; ++i) { + printf("%d match filter len: ", i); + if (scanf("%d", &len) < 0) + return -1; + printf("%d match filter value: ", i); + if (scanf("%s", filter) < 0) + return -1; + if (len != strlen(filter)) { + printf("The length of filter value is not %d\n", len); + return -1; + } + match_filter[total_len++] = len; + memcpy(&match_filter[total_len], filter, len); + total_len += len; + } + return total_len; +} + static void __set_publish_config(wifi_aware_publish_config_h config) { int ret = 0; @@ -347,6 +390,7 @@ static void __set_publish_config(wifi_aware_publish_config_h config) unsigned char specific_info[MAX_SPECIFIC_INFO_LEN + 1] = {0, }; unsigned char match_filter[MAX_MATCH_FILTER_LEN + 1] = {0, }; size_t len = 0; + int set_mf = 0; printf("Choose publish type(0-Solicited, 1-Unsolicited): "); ret = scanf("%d", &publish_type); @@ -373,12 +417,19 @@ static void __set_publish_config(wifi_aware_publish_config_h config) if (ret != WIFI_AWARE_ERROR_NONE) return; - len = strlen(MATCH_FILTER); - memcpy(match_filter, MATCH_FILTER, len); - ret = wifi_aware_publish_config_set_match_filter(config, - match_filter, len); - if (ret != WIFI_AWARE_ERROR_NONE) - return; + printf("Do you set Match Filter(0-No, 1-Yes): "); + ret = scanf("%d", &set_mf); + if (set_mf == 1) { + len = __set_match_filter(match_filter); + if (len < 0) { + printf("Not set match filter\n"); + return; + } + __print_match_filter(match_filter, len); + ret = wifi_aware_publish_config_set_match_filter(config, match_filter, len); + if (ret != WIFI_AWARE_ERROR_NONE) + return; + } } void test_publish() @@ -397,8 +448,8 @@ void test_publish() ret = wifi_aware_publish(g_wifi_aware_handle, config, __published_cb, NULL); __print_result(ret, "wifi_aware_publish"); - ret = wifi_aware_publish_config_destroy(config); - __print_result(ret, "wifi_aware_publish_config_destroy"); +// ret = wifi_aware_publish_config_destroy(config); +// __print_result(ret, "wifi_aware_publish_config_destroy"); } void test_cancel_publish() @@ -443,7 +494,9 @@ static void __set_subscribe_config(wifi_aware_subscribe_config_h config) int subscribe_type = 0; unsigned char service_name[MAX_SERVICE_NAME_LEN + 1] = {0, }; unsigned char specific_info[MAX_SPECIFIC_INFO_LEN + 1] = {0, }; + unsigned char match_filter[MAX_MATCH_FILTER_LEN + 1] = {0, }; size_t len = 0; + int set_mf = 0; printf("Choose subscribe type(0-Active, 1-Passive): "); ret = scanf("%d", &subscribe_type); @@ -469,6 +522,19 @@ static void __set_subscribe_config(wifi_aware_subscribe_config_h config) specific_info, len); if (ret != WIFI_AWARE_ERROR_NONE) return; + + printf("Do you set Match Filter(0-No, 1-Yes): "); + ret = scanf("%d", &set_mf); + if (set_mf == 1) { + len = __set_match_filter(match_filter); + if (len < 0) { + printf("Not set match filter\n"); + return; + } + ret = wifi_aware_subscribe_config_set_match_filter(config, match_filter, len); + if (ret != WIFI_AWARE_ERROR_NONE) + return; + } } void test_subscribe() -- 2.7.4