Add test code for match_filter
authorCheoleun Moon <chleun.moon@samsung.com>
Wed, 5 Feb 2020 07:44:46 +0000 (16:44 +0900)
committerCheoleun Moon <chleun.moon@samsung.com>
Wed, 5 Feb 2020 07:44:46 +0000 (16:44 +0900)
src/include/wifi-aware-gdbus.h
src/wifi-aware-private.c
src/wifi-aware-publish.c
test/wifi-aware-test.c

index 21e424b..e6f5a09 100644 (file)
@@ -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 {\
index 594b3fd..ad3b12d 100644 (file)
@@ -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);
        }
 
index 4dcc258..697c066 100644 (file)
@@ -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;
index 3f89af1..e5a696a 100644 (file)
@@ -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()