Add initial sources for gtest in unittest 92/167792/7 accepted/tizen/unified/20180126.042847 submit/tizen/20180125.231503
authorJiung <jiung.yu@samsung.com>
Mon, 22 Jan 2018 06:15:32 +0000 (15:15 +0900)
committerJiung Yu <jiung.yu@samsung.com>
Wed, 24 Jan 2018 08:19:21 +0000 (08:19 +0000)
Change-Id: I4df99765f89ec116f72709629675a75f61578bad
Signed-off-by: Yu jiung <jiung.yu@samsung.com>
26 files changed:
CMakeLists.txt
include/wifi-direct-group.h
oem/wifi-direct-oem.c
packaging/wifi-direct-manager.spec
prd/src/wifi-direct-prd.c
src/wifi-direct-asp.c
src/wifi-direct-dbus.c
src/wifi-direct-error.c
src/wifi-direct-event.c
src/wifi-direct-group.c
src/wifi-direct-iface.c
src/wifi-direct-main.c
src/wifi-direct-manager.c
src/wifi-direct-method.c
src/wifi-direct-peer.c
src/wifi-direct-service.c
src/wifi-direct-session.c
src/wifi-direct-state.c
src/wifi-direct-util.c
unittest/CMakeLists.txt [new file with mode: 0644]
unittest/event_injector.cpp [new file with mode: 0644]
unittest/event_injector.h [new file with mode: 0644]
unittest/method_injector.cpp [new file with mode: 0644]
unittest/method_injector.h [new file with mode: 0644]
unittest/unittest.cpp [new file with mode: 0644]
unittest/unittest.h [new file with mode: 0644]

index 39d88fe..084939f 100644 (file)
@@ -52,3 +52,7 @@ IF(TIZEN_ENABLE_PRD)
 ENDIF(TIZEN_ENABLE_PRD)
 
 ADD_SUBDIRECTORY(files)
+
+IF(BUILD_GTESTS)
+       ADD_SUBDIRECTORY(unittest)
+ENDIF(BUILD_GTESTS)
index 4085d27..7296d2b 100644 (file)
@@ -54,8 +54,6 @@ typedef struct {
        char passphrase[PASSPHRASE_LEN_MAX + 1];
 } wfd_group_s;
 
-
-wfd_group_s *wfd_create_group(void *data, wfd_oem_event_s *group_info);
 wfd_group_s *wfd_create_pending_group(void *data, unsigned char * bssid);
 int wfd_group_complete(void *data, wfd_oem_event_s *group_info);
 int wfd_destroy_group(void * data);
index 504dd48..c5b820b 100644 (file)
@@ -43,7 +43,11 @@ wfd_oem_event_cbs_s g_event_cbs;
 int wfd_oem_configure(wfd_oem_ops_s *ops, wfd_oem_config_s *conf)
 {
        if (!ops || !ops->configure)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->configure(conf);
 }
@@ -71,15 +75,22 @@ int wfd_oem_deinit(wfd_oem_ops_s *ops)
 int wfd_oem_activate(wfd_oem_ops_s *ops, int concurrent)
 {
        if (!ops || !ops->activate)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
-
+#endif
        return ops->activate(concurrent);
 }
 
 int wfd_oem_deactivate(wfd_oem_ops_s *ops, int concurrent)
 {
        if (!ops || !ops->deactivate)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->deactivate(concurrent);
 }
@@ -87,7 +98,11 @@ int wfd_oem_deactivate(wfd_oem_ops_s *ops, int concurrent)
 int wfd_oem_start_scan(wfd_oem_ops_s *ops, wfd_oem_scan_param_s *param)
 {
        if (!ops || !ops->start_scan)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->start_scan(param);
 }
@@ -95,7 +110,11 @@ int wfd_oem_start_scan(wfd_oem_ops_s *ops, wfd_oem_scan_param_s *param)
 int wfd_oem_stop_scan(wfd_oem_ops_s *ops)
 {
        if (!ops || !ops->stop_scan)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->stop_scan();
 }
@@ -103,7 +122,11 @@ int wfd_oem_stop_scan(wfd_oem_ops_s *ops)
 int wfd_oem_get_visibility(wfd_oem_ops_s *ops, int *visibility)
 {
        if (!ops || !ops->get_visibility)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->get_visibility(visibility);
 }
@@ -111,7 +134,11 @@ int wfd_oem_get_visibility(wfd_oem_ops_s *ops, int *visibility)
 int wfd_oem_set_visibility(wfd_oem_ops_s *ops, int visibility)
 {
        if (!ops || !ops->set_visibility)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->set_visibility(visibility);
 }
@@ -119,7 +146,11 @@ int wfd_oem_set_visibility(wfd_oem_ops_s *ops, int visibility)
 int wfd_oem_get_scan_result(wfd_oem_ops_s *ops, GList **peers, int *peer_count)
 {
        if (!ops || !ops->get_scan_result)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->get_scan_result(peers, peer_count);
 }
@@ -127,7 +158,11 @@ int wfd_oem_get_scan_result(wfd_oem_ops_s *ops, GList **peers, int *peer_count)
 int wfd_oem_get_peer_info(wfd_oem_ops_s *ops, unsigned char *peer_addr, wfd_oem_device_s **peer)
 {
        if (!ops || !ops->get_peer_info)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->get_peer_info(peer_addr, peer);
 }
@@ -135,7 +170,11 @@ int wfd_oem_get_peer_info(wfd_oem_ops_s *ops, unsigned char *peer_addr, wfd_oem_
 int wfd_oem_prov_disc_req(wfd_oem_ops_s *ops, unsigned char *peer_addr, wfd_oem_wps_mode_e wps_mode, int join)
 {
        if (!ops || !ops->prov_disc_req)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->prov_disc_req(peer_addr, wps_mode, join);
 }
@@ -143,7 +182,11 @@ int wfd_oem_prov_disc_req(wfd_oem_ops_s *ops, unsigned char *peer_addr, wfd_oem_
 int wfd_oem_connect(wfd_oem_ops_s *ops, unsigned char *peer_addr, wfd_oem_conn_param_s *param)
 {
        if (!ops || !ops->connect)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->connect(peer_addr, param);
 }
@@ -151,7 +194,11 @@ int wfd_oem_connect(wfd_oem_ops_s *ops, unsigned char *peer_addr, wfd_oem_conn_p
 int wfd_oem_reject_connection(wfd_oem_ops_s *ops, unsigned char *peer_addr)
 {
        if (!ops || !ops->reject_connection)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->reject_connection(peer_addr);
 }
@@ -159,7 +206,11 @@ int wfd_oem_reject_connection(wfd_oem_ops_s *ops, unsigned char *peer_addr)
 int wfd_oem_cancel_connection(wfd_oem_ops_s *ops, unsigned char *peer_addr)
 {
        if (!ops || !ops->cancel_connection)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->cancel_connection(peer_addr);
 }
@@ -167,7 +218,11 @@ int wfd_oem_cancel_connection(wfd_oem_ops_s *ops, unsigned char *peer_addr)
 int wfd_oem_disconnect(wfd_oem_ops_s *ops, unsigned char *peer_addr, int is_iface_addr)
 {
        if (!ops || !ops->disconnect)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->disconnect(peer_addr, is_iface_addr);
 }
@@ -175,7 +230,11 @@ int wfd_oem_disconnect(wfd_oem_ops_s *ops, unsigned char *peer_addr, int is_ifac
 int wfd_oem_get_connected_peers(wfd_oem_ops_s *ops, GList **peers, int *peer_count)
 {
        if (!ops || !ops->get_connected_peers)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->get_connected_peers(peers, peer_count);
 }
@@ -183,7 +242,11 @@ int wfd_oem_get_connected_peers(wfd_oem_ops_s *ops, GList **peers, int *peer_cou
 int wfd_oem_get_pin(wfd_oem_ops_s *ops, char *pin)
 {
        if (!ops || !ops->get_pin)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->get_pin(pin);
 }
@@ -191,7 +254,11 @@ int wfd_oem_get_pin(wfd_oem_ops_s *ops, char *pin)
 int wfd_oem_set_pin(wfd_oem_ops_s *ops, char *pin)
 {
        if (!ops || !ops->set_pin)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->set_pin(pin);
 }
@@ -199,7 +266,11 @@ int wfd_oem_set_pin(wfd_oem_ops_s *ops, char *pin)
 int wfd_oem_generate_pin(wfd_oem_ops_s *ops, char **pin)
 {
        if (!ops || !ops->generate_pin)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->generate_pin(pin);
 }
@@ -207,7 +278,11 @@ int wfd_oem_generate_pin(wfd_oem_ops_s *ops, char **pin)
 int wfd_oem_get_supported_wps_mode(wfd_oem_ops_s *ops, int *wps_mode)
 {
        if (!ops || !ops->get_supported_wps_mode)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->get_supported_wps_mode(wps_mode);
 }
@@ -215,7 +290,11 @@ int wfd_oem_get_supported_wps_mode(wfd_oem_ops_s *ops, int *wps_mode)
 int wfd_oem_create_group(wfd_oem_ops_s *ops, wfd_oem_group_param_s *param)
 {
        if (!ops || !ops->create_group)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->create_group(param);
 }
@@ -223,7 +302,11 @@ int wfd_oem_create_group(wfd_oem_ops_s *ops, wfd_oem_group_param_s *param)
 int wfd_oem_destroy_group(wfd_oem_ops_s *ops, const char *ifname)
 {
        if (!ops || !ops->destroy_group)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->destroy_group(ifname);
 }
@@ -231,7 +314,11 @@ int wfd_oem_destroy_group(wfd_oem_ops_s *ops, const char *ifname)
 int wfd_oem_invite(wfd_oem_ops_s *ops, unsigned char *peer_addr, wfd_oem_invite_param_s *param)
 {
        if (!ops || !ops->invite)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->invite(peer_addr, param);
 }
@@ -239,7 +326,11 @@ int wfd_oem_invite(wfd_oem_ops_s *ops, unsigned char *peer_addr, wfd_oem_invite_
 int wfd_oem_wps_start(wfd_oem_ops_s *ops, unsigned char *peer_addr, int wps_mode, const char *pin)
 {
        if (!ops || !ops->wps_start)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->wps_start(peer_addr, wps_mode, pin);
 }
@@ -247,7 +338,11 @@ int wfd_oem_wps_start(wfd_oem_ops_s *ops, unsigned char *peer_addr, int wps_mode
 int wfd_oem_enrollee_start(wfd_oem_ops_s *ops, unsigned char *peer_addr, int wps_mode, const char *pin)
 {
        if (!ops || !ops->enrollee_start)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->enrollee_start(peer_addr, wps_mode, pin);
 }
@@ -255,7 +350,11 @@ int wfd_oem_enrollee_start(wfd_oem_ops_s *ops, unsigned char *peer_addr, int wps
 int wfd_oem_wps_cancel(wfd_oem_ops_s *ops)
 {
        if (!ops || !ops->wps_cancel)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->wps_cancel();
 }
@@ -263,7 +362,11 @@ int wfd_oem_wps_cancel(wfd_oem_ops_s *ops)
 int wfd_oem_get_dev_name(wfd_oem_ops_s *ops, char *dev_name)
 {
        if (!ops || !ops->get_dev_name)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->get_dev_name(dev_name);
 }
@@ -271,7 +374,11 @@ int wfd_oem_get_dev_name(wfd_oem_ops_s *ops, char *dev_name)
 int wfd_oem_set_dev_name(wfd_oem_ops_s *ops, char *dev_name)
 {
        if (!ops || !ops->set_dev_name)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->set_dev_name(dev_name);
 }
@@ -279,7 +386,11 @@ int wfd_oem_set_dev_name(wfd_oem_ops_s *ops, char *dev_name)
 int wfd_oem_get_dev_mac(wfd_oem_ops_s *ops, char *dev_mac)
 {
        if (!ops || !ops->get_dev_mac)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->get_dev_mac(dev_mac);
 }
@@ -287,7 +398,11 @@ int wfd_oem_get_dev_mac(wfd_oem_ops_s *ops, char *dev_mac)
 int wfd_oem_get_dev_type(wfd_oem_ops_s *ops, int *pri_dev_type, int *sec_dev_type)
 {
        if (!ops || !ops->get_dev_type)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->get_dev_type(pri_dev_type, sec_dev_type);
 }
@@ -295,7 +410,11 @@ int wfd_oem_get_dev_type(wfd_oem_ops_s *ops, int *pri_dev_type, int *sec_dev_typ
 int wfd_oem_set_dev_type(wfd_oem_ops_s *ops, int pri_dev_type, int sec_dev_type)
 {
        if (!ops || !ops->set_dev_type)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->set_dev_type(pri_dev_type, sec_dev_type);
 }
@@ -303,7 +422,11 @@ int wfd_oem_set_dev_type(wfd_oem_ops_s *ops, int pri_dev_type, int sec_dev_type)
 int wfd_oem_get_go_intent(wfd_oem_ops_s *ops, int *go_intent)
 {
        if (!ops || !ops->get_go_intent)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->get_go_intent(go_intent);
 }
@@ -311,7 +434,11 @@ int wfd_oem_get_go_intent(wfd_oem_ops_s *ops, int *go_intent)
 int wfd_oem_set_go_intent(wfd_oem_ops_s *ops, int go_intent)
 {
        if (!ops || !ops->set_go_intent)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->set_go_intent(go_intent);
 }
@@ -319,7 +446,11 @@ int wfd_oem_set_go_intent(wfd_oem_ops_s *ops, int go_intent)
 int wfd_oem_set_country(wfd_oem_ops_s *ops, char *ccode)
 {
        if (!ops || !ops->set_country)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->set_country(ccode);
 }
@@ -327,7 +458,11 @@ int wfd_oem_set_country(wfd_oem_ops_s *ops, char *ccode)
 int wfd_oem_get_persistent_groups(wfd_oem_ops_s *ops, wfd_oem_persistent_group_s **groups, int *group_count)
 {
        if (!ops || !ops->get_persistent_groups)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->get_persistent_groups(groups, group_count);
 }
@@ -335,7 +470,11 @@ int wfd_oem_get_persistent_groups(wfd_oem_ops_s *ops, wfd_oem_persistent_group_s
 int wfd_oem_remove_persistent_group(wfd_oem_ops_s *ops, char *ssid, unsigned char *bssid)
 {
        if (!ops || !ops->remove_persistent_group)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->remove_persistent_group(ssid, bssid);
 
@@ -344,7 +483,11 @@ int wfd_oem_remove_persistent_group(wfd_oem_ops_s *ops, char *ssid, unsigned cha
 int wfd_oem_set_persistent_reconnect(wfd_oem_ops_s *ops, unsigned char *bssid, int reconnect)
 {
        if (!ops || !ops->set_persistent_reconnect)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->set_persistent_reconnect(bssid, reconnect);
 }
@@ -352,7 +495,11 @@ int wfd_oem_set_persistent_reconnect(wfd_oem_ops_s *ops, unsigned char *bssid, i
 int wfd_oem_start_service_discovery(wfd_oem_ops_s *ops, unsigned char *peer_addr, int service_type)
 {
        if (!ops || !ops->start_service_discovery)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->start_service_discovery(peer_addr, service_type);
 }
@@ -360,7 +507,11 @@ int wfd_oem_start_service_discovery(wfd_oem_ops_s *ops, unsigned char *peer_addr
 int wfd_oem_cancel_service_discovery(wfd_oem_ops_s *ops, unsigned char *peer_addr, int service_type)
 {
        if (!ops || !ops->cancel_service_discovery)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->cancel_service_discovery(peer_addr, service_type);
 }
@@ -368,7 +519,11 @@ int wfd_oem_cancel_service_discovery(wfd_oem_ops_s *ops, unsigned char *peer_add
 int wfd_oem_serv_add(wfd_oem_ops_s *ops, wfd_oem_new_service_s *service)
 {
        if (!ops || !ops->serv_add)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->serv_add(service);
 }
@@ -376,7 +531,11 @@ int wfd_oem_serv_add(wfd_oem_ops_s *ops, wfd_oem_new_service_s *service)
 int wfd_oem_serv_del(wfd_oem_ops_s *ops, wfd_oem_new_service_s *service)
 {
        if (!ops || !ops->serv_del)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->serv_del(service);
 }
@@ -384,7 +543,11 @@ int wfd_oem_serv_del(wfd_oem_ops_s *ops, wfd_oem_new_service_s *service)
 int wfd_oem_serv_disc_start(wfd_oem_ops_s *ops, wfd_oem_new_service_s *service)
 {
        if (!ops || !ops->serv_disc_start)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->serv_disc_start(service);
 }
@@ -392,7 +555,11 @@ int wfd_oem_serv_disc_start(wfd_oem_ops_s *ops, wfd_oem_new_service_s *service)
 int wfd_oem_serv_disc_stop(wfd_oem_ops_s *ops, int handle)
 {
        if (!ops || !ops->serv_disc_stop)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->serv_disc_stop(handle);
 }
@@ -400,7 +567,11 @@ int wfd_oem_serv_disc_stop(wfd_oem_ops_s *ops, int handle)
 int wfd_oem_miracast_init(wfd_oem_ops_s *ops, int enable)
 {
        if (!ops || !ops->miracast_init)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->miracast_init(enable);
 }
@@ -408,8 +579,11 @@ int wfd_oem_miracast_init(wfd_oem_ops_s *ops, int enable)
 int wfd_oem_set_display(wfd_oem_ops_s *ops, wfd_oem_display_s *wifi_display)
 {
        if (!ops || !ops->set_display)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
-
+#endif
 
        return ops->set_display(wifi_display);
 }
@@ -425,7 +599,11 @@ int wfd_oem_refresh(wfd_oem_ops_s *ops)
 int wfd_oem_advertise_service(wfd_oem_ops_s *ops, wfd_oem_asp_service_s *service, int replace)
 {
        if (!ops || !ops->advertise_service)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->advertise_service(service, replace);
 }
@@ -433,7 +611,11 @@ int wfd_oem_advertise_service(wfd_oem_ops_s *ops, wfd_oem_asp_service_s *service
 int wfd_oem_cancel_advertise_service(wfd_oem_ops_s *ops, wfd_oem_asp_service_s *service)
 {
        if (!ops || !ops->cancel_advertise_service)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->cancel_advertise_service(service);
 }
@@ -441,7 +623,11 @@ int wfd_oem_cancel_advertise_service(wfd_oem_ops_s *ops, wfd_oem_asp_service_s *
 int wfd_oem_seek_service(wfd_oem_ops_s *ops, wfd_oem_asp_service_s *service)
 {
        if (!ops || !ops->seek_service)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->seek_service(service);
 }
@@ -449,7 +635,11 @@ int wfd_oem_seek_service(wfd_oem_ops_s *ops, wfd_oem_asp_service_s *service)
 int wfd_oem_cancel_seek_service(wfd_oem_ops_s *ops, wfd_oem_asp_service_s *service)
 {
        if (!ops || !ops->cancel_seek_service)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->cancel_seek_service(service);
 }
@@ -457,16 +647,23 @@ int wfd_oem_cancel_seek_service(wfd_oem_ops_s *ops, wfd_oem_asp_service_s *servi
 int wfd_oem_asp_prov_disc_req(wfd_oem_ops_s *ops, wfd_oem_asp_prov_s *params)
 {
        if (!ops || !ops->asp_prov_disc_req)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->asp_prov_disc_req(params);
 }
 
 int wfd_oem_set_eapol_ip_config(wfd_oem_ops_s *ops, int enable)
 {
-       if (!ops || !ops->set_eapol_ip_config) {
+       if (!ops || !ops->set_eapol_ip_config)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
-       }
+#endif
 
        return ops->set_eapol_ip_config(enable);
 }
@@ -475,7 +672,11 @@ int wfd_oem_add_vsie(wfd_oem_ops_s *ops, wfd_oem_vsie_frames_e frame_id,
                     const char* vsie)
 {
        if (!ops || !ops->add_vsie)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->add_vsie(frame_id, vsie);
 }
@@ -484,7 +685,11 @@ int wfd_oem_get_vsie(wfd_oem_ops_s *ops, wfd_oem_vsie_frames_e frame_id,
                     char **vsie)
 {
        if (!ops || !ops->get_vsie)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->get_vsie(frame_id, vsie);
 }
@@ -493,7 +698,11 @@ int wfd_oem_remove_vsie(wfd_oem_ops_s *ops, wfd_oem_vsie_frames_e frame_id,
                        const char *vsie)
 {
        if (!ops || !ops->remove_vsie)
+#if defined(BUILD_GTESTS)
+               return 0;
+#else
                return -1;
+#endif
 
        return ops->remove_vsie(frame_id, vsie);
 }
index c75c1ca..86ad9dd 100644 (file)
@@ -6,7 +6,7 @@
 
 Name:          wifi-direct-manager
 Summary:       Wi-Fi Direct manger
-Version:       1.2.264
+Version:       1.2.265
 Release:       1
 Group:      Network & Connectivity/Wireless
 License:    Apache-2.0
index 4d4cdc0..ecbe68f 100644 (file)
 
 void wfd_prd_event_example(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_prd_event_init(wfd_oem_event_cbs_s *event_cb)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_oem_prd_event_cbs_s *prd_event_cb = (wfd_oem_prd_event_cbs_s *)event_cb->extra_data;
 
        prd_event_cb->prd_example_cb = wfd_prd_event_example;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
index d2ef63c..a330dec 100644 (file)
@@ -85,7 +85,7 @@ void wfd_asp_session_request(wfd_oem_asp_prov_s *prov_param)
        wfd_manager_dbus_emit_signal(WFD_MANAGER_ASP_INTERFACE, "SessionRequest", parameter);
        return;
 }
-
+//LCOV_EXCL_START
 void wfd_asp_session_config_request(unsigned int session_id, int get_pin, char *pin)
 {
        GVariantBuilder *builder = NULL;
@@ -108,6 +108,7 @@ void wfd_asp_session_config_request(unsigned int session_id, int get_pin, char *
        wfd_manager_dbus_emit_signal(WFD_MANAGER_ASP_INTERFACE, "SessionConfigRequest", parameter);
        return;
 }
+//LCOV_EXCL_STOP
 
 void wfd_asp_connect_status(unsigned char *session_mac,
                unsigned int session_id, int status, char *deferred)
index aa69958..0883d81 100644 (file)
@@ -448,7 +448,7 @@ static GDBusConnection *__dbus_get_gdbus_conn(void)
 {
        return g_connection;
 }
-
+//LCOV_EXCL_START
 static void wfd_manger_dbus_manage_iface_handler(
                GDBusConnection *connection,
                const gchar *sender,
@@ -923,7 +923,7 @@ void wfd_manager_dbus_reply_params(GDBusMethodInvocation *invocation, GVariant *
 
        return;
 }
-
+//LCOV_EXCL_STOP
 GVariant* wfd_manager_dbus_pack_ay(const unsigned char *src, int size)
 {
        GVariantBuilder *builder = NULL;
@@ -931,7 +931,7 @@ GVariant* wfd_manager_dbus_pack_ay(const unsigned char *src, int size)
        int i = 0;
 
        if (!src) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return NULL;
        }
 
index b024374..4911c48 100644 (file)
@@ -32,6 +32,7 @@
 
 #define WFD_MANAGER_QUARK (g_quark_from_string("wifi-direct-error-quark"))
 
+//LCOV_EXCL_START
 static void wfd_error_invalid_parameter(GError **error)
 {
        *error = g_dbus_error_new_for_dbus_error(
@@ -104,7 +105,6 @@ void wfd_error_set_gerror(wifi_direct_error_e error_code, GError **error)
                wfd_error_operation_failed(error);
        }
 }
-
 void wfd_error_register(void)
 {
        g_dbus_error_register_error(WFD_MANAGER_QUARK,
@@ -149,3 +149,4 @@ void wfd_error_deregister(void)
                        "net.wifidirect.Error.TooManyClient");
 
 }
+//LCOV_EXCL_STOP
index 936b970..d01dd77 100644 (file)
 #include "wifi-direct-dbus.h"
 #include "wifi-direct-asp.h"
 
+static void _wfd_event_reset_state(wfd_manager_s *manager)
+{
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
+
+       if (manager->local->dev_role == WFD_DEV_ROLE_GO) {
+               wfd_state_set(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+               wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_GROUP_OWNER);
+       } else {
+               wfd_state_set(manager, WIFI_DIRECT_STATE_ACTIVATED);
+               wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
+       }
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
+}
+
 static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *data)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_device_s *peer = NULL;
 
        if (!manager || !data) {
                WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -68,7 +82,7 @@ static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *da
                peer = wfd_add_peer(manager, data->p2p_dev_addr, data->name);
                if (!peer) {
                        WDS_LOGE("Failed to add peer");
-                       __WDS_LOG_FUNC_EXIT__;
+                       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                        return -1;
                }
        } else {
@@ -99,16 +113,16 @@ static int _wfd_event_update_peer(wfd_manager_s *manager, wfd_oem_dev_data_s *da
 #endif
        WDS_LOGI("Update time [%s - %ld]", peer->dev_name, peer->time);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
-
+//LCOV_EXCL_START
 gboolean _wfd_connection_retry(gpointer *data)
 {
        wfd_session_s *session = (wfd_session_s*) data;
        if (!session) {
                WDS_LOGE("Session is NULL");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return G_SOURCE_REMOVE;
        }
 
@@ -129,13 +143,13 @@ gboolean _wfd_connection_retry(gpointer *data)
                WDS_LOGE("Invalid session state [%d]", session->state);
        break;
        }
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return G_SOURCE_REMOVE;
 }
 
 void wfd_event_deactivated(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
 
@@ -155,13 +169,13 @@ void wfd_event_deactivated(wfd_oem_event_s *event)
        if (manager->is_connection_agent)
                wfd_util_stop_wifi_direct_popup();
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
-
+//LCOV_EXCL_STOP
 void wfd_event_peer_found(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
        wfd_oem_dev_data_s *edata = NULL;
@@ -170,15 +184,15 @@ void wfd_event_peer_found(wfd_oem_event_s *event)
 
        edata = (wfd_oem_dev_data_s*) event->edata;
        if (!edata || event->edata_type != WFD_OEM_EDATA_TYPE_DEVICE) {
-               WDS_LOGE("Invalid event data");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid event data");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
        res = _wfd_event_update_peer(manager, edata);
        if (res < 0) {
-               WDS_LOGE("Failed to update peer data");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Failed to update peer data");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -237,13 +251,13 @@ void wfd_event_peer_found(wfd_oem_event_s *event)
                                                         params);
                }
        }
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_event_peer_disappeared(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
        wfd_session_s *session = NULL;
@@ -256,7 +270,7 @@ void wfd_event_peer_disappeared(wfd_oem_event_s *event)
                WDS_LOGD("session peer [" MACSTR "] lost peer ["  MACSTR "]", MAC2STR(peer->dev_addr),
                                                MAC2STR(event->dev_addr));
                if (memcmp(peer->dev_addr, event->dev_addr, MACADDR_LEN) == 0) {
-                       WDS_LOGD("peer already in connection");
+                       WDS_LOGD("peer already in connection");//LCOV_EXCL_LINE
                        return;
                }
        }
@@ -268,49 +282,43 @@ void wfd_event_peer_disappeared(wfd_oem_event_s *event)
                                     "PeerLost",
                                     g_variant_new("(s)", peer_mac_address));
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_event_discovery_finished(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
 
        if (manager->state != WIFI_DIRECT_STATE_DISCOVERING &&
                        manager->state != WIFI_DIRECT_STATE_ACTIVATED) {
                WDS_LOGE("Notify finding stopped when discovering or activated. [%d]", manager->state);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
        if (manager->scan_mode == WFD_SCAN_MODE_PASSIVE) {
-               WDS_LOGE("During passive scan, Discover Finished event will not notified");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("During passive scan, Discover Finished event will not notified");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
-       if (manager->local->dev_role == WFD_DEV_ROLE_GO) {
-               wfd_state_set(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
-               wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_GROUP_OWNER);
-       } else {
-               wfd_state_set(manager, WIFI_DIRECT_STATE_ACTIVATED);
-               wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
-       }
+       _wfd_event_reset_state(manager);
        manager->scan_mode = WFD_SCAN_MODE_NONE;
 
        wfd_manager_dbus_emit_signal(WFD_MANAGER_MANAGE_INTERFACE,
                                     "DiscoveryFinished",
                                     NULL);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_event_prov_disc_req(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
        wfd_device_s *peer = NULL;
@@ -319,8 +327,8 @@ void wfd_event_prov_disc_req(wfd_oem_event_s *event)
        wfd_group_s *group = (wfd_group_s*) manager->group;
 
        if (group && group->role == WFD_DEV_ROLE_GC) {
-               WDS_LOGD("Device has GC role - ignore this provision request");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGD("Device has GC role - ignore this provision request");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -328,8 +336,8 @@ void wfd_event_prov_disc_req(wfd_oem_event_s *event)
        if (member) {
                /* PD request can be arrived from peer device
                 * when connection is timeout to close connection */
-               WDS_LOGE("Unexpected Event - Member already exist");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Unexpected Event - Member already exist");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -337,8 +345,8 @@ void wfd_event_prov_disc_req(wfd_oem_event_s *event)
 
        edata = (wfd_oem_dev_data_s*) event->edata;
        if (!edata || event->edata_type != WFD_OEM_EDATA_TYPE_DEVICE) {
-               WDS_LOGE("Invalid event data");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid event data");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -346,12 +354,12 @@ void wfd_event_prov_disc_req(wfd_oem_event_s *event)
        peer = wfd_peer_find_by_dev_addr(manager, event->dev_addr);
 
        if (WFD_DEV_ROLE_GO != manager->local->dev_role) {
-               WDS_LOGI("TV is not GO, updated peer data only.");
+               WDS_LOGI("TV is not GO, updated peer data only.");//LCOV_EXCL_LINE
 
                manager->local->wps_mode = event->wps_mode;
                if (event->wps_mode == WFD_WPS_MODE_PBC ||
                                event->wps_mode == WFD_WPS_MODE_KEYPAD) {
-                       __WDS_LOG_FUNC_EXIT__;
+                       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                        return;
                }
        }
@@ -361,15 +369,15 @@ void wfd_event_prov_disc_req(wfd_oem_event_s *event)
 
        res = wfd_session_process_event(manager, event);
        if (res < 0)
-               WDS_LOGE("Failed to process event of session");
+               WDS_LOGE("Failed to process event of session");//LCOV_EXCL_LINE
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_event_prov_disc_resp(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
        wfd_device_s *peer = NULL;
@@ -379,8 +387,8 @@ void wfd_event_prov_disc_resp(wfd_oem_event_s *event)
 
        edata = (wfd_oem_dev_data_s*) event->edata;
        if (!edata || event->edata_type != WFD_OEM_EDATA_TYPE_DEVICE) {
-               WDS_LOGE("Invalid event data");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid event data");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -391,9 +399,9 @@ void wfd_event_prov_disc_resp(wfd_oem_event_s *event)
 
        res = wfd_session_process_event(manager, event);
        if (res < 0)
-               WDS_LOGE("Failed to process event of session");
+               WDS_LOGE("Failed to process event of session");//LCOV_EXCL_LINE
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
@@ -405,7 +413,7 @@ static bool __asp_prov_disc_deferred(wfd_session_s *session, void *event_data)
        if (prov_params && !ISZEROMACADDR(session->session_mac)) {
                /* This connection is for ASP session */
                if (prov_params->status == WFD_OEM_SC_FAIL_INVALID_PARAMS) {
-                       WDS_LOGD("ASP prov disc deferred. wait response.");
+                       WDS_LOGD("ASP prov disc deferred. wait response.");//LCOV_EXCL_LINE
                        wfd_asp_connect_status(session->session_mac,
                                                                session->session_id,
                                                                ASP_CONNECT_STATUS_REQUEST_DEFERRED,
@@ -413,13 +421,13 @@ static bool __asp_prov_disc_deferred(wfd_session_s *session, void *event_data)
                        is_deferred = true;
                }
        }
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return is_deferred;
 }
 
 void wfd_event_prov_disc_fail(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
        wfd_session_s *session = NULL;
@@ -428,15 +436,15 @@ void wfd_event_prov_disc_fail(wfd_oem_event_s *event)
 
        session = (wfd_session_s*) manager->session;
        if (!session) {
-               WDS_LOGE("Unexpected event. Session not exist");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Unexpected event. Session not exist");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
        peer_addr = wfd_session_get_peer_addr(session);
        if (!peer_addr) {
-               WDS_LOGE("Session do not have peer");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Session do not have peer");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -447,7 +455,7 @@ void wfd_event_prov_disc_fail(wfd_oem_event_s *event)
                        memset(&param, 0x0, sizeof(wfd_oem_scan_param_s));
                        param.scan_mode = WFD_OEM_SCAN_MODE_PASSIVE;
                        wfd_oem_start_scan(manager->oem_ops, &param);
-                       __WDS_LOG_FUNC_EXIT__;
+                       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                        return;
                }
        }
@@ -460,7 +468,7 @@ void wfd_event_prov_disc_fail(wfd_oem_event_s *event)
                                                   WFD_EVENT_CONNECTION_RSP,
                                                   peer_mac_address));
        if (wfd_asp_is_asp_session(session)) {
-               WDS_LOGD("ASP prov disc failed. remove session.");
+               WDS_LOGD("ASP prov disc failed. remove session.");//LCOV_EXCL_LINE
                wfd_asp_connect_status(session->session_mac,
                                                        session->session_id,
                                                        ASP_CONNECT_STATUS_REQUEST_FAILED,
@@ -497,19 +505,19 @@ void wfd_event_prov_disc_fail(wfd_oem_event_s *event)
        wfd_oem_start_scan(manager->oem_ops, &param);
        manager->scan_mode = WFD_SCAN_MODE_ACTIVE;
 #endif
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_event_go_neg_req(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
        wfd_group_s *group = (wfd_group_s*) manager->group;
        if (group && group->role == WFD_DEV_ROLE_GC) {
-               WDS_LOGD("Device has GC role - ignore this go neg request");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGD("Device has GC role - ignore this go neg request");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -518,26 +526,26 @@ void wfd_event_go_neg_req(wfd_oem_event_s *event)
 
        edata = (wfd_oem_dev_data_s*) event->edata;
        if (!edata || event->edata_type != WFD_OEM_EDATA_TYPE_DEVICE) {
-               WDS_LOGE("Invalid event data");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid event data");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
        res = _wfd_event_update_peer(manager, edata);
        if (res < 0) {
-               WDS_LOGE("Failed to update peer data");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Failed to update peer data");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
        wfd_session_process_event(manager, event);
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_event_go_neg_fail(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
        wfd_session_s *session = NULL;
@@ -547,22 +555,22 @@ void wfd_event_go_neg_fail(wfd_oem_event_s *event)
 
        session = (wfd_session_s*) manager->session;
        if (!session) {
-               WDS_LOGE("Unexpected event. Session not exist");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Unexpected event. Session not exist");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
        peer_addr = wfd_session_get_peer_addr(session);
        if (!peer_addr) {
-               WDS_LOGE("Session do not have peer");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Session do not have peer");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
        edata = (wfd_oem_conn_data_s*) event->edata;
        if (!edata) {
-               WDS_LOGE("Invalid p2p connection data");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid p2p connection data");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -572,8 +580,8 @@ void wfd_event_go_neg_fail(wfd_oem_event_s *event)
                        session->retry_gsrc = 0;
                }
                session->retry_gsrc = g_idle_add((GSourceFunc) _wfd_connection_retry, session);
-               WDS_LOGD("Connection will be retried");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGD("Connection will be retried");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -592,19 +600,17 @@ void wfd_event_go_neg_fail(wfd_oem_event_s *event)
                                NULL);
        }
 
-       wfd_state_set(manager, WIFI_DIRECT_STATE_ACTIVATED);
-       wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
-
        wfd_destroy_session(manager);
        wfd_destroy_group(manager);
        manager->local->dev_role = WFD_DEV_ROLE_NONE;
-       __WDS_LOG_FUNC_EXIT__;
+       _wfd_event_reset_state(manager);
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_event_go_neg_done(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
        wfd_session_s *session = NULL;
@@ -613,8 +619,8 @@ void wfd_event_go_neg_done(wfd_oem_event_s *event)
 
        edata = (wfd_oem_conn_data_s*) event->edata;
        if (edata == NULL) {
-               WDS_LOGE("Invalid event data");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid event data");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -625,13 +631,13 @@ void wfd_event_go_neg_done(wfd_oem_event_s *event)
        }
 
        wfd_session_process_event(manager, event);
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_event_wps_fail(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
        wfd_session_s *session = NULL;
@@ -639,15 +645,15 @@ void wfd_event_wps_fail(wfd_oem_event_s *event)
 
        session = (wfd_session_s*) manager->session;
        if (!session) {
-               WDS_LOGE("Unexpected event. Session not exist");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Unexpected event. Session not exist");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
        peer_addr = wfd_session_get_peer_addr(session);
        if (!peer_addr) {
-               WDS_LOGE("Session do not have peer");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Session do not have peer");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -696,24 +702,24 @@ void wfd_event_wps_fail(wfd_oem_event_s *event)
        wfd_oem_start_scan(manager->oem_ops, &param);
        manager->scan_mode = WFD_SCAN_MODE_ACTIVE;
 #endif
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_event_wps_done(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
        wfd_session_process_event(manager, event);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_event_key_neg_fail(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
        wfd_session_s *session = NULL;
@@ -722,15 +728,15 @@ void wfd_event_key_neg_fail(wfd_oem_event_s *event)
 
        session = (wfd_session_s*) manager->session;
        if (!session) {
-               WDS_LOGE("Unexpected event. Session not exist");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Unexpected event. Session not exist");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
        peer_addr = wfd_session_get_peer_addr(session);
        if (!peer_addr) {
-               WDS_LOGE("Session do not has peer");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Session do not has peer");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -778,37 +784,37 @@ void wfd_event_key_neg_fail(wfd_oem_event_s *event)
        wfd_oem_start_scan(manager->oem_ops, &param);
        manager->scan_mode = WFD_SCAN_MODE_ACTIVE;
 #endif
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_event_key_neg_done(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_event_conn_fail(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_event_conn_done(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_event_group_created(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
        wfd_group_s *group = (wfd_group_s*) manager->group;
@@ -817,8 +823,8 @@ void wfd_event_group_created(wfd_oem_event_s *event)
        if (!group) {
                group = wfd_create_pending_group(manager, event->intf_addr);
                if (!group) {
-                       WDS_LOGE("Failed to create pending group");
-                       __WDS_LOG_FUNC_EXIT__;
+                       WDS_LOGE("Failed to create pending group");//LCOV_EXCL_LINE
+                       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                        return;
                }
 
@@ -830,7 +836,7 @@ void wfd_event_group_created(wfd_oem_event_s *event)
        if (group->role == WFD_DEV_ROLE_GC && session) {
                wfd_device_s *peer = session->peer;
                if (peer == NULL) {
-                       WDS_LOGE("Unexpected event. Peer doesn't exist");
+                       WDS_LOGE("Unexpected event. Peer doesn't exist");//LCOV_EXCL_LINE
                        return;
                }
 
@@ -869,13 +875,13 @@ void wfd_event_group_created(wfd_oem_event_s *event)
                        wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_GROUP_OWNER);
                }
        }
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_event_group_destroyed(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
        char peer_mac_address[MACSTR_LEN+1] = {0, };
@@ -918,8 +924,8 @@ void wfd_event_group_destroyed(wfd_oem_event_s *event)
                                                     "Destroyed", NULL);
                }
        } else {
-               WDS_LOGD("Unexpected event(GROUP_DESTROYED). Ignore it");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGD("Unexpected event(GROUP_DESTROYED). Ignore it");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -929,13 +935,13 @@ void wfd_event_group_destroyed(wfd_oem_event_s *event)
        wfd_destroy_group(manager);
        manager->local->dev_role = WFD_DEV_ROLE_NONE;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_event_invitation_req(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
        wfd_device_s *peer = NULL;
@@ -946,11 +952,11 @@ void wfd_event_invitation_req(wfd_oem_event_s *event)
 
        peer = wfd_peer_find_by_dev_addr(manager, event->dev_addr);
        if (!peer) {
-               WDS_LOGD("Invitation from unknown peer. Add new peer");
+               WDS_LOGD("Invitation from unknown peer. Add new peer");//LCOV_EXCL_LINE
                peer = wfd_add_peer(manager, event->dev_addr, "DIRECT-");
                if (!peer) {
-                       WDS_LOGE("Failed to add peer for invitation");
-                       __WDS_LOG_FUNC_EXIT__;
+                       WDS_LOGE("Failed to add peer for invitation");//LCOV_EXCL_LINE
+                       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                        return;
                }
        }
@@ -969,8 +975,8 @@ void wfd_event_invitation_req(wfd_oem_event_s *event)
                                             manager->req_wps_mode,
                                             SESSION_DIRECTION_INCOMING);
        if (!session) {
-               WDS_LOGE("Failed to create session");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Failed to create session");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
        session->type = SESSION_TYPE_INVITE;
@@ -981,8 +987,8 @@ void wfd_event_invitation_req(wfd_oem_event_s *event)
 
        res = wfd_session_start(session);
        if (res < 0) {
-               WDS_LOGE("Failed to start session");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Failed to start session");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -999,21 +1005,21 @@ void wfd_event_invitation_req(wfd_oem_event_s *event)
                                                            WFD_EVENT_CONNECTION_REQ,
                                                            peer_mac_address));
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_event_invitation_res(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_event_sta_connected(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
        wfd_session_s *session = (wfd_session_s*) manager->session;
@@ -1023,8 +1029,8 @@ void wfd_event_sta_connected(wfd_oem_event_s *event)
 
        /* FIXME: Move this code to plugin */
        if (!memcmp(event->intf_addr, manager->local->intf_addr, MACADDR_LEN)) {
-               WDS_LOGD("Ignore this event");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGD("Ignore this event");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -1033,18 +1039,18 @@ void wfd_event_sta_connected(wfd_oem_event_s *event)
 
                peer = wfd_peer_find_by_addr(manager, event->intf_addr);
                if (!peer) {
-                       WDS_LOGI("Add legacy peer");
+                       WDS_LOGI("Add legacy peer");//LCOV_EXCL_LINE
                        peer = wfd_add_peer(manager, event->intf_addr, "LEGACY-PEER");
                        if (!peer) {
-                               WDS_LOGE("Failed to add Legacy peer.");
-                               __WDS_LOG_FUNC_EXIT__;
+                               WDS_LOGE("Failed to add Legacy peer.");//LCOV_EXCL_LINE
+                               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                                return;
                        }
                }
 
                if (wfd_group_add_member(group, peer->dev_addr) == -1) {
-                       WDS_LOGE("Failed to add Legacy peer.");
-                       __WDS_LOG_FUNC_EXIT__;
+                       WDS_LOGE("Failed to add Legacy peer.");//LCOV_EXCL_LINE
+                       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                        return;
                }
 
@@ -1060,7 +1066,7 @@ void wfd_event_sta_connected(wfd_oem_event_s *event)
                                                                    peer_mac_address));
 
                wfd_util_dhcps_wait_ip_leased(peer);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -1073,7 +1079,7 @@ void wfd_event_sta_connected(wfd_oem_event_s *event)
                        if (!session) {
                                WDS_LOGE("Failed to create session with peer [" MACSTR "]",
                                         MAC2STR(event->dev_addr));
-                               __WDS_LOG_FUNC_EXIT__;
+                               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                                return;
                        }
                } else {
@@ -1086,15 +1092,15 @@ void wfd_event_sta_connected(wfd_oem_event_s *event)
 
                        wfd_state_set(manager, WIFI_DIRECT_STATE_ACTIVATED);
                        wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
-                       __WDS_LOG_FUNC_EXIT__;
+                       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                        return;
                }
        }
 
        peer = wfd_session_get_peer(session);
        if (!peer) {
-               WDS_LOGE("Peer not found");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Peer not found");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -1102,8 +1108,8 @@ void wfd_event_sta_connected(wfd_oem_event_s *event)
        if (!group) {
                group = wfd_create_pending_group(manager, event->intf_addr);
                if (!group) {
-                       WDS_LOGE("Failed to create pending group");
-                       __WDS_LOG_FUNC_EXIT__;
+                       WDS_LOGE("Failed to create pending group");//LCOV_EXCL_LINE
+                       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                        return;
                }
                manager->group = group;
@@ -1157,13 +1163,13 @@ void wfd_event_sta_connected(wfd_oem_event_s *event)
        }
        wfd_destroy_session(manager);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_event_sta_disconnected(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
        wfd_group_s *group = NULL;
@@ -1173,8 +1179,8 @@ void wfd_event_sta_disconnected(wfd_oem_event_s *event)
 
        group = (wfd_group_s*) manager->group;
        if (!group) {
-               WDS_LOGE("Group not found");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Group not found");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -1196,17 +1202,17 @@ void wfd_event_sta_disconnected(wfd_oem_event_s *event)
                        wfd_state_set(manager, WIFI_DIRECT_STATE_ACTIVATED);
                        wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
                }
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
        peer = wfd_group_find_member_by_addr(group, event->dev_addr);
        if (!peer) {
-               WDS_LOGE("Failed to find connected peer");
+               WDS_LOGE("Failed to find connected peer");//LCOV_EXCL_LINE
                peer = wfd_session_get_peer(manager->session);
                if (!peer) {
-                       WDS_LOGE("Failed to find connecting peer");
-                       __WDS_LOG_FUNC_EXIT__;
+                       WDS_LOGE("Failed to find connecting peer");//LCOV_EXCL_LINE
+                       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                        return;
                }
 
@@ -1218,8 +1224,8 @@ void wfd_event_sta_disconnected(wfd_oem_event_s *event)
                 * some connected peer sent disassociation.
                 */
                if (memcmp(peer->dev_addr, event->dev_addr, MACADDR_LEN)) {
-                       WDS_LOGE("Unexpected event, Ignore it...");
-                       __WDS_LOG_FUNC_EXIT__;
+                       WDS_LOGE("Unexpected event, Ignore it...");//LCOV_EXCL_LINE
+                       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                        return;
                }
        }
@@ -1253,7 +1259,7 @@ void wfd_event_sta_disconnected(wfd_oem_event_s *event)
                         * This message should be ignored when device is not GO */
                        manager->local->dev_role == WFD_DEV_ROLE_GO) {
                if (WFD_PEER_STATE_CONNECTED == peer->state) {
-                       WDS_LOGD("Peer is already Connected !!!");
+                       WDS_LOGD("Peer is already Connected !!!");//LCOV_EXCL_LINE
                        wfd_group_remove_member(group, peer_addr);
                        g_snprintf(peer_mac_address, MACSTR_LEN, MACSTR, MAC2STR(peer_addr));
                        wfd_manager_dbus_emit_signal(WFD_MANAGER_MANAGE_INTERFACE,
@@ -1263,7 +1269,7 @@ void wfd_event_sta_disconnected(wfd_oem_event_s *event)
                                                                            peer_mac_address));
 
                } else if (WFD_PEER_STATE_CONNECTING == peer->state) {
-                       WDS_LOGD("Peer is Connecting...");
+                       WDS_LOGD("Peer is Connecting...");//LCOV_EXCL_LINE
                        g_snprintf(peer_mac_address, MACSTR_LEN, MACSTR, MAC2STR(peer_addr));
                        wfd_manager_dbus_emit_signal(WFD_MANAGER_MANAGE_INTERFACE,
                                                     "Connection",
@@ -1278,24 +1284,16 @@ void wfd_event_sta_disconnected(wfd_oem_event_s *event)
                                                                        NULL);
                        }
                } else {
-                       WDS_LOGE("Unexpected Peer State. Ignore it");
-                       __WDS_LOG_FUNC_EXIT__;
+                       WDS_LOGE("Unexpected Peer State. Ignore it");//LCOV_EXCL_LINE
+                       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                        return;
                }
        } else {
-               WDS_LOGE("Unexpected event. Ignore it");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Unexpected event. Ignore it");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
-       if (manager->local->dev_role == WFD_DEV_ROLE_GO) {
-               wfd_state_set(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
-               wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_GROUP_OWNER);
-       } else {
-               wfd_state_set(manager, WIFI_DIRECT_STATE_ACTIVATED);
-               wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
-       }
-
        /* If there is no member, GO should be destroyed */
        if (!group->member_count && wfd_util_is_remove_group_allowed()) {
                wfd_oem_destroy_group(manager->oem_ops, group->ifname);
@@ -1304,35 +1302,36 @@ void wfd_event_sta_disconnected(wfd_oem_event_s *event)
        }
 
        wfd_destroy_session(manager);
+       _wfd_event_reset_state(manager);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_event_terminating(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_event_group_formation_failure(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
        wfd_session_s *session = (wfd_session_s*) manager->session;
        if (!session) {
-               WDS_LOGE("Unexpected event. Session not exist");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Unexpected event. Session not exist");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
        unsigned char *peer_addr = wfd_session_get_peer_addr(session);
        if (!peer_addr) {
-               WDS_LOGE("Session do not has peer");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Session do not has peer");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -1358,7 +1357,7 @@ void wfd_event_group_formation_failure(wfd_oem_event_s *event)
 
        wfd_oem_refresh(manager->oem_ops);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
@@ -1370,7 +1369,7 @@ void wfd_event_group_formation_failure(wfd_oem_event_s *event)
 void wfd_event_invitation_accepted(wfd_oem_event_s *event)
 {
 
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
        wfd_session_s *session = (wfd_session_s*) manager->session;
@@ -1379,11 +1378,11 @@ void wfd_event_invitation_accepted(wfd_oem_event_s *event)
 
        peer = wfd_peer_find_by_dev_addr(manager, event->dev_addr);
        if (!peer) {
-               WDS_LOGI("Invitation from unknown peer. Add new peer");
+               WDS_LOGI("Invitation from unknown peer. Add new peer");//LCOV_EXCL_LINE
                peer = wfd_add_peer(manager, event->dev_addr, "DIRECT-");
                if (!peer) {
-                       WDS_LOGE("Failed to add peer for invitation");
-                       __WDS_LOG_FUNC_EXIT__;
+                       WDS_LOGE("Failed to add peer for invitation");//LCOV_EXCL_LINE
+                       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                        return;
                }
        }
@@ -1399,7 +1398,7 @@ void wfd_event_invitation_accepted(wfd_oem_event_s *event)
                if (!session) {
                        WDS_LOGE("Failed to create session with peer [" MACSTR "]",
                                                        MAC2STR(event->dev_addr));
-                       __WDS_LOG_FUNC_EXIT__;
+                       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                        return;
                }
        }
@@ -1417,12 +1416,12 @@ void wfd_event_invitation_accepted(wfd_oem_event_s *event)
        wfd_state_set(manager, WIFI_DIRECT_STATE_CONNECTING);
        wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_CONNECTING);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
 }
 
 void wfd_event_serv_disc_resp(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
        int service_type;
@@ -1430,7 +1429,7 @@ void wfd_event_serv_disc_resp(wfd_oem_event_s *event)
        char peer_mac_address[MACSTR_LEN+1] = {0, };
 
        if (!manager->is_service_discovery_supported) {
-               WDS_LOGD("service discovery not supported");
+               WDS_LOGD("service discovery not supported");//LCOV_EXCL_LINE
                return;
        }
 
@@ -1454,7 +1453,7 @@ void wfd_event_serv_disc_resp(wfd_oem_event_s *event)
                                WDS_LOGD("Found service: [%d: %s] - [" MACSECSTR "]", service->protocol,
                                                        service->data.bonjour.query, MAC2SECSTR(event->dev_addr));
                        } else {
-                               WDS_LOGD("Found service is not supported");
+                               WDS_LOGD("Found service is not supported");//LCOV_EXCL_LINE
                                goto next;
                        }
 
@@ -1468,42 +1467,23 @@ next:
                        service = NULL;
                        count++;
                }
-       } else if (event->edata_type == WFD_OEM_EDATA_TYPE_SERVICE) {
-               wfd_oem_service_data_s *edata = (wfd_oem_service_data_s*) event->edata;
-
-               if (!edata) {
-                       service_type = -1;
-               } else {
-                       service_type = edata->type;
-                       g_snprintf(peer_mac_address, MACSTR_LEN, MACSTR, MAC2STR(event->dev_addr));
-                       switch (edata->type) {
-                               WDS_LOGE("Unknown type [type ID: %d]", edata->type);
-                       }
-               }
-
-               wfd_manager_dbus_emit_signal(WFD_MANAGER_SERVICE_INTERFACE,
-                                            "DiscoveryFound",
-                                            g_variant_new("(iss)", service_type,
-                                                                   response_data,
-                                                                   peer_mac_address));
        }
-
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_event_serv_disc_started(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 
 void wfd_event_asp_serv_resp(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
        wfd_oem_asp_service_s *service = NULL;
@@ -1511,15 +1491,15 @@ void wfd_event_asp_serv_resp(wfd_oem_event_s *event)
        GVariant *params = NULL;
 
        if (manager && !manager->is_asp_supported) {
-               WDS_LOGD("ASP is not supported.");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGD("ASP is not supported.");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
        service = (wfd_oem_asp_service_s *)event->edata;
        if (service == NULL) {
-               WDS_LOGE("P2P service found event has NULL information");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("P2P service found event has NULL information");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -1540,13 +1520,13 @@ void wfd_event_asp_serv_resp(wfd_oem_event_s *event)
                                     "SearchResult",
                                     params);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 int __wfd_handle_asp_prov(wfd_manager_s *manager, wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_session_s *session = NULL;
        wfd_oem_asp_prov_s *prov_params = NULL;
@@ -1554,29 +1534,29 @@ int __wfd_handle_asp_prov(wfd_manager_s *manager, wfd_oem_event_s *event)
 
        prov_params = (wfd_oem_asp_prov_s *)event->edata;
        if (prov_params == NULL) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        res = wfd_session_process_event(manager, event);
        session = (wfd_session_s *)manager->session;
        if (res < 0 || session == NULL) {
-               WDS_LOGE("Failed to process event of session");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Failed to process event of session");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
        session->session_id = prov_params->session_id;
        memcpy(session->session_mac, prov_params->session_mac, MACADDR_LEN);
        memcpy(session->service_mac, prov_params->service_mac, MACADDR_LEN);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int __wfd_handle_asp_prov_done(wfd_session_s *session, wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_oem_asp_prov_s *prov_params = NULL;
        prov_params = (wfd_oem_asp_prov_s *)event->edata;
@@ -1585,16 +1565,16 @@ int __wfd_handle_asp_prov_done(wfd_session_s *session, wfd_oem_event_s *event)
        if (prov_params->persist &&
        (prov_params->network_role || prov_params->network_config)) {
                WDS_LOGE("Persistent group is used but "
-                               "conncap/dev_passwd_id are present");
-               __WDS_LOG_FUNC_EXIT__;
+                               "conncap/dev_passwd_id are present");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        if (!prov_params->persist &&
        (!prov_params->network_role && !prov_params->network_config)) {
                WDS_LOGE("Persistent group not used but "
-                               "conncap/dev_passwd_id are missing");
-               __WDS_LOG_FUNC_EXIT__;
+                               "conncap/dev_passwd_id are missing");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -1609,21 +1589,21 @@ int __wfd_handle_asp_prov_done(wfd_session_s *session, wfd_oem_event_s *event)
                res = wfd_session_asp_connect(session, WFD_OEM_ASP_SESSION_ROLE_CLIENT);
        } else if (prov_params->network_role == WFD_OEM_ASP_SESSION_ROLE_GO) {
                res = wfd_session_asp_connect(session, WFD_OEM_ASP_SESSION_ROLE_GO);
-               WDS_LOGD("don't need to take action.");
+               WDS_LOGD("don't need to take action.");//LCOV_EXCL_LINE
 
        } else {
-               WDS_LOGE("Unhandled event");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Unhandled event");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                res = -1;
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return res;
 }
 
 void wfd_event_asp_prov_start(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
        wfd_session_s *session = NULL;
@@ -1631,14 +1611,14 @@ void wfd_event_asp_prov_start(wfd_oem_event_s *event)
        int res = 0;
 
        if (manager == NULL || event == NULL || event->edata == NULL) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
        if (!manager->is_asp_supported) {
-               WDS_LOGD("ASP is not supported.");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGD("ASP is not supported.");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -1646,8 +1626,8 @@ void wfd_event_asp_prov_start(wfd_oem_event_s *event)
        res = __wfd_handle_asp_prov(manager, event);
        session = (wfd_session_s *)manager->session;
        if (res < 0 || session == NULL) {
-               WDS_LOGE("Failed to process event of session");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Failed to process event of session");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -1666,13 +1646,13 @@ void wfd_event_asp_prov_start(wfd_oem_event_s *event)
 
        wfd_state_set(manager, WIFI_DIRECT_STATE_CONNECTING);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_event_asp_prov_done(wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
        wfd_session_s *session = NULL;
@@ -1680,14 +1660,14 @@ void wfd_event_asp_prov_done(wfd_oem_event_s *event)
        int res = 0;
 
        if (manager == NULL || event == NULL || event->edata == NULL) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
        if (!manager->is_asp_supported) {
-               WDS_LOGD("ASP is not supported.");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGD("ASP is not supported.");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -1705,27 +1685,29 @@ void wfd_event_asp_prov_done(wfd_oem_event_s *event)
        res = __wfd_handle_asp_prov(manager, event);
        session = (wfd_session_s *)manager->session;
        if (res < 0 || session == NULL) {
-               WDS_LOGE("Failed to process event of session");
+               WDS_LOGE("Failed to process event of session");//LCOV_EXCL_LINE
                wfd_destroy_session(manager);
+               wfd_oem_refresh(manager->oem_ops);
+               _wfd_event_reset_state(manager);
                wfd_asp_connect_status(prov_params->session_mac,
                                                        prov_params->session_id,
                                                        ASP_CONNECT_STATUS_REQUEST_FAILED,
                                                        NULL);
-               wfd_oem_refresh(manager->oem_ops);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
        if (prov_params->status != WFD_OEM_SC_SUCCESS &&
                        prov_params->status != WFD_OEM_SC_SUCCESS_ACCEPTED_BY_USER) {
-               WDS_LOGD("ASP-PROV failed. remove session.");
+               WDS_LOGD("ASP-PROV failed. remove session.");//LCOV_EXCL_LINE
                wfd_destroy_session(manager);
                wfd_oem_refresh(manager->oem_ops);
+               _wfd_event_reset_state(manager);
                wfd_asp_connect_status(prov_params->session_mac,
                                                        prov_params->session_id,
                                                        ASP_CONNECT_STATUS_REQUEST_FAILED,
                                                        NULL);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -1740,29 +1722,30 @@ void wfd_event_asp_prov_done(wfd_oem_event_s *event)
                                                NULL);
        res = __wfd_handle_asp_prov_done(session, event);
        if (res < 0) {
-               WDS_LOGE("Connect failed. remove session.");
+               WDS_LOGE("Connect failed. remove session.");//LCOV_EXCL_LINE
                wfd_destroy_session(manager);
                wfd_oem_refresh(manager->oem_ops);
+               _wfd_event_reset_state(manager);
 
                wfd_asp_connect_status(prov_params->session_mac,
                                                        prov_params->session_id,
                                                        ASP_CONNECT_STATUS_GROUP_FORMATION_FAILED,
                                                        NULL);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
-       WDS_LOGD("Provision done succeeded.");
-       __WDS_LOG_FUNC_EXIT__;
+       WDS_LOGD("Provision done succeeded.");//LCOV_EXCL_LINE
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
-
+//LCOV_EXCL_START
 void wfd_event_init(wfd_oem_event_cbs_s *event_cbs)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        if (!event_cbs) {
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -1809,6 +1792,7 @@ void wfd_event_init(wfd_oem_event_cbs_s *event_cbs)
 
        event_cbs->extra_data = NULL;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
+//LCOV_EXCL_STOP
index 8cbdb95..fb65fb7 100644 (file)
 
 /* Check the group instance which has same interface name,
  * before using this function */
-wfd_group_s *wfd_create_group(void *data, wfd_oem_event_s *group_info)
-{
-       __WDS_LOG_FUNC_ENTER__;
-       wfd_group_s *group = NULL;
-       wfd_manager_s *manager = (wfd_manager_s*) data;
-       char error_buf[MAX_SIZE_ERROR_BUFFER] = {0, };
-
-       if (!manager || !group_info) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
-               return NULL;
-       }
-       wfd_oem_group_data_s *edata = (wfd_oem_group_data_s *)group_info->edata;
-
-       if (!edata) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
-               return NULL;
-       }
-
-       group = manager->group;
-       if (group) {
-               WDS_LOGE("Group already exist");
-               __WDS_LOG_FUNC_EXIT__;
-               return NULL;
-       }
-
-       errno = 0;
-       group = (wfd_group_s*) g_try_malloc0(sizeof(wfd_group_s));
-       if (!group) {
-               strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER);
-               WDS_LOGE("Failed to allocate memory for group. [%s]", error_buf);
-               __WDS_LOG_FUNC_EXIT__;
-               return NULL;
-       }
-
-       memcpy(group->ifname, group_info->ifname, IFACE_NAME_LEN);
-       group->ifname[IFACE_NAME_LEN] = '\0';
-       group->role = group_info->dev_role;
-       memcpy(group->go_dev_addr, edata->go_dev_addr, MACADDR_LEN);
-
-       g_strlcpy(group->ssid, edata->ssid, DEV_NAME_LEN + 1);
-       g_strlcpy(group->passphrase, edata->pass, PASSPHRASE_LEN_MAX + 1);
-       memset(manager->local->passphrase, 0x0, PASSPHRASE_LEN_MAX + 1);
-       group->freq = edata->freq;
-
-       manager->group = group;
-       manager->local->dev_role = group_info->dev_role;
-
-       wfd_util_dhcps_start(group->ifname);
-       group->pending = FALSE;
-       WDS_LOGD("Role is Group Owner. DHCP Server started");
-
-       __WDS_LOG_FUNC_EXIT__;
-       return group;
-}
 
 /* Used for CTRL-EVENT_CONNECTED event that comes before group created */
 wfd_group_s *wfd_create_pending_group(void *data, unsigned char * bssid)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_group_s *group = NULL;
        wfd_manager_s *manager = (wfd_manager_s*) data;
        char error_buf[MAX_SIZE_ERROR_BUFFER] = {0, };
 
        if (!manager || !bssid) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return NULL;
        }
 
        group = manager->group;
        if (group) {
-               WDS_LOGE("Group already exist");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Group already exist");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return NULL;
        }
 
@@ -129,7 +73,7 @@ wfd_group_s *wfd_create_pending_group(void *data, unsigned char * bssid)
        if (!group) {
                strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER);
                WDS_LOGE("Failed to allocate memory for group. [%s]", error_buf);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return NULL;
        }
 
@@ -137,35 +81,35 @@ wfd_group_s *wfd_create_pending_group(void *data, unsigned char * bssid)
        group->flags &= WFD_GROUP_FLAG_NONE;
        group->pending = TRUE;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return group;
 }
 
 int wfd_group_complete(void *data, wfd_oem_event_s *group_info)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = (wfd_manager_s*) data;
        wfd_session_s *session = NULL;
        wfd_group_s *group = NULL;
        wfd_device_s *peer = NULL;
 
        if (!manager || !group_info) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
        wfd_oem_group_data_s *edata = (wfd_oem_group_data_s *)group_info->edata;
 
        if (!edata) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        group = manager->group;
        if (!group) {
-               WDS_LOGE("Group not found");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Group not found");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -187,7 +131,7 @@ int wfd_group_complete(void *data, wfd_oem_event_s *group_info)
        peer = wfd_session_get_peer(session);
        if (!peer && !(group->flags & WFD_GROUP_FLAG_AUTONOMOUS)) {
                if (!session && (group->flags & WFD_GROUP_FLAG_PERSISTENT)) {
-                       WDS_LOGE("Group created by supplicant is persistent group.");
+                       WDS_LOGE("Group created by supplicant is persistent group.");//LCOV_EXCL_LINE
                        /**
                         * 1. When GO, start dhcpd and start session at peer joined event.
                         * 2. When GC, start dhcpc after adding GO Address as peer.
@@ -196,7 +140,7 @@ int wfd_group_complete(void *data, wfd_oem_event_s *group_info)
                                peer = wfd_peer_find_by_addr(manager,
                                                             group->go_dev_addr);
                                if (!peer) {
-                                       WDS_LOGI("Add peer GO");
+                                       WDS_LOGI("Add peer GO");//LCOV_EXCL_LINE
                                        peer = wfd_add_peer(manager,
                                                            group->go_dev_addr,
                                                            "PEER-GO");
@@ -205,22 +149,22 @@ int wfd_group_complete(void *data, wfd_oem_event_s *group_info)
                } else {
                        WDS_LOGD("Failed to find peer by device address[" MACSECSTR "]",
                                                        MAC2SECSTR(edata->go_dev_addr));
-                       __WDS_LOG_FUNC_EXIT__;
+                       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                        return -1;
                }
        }
 
        if (group->role == WFD_DEV_ROLE_GO) {
                wfd_util_dhcps_start(group->ifname);
-               WDS_LOGD("Role is Group Owner. DHCP Server started");
+               WDS_LOGD("Role is Group Owner. DHCP Server started");//LCOV_EXCL_LINE
        } else {
                if (!peer) {
-                       WDS_LOGE("Peer is not in the session");
-                       __WDS_LOG_FUNC_EXIT__;
+                       WDS_LOGE("Peer is not in the session");//LCOV_EXCL_LINE
+                       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                        return -1;
                }
 
-               WDS_LOGD("Role is Group Client.complete session and add peer to member");
+               WDS_LOGD("Role is Group Client.complete session and add peer to member");//LCOV_EXCL_LINE
                memcpy(peer->intf_addr, group->go_dev_addr, MACADDR_LEN);
                wfd_group_add_member(group, peer->dev_addr);
                if (session)
@@ -237,13 +181,13 @@ int wfd_group_complete(void *data, wfd_oem_event_s *group_info)
                        wfd_util_dhcpc_start(group->ifname, peer);
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_destroy_group(void *data)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_group_s *group = NULL;
        wfd_manager_s *manager = (wfd_manager_s*) data;
        GList *temp = NULL;
@@ -251,15 +195,15 @@ int wfd_destroy_group(void *data)
        int count = 0;
 
        if (!data) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        group = manager->group;
        if (!group) {
-               WDS_LOGE("Group not exist");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Group not exist");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
        manager->group = NULL;
@@ -291,87 +235,87 @@ int wfd_destroy_group(void *data)
        g_free(group);
 
        manager->local->dev_role = WFD_DEV_ROLE_NONE;
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 #if 0
 int wfd_group_get_channel(wfd_group_s *group)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        if (!group) {
                WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return group->freq;
 }
 #endif
 
 int wfd_group_is_autonomous(wfd_group_s *group)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        if (!group) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return ((group->flags & WFD_GROUP_FLAG_AUTONOMOUS) == WFD_GROUP_FLAG_AUTONOMOUS);
 }
 
 #if 0
 int wfd_group_get_members()
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_group_make_persistent()
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_group_get_flags(wfd_group_s *group)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        if (!group) {
                WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return group->flags;
 }
 #endif
 
 wfd_device_s *wfd_group_find_member_by_addr(wfd_group_s *group, unsigned char *addr)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GList *temp = NULL;
        wfd_device_s *member = NULL;
 
        if (!group || !addr) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return NULL;
        }
 
        if (!group->member_count) {
-               WDS_LOGE("There is no members");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("There is no members");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return NULL;
        }
 
@@ -380,39 +324,39 @@ wfd_device_s *wfd_group_find_member_by_addr(wfd_group_s *group, unsigned char *a
                member = temp->data;
                if (!memcmp(member->intf_addr, addr, MACADDR_LEN) ||
                                !memcmp(member->dev_addr, addr, MACADDR_LEN)) {
-                       WDS_LOGD("Member found");
+                       WDS_LOGD("Member found");//LCOV_EXCL_LINE
                        break;
                }
                temp = g_list_next(temp);
                member = NULL;
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return member;
 }
 
 int wfd_group_add_member(wfd_group_s *group, unsigned char *addr)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_device_s *member = NULL;
        wfd_manager_s *manager = wfd_get_manager();
 
        if (!group || !addr) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        member = wfd_group_find_member_by_addr(group, addr);
        if (member) {
-               WDS_LOGE("Member already exist");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Member already exist");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        member = wfd_peer_find_by_addr(manager, addr);
        if (!member)
-               WDS_LOGE("Peer not found");
+               WDS_LOGE("Peer not found");//LCOV_EXCL_LINE
 
        group->members = g_list_prepend(group->members, member);
        group->member_count++;
@@ -420,25 +364,25 @@ int wfd_group_add_member(wfd_group_s *group, unsigned char *addr)
        manager->peers = g_list_remove(manager->peers, member);
        manager->peer_count--;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_group_remove_member(wfd_group_s *group, unsigned char *addr)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_device_s *member = NULL;
        wfd_manager_s *manager = wfd_get_manager();
 
        if (!group || !addr) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        if (group->member_count == 0) {
-               WDS_LOGE("There is no members");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("There is no members");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -446,7 +390,7 @@ int wfd_group_remove_member(wfd_group_s *group, unsigned char *addr)
        if (!member) {
                WDS_LOGD("Member not found [MAC: " MACSECSTR "]",
                                                MAC2SECSTR(addr));
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -466,6 +410,6 @@ int wfd_group_remove_member(wfd_group_s *group, unsigned char *addr)
                wfd_peer_clear_all(manager);
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
index 016c13e..cbd1bed 100644 (file)
@@ -171,7 +171,7 @@ static GHashTable *wfd_manager_iface_tbl[WFD_IFACE_MAX];
 
 static int set_iface_hash(wfd_manager_iface_method_handler handler[], int idx)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GHashTable *new_hash_tbl;
        int cnt;
        int ret = -1;
@@ -179,7 +179,7 @@ static int set_iface_hash(wfd_manager_iface_method_handler handler[], int idx)
        new_hash_tbl = NULL;
        new_hash_tbl =  g_hash_table_new(g_str_hash, g_str_equal);
        if (!new_hash_tbl) {
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return ret;
        }
 
@@ -192,13 +192,13 @@ static int set_iface_hash(wfd_manager_iface_method_handler handler[], int idx)
        }
        wfd_manager_iface_tbl[idx] = new_hash_tbl;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_manager_iface_init()
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        /*test manage iface */
        int ret = -1;
        int cnt;
@@ -209,62 +209,62 @@ int wfd_manager_iface_init()
 
        if (set_iface_hash(wfd_manager_iface_manage, WFD_IFACE_MANAGE) != 0) {
                wfd_manager_iface_deinit();
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return ret;
        }
 
        if (set_iface_hash(wfd_manager_iface_group, WFD_IFACE_GROUP) != 0) {
                wfd_manager_iface_deinit();
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return ret;
        }
 
        if (set_iface_hash(wfd_manager_iface_config, WFD_IFACE_CONFIG) != 0) {
                wfd_manager_iface_deinit();
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return ret;
        }
 
        if (set_iface_hash(wfd_manager_iface_service, WFD_IFACE_SERVICE) != 0) {
                wfd_manager_iface_deinit();
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return ret;
        }
 
        if (set_iface_hash(wfd_manager_iface_display, WFD_IFACE_DISPLAY) != 0) {
                wfd_manager_iface_deinit();
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return ret;
        }
 
        if (set_iface_hash(wfd_manager_iface_asp, WFD_IFACE_ASP) != 0) {
                wfd_manager_iface_deinit();
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return ret;
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 void wfd_manager_iface_deinit()
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        int cnt;
        for (cnt = 0; cnt < WFD_IFACE_MAX; cnt++) {
                if (wfd_manager_iface_tbl[cnt])
                        g_hash_table_destroy(wfd_manager_iface_tbl[cnt]);
                wfd_manager_iface_tbl[cnt] = NULL;
        }
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
-
+//LCOV_EXCL_START
 void wfd_manager_iface_manage_handler(const char *method,
                GVariant *parameters,
                GDBusMethodInvocation *invocation)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        method_handler handler;
 
        handler = (method_handler)g_hash_table_lookup
@@ -279,7 +279,7 @@ void wfd_manager_iface_group_handler(const char *method,
                GVariant *parameters,
                GDBusMethodInvocation *invocation)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        method_handler handler;
 
        handler = (method_handler)g_hash_table_lookup
@@ -287,7 +287,7 @@ void wfd_manager_iface_group_handler(const char *method,
 
        if (handler)
                handler(parameters, invocation);
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
@@ -295,14 +295,14 @@ void wfd_manager_iface_config_handler(const char *method,
                GVariant *parameters,
                GDBusMethodInvocation *invocation)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        method_handler handler;
 
        handler = (method_handler)g_hash_table_lookup
                        (wfd_manager_iface_tbl[WFD_IFACE_CONFIG], method);
        if (handler)
                handler(parameters, invocation);
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
@@ -310,14 +310,14 @@ void wfd_manager_iface_service_handler(const char *method,
                GVariant *parameters,
                GDBusMethodInvocation *invocation)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        method_handler handler;
 
        handler = (method_handler)g_hash_table_lookup
                        (wfd_manager_iface_tbl[WFD_IFACE_SERVICE], method);
        if (handler)
                handler(parameters, invocation);
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
@@ -325,14 +325,14 @@ void wfd_manager_iface_display_handler(const char *method,
                GVariant *parameters,
                GDBusMethodInvocation *invocation)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        method_handler handler;
 
        handler = (method_handler)g_hash_table_lookup
                        (wfd_manager_iface_tbl[WFD_IFACE_DISPLAY], method);
        if (handler)
                handler(parameters, invocation);
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
@@ -340,13 +340,14 @@ void wfd_manager_iface_asp_handler(const char *method,
                GVariant *parameters,
                GDBusMethodInvocation *invocation)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        method_handler handler;
 
        handler = (method_handler)g_hash_table_lookup
                        (wfd_manager_iface_tbl[WFD_IFACE_ASP], method);
        if (handler)
                handler(parameters, invocation);
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
+//LCOV_EXCL_STOP
index 556bbf7..c4f8694 100644 (file)
@@ -39,7 +39,7 @@
 
 int main(int argc, char *argv[])
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GMainLoop *main_loop = NULL;
        wfd_manager_s *manager = NULL;
 
@@ -54,13 +54,13 @@ int main(int argc, char *argv[])
 
        if (wfd_manager_load() < 0) {
                WDS_LOGE("Failed to initialize wifi-direct manager");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
        manager = wfd_get_manager();
        if (!manager) {
                WDS_LOGE("Failed to initialize wifi-direct manager");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -71,7 +71,7 @@ int main(int argc, char *argv[])
        if (!manager->plugin_handle) {
                WDS_LOGE("Failed to initialize plugin");
                wfd_manager_unload(manager);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
        WDS_LOGD("Succeeded to load plugin");
@@ -90,14 +90,14 @@ int main(int argc, char *argv[])
                WDS_LOGE("Failed to DBus");
                wfd_util_plugin_deinit(manager);
                wfd_manager_unload();
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        main_loop = g_main_loop_new(NULL, FALSE);
        if (main_loop == NULL) {
                WDS_LOGE("Failed to create GMainLoop structure");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
        manager->main_loop = main_loop;
@@ -116,6 +116,6 @@ int main(int argc, char *argv[])
 
        wfd_manager_unload();
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
index 6543207..572d0ee 100644 (file)
 #include "wifi-direct-prd.h"
 #endif /* TIZEN_ENABLE_PRD */
 
-wfd_manager_s *g_manager;
+wfd_manager_s *g_manager = NULL;
 
 wfd_manager_s *wfd_get_manager()
 {
        return g_manager;
 }
-
+//LCOV_EXCL_START
 /* Stop wfd-manager services, If no client
    exists and state is deactivated. */
 static gboolean _wfd_exit_timeout_cb(void *user_data)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = (wfd_manager_s*) user_data;
 
        if (!manager) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return TRUE;
        }
 
@@ -79,15 +79,15 @@ static gboolean _wfd_exit_timeout_cb(void *user_data)
        }
 
        if (manager->state == WIFI_DIRECT_STATE_DEACTIVATED) {
-               WDS_LOGD("Terminate Wi-Fi Direct Manager");
+               WDS_LOGD("Terminate Wi-Fi Direct Manager");//LCOV_EXCL_LINE
                g_main_quit(manager->main_loop);
                manager->exit_timer = 0;
                WDS_LOGD("Stop exit timer. State [%d]", manager->state);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return FALSE;
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return TRUE;
 }
 
@@ -160,17 +160,17 @@ void wfd_manager_remove_active_client(const gchar *name,
                }
        }
 }
-
+//LCOV_EXCL_STOP
 static int _wfd_local_init_device(wfd_manager_s *manager)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_device_s *local = NULL;
        int res = 0;
        char error_buf[MAX_SIZE_ERROR_BUFFER] = {0, };
        wfd_oem_config_s *config;
 
        if (!manager) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -186,7 +186,7 @@ static int _wfd_local_init_device(wfd_manager_s *manager)
 
        res = wfd_util_get_phone_name(local->dev_name);
        if (res < 0) {
-               WDS_LOGE("Failed to get phone name of local device. Use default device name");
+               WDS_LOGE("Failed to get phone name of local device. Use default device name");//LCOV_EXCL_LINE
                if (config)
                        g_strlcpy(local->dev_name, config->device_name, DEV_NAME_LEN + 1);
                else
@@ -197,7 +197,7 @@ static int _wfd_local_init_device(wfd_manager_s *manager)
 
        res = wfd_util_get_local_dev_mac(local->dev_addr);
        if (res < 0)
-               WDS_LOGE("Failed to get local device MAC address");
+               WDS_LOGE("Failed to get local device MAC address");//LCOV_EXCL_LINE
 
        memcpy(local->intf_addr, local->dev_addr, MACADDR_LEN);
        local->intf_addr[4] ^= 0x80;
@@ -211,16 +211,16 @@ static int _wfd_local_init_device(wfd_manager_s *manager)
        /* TODO: initialize other local device datas */
        manager->local = local;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 static int _wfd_local_deinit_device(wfd_manager_s *manager)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        if (!manager) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -229,17 +229,17 @@ static int _wfd_local_deinit_device(wfd_manager_s *manager)
        /* TODO: free member of local device */
        g_free(manager->local);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_local_reset_data(wfd_manager_s *manager)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_device_s *local = NULL;
 
        if (!manager) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -252,36 +252,36 @@ int wfd_local_reset_data(wfd_manager_s *manager)
                memset(&(local->display), 0x0, sizeof(wfd_display_s));
        memset(local->ip_addr, 0x0, IPADDR_LEN);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_local_get_dev_name(char *dev_name)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_device_s *local = g_manager->local;
 
        if (!dev_name) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        g_strlcpy(dev_name, local->dev_name, DEV_NAME_LEN + 1);
        WDS_LOGD("Local device name [%s]", dev_name);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_local_set_dev_name(char *dev_name)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_device_s *local = g_manager->local;
 
        if (!dev_name) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -289,150 +289,150 @@ int wfd_local_set_dev_name(char *dev_name)
 
        if (g_manager->state >= WIFI_DIRECT_STATE_ACTIVATED) {
                wfd_oem_set_dev_name(g_manager->oem_ops, dev_name);
-               WDS_LOGD("Device name changed.");
+               WDS_LOGD("Device name changed.");//LCOV_EXCL_LINE
        } else {
                WDS_LOGE("Device name can't changed: state is %d", g_manager->state);
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_local_get_dev_mac(char *dev_mac)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_device_s *local = g_manager->local;
 
        if (!dev_mac) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        g_snprintf(dev_mac, MACSTR_LEN, MACSTR, MAC2STR(local->dev_addr));
        WDS_SECLOGD("Local device MAC address [%s]", dev_mac);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 #if 0
 int wfd_local_get_intf_mac(unsigned char *intf_mac)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_device_s *local = g_manager->local;
 
        if (!intf_mac) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        g_snprintf(intf_mac, MACSTR_LEN, MACSTR, MAC2STR(local->intf_addr));
        WDS_SECLOGD("Local interface MAC address [%s]", intf_mac);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 #endif
 
 int wfd_local_get_ip_addr(char *ip_str)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_device_s *local = g_manager->local;
 
        if (!ip_str) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        snprintf(ip_str, IPSTR_LEN, IPSTR, IP2STR(local->ip_addr));
        WDS_SECLOGD("Local IP address [" IPSECSTR "]", IP2SECSTR(local->ip_addr));
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_local_get_supported_wps_mode(int *config_methods)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_device_s *local = g_manager->local;
 
        if (!config_methods) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        *config_methods = local->config_methods;
        WDS_LOGD("Local config method [0x%x]", *config_methods);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_local_get_wps_mode(int *wps_mode)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_device_s *local = g_manager->local;
 
        if (!wps_mode) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        *wps_mode = local->wps_mode;
        WDS_LOGD("Local wps mode [0x%x]", *wps_mode);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 #if 0
 int wfd_local_set_wps_mode(int wps_mode)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_device_s *local = g_manager->local;
 
        if (!wps_mode) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        local->wps_mode = wps_mode;
        WDS_LOGD("Local wps mode [0x%x]", wps_mode);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 #endif
 
 int wfd_manager_get_go_intent(int *go_intent)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        if (!go_intent) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        *go_intent = g_manager->go_intent;
        WDS_LOGD("Local GO intent [%d]", *go_intent);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_manager_set_go_intent(int go_intent)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        if (go_intent < 0 || go_intent > 15) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -440,101 +440,101 @@ int wfd_manager_set_go_intent(int go_intent)
        if (g_manager->state >= WIFI_DIRECT_STATE_ACTIVATED)
                wfd_oem_set_go_intent(g_manager->oem_ops, go_intent);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_manager_get_max_station(int *max_station)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        if (!max_station) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        *max_station = g_manager->max_station;
        WDS_LOGD("Local max station[%d]", *max_station);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_manager_set_max_station(int max_station)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        if (max_station < 1) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        g_manager->max_station = max_station;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_manager_get_autoconnection(int *autoconnection)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        if (!autoconnection) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        *autoconnection = g_manager->autoconnection;
-       WDS_LOGD("Local autoconnection [%s]", *autoconnection ? "TRUE" : "FALSE");
+       WDS_LOGD("Local autoconnection [%s]", *autoconnection ? "TRUE" : "FALSE");//LCOV_EXCL_LINE
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_manager_set_autoconnection(int autoconnection)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        if (autoconnection < 0) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        g_manager->autoconnection = autoconnection;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_manager_get_req_wps_mode(int *req_wps_mode)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        if (!req_wps_mode) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        *req_wps_mode = g_manager->req_wps_mode;
        WDS_LOGD("Requested wps mode [0x%x]", *req_wps_mode);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_manager_set_req_wps_mode(int req_wps_mode)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_device_s *local = g_manager->local;
 
        if (req_wps_mode != WIFI_DIRECT_WPS_TYPE_PBC &&
                        req_wps_mode != WIFI_DIRECT_WPS_TYPE_PIN_DISPLAY &&
                        req_wps_mode != WIFI_DIRECT_WPS_TYPE_PIN_KEYPAD) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -547,19 +547,19 @@ int wfd_manager_set_req_wps_mode(int req_wps_mode)
        else
                local->wps_mode = req_wps_mode;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_manager_local_config_set(wfd_manager_s *manager)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_device_s *local = NULL;
        int ip_over_eapol = 0;
        int res = 0;
 
        if (!manager) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 
@@ -569,7 +569,7 @@ int wfd_manager_local_config_set(wfd_manager_s *manager)
        WDS_LOGD("Device name set as %s", local->dev_name);
        res = wfd_oem_set_dev_name(manager->oem_ops, local->dev_name);
        if (res < 0) {
-               WDS_LOGE("Failed to set device name");
+               WDS_LOGE("Failed to set device name");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 
@@ -577,13 +577,13 @@ int wfd_manager_local_config_set(wfd_manager_s *manager)
        local->sec_dev_type = DEFAULT_SECONDARY_DEVICE_TYPE;
        res = wfd_oem_set_dev_type(manager->oem_ops, local->pri_dev_type, local->sec_dev_type);
        if (res < 0) {
-               WDS_LOGE("Failed to set device type");
+               WDS_LOGE("Failed to set device type");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 
        res = wfd_oem_set_go_intent(manager->oem_ops, manager->go_intent);
        if (res < 0) {
-               WDS_LOGE("Failed to set go intent");
+               WDS_LOGE("Failed to set go intent");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 
@@ -593,7 +593,7 @@ int wfd_manager_local_config_set(wfd_manager_s *manager)
                ip_over_eapol = 0;
        res = wfd_oem_set_eapol_ip_config(manager->oem_ops, ip_over_eapol);
        if (res < 0) {
-               WDS_LOGE("Failed to set eapol ip config");
+               WDS_LOGE("Failed to set eapol ip config");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 
@@ -602,22 +602,22 @@ int wfd_manager_local_config_set(wfd_manager_s *manager)
 
 int wfd_manager_activate(wfd_manager_s *manager)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        int prev_state = 0;
        int res = 0;
 
        if (!manager) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 
        if (manager->state > WIFI_DIRECT_STATE_ACTIVATING) {
-               WDS_LOGE("Already activated");
+               WDS_LOGE("Already activated");//LCOV_EXCL_LINE
                return 1;
        }
 
        if (manager->state == WIFI_DIRECT_STATE_ACTIVATING) {
-               WDS_LOGE("In progress");
+               WDS_LOGE("In progress");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_NOT_PERMITTED;
        }
 
@@ -630,12 +630,12 @@ int wfd_manager_activate(wfd_manager_s *manager)
        wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATING);
        res = wfd_util_check_wifi_state();
        if (res < 0) {
-               WDS_LOGE("Failed to get wifi state");
+               WDS_LOGE("Failed to get wifi state");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        } else if (res == 0) {
                res = wfd_oem_activate(manager->oem_ops, 0);
                if (res < 0) {
-                       WDS_LOGE("Failed to activate");
+                       WDS_LOGE("Failed to activate");//LCOV_EXCL_LINE
                        wfd_state_set(manager, prev_state);
                        wfd_util_set_wifi_direct_state(prev_state);
                        return WIFI_DIRECT_ERROR_OPERATION_FAILED;
@@ -643,13 +643,13 @@ int wfd_manager_activate(wfd_manager_s *manager)
        } else {
                res = wfd_oem_activate(manager->oem_ops, res);
                if (res < 0) {
-                       WDS_LOGE("Failed to activate");
+                       WDS_LOGE("Failed to activate");//LCOV_EXCL_LINE
                        wfd_state_set(manager, prev_state);
                        wfd_util_set_wifi_direct_state(prev_state);
                        return WIFI_DIRECT_ERROR_OPERATION_FAILED;
                }
        }
-       WDS_LOGE("Succeeded to activate");
+       WDS_LOGE("Succeeded to activate");//LCOV_EXCL_LINE
 
        wfd_state_set(manager, WIFI_DIRECT_STATE_ACTIVATED);
        wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
@@ -661,26 +661,26 @@ int wfd_manager_activate(wfd_manager_s *manager)
 
        res = wfd_util_get_local_dev_mac(manager->local->dev_addr);
        if (res < 0)
-               WDS_LOGE("Failed to get local device MAC address");
+               WDS_LOGE("Failed to get local device MAC address");//LCOV_EXCL_LINE
 
        memcpy(manager->local->intf_addr, manager->local->dev_addr, MACADDR_LEN);
        manager->local->intf_addr[4] ^= 0x80;
        WDS_LOGD("Local Interface MAC address [" MACSECSTR "]",
                                        MAC2SECSTR(manager->local->intf_addr));
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return WIFI_DIRECT_ERROR_NONE;
 }
 
 int wfd_manager_deactivate(wfd_manager_s *manager)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        int prev_state = 0;
        int res = 0;
        wfd_group_s *group = NULL;
 
        if (!manager) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 
@@ -691,24 +691,24 @@ int wfd_manager_deactivate(wfd_manager_s *manager)
        if (manager->is_wifi_display_supported) {
                res = wfd_oem_miracast_init(manager->oem_ops, false);
                if (res < 0)
-                       WDS_LOGE("Failed to initialize miracast");
+                       WDS_LOGE("Failed to initialize miracast");//LCOV_EXCL_LINE
        }
 
        group = (wfd_group_s*) manager->group;
        if (group && group->pending == FALSE) {
                res = wfd_oem_destroy_group(manager->oem_ops, group->ifname);
                if (res < 0)
-                       WDS_LOGE("Failed to destroy group before deactivation");
+                       WDS_LOGE("Failed to destroy group before deactivation");//LCOV_EXCL_LINE
        }
 
        res = wfd_util_check_wifi_state();
        if (res < 0) {
-               WDS_LOGE("Failed to get wifi state");
+               WDS_LOGE("Failed to get wifi state");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        } else if (res == 0) {
                res = wfd_oem_deactivate(manager->oem_ops, 0);
                if (res < 0) {
-                       WDS_LOGE("Failed to deactivate");
+                       WDS_LOGE("Failed to deactivate");//LCOV_EXCL_LINE
                        wfd_state_set(manager, prev_state);
                        wfd_util_set_wifi_direct_state(prev_state);
                        return WIFI_DIRECT_ERROR_OPERATION_FAILED;
@@ -717,15 +717,15 @@ int wfd_manager_deactivate(wfd_manager_s *manager)
                /* FIXME: We should do something to stop p2p feature of Driver */
                res = wfd_oem_deactivate(manager->oem_ops, res);
                if (res < 0) {
-                       WDS_LOGE("Failed to deactivate");
+                       WDS_LOGE("Failed to deactivate");//LCOV_EXCL_LINE
                        wfd_state_set(manager, prev_state);
                        wfd_util_set_wifi_direct_state(prev_state);
                        return WIFI_DIRECT_ERROR_OPERATION_FAILED;
                }
-               WDS_LOGE("Do not need to deactivate Wi-Fi");
+               WDS_LOGE("Do not need to deactivate Wi-Fi");//LCOV_EXCL_LINE
        }
 
-       WDS_LOGE("Succeeded to deactivate");
+       WDS_LOGE("Succeeded to deactivate");//LCOV_EXCL_LINE
 
        wfd_state_set(manager, WIFI_DIRECT_STATE_DEACTIVATED);
        wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_DEACTIVATED);
@@ -740,38 +740,38 @@ int wfd_manager_deactivate(wfd_manager_s *manager)
        if (manager->is_connection_agent)
                wfd_util_stop_wifi_direct_popup();
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return WIFI_DIRECT_ERROR_NONE;
 }
 
 int wfd_manager_connect(wfd_manager_s *manager, unsigned char *peer_addr)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_session_s *session = NULL;
        int res = 0;
 
        if (!manager || !peer_addr) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 
        if (manager->state != WIFI_DIRECT_STATE_ACTIVATED &&
                        manager->state != WIFI_DIRECT_STATE_DISCOVERING &&
                        manager->state != WIFI_DIRECT_STATE_GROUP_OWNER) {
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_NOT_PERMITTED;
        }
 
        wfd_group_s *group = (wfd_group_s*) manager->group;
        if (group && group->member_count >= manager->max_station) {
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_TOO_MANY_CLIENT;
        }
 
        session = (wfd_session_s*) manager->session;
        if (session && session->type != SESSION_TYPE_INVITE) {
-               WDS_LOGE("Session already exist and it's not an invitation session");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Session already exist and it's not an invitation session");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_NOT_PERMITTED;
        }
 
@@ -779,8 +779,8 @@ int wfd_manager_connect(wfd_manager_s *manager, unsigned char *peer_addr)
                session = wfd_create_session(manager, peer_addr,
                                        manager->req_wps_mode, SESSION_DIRECTION_OUTGOING);
                if (!session) {
-                       WDS_LOGE("Failed to create new session");
-                       __WDS_LOG_FUNC_EXIT__;
+                       WDS_LOGE("Failed to create new session");//LCOV_EXCL_LINE
+                       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                        return WIFI_DIRECT_ERROR_OPERATION_FAILED;
                }
        }
@@ -793,21 +793,21 @@ int wfd_manager_connect(wfd_manager_s *manager, unsigned char *peer_addr)
                res = wfd_session_start(session);
        }
        if (res < 0) {
-               WDS_LOGE("Failed to start session");
+               WDS_LOGE("Failed to start session");//LCOV_EXCL_LINE
                wfd_destroy_session(manager);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
        wfd_state_set(manager, WIFI_DIRECT_STATE_CONNECTING);
        wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_CONNECTING);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return WIFI_DIRECT_ERROR_NONE;
 }
 
 int wfd_manager_asp_connect_session(wfd_manager_s *manager, void *params)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_session_s *session = NULL;
        wfd_oem_asp_prov_s *prov_params = NULL;
        int req_wps_mode = WFD_WPS_MODE_P2PS;
@@ -815,15 +815,15 @@ int wfd_manager_asp_connect_session(wfd_manager_s *manager, void *params)
 
        prov_params = (wfd_oem_asp_prov_s *)params;
        if (!manager || !prov_params) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 
        session = (wfd_session_s*) manager->session;
        if (session) {
-               WDS_LOGE("Session already exists");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Session already exists");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_NOT_PERMITTED;
        }
 
@@ -837,44 +837,44 @@ int wfd_manager_asp_connect_session(wfd_manager_s *manager, void *params)
        session = wfd_create_session(manager, prov_params->service_mac,
                        req_wps_mode, SESSION_DIRECTION_OUTGOING);
        if (!session) {
-               WDS_LOGE("Failed to create new session");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Failed to create new session");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 
        res = wfd_session_asp_session_start(session, prov_params);
        if (res < 0) {
-               WDS_LOGE("Failed to start session");
+               WDS_LOGE("Failed to start session");//LCOV_EXCL_LINE
                wfd_destroy_session(manager);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 
        wfd_state_set(manager, WIFI_DIRECT_STATE_CONNECTING);
        wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_CONNECTING);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return WIFI_DIRECT_ERROR_NONE;
 }
 
 int wfd_manager_asp_confirm_session(wfd_manager_s *manager, void *params, int confirmed)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_session_s *session = NULL;
        wfd_oem_asp_prov_s *prov_params = NULL;
        int res = 0;
 
        prov_params = (wfd_oem_asp_prov_s *)params;
        if (!manager || !prov_params) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 
        session = (wfd_session_s*) manager->session;
        if (!session) {
-               WDS_LOGE("Session not exists");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Session not exists");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_NOT_PERMITTED;
        }
 
@@ -887,7 +887,7 @@ int wfd_manager_asp_confirm_session(wfd_manager_s *manager, void *params, int co
 
        if (session->session_id != prov_params->session_id ||
                        memcmp(&(session->session_mac), prov_params->session_mac, MACADDR_LEN) != 0) {
-               WDS_LOGE("Session MAC or ID not matched");
+               WDS_LOGE("Session MAC or ID not matched");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 
@@ -899,77 +899,77 @@ int wfd_manager_asp_confirm_session(wfd_manager_s *manager, void *params, int co
 
        res = wfd_oem_asp_prov_disc_req(manager->oem_ops, prov_params);
        if (res < 0) {
-               WDS_LOGE("Failed to start session");
+               WDS_LOGE("Failed to start session");//LCOV_EXCL_LINE
                wfd_destroy_session(manager);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
        wfd_state_set(manager, WIFI_DIRECT_STATE_CONNECTING);
        wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_CONNECTING);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return WIFI_DIRECT_ERROR_NONE;
 }
 
 int wfd_manager_accept_connection(wfd_manager_s *manager, unsigned char *peer_addr)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_session_s *session = NULL;
        wfd_device_s *peer = NULL;
        int res = 0;
 
        if (!manager || !peer_addr) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 
        session = (wfd_session_s*) manager->session;
        if (!session) {
-               WDS_LOGE("Session not found");
+               WDS_LOGE("Session not found");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_NOT_PERMITTED;
        }
 
        peer = wfd_peer_find_by_dev_addr(manager, peer_addr);
        if (!peer) {
-               WDS_LOGE("Peer is NULL");
+               WDS_LOGE("Peer is NULL");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 
        if (memcmp(session->peer->dev_addr, peer_addr, MACADDR_LEN) != 0) {
-               WDS_LOGE("Peer and ongoing session peer are different");
+               WDS_LOGE("Peer and ongoing session peer are different");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 
        if (manager->local->dev_role == WFD_DEV_ROLE_GO) {
-               WDS_LOGD("My device is GO and peer want to join my group, so WPS will be started");
+               WDS_LOGD("My device is GO and peer want to join my group, so WPS will be started");//LCOV_EXCL_LINE
                res = wfd_session_wps(session);
        } else if (peer->dev_role == WFD_DEV_ROLE_GO) {
-               WDS_LOGD("Peer device is GO, so Prov_Disc or Join will be started");
+               WDS_LOGD("Peer device is GO, so Prov_Disc or Join will be started");//LCOV_EXCL_LINE
                if (session->type == SESSION_TYPE_INVITE) {
                        if (session->state == SESSION_STATE_CREATED) {
-                               WDS_LOGD("Invitation session. PD will be started");
+                               WDS_LOGD("Invitation session. PD will be started");//LCOV_EXCL_LINE
                                res = wfd_session_start(session);
                        } else {
-                               WDS_LOGD("Invitation session. Join will be started");
+                               WDS_LOGD("Invitation session. Join will be started");//LCOV_EXCL_LINE
                                res = wfd_session_join(session);
                        }
                } else {
                        if (manager->autoconnection && (manager->auto_pin[0] != 0))
                                g_strlcpy(session->wps_pin, manager->auto_pin, PINSTR_LEN + 1);
 
-                       WDS_LOGD("Peer device is GO, so WPS will be started");
+                       WDS_LOGD("Peer device is GO, so WPS will be started");//LCOV_EXCL_LINE
                        res = wfd_session_connect(session);
                }
        } else {
                /* We should wait GO_NEGO_REQ from peer(MO) in autoconnection mode. */
                /* Otherwise, GO Nego is sometimes failed. */
                if (manager->autoconnection == FALSE) {
-                       WDS_LOGD("My device is Device, so Negotiation will be started");
+                       WDS_LOGD("My device is Device, so Negotiation will be started");//LCOV_EXCL_LINE
                        res = wfd_session_connect(session);
                }
        }
        if (res < 0) {
-               WDS_LOGE("Failed to start session");
+               WDS_LOGE("Failed to start session");//LCOV_EXCL_LINE
                if (manager->local->dev_role == WFD_DEV_ROLE_GO) {
                        wfd_state_set(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
                        wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_GROUP_OWNER);
@@ -982,30 +982,30 @@ int wfd_manager_accept_connection(wfd_manager_s *manager, unsigned char *peer_ad
        wfd_state_set(manager, WIFI_DIRECT_STATE_CONNECTING);
        wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_CONNECTING);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return WIFI_DIRECT_ERROR_NONE;
 }
 
 
 int wfd_manager_cancel_connection(wfd_manager_s *manager, unsigned char *peer_addr)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_group_s *group = NULL;
        int res = 0;
 
        if (!manager || !peer_addr) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_INVALID_PARAMETER;
        }
 
        if (!manager->session && manager->state != WIFI_DIRECT_STATE_CONNECTING) {
-               WDS_LOGE("It's not CONNECTING state");
+               WDS_LOGE("It's not CONNECTING state");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_NOT_PERMITTED;
        }
 
        res = wfd_session_cancel(manager->session, peer_addr);
        if (res < 0) {
-               WDS_LOGE("Failed to cancel session");
+               WDS_LOGE("Failed to cancel session");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 
@@ -1024,25 +1024,25 @@ int wfd_manager_cancel_connection(wfd_manager_s *manager, unsigned char *peer_ad
                wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return WIFI_DIRECT_ERROR_NONE;
 }
 
 
 int wfd_manager_reject_connection(wfd_manager_s *manager, unsigned char *peer_addr)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_session_s *session = NULL;
        int res = 0;
 
        if (!manager || !peer_addr) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 
        session = (wfd_session_s*) manager->session;
        if (!session) {
-               WDS_LOGE("Session not found");
+               WDS_LOGE("Session not found");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_NOT_PERMITTED;
        }
 
@@ -1052,13 +1052,13 @@ int wfd_manager_reject_connection(wfd_manager_s *manager, unsigned char *peer_ad
        }
 
        if (session->direction != SESSION_DIRECTION_INCOMING) {
-               WDS_LOGE("Only incomming session can be rejected");
+               WDS_LOGE("Only incomming session can be rejected");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_NOT_PERMITTED;
        }
 
        res = wfd_session_reject(session, peer_addr);
        if (res < 0) {
-               WDS_LOGE("Failed to reject connection");
+               WDS_LOGE("Failed to reject connection");//LCOV_EXCL_LINE
                /* TODO: check whether set state and break */
        }
        wfd_destroy_session(manager);
@@ -1071,37 +1071,37 @@ int wfd_manager_reject_connection(wfd_manager_s *manager, unsigned char *peer_ad
                wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return WIFI_DIRECT_ERROR_NONE;
 }
 
 
 int wfd_manager_disconnect(wfd_manager_s *manager, unsigned char *peer_addr)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_group_s *group = NULL;
        wfd_device_s *peer = NULL;
        int res = 0;
 
        if (!manager) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 
        if (!peer_addr) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_INVALID_PARAMETER;
        }
 
        group = (wfd_group_s*) manager->group;
        if (!group) {
-               WDS_LOGE("Group not found");
+               WDS_LOGE("Group not found");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_NOT_PERMITTED;
        }
 
        peer = wfd_group_find_member_by_addr(group, peer_addr);
        if (!peer) {
-               WDS_LOGE("Connected peer not found");
+               WDS_LOGE("Connected peer not found");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_INVALID_PARAMETER;
        }
 
@@ -1118,11 +1118,11 @@ int wfd_manager_disconnect(wfd_manager_s *manager, unsigned char *peer_addr)
        }
 
        if (res < 0) {
-               WDS_LOGE("Failed to disconnect peer");
+               WDS_LOGE("Failed to disconnect peer");//LCOV_EXCL_LINE
                res = WIFI_DIRECT_ERROR_OPERATION_FAILED;
                goto failed;
        }
-       WDS_LOGE("Succeeded to disconnect peer");
+       WDS_LOGE("Succeeded to disconnect peer");//LCOV_EXCL_LINE
 
        wfd_group_remove_member(group, peer_addr);
 
@@ -1134,7 +1134,7 @@ int wfd_manager_disconnect(wfd_manager_s *manager, unsigned char *peer_addr)
                wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return WIFI_DIRECT_ERROR_NONE;
 
 failed:
@@ -1146,24 +1146,24 @@ failed:
                wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_CONNECTED);
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return res;
 }
 
 int wfd_manager_disconnect_all(wfd_manager_s *manager)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_group_s *group = NULL;
        int res = 0;
 
        if (!manager) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 
        group = (wfd_group_s*) manager->group;
        if (!group) {
-               WDS_LOGE("Group not found");
+               WDS_LOGE("Group not found");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_NOT_PERMITTED;
        }
 
@@ -1172,18 +1172,18 @@ int wfd_manager_disconnect_all(wfd_manager_s *manager)
 
        res = wfd_oem_destroy_group(manager->oem_ops, group->ifname);
        if (res < 0) {
-               WDS_LOGE("Failed to destroy group");
+               WDS_LOGE("Failed to destroy group");//LCOV_EXCL_LINE
                res = WIFI_DIRECT_ERROR_OPERATION_FAILED;
                goto failed;
        }
-       WDS_LOGE("Succeeded to disconnect all peer");
+       WDS_LOGE("Succeeded to disconnect all peer");//LCOV_EXCL_LINE
 
        wfd_destroy_group(manager);
 
        wfd_state_set(manager, WIFI_DIRECT_STATE_ACTIVATED);
        wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return WIFI_DIRECT_ERROR_NONE;
 
 failed:
@@ -1195,13 +1195,13 @@ failed:
                wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_CONNECTED);
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return res;
 }
 
 int wfd_manager_get_peer_info(wfd_manager_s *manager, unsigned char *addr, wfd_discovery_entry_s **peer)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_device_s *peer_dev = NULL;
        wfd_discovery_entry_s *peer_info;
        wfd_oem_device_s *oem_dev = NULL;
@@ -1209,7 +1209,7 @@ int wfd_manager_get_peer_info(wfd_manager_s *manager, unsigned char *addr, wfd_d
        char error_buf[MAX_SIZE_ERROR_BUFFER] = {0, };
 
        if (!manager || !addr) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -1222,10 +1222,10 @@ int wfd_manager_get_peer_info(wfd_manager_s *manager, unsigned char *addr, wfd_d
        time = tval.tv_sec;
 #endif
        WDS_LOGI("Current time [%ld]", time);
-
+//LCOV_EXCL_START
        res = wfd_oem_get_peer_info(manager->oem_ops, addr, &oem_dev);
        if (res < 0 || !oem_dev) {
-               WDS_LOGE("Failed to get peer information");
+               WDS_LOGE("Failed to get peer information");//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -1245,7 +1245,7 @@ int wfd_manager_get_peer_info(wfd_manager_s *manager, unsigned char *addr, wfd_d
                WDS_LOGD("peer_count[%d]", manager->peer_count);
        } else {
                if (oem_dev->age > 30 && peer_dev->state == WFD_PEER_STATE_DISCOVERED) {
-                       WDS_LOGE("Too old age to update peer");
+                       WDS_LOGE("Too old age to update peer");//LCOV_EXCL_LINE
                        free(oem_dev);
                        return -1;
                }
@@ -1295,15 +1295,15 @@ int wfd_manager_get_peer_info(wfd_manager_s *manager, unsigned char *addr, wfd_d
                        peer_info->is_wfd_device = 1;
 
        *peer = peer_info;
-
-       __WDS_LOG_FUNC_EXIT__;
+//LCOV_EXCL_STOP
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return res;
 }
 
 
 int wfd_manager_get_peers(wfd_manager_s *manager, wfd_discovery_entry_s **peers_data)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GList *temp = NULL;
        wfd_device_s *peer = NULL;
        wfd_discovery_entry_s *peers = NULL;
@@ -1313,7 +1313,7 @@ int wfd_manager_get_peers(wfd_manager_s *manager, wfd_discovery_entry_s **peers_
        char error_buf[MAX_SIZE_ERROR_BUFFER] = {0, };
 
        if (!manager || !peers_data) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -1389,13 +1389,13 @@ next:
 
        *peers_data = peers;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return count;
 }
 
 int wfd_manager_get_connected_peers(wfd_manager_s *manager, wfd_connected_peer_info_s **peers_data)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_connected_peer_info_s *peers = NULL;
        wfd_group_s *group = NULL;
        wfd_device_s *peer = NULL;
@@ -1405,19 +1405,19 @@ int wfd_manager_get_connected_peers(wfd_manager_s *manager, wfd_connected_peer_i
        char error_buf[MAX_SIZE_ERROR_BUFFER] = {0, };
 
        if (!manager || !peers_data) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return -1;
        }
 
        group = manager->group;
        if (!group) {
-               WDS_LOGE("Group not exist");
+               WDS_LOGE("Group not exist");//LCOV_EXCL_LINE
                return -1;
        }
 
        peer_count = group->member_count;
        if (peer_count == 0) {
-               WDS_LOGD("Member not exist");
+               WDS_LOGD("Member not exist");//LCOV_EXCL_LINE
                return 0;
        }
 
@@ -1457,78 +1457,78 @@ int wfd_manager_get_connected_peers(wfd_manager_s *manager, wfd_connected_peer_i
 
        *peers_data = peers;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return count;
 }
 
 wfd_device_s *wfd_manager_get_connected_peer_by_addr(wfd_manager_s *manager, unsigned char *peer_addr)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_device_s *peer = NULL;
 
        if (peer_addr == NULL) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return peer;
        }
 
        if (manager->group)
                peer = wfd_group_find_member_by_addr(manager->group, peer_addr);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return peer;
 }
 
 #if 0
 wfd_device_s *wfd_manager_find_connected_peer(wfd_manager_s *manager, unsigned char *peer_addr)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_device_s *peer = NULL;
 
        if (!manager || !peer_addr) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return NULL;
        }
 
        peer = wfd_group_find_member_by_addr(manager->group, peer_addr);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return peer;
 }
 #endif
 
 int wfd_manager_get_goup_ifname(char **ifname)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_group_s *group = g_manager->group;
 
        if (!ifname) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        if (!group) {
-               WDS_LOGE("Group not exist");
+               WDS_LOGE("Group not exist");//LCOV_EXCL_LINE
                return -1;
        }
 
        *ifname = group->ifname;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_manager_set_display_device(int type, int port, int hdcp)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_device_s * device = g_manager->local;
        wfd_oem_display_s display;
        int res = 0;
 
        if (!device) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -1543,7 +1543,7 @@ int wfd_manager_set_display_device(int type, int port, int hdcp)
 
        res = wfd_oem_set_display(g_manager->oem_ops, (wfd_oem_display_s*)&display);
        if (res < 0) {
-               WDS_LOGE("Failed to set wifi display");
+               WDS_LOGE("Failed to set wifi display");//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -1551,20 +1551,20 @@ int wfd_manager_set_display_device(int type, int port, int hdcp)
        device->display.port = port;
        device->display.hdcp_support = hdcp;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return res;
 }
 
 int wfd_manager_set_session_availability(int availability)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_device_s * device = g_manager->local;
        wfd_oem_display_s display;
        int res = 0;
 
        if (!device) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -1579,20 +1579,20 @@ int wfd_manager_set_session_availability(int availability)
 
        res = wfd_oem_set_display(g_manager->oem_ops, (wfd_oem_display_s*)&display);
        if (res < 0) {
-               WDS_LOGE("Failed to set wifi display session availability");
+               WDS_LOGE("Failed to set wifi display session availability");//LCOV_EXCL_LINE
                return -1;
        }
 
        device->display.availability = availability;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return res;
 }
 
 int wfd_manager_start_discovery(wfd_manager_s *manager, int mode, int timeout,
                                const char* type, int channel, int frequency)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        int res = WIFI_DIRECT_ERROR_OPERATION_FAILED;
        wfd_oem_scan_param_s param;
        memset(&param, 0x0, sizeof(wfd_oem_scan_param_s));
@@ -1639,8 +1639,8 @@ int wfd_manager_start_discovery(wfd_manager_s *manager, int mode, int timeout,
 
        res = wfd_oem_start_scan(manager->oem_ops, &param);
        if (res < 0) {
-               WDS_LOGE("Failed to start scan");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Failed to start scan");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 
@@ -1654,20 +1654,20 @@ int wfd_manager_start_discovery(wfd_manager_s *manager, int mode, int timeout,
                wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_DISCOVERING);
        }
 
-       WDS_LOGD("Succeeded to start scan");
-       __WDS_LOG_FUNC_EXIT__;
+       WDS_LOGD("Succeeded to start scan");//LCOV_EXCL_LINE
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return WIFI_DIRECT_ERROR_NONE;
 }
 
 int wfd_manager_cancel_discovery(wfd_manager_s *manager)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        int res = 0;
 
        res = wfd_oem_stop_scan(manager->oem_ops);
        if (res < 0) {
-               WDS_LOGE("Failed to stop scan");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Failed to stop scan");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 
@@ -1679,14 +1679,14 @@ int wfd_manager_cancel_discovery(wfd_manager_s *manager)
                wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
        }
 
-       WDS_LOGD("Succeeded to stop scan");
-       __WDS_LOG_FUNC_EXIT__;
+       WDS_LOGD("Succeeded to stop scan");//LCOV_EXCL_LINE
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return WIFI_DIRECT_ERROR_NONE;
 }
 
 wfd_device_s *wfd_manager_get_peer_by_addr(wfd_manager_s *manager, unsigned char *peer_addr)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_device_s *peer = NULL;
        if (manager->group)
                peer = wfd_group_find_member_by_addr(manager->group, peer_addr);
@@ -1696,26 +1696,26 @@ wfd_device_s *wfd_manager_get_peer_by_addr(wfd_manager_s *manager, unsigned char
 
        peer = wfd_peer_find_by_addr(manager, peer_addr);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return peer;
 }
 
 static wfd_manager_s *wfd_manager_init()
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = NULL;
        int res = 0;
 
        manager = (wfd_manager_s*) g_try_malloc0(sizeof(wfd_manager_s));
        if (!manager) {
-               WDS_LOGE("Failed to allocate memory for wfd_manager structure");
+               WDS_LOGE("Failed to allocate memory for wfd_manager structure");//LCOV_EXCL_LINE
                return NULL;
        }
 
        manager->wfd_oem_conf = (wfd_oem_config_s*) g_try_malloc0(sizeof(wfd_oem_config_s));
        if (!manager->wfd_oem_conf) {
                g_free(manager);
-               WDS_LOGE("Failed to allocate memory for wfd_oem_conf structure");
+               WDS_LOGE("Failed to allocate memory for wfd_oem_conf structure");//LCOV_EXCL_LINE
                return NULL;
        }
 
@@ -1729,33 +1729,33 @@ static wfd_manager_s *wfd_manager_init()
 
        res = _wfd_local_init_device(manager);
        if (res < 0) {
-               WDS_LOGE("Failed to initialize local device");
+               WDS_LOGE("Failed to initialize local device");//LCOV_EXCL_LINE
                g_free(manager->wfd_oem_conf);
                g_free(manager);
                return NULL;            /* really stop manager? */
        }
-       WDS_LOGD("Succeeded to initialize local device");
+       WDS_LOGD("Succeeded to initialize local device");//LCOV_EXCL_LINE
 
        manager->client_count = 0;
        manager->client_list = NULL;
        if (manager->is_on_demand) {
                manager->exit_timer = g_timeout_add(120000,
                                                        (GSourceFunc) _wfd_exit_timeout_cb, manager);
-               WDS_LOGD("Exit timer started");
+               WDS_LOGD("Exit timer started");//LCOV_EXCL_LINE
        }
 
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return manager;
 }
 
 int wfd_manager_deinit(wfd_manager_s *manager)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        if (!manager) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -1769,13 +1769,13 @@ int wfd_manager_deinit(wfd_manager_s *manager)
        g_free(manager->wfd_oem_conf);
        g_free(manager);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_manager_load()
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        /* TODO: Parsing argument */
        /* Wi-Fi direct connection for S-Beam can be optimized using argument */
@@ -1785,30 +1785,32 @@ int wfd_manager_load()
         */
        g_manager = wfd_manager_init();
        if (!g_manager) {
-               WDS_LOGE("Failed to initialize wifi-direct manager");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Failed to initialize wifi-direct manager");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
-       WDS_LOGD("Succeeded to initialize manager");
+       WDS_LOGD("Succeeded to initialize manager");//LCOV_EXCL_LINE
 
        if (wfd_manager_iface_init() != 0) {
-               WDS_LOGE("Failed to initialize iface");
+               WDS_LOGE("Failed to initialize iface");//LCOV_EXCL_LINE
                wfd_manager_deinit(g_manager);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
-       WDS_LOGD("Succeeded to load iface");
+       WDS_LOGD("Succeeded to load iface");//LCOV_EXCL_LINE
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
+
 void wfd_manager_unload()
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_iface_deinit();
        wfd_manager_deinit(g_manager);
+       g_manager = NULL;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
index 6c2dd3e..d75a036 100644 (file)
@@ -83,7 +83,7 @@ static bool __is_discovery_available(wfd_manager_s *manager)
 
 void activate_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        int ret;
 
@@ -95,23 +95,23 @@ void activate_handler(GVariant *parameters, void *dest)
        wfd_manager_dbus_emit_signal(WFD_MANAGER_MANAGE_INTERFACE,
                                     "Activation",
                                     g_variant_new("(i)", ret));
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void add_client_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_dbus_reply_error_none((GDBusMethodInvocation *)dest);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void deactivate_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        int ret = WIFI_DIRECT_ERROR_OPERATION_FAILED;
 
@@ -131,13 +131,13 @@ void deactivate_handler(GVariant *parameters, void *dest)
                                     "Deactivation",
                                     g_variant_new("(i)", ret));
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void start_discovery_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        gboolean mode = FALSE;
        gint32 timeout = 0;
@@ -177,7 +177,7 @@ void start_discovery_handler(GVariant *parameters, void *dest)
        if (mode && (manager->local->dev_role == WFD_DEV_ROLE_GO)) {
                WDS_LOGW("Wi-Fi Direct device is already visible, do not start listen");
                wfd_manager_dbus_reply_error_none((GDBusMethodInvocation *)dest);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -197,13 +197,13 @@ void start_discovery_handler(GVariant *parameters, void *dest)
                }
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void stop_discovery_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        int mode = 0;
        int ret;
@@ -222,13 +222,13 @@ void stop_discovery_handler(GVariant *parameters, void *dest)
                wfd_manager_dbus_emit_signal(WFD_MANAGER_MANAGE_INTERFACE,
                                                 "DiscoveryFinished", NULL);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_discovered_peer_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        wfd_discovery_entry_s *peers = NULL;
@@ -308,13 +308,13 @@ void get_discovered_peer_handler(GVariant *parameters, void *dest)
        g_variant_builder_unref(builder_peers);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void connect_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        const char *peer_mac_address = NULL;
        unsigned char mac_addr[MACADDR_LEN] = {0, };
@@ -344,13 +344,13 @@ void connect_handler(GVariant *parameters, void *dest)
                                                                    WFD_EVENT_CONNECTION_IN_PROGRESS,
                                                                    peer_mac_address));
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void disconnect_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        const char *peer_mac_address = NULL;
        unsigned char mac_addr[MACADDR_LEN] = {0, };
@@ -358,24 +358,8 @@ void disconnect_handler(GVariant *parameters, void *dest)
 
        WIFI_DIRECT_METHOD_RET_IF_NULL(manager);
 
-       if (!manager->group || manager->state < WIFI_DIRECT_STATE_CONNECTED) {
-               if (WIFI_DIRECT_STATE_DISCOVERING == manager->state) {
-                       ret = wfd_oem_stop_scan(manager->oem_ops);
-                       if (ret < 0)
-                               WIFI_DIRECT_METHOD_RET_ERR(WIFI_DIRECT_ERROR_OPERATION_FAILED, dest);
-
-                       WDS_LOGI("Succeeded to stop scan");
-                       if (WFD_DEV_ROLE_GO == manager->local->dev_role) {
-                               wfd_state_set(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
-                               wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_GROUP_OWNER);
-                       } else {
-                               wfd_state_set(manager, WIFI_DIRECT_STATE_ACTIVATED);
-                               wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
-                       }
-               } else {
-                       WIFI_DIRECT_METHOD_RET_ERR(WIFI_DIRECT_ERROR_NOT_PERMITTED, dest);
-               }
-       }
+       if (!manager->group || manager->state < WIFI_DIRECT_STATE_CONNECTED)
+               WIFI_DIRECT_METHOD_RET_ERR(WIFI_DIRECT_ERROR_NOT_PERMITTED, dest);
 
        g_variant_get(parameters, "(&s)", &peer_mac_address);
        if (peer_mac_address == NULL)
@@ -391,13 +375,13 @@ void disconnect_handler(GVariant *parameters, void *dest)
                                                 g_variant_new("(iis)", WIFI_DIRECT_ERROR_NONE,
                                                                        WFD_EVENT_DISCONNECTION_RSP,
                                                                        peer_mac_address));
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void cancel_connection_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        const char *peer_mac_address = NULL;
        unsigned char mac_addr[MACADDR_LEN] = {0, };
@@ -422,13 +406,13 @@ void cancel_connection_handler(GVariant *parameters, void *dest)
                                                 g_variant_new("(iis)", WIFI_DIRECT_ERROR_CONNECTION_CANCELED,
                                                                        WFD_EVENT_CONNECTION_RSP,
                                                                        peer_mac_address));
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void accept_connection_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        const char *peer_mac_address = NULL;
        unsigned char mac_addr[MACADDR_LEN] = {0, };
@@ -465,13 +449,13 @@ void accept_connection_handler(GVariant *parameters, void *dest)
                                                                        peer_mac_address));
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void reject_connection_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        wfd_session_s *session = NULL;
        const char *peer_mac_address = NULL;
@@ -502,36 +486,20 @@ void reject_connection_handler(GVariant *parameters, void *dest)
                                                                    WFD_EVENT_CONNECTION_RSP,
                                                                    peer_mac_address));
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void disconnect_all_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        int ret;
 
        WIFI_DIRECT_METHOD_RET_IF_NULL(manager);
 
-       if (!manager->group || manager->state < WIFI_DIRECT_STATE_CONNECTED) {
-               if (WIFI_DIRECT_STATE_DISCOVERING == manager->state) {
-                       ret = wfd_oem_stop_scan(manager->oem_ops);
-                       if (ret < 0)
-                               WIFI_DIRECT_METHOD_RET_ERR(WIFI_DIRECT_ERROR_OPERATION_FAILED, dest);
-
-                       WDS_LOGI("Succeeded to stop scan");
-                       if (WFD_DEV_ROLE_GO == manager->local->dev_role) {
-                               wfd_state_set(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
-                               wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_GROUP_OWNER);
-                       } else {
-                               wfd_state_set(manager, WIFI_DIRECT_STATE_ACTIVATED);
-                               wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
-                       }
-               } else {
-                       WIFI_DIRECT_METHOD_RET_ERR(WIFI_DIRECT_ERROR_NOT_PERMITTED, dest);
-               }
-       }
+       if (!manager->group || manager->state < WIFI_DIRECT_STATE_CONNECTED)
+               WIFI_DIRECT_METHOD_RET_ERR(WIFI_DIRECT_ERROR_NOT_PERMITTED, dest);
 
        wfd_manager_dbus_reply_error_none((GDBusMethodInvocation *)dest);
 
@@ -543,13 +511,13 @@ void disconnect_all_handler(GVariant *parameters, void *dest)
                                                                    WFD_EVENT_DISCONNECTION_RSP,
                                                                    ""));
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_connected_peers_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        wfd_connected_peer_info_s *peers = NULL;
@@ -620,13 +588,13 @@ void get_connected_peers_handler(GVariant *parameters, void *dest)
        g_free(peers);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_connecting_peer_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        wfd_session_s *session;
        wfd_device_s *peer = NULL;
@@ -699,13 +667,13 @@ void get_connecting_peer_handler(GVariant *parameters, void *dest)
        g_free(connecting_peer);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void is_discoverable_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
 
@@ -716,13 +684,13 @@ void is_discoverable_handler(GVariant *parameters, void *dest)
                                            wfd_group_is_autonomous(manager->group) == TRUE));
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void is_listening_only_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
 
@@ -731,13 +699,13 @@ void is_listening_only_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(b)", (manager->scan_mode == WFD_SCAN_MODE_PASSIVE));
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_peer_info_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        wfd_discovery_entry_s *peer = NULL;
        GVariantBuilder *builder_peer = NULL;
@@ -760,6 +728,7 @@ void get_peer_info_handler(GVariant *parameters, void *dest)
                WIFI_DIRECT_METHOD_RET_ERR(WIFI_DIRECT_ERROR_OPERATION_FAILED, dest);
        }
 
+//LCOV_EXCL_START
        builder_peer = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
        g_variant_builder_add(builder_peer, "{sv}",
                        "DeviceName",
@@ -822,13 +791,14 @@ void get_peer_info_handler(GVariant *parameters, void *dest)
        g_free(peer);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+//LCOV_EXCL_STOP
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_state_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        int ret;
@@ -839,13 +809,13 @@ void get_state_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(ii)", ret, manager->state);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void create_group_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        wfd_group_s *group = NULL;
        wfd_oem_group_param_s param;
@@ -881,7 +851,7 @@ void create_group_handler(GVariant *parameters, void *dest)
                ret = WIFI_DIRECT_ERROR_NOT_PERMITTED;
                g_variant_iter_free(iter);
                wfd_manager_dbus_return_err(ret, (GDBusMethodInvocation *)dest);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -923,13 +893,13 @@ void create_group_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void destroy_group_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        wfd_group_s *group = NULL;
        int ret;
@@ -962,13 +932,13 @@ void destroy_group_handler(GVariant *parameters, void *dest)
        wfd_manager_dbus_emit_signal(WFD_MANAGER_GROUP_INTERFACE,
                        "Destroyed", NULL);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void is_group_owner_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        gboolean result;
@@ -982,13 +952,13 @@ void is_group_owner_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(b)", result);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void is_auto_group_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        int result;
@@ -1002,13 +972,13 @@ void is_auto_group_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(b)", result);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void activate_pushbutton_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        int ret;
@@ -1026,13 +996,13 @@ void activate_pushbutton_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
-
+//LCOV_EXCL_START
 void get_persistent_group_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        int persistent_group_count = 0;
@@ -1077,13 +1047,13 @@ void get_persistent_group_handler(GVariant *parameters, void *dest)
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
        g_variant_builder_unref(builder_groups);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
-
+//LCOV_EXCL_STOP
 void remove_persistent_group_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        gchar *ssid;
@@ -1111,13 +1081,13 @@ void remove_persistent_group_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void set_passphrase_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        gchar *passphrase;
@@ -1148,13 +1118,13 @@ void set_passphrase_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_passphrase_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        wfd_group_s *group = NULL;
@@ -1174,13 +1144,13 @@ void get_passphrase_handler(GVariant *parameters, void *dest)
        WDS_LOGI("group->pass : [%s]", group->passphrase);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void set_persistent_group_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        gboolean enabled;
@@ -1199,13 +1169,13 @@ void set_persistent_group_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void is_persistent_group_enabled_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        gboolean result;
@@ -1219,13 +1189,13 @@ void is_persistent_group_enabled_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(b)", result);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_device_name_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GVariant *return_parameters = NULL;
        char device_name[WIFI_DIRECT_MAX_DEVICE_NAME_LEN+1] = {0, };
        int ret;
@@ -1240,13 +1210,13 @@ void get_device_name_handler(GVariant *parameters, void *dest)
        }
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void set_device_name_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GVariant *return_parameters = NULL;
        const char *device_name = NULL;
        int ret;
@@ -1263,13 +1233,13 @@ void set_device_name_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_wps_pin_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        wfd_session_s *session = (wfd_session_s*) manager->session;
@@ -1287,13 +1257,13 @@ void get_wps_pin_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(is)", ret, session->wps_pin);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void set_wps_pin_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        const char *pin = NULL;
@@ -1318,23 +1288,23 @@ void set_wps_pin_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void generate_wps_pin_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_dbus_reply_error_none((GDBusMethodInvocation *)dest);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_supported_wps_mode_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GVariant *return_parameters = NULL;
        int config_methods = 0;
        int ret;
@@ -1347,13 +1317,13 @@ void get_supported_wps_mode_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(ii)", ret, config_methods);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_req_wps_mode_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GVariant *return_parameters = NULL;
        int wps_mode = 0;
        int ret;
@@ -1366,13 +1336,13 @@ void get_req_wps_mode_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(ii)", ret, wps_mode);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void set_req_wps_mode_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GVariant *return_parameters = NULL;
        int type = 0;
        int ret;
@@ -1386,13 +1356,13 @@ void set_req_wps_mode_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_local_wps_mode_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GVariant *return_parameters = NULL;
        int wps_mode = 0;
        int ret;
@@ -1405,13 +1375,13 @@ void get_local_wps_mode_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(ii)", ret, wps_mode);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_ip_address_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        char ip_addr_str[IPSTR_LEN+1] = {0, };
@@ -1430,13 +1400,13 @@ void get_ip_address_handler(GVariant *parameters, void *dest)
        WDS_LOGI("IP addr : [%s]", ip_addr_str);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_mac_address_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GVariant *return_parameters = NULL;
        char device_mac[MACSTR_LEN+1] = {0, };
        int ret;
@@ -1449,13 +1419,13 @@ void get_mac_address_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(is)", ret, device_mac);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_go_intent_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GVariant *return_parameters = NULL;
        int go_intent = 0;
        int ret;
@@ -1468,13 +1438,13 @@ void get_go_intent_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(ii)", ret, go_intent);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void set_go_intent_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GVariant *return_parameters = NULL;
        int go_intent = 0;
        int ret;
@@ -1488,13 +1458,13 @@ void set_go_intent_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_max_client_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GVariant *return_parameters = NULL;
        int max_client = 0;
        int ret;
@@ -1507,13 +1477,13 @@ void get_max_client_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(ii)", ret, max_client);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void set_max_client_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GVariant *return_parameters = NULL;
        int max_client = 0;
        int ret;
@@ -1528,13 +1498,13 @@ void set_max_client_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void set_autoconnection_mode_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GVariant *return_parameters = NULL;
        gboolean mode = FALSE;
        int ret;
@@ -1548,13 +1518,13 @@ void set_autoconnection_mode_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void is_autoconnection_mode_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GVariant *return_parameters = NULL;
        int mode = 0;
        int ret;
@@ -1567,13 +1537,13 @@ void is_autoconnection_mode_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(ib)", ret, mode);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_operating_channel_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        wfd_group_s *group = NULL;
        GVariant *return_parameters = NULL;
@@ -1594,13 +1564,13 @@ void get_operating_channel_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(ii)", ret, channel);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void set_autoconnection_peer_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GVariant *return_parameters = NULL;
        int ret;
 
@@ -1608,13 +1578,13 @@ void set_autoconnection_peer_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_interface_name_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        wfd_group_s *group = NULL;
@@ -1630,13 +1600,13 @@ void get_interface_name_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(is)", ret, group->ifname);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_subnet_mask_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GVariant *return_parameters = NULL;
        char *get_str = NULL;
        char subnet_mask[IPSTR_LEN+1] = {0, };
@@ -1654,13 +1624,13 @@ void get_subnet_mask_handler(GVariant *parameters, void *dest)
        free(get_str);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_gateway_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GVariant *return_parameters = NULL;
        char *get_str = NULL;
        char gateway_addr[IPSTR_LEN+1] = {0, };
@@ -1678,13 +1648,13 @@ void get_gateway_handler(GVariant *parameters, void *dest)
        free(get_str);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_session_timer_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        int session_timer = 0;
@@ -1698,13 +1668,13 @@ void get_session_timer_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(ii)", ret, session_timer);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void set_session_timer_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        int session_timer = 0;
@@ -1719,13 +1689,13 @@ void set_session_timer_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_auto_group_removal_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        gboolean enable;
@@ -1750,7 +1720,7 @@ void get_auto_group_removal_handler(GVariant *parameters, void *dest)
                        return_parameters = g_variant_new("(i)", ret);
                        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-                       __WDS_LOG_FUNC_EXIT__;
+                       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                        return;
                }
                /* Remove group immediately if no connected peer found */
@@ -1769,13 +1739,13 @@ void get_auto_group_removal_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_primary_dev_type_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GVariant *return_parameters = NULL;
        int pri_dev_type = 0;
        int ret;
@@ -1786,13 +1756,13 @@ void get_primary_dev_type_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(ii)", ret, pri_dev_type);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_secondary_dev_type_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GVariant *return_parameters = NULL;
        int sec_dev_type = 0;
        int ret;
@@ -1803,13 +1773,13 @@ void get_secondary_dev_type_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(ii)", ret, sec_dev_type);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_peer_rssi_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        wfd_device_s *peer = NULL;
@@ -1833,13 +1803,13 @@ void get_peer_rssi_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(ii)", ret, peer->rssi);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void add_vsie_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        const char *vsie = NULL;
@@ -1860,13 +1830,13 @@ void add_vsie_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void get_vsie_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        char *vsie = NULL;
@@ -1895,13 +1865,13 @@ void get_vsie_handler(GVariant *parameters, void *dest)
 
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void remove_vsie_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        const char *vsie = NULL;
@@ -1922,13 +1892,13 @@ void remove_vsie_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void srv_start_discovery_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        const char *mac_address = NULL;
        int service_type;
@@ -1960,13 +1930,13 @@ void srv_start_discovery_handler(GVariant *parameters, void *dest)
        wfd_manager_dbus_emit_signal(WFD_MANAGER_SERVICE_INTERFACE,
                        "DiscoveryStarted", NULL);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void srv_stop_discovery_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        const char *mac_address = NULL;
@@ -1998,13 +1968,13 @@ void srv_stop_discovery_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void srv_register_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        int service_type;
@@ -2032,13 +2002,13 @@ void srv_register_handler(GVariant *parameters, void *dest)
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void srv_deregister_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        int service_id = 0;
@@ -2063,13 +2033,13 @@ void srv_deregister_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void display_init_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        int ret;
@@ -2097,13 +2067,13 @@ void display_init_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void display_deinit_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        int ret;
@@ -2128,13 +2098,13 @@ void display_deinit_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void display_set_config_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        int type, port, hdcp;
@@ -2159,13 +2129,13 @@ void display_set_config_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void display_set_avail_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        int availability;
@@ -2188,13 +2158,13 @@ void display_set_avail_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void display_get_peer_type_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        wfd_device_s *peer = NULL;
@@ -2224,13 +2194,13 @@ void display_get_peer_type_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(ii)", ret, peer->display.type);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void display_get_peer_avail_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        wfd_device_s *peer = NULL;
@@ -2259,13 +2229,13 @@ void display_get_peer_avail_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(ii)", ret, peer->display.availability);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void display_get_peer_hdcp_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        wfd_device_s *peer = NULL;
@@ -2294,13 +2264,13 @@ void display_get_peer_hdcp_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(ii)", ret, peer->display.hdcp_support);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void display_get_peer_port_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        wfd_device_s *peer = NULL;
@@ -2329,13 +2299,13 @@ void display_get_peer_port_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(ii)", ret, peer->display.port);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void display_get_peer_throughput_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        wfd_device_s *peer = NULL;
@@ -2364,7 +2334,7 @@ void display_get_peer_throughput_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(ii)", ret, peer->display.max_tput);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
@@ -2380,13 +2350,13 @@ static void __g_variant_to_txt_record(GVariant *variant, char **txt_record)
        int txt_length = 0;
        int key_length = 0;
        gsize value_length = 0;
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        DBUS_DEBUG_VARIANT(variant);
 
        g_variant_get(variant, "a{sv}", &iter);
        if (!iter) {
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -2400,14 +2370,14 @@ static void __g_variant_to_txt_record(GVariant *variant, char **txt_record)
 
        g_variant_iter_free(iter);
        if (txt_length == 0) {
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
        buff = g_try_malloc0(txt_length);
        if (buff == NULL) {
                WDS_LOGE("g_try_malloc0 failed");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
        pos = buff;
@@ -2431,7 +2401,7 @@ static void __g_variant_to_txt_record(GVariant *variant, char **txt_record)
        g_variant_iter_free(iter);
        *txt_record = buff;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
@@ -2636,7 +2606,7 @@ static void __get_asp_confirm_params(GVariantIter *iter, wfd_oem_asp_prov_s *pro
 
 void advertise_service_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        GVariantIter *iter = NULL;
@@ -2673,7 +2643,7 @@ void advertise_service_handler(GVariant *parameters, void *dest)
        if (manager->local->dev_role == WFD_DEV_ROLE_GO) {
                WDS_LOGW("Wi-Fi Direct device is already visible, do not start listen");
                wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -2694,13 +2664,13 @@ void advertise_service_handler(GVariant *parameters, void *dest)
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void cancel_advertise_service_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        wfd_oem_asp_service_s service;
@@ -2725,13 +2695,13 @@ void cancel_advertise_service_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void seek_service_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        wfd_oem_asp_service_s service;
@@ -2782,13 +2752,13 @@ void seek_service_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void cancel_seek_service_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariant *return_parameters = NULL;
        wfd_oem_asp_service_s service;
@@ -2813,13 +2783,13 @@ void cancel_seek_service_handler(GVariant *parameters, void *dest)
        return_parameters = g_variant_new("(i)", ret);
        wfd_manager_dbus_reply_params((GDBusMethodInvocation *)dest, return_parameters);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void connect_sessoin_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariantIter *iter = NULL;
        wfd_oem_asp_prov_s prov_params;
@@ -2861,7 +2831,7 @@ void connect_sessoin_handler(GVariant *parameters, void *dest)
                                ASP_CONNECT_STATUS_NOMORE_CONNECT,
                                NULL);
                g_variant_iter_free(iter);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -2882,13 +2852,13 @@ void connect_sessoin_handler(GVariant *parameters, void *dest)
        }
        g_variant_iter_free(iter);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void confirm_sessoin_handler(GVariant *parameters, void *dest)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GVariantIter *iter = NULL;
        wfd_oem_asp_prov_s prov_params;
@@ -2938,6 +2908,6 @@ void confirm_sessoin_handler(GVariant *parameters, void *dest)
        }
        g_variant_iter_free(iter);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
index 51bd5c6..9cb8d89 100644 (file)
 
 wfd_device_s *wfd_add_peer(void *data, unsigned char *dev_addr, char *dev_name)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = (wfd_manager_s*) data;
        wfd_device_s *peer = NULL;
 
        if (!data || !dev_addr || !dev_name) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return NULL;
        }
 
        peer = wfd_peer_find_by_dev_addr(manager, dev_addr);
        if (peer) {
-               WDS_LOGD("Peer already exist[" MACSECSTR "]", MAC2SECSTR(dev_addr));
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGD("Peer already exist[" MACSECSTR "]", MAC2SECSTR(dev_addr));//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return peer;
        }
 
        peer = (wfd_device_s*) g_try_malloc0(sizeof(wfd_device_s));
        if (peer == NULL) {
-               WDS_LOGE("Failed to allocate memory for peer[" MACSTR "]", MAC2STR(dev_addr));
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Failed to allocate memory for peer[" MACSTR "]", MAC2STR(dev_addr));//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return NULL;
        }
        memcpy(peer->dev_addr, dev_addr, MACADDR_LEN);
@@ -75,26 +75,26 @@ wfd_device_s *wfd_add_peer(void *data, unsigned char *dev_addr, char *dev_name)
        manager->peers = g_list_prepend(manager->peers, peer);
        manager->peer_count++;
        WDS_LOGD("peer_count[%d]", manager->peer_count);
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return peer;
 }
 
 int wfd_remove_peer(void *data, unsigned char *dev_addr)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = (wfd_manager_s*) data;
        wfd_device_s *peer = NULL;
 
        if (!data || !dev_addr) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        peer = wfd_peer_find_by_dev_addr(manager, dev_addr);
        if (!peer) {
-               WDS_LOGE("Failed to find peer device");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Failed to find peer device");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -103,24 +103,24 @@ int wfd_remove_peer(void *data, unsigned char *dev_addr)
 
        g_free(peer);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_update_peer_time(void*data, unsigned char *peer_addr)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = (wfd_manager_s*) data;
        wfd_device_s *peer = NULL;
 
        if (!manager || !peer_addr) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return -1;
        }
 
        peer = wfd_peer_find_by_dev_addr(manager, peer_addr);
        if (!peer) {
-               WDS_LOGD("Peer not found [" MACSECSTR "]", MAC2SECSTR(peer_addr));
+               WDS_LOGD("Peer not found [" MACSECSTR "]", MAC2SECSTR(peer_addr));//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -132,30 +132,31 @@ int wfd_update_peer_time(void*data, unsigned char *peer_addr)
        peer->time = tval.tv_sec;
 #endif
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_update_peer(void *data, wfd_device_s *peer)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = (wfd_manager_s*) data;
        wfd_oem_device_s *oem_dev = NULL;
        int res = 0;
 
        if (!peer) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return -1;
        }
 
+//LCOV_EXCL_START
        res = wfd_oem_get_peer_info(manager->oem_ops, peer->dev_addr, &oem_dev);
        if (res < 0 || !oem_dev) {
-               WDS_LOGE("Failed to get peer information");
+               WDS_LOGE("Failed to get peer information");//LCOV_EXCL_LINE
                return -1;
        }
 
        if (oem_dev->age > 30 && peer->state == WFD_PEER_STATE_DISCOVERED) {
-               WDS_LOGE("Too old age to update peer");
+               WDS_LOGE("Too old age to update peer");//LCOV_EXCL_LINE
                g_free(oem_dev);
                return -1;
        }
@@ -184,20 +185,20 @@ int wfd_update_peer(void *data, wfd_device_s *peer)
        gettimeofday(&tval, NULL);
        peer->time = tval.tv_sec;
 #endif
-
-       __WDS_LOG_FUNC_EXIT__;
+//LCOV_EXCL_STOP
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_peer_clear_all(void *data)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = (wfd_manager_s*) data;
        wfd_device_s *peer = NULL;
        GList *temp = NULL;
 
        if (manager->peer_count == 0) {
-               WDS_LOGD("Peer not exist");
+               WDS_LOGD("Peer not exist");//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -215,29 +216,29 @@ int wfd_peer_clear_all(void *data)
        }
 
        if (manager->peer_count) {
-               WDS_LOGE("Peer count is not synced. left count=%d", manager->peer_count);
+               WDS_LOGE("Peer count is not synced. left count=%d", manager->peer_count);//LCOV_EXCL_LINE
                manager->peer_count = 0;
                return 1;
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 wfd_device_s *wfd_peer_find_by_dev_addr(void *data, unsigned char *dev_addr)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = (wfd_manager_s*) data;
        wfd_device_s *peer = NULL;
        GList *temp = NULL;
 
        if (!data || !dev_addr) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return NULL;
        }
 
        if (manager->peer_count == 0) {
-               WDS_LOGE("There is no peer data");
+               WDS_LOGE("There is no peer data");//LCOV_EXCL_LINE
                return NULL;
        }
 
@@ -245,21 +246,21 @@ wfd_device_s *wfd_peer_find_by_dev_addr(void *data, unsigned char *dev_addr)
        while (temp) {
                peer = temp->data;
                if (!memcmp(peer->dev_addr, dev_addr, MACADDR_LEN)) {
-                       WDS_LOGD("Peer device found[" MACSECSTR "]", MAC2SECSTR(dev_addr));
+                       WDS_LOGD("Peer device found[" MACSECSTR "]", MAC2SECSTR(dev_addr));//LCOV_EXCL_LINE
                        break;
                }
                temp = g_list_next(temp);
                peer = NULL;
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return peer;
 }
 
 #if 0
 wfd_device_s *wfd_peer_find_by_intf_addr(void *data, unsigned char *intf_addr)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = (wfd_manager_s*) data;
        wfd_device_s *peer = NULL;
        GList *temp = NULL;
@@ -285,25 +286,25 @@ wfd_device_s *wfd_peer_find_by_intf_addr(void *data, unsigned char *intf_addr)
                peer = NULL;
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return peer;
 }
 #endif
 
 wfd_device_s *wfd_peer_find_by_addr(void *data, unsigned char *addr)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = (wfd_manager_s*) data;
        wfd_device_s *peer = NULL;
        GList *temp = NULL;
 
        if (!data || !addr) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return NULL;
        }
 
        if (manager->peer_count == 0) {
-               WDS_LOGE("There is no peer data");
+               WDS_LOGE("There is no peer data");//LCOV_EXCL_LINE
                return NULL;
        }
 
@@ -312,21 +313,21 @@ wfd_device_s *wfd_peer_find_by_addr(void *data, unsigned char *addr)
                peer = temp->data;
                if (!memcmp(peer->dev_addr, addr, MACADDR_LEN) ||
                                !memcmp(peer->intf_addr, addr, MACADDR_LEN)) {
-                       WDS_LOGD("Peer device found[" MACSECSTR "]", MAC2SECSTR(addr));
+                       WDS_LOGD("Peer device found[" MACSECSTR "]", MAC2SECSTR(addr));//LCOV_EXCL_LINE
                        break;
                }
                temp = g_list_next(temp);
                peer = NULL;
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return peer;
 }
 
 #if 0
 wfd_device_s *wfd_peer_find_current_peer(void *data)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = (wfd_manager_s*) data;
        if (!manager) {
                WDS_LOGE("Invalid parameter");
@@ -344,21 +345,21 @@ wfd_device_s *wfd_peer_find_current_peer(void *data)
                return NULL;
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return session->peer;
 }
 
 int wfd_peer_set_data(unsigned char *dev_addr, int type, int data)
 {
-       __WDS_LOG_FUNC_ENTER__;
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_peer_get_data(unsigned char *dev_addr, int type, int data)
 {
-       __WDS_LOG_FUNC_ENTER__;
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 #endif
index 188443e..c037452 100644 (file)
@@ -17,7 +17,7 @@
 
 int wfd_service_add(int type, char *info_str, int *service_id)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        wfd_service_s *service = NULL;
        char *info1 = NULL;
@@ -26,19 +26,19 @@ int wfd_service_add(int type, char *info_str, int *service_id)
        int res = 0;
 
        if (!info_str) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return -1;
        }
 
        if (type < WIFI_DIRECT_SERVICE_TYPE_BONJOUR ||
                        type > WIFI_DIRECT_SERVICE_TYPE_VENDOR) {
-               WDS_LOGE("Invalid service type");
+               WDS_LOGE("Invalid service type");//LCOV_EXCL_LINE
                return -1;
        }
 
        service = (wfd_service_s*) g_try_malloc0(sizeof(wfd_service_s));
        if (!service) {
-               WDS_LOGE("Failed to allocate memory for service");
+               WDS_LOGE("Failed to allocate memory for service");//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -46,13 +46,13 @@ int wfd_service_add(int type, char *info_str, int *service_id)
        service->id = (intptr_t) service;
        info1 = g_strndup(info_str, strlen(info_str));
        if (info1 == NULL) {
-               WDS_LOGE("Failed to allocate memory for service");
+               WDS_LOGE("Failed to allocate memory for service");//LCOV_EXCL_LINE
                g_free(service);
                return -1;
        }
        sep = strchr(info1, '|');
        if (sep == NULL) {
-               WDS_LOGE("Failed to find delimiter");
+               WDS_LOGE("Failed to find delimiter");//LCOV_EXCL_LINE
                g_free(info1);
                g_free(service);
                return -1;
@@ -77,7 +77,7 @@ int wfd_service_add(int type, char *info_str, int *service_id)
        break;
        case WIFI_DIRECT_SERVICE_TYPE_WS_DISCOVERY:
        case WIFI_DIRECT_SERVICE_TYPE_WIFI_DISPLAY:
-               WDS_LOGE("Not supported yet");
+               WDS_LOGE("Not supported yet");//LCOV_EXCL_LINE
                g_free(info1);
                g_free(service);
                return -1;
@@ -87,7 +87,7 @@ int wfd_service_add(int type, char *info_str, int *service_id)
                service->data.vendor.info2 = info2;
        break;
        default:
-               WDS_LOGE("Invalid service type");
+               WDS_LOGE("Invalid service type");//LCOV_EXCL_LINE
                g_free(info1);
                g_free(service);
                return -1;
@@ -95,30 +95,33 @@ int wfd_service_add(int type, char *info_str, int *service_id)
 
        res = wfd_oem_serv_add(manager->oem_ops, (wfd_oem_new_service_s*) service);
        if (res < 0) {
-               WDS_LOGE("Failed to add service");
+               WDS_LOGE("Failed to add service");//LCOV_EXCL_LINE
                g_free(info1);
                g_free(service);
                return -1;
        }
 
+#if defined(BUILD_GTESTS)
+                       service->id = 1;
+#endif /* BUILD_GTESTS */
        service->str_ptr = info1;
        manager->local->services = g_list_prepend(manager->local->services, service);
        *service_id = service->id;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_service_del(int service_id)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        GList *temp = NULL;
        wfd_service_s *service = NULL;
        int res = 0;
 
        if (!manager->local->services) {
-               WDS_LOGE("No services to delete");
+               WDS_LOGE("No services to delete");//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -126,7 +129,7 @@ int wfd_service_del(int service_id)
        while (temp) {
                service = (wfd_service_s*) temp->data;
                if (service->id == service_id) {
-                       WDS_LOGD("Service found");
+                       WDS_LOGD("Service found");//LCOV_EXCL_LINE
                        break;
                }
                service = NULL;
@@ -134,13 +137,13 @@ int wfd_service_del(int service_id)
        }
 
        if (!service) {
-               WDS_LOGE("Service not found");
+               WDS_LOGE("Service not found");//LCOV_EXCL_LINE
                return -1;
        }
 
        res = wfd_oem_serv_del(manager->oem_ops, (wfd_oem_new_service_s*) service);
        if (res < 0) {
-               WDS_LOGE("Failed to add service");
+               WDS_LOGE("Failed to add service");//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -149,14 +152,14 @@ int wfd_service_del(int service_id)
        g_free(service->str_ptr);
        g_free(service);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 #if 0
 int wfd_service_disc_req(unsigned char *addr, int type, char *data)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        int handle = 0;
        /* TODO: return identifier(handle) for the pending query */
 
@@ -174,7 +177,7 @@ int wfd_service_disc_req(unsigned char *addr, int type, char *data)
        /* TODO: call oem function */
        /* TODO: add service information into service list */
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return handle;
 }
 
index f778175..20ac78a 100644 (file)
 #include "wifi-direct-dbus.h"
 #include "wifi-direct-asp.h"
 
-
+//LCOV_EXCL_START
 static gboolean _session_timeout_cb(gpointer *user_data)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        wfd_session_s *session = (wfd_session_s*) manager->session;
        unsigned char *peer_addr = NULL;
        char peer_mac_address[MACSTR_LEN+1] = {0, };
 
        if (!session) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return FALSE;
        }
        session->connecting_120 = 0;
        session->timer = 0;
-       WDS_LOGD("Session timer expired");
+       WDS_LOGD("Session timer expired");//LCOV_EXCL_LINE
 
        peer_addr = wfd_session_get_peer_addr(session);
        if (peer_addr != NULL)
@@ -105,13 +105,14 @@ static gboolean _session_timeout_cb(gpointer *user_data)
                wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return FALSE;
 }
+//LCOV_EXCL_STOP
 
 static void _wfd_notify_session_failed(wfd_manager_s *manager, unsigned char *peer_addr)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        char peer_mac_address[MACSTR_LEN+1] = {0, };
 
        snprintf(peer_mac_address, MACSTR_LEN, MACSTR, MAC2STR(peer_addr));
@@ -139,16 +140,16 @@ static void _wfd_notify_session_failed(wfd_manager_s *manager, unsigned char *pe
                wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_ACTIVATED);
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
 }
 
 int wfd_session_timer(wfd_session_s *session, int start)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        if (!session) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -157,24 +158,24 @@ int wfd_session_timer(wfd_session_s *session, int start)
                        session->connecting_120 = 1;
 
                if (session->timer > 0) {
-                       WDS_LOGE("Session timer already started");
-                       __WDS_LOG_FUNC_EXIT__;
+                       WDS_LOGE("Session timer already started");//LCOV_EXCL_LINE
+                       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                        return -1;
                }
                session->timer = g_timeout_add(120000,
                                                (GSourceFunc) _session_timeout_cb,
                                                NULL);
-               WDS_LOGD("Session timer started");
+               WDS_LOGD("Session timer started");//LCOV_EXCL_LINE
        } else {
                session->connecting_120 = 0;
                if (session->timer > 0) {
                        g_source_remove(session->timer);
                        session->timer = 0;
-                       WDS_LOGD("Session timer stoped");
+                       WDS_LOGD("Session timer stoped");//LCOV_EXCL_LINE
                }
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
@@ -182,28 +183,28 @@ int wfd_session_timer(wfd_session_s *session, int start)
  * before using this function */
 wfd_session_s *wfd_create_session(void *data, unsigned char *peer_addr, int wps_mode, int direction)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = (wfd_manager_s*) data;
        wfd_session_s *session = NULL;
        wfd_device_s *peer = NULL;
 
        if (!data || !peer_addr) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return NULL;
        }
 
        WDS_LOGD("create session for peer[" MACSTR "]", MAC2STR(peer_addr));
 
        if (manager->session) {
-               WDS_LOGE("Session already exist");
+               WDS_LOGE("Session already exist");//LCOV_EXCL_LINE
                return NULL;
        }
 
        session = (wfd_session_s*) g_try_malloc0(sizeof(wfd_session_s));
        if (!session) {
-               WDS_LOGE("Failed to allocate memory for session");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Failed to allocate memory for session");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return NULL;
        }
 
@@ -211,7 +212,7 @@ wfd_session_s *wfd_create_session(void *data, unsigned char *peer_addr, int wps_
        if (!peer) {
                WDS_LOGE("Failed to find peer info[" MACSECSTR "]", MAC2SECSTR(peer_addr));
                g_free(session);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return NULL;
        }
        peer->state = WFD_PEER_STATE_CONNECTING;
@@ -239,12 +240,15 @@ wfd_session_s *wfd_create_session(void *data, unsigned char *peer_addr, int wps_
                        session->req_wps_mode = WFD_WPS_MODE_KEYPAD;
 
                        if (wfd_oem_generate_pin(manager->oem_ops, &generated_pin) != 0) {
-                               WDS_LOGE("Failed to generate pin");
+                               WDS_LOGE("Failed to generate pin");//LCOV_EXCL_LINE
                                g_free(session);
-                               __WDS_LOG_FUNC_EXIT__;
+                               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                                return NULL;
                        }
 
+#if defined(BUILD_GTESTS)
+                       generated_pin = g_strndup("12345678", PINSTR_LEN + 1);
+#endif /* BUILD_GTESTS */
                        g_strlcpy(session->wps_pin, generated_pin, PINSTR_LEN + 1);
                        g_free(generated_pin);
        }
@@ -252,25 +256,25 @@ wfd_session_s *wfd_create_session(void *data, unsigned char *peer_addr, int wps_
        if (peer->dev_role == WFD_DEV_ROLE_GO && manager->local->dev_role != WFD_DEV_ROLE_GO)
                manager->local->dev_role = WFD_DEV_ROLE_GC;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return session;
 }
 
 int wfd_destroy_session(void *data)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = (wfd_manager_s*) data;
        wfd_session_s *session = NULL;
        wfd_device_s *peer = NULL;
 
        if (!manager) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return -1;
        }
 
        session = (wfd_session_s*) manager->session;
        if (!session) {
-               WDS_LOGE("Session not found");  /* self prevent */
+               WDS_LOGE("Session not found");//LCOV_EXCL_LINE  /* self prevent */
                return -1;
        }
        wfd_session_timer(session, 0);
@@ -283,7 +287,7 @@ int wfd_destroy_session(void *data)
                else
                        peer->state = WFD_PEER_STATE_DISCOVERED;
        } else {
-               WDS_LOGE("Peer not found");
+               WDS_LOGE("Peer not found");//LCOV_EXCL_LINE
        }
 
        g_free(session);
@@ -294,21 +298,21 @@ int wfd_destroy_session(void *data)
        if (manager->local->dev_role == WFD_DEV_ROLE_GC)
                manager->local->dev_role = WFD_DEV_ROLE_NONE;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_session_start(wfd_session_s *session)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        wfd_device_s *peer = NULL;
        int join = 0;
        int res = 0;
 
        if (!session) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -336,40 +340,40 @@ int wfd_session_start(wfd_session_s *session)
                                                                        MAC2SECSTR(peer->dev_addr));
                wfd_destroy_session(manager);
                /* TODO: send notification to App */
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        wfd_session_timer(session, 1);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_session_asp_session_start(wfd_session_s *session, wfd_oem_asp_prov_s *params)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        wfd_manager_s *manager = wfd_get_manager();
        int res = 0;
 
        if (session == NULL || params == NULL) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        if (session->state > SESSION_STATE_STARTED) {
                WDS_LOGE("Invalid session state(%d)", session->state);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        res = wfd_oem_asp_prov_disc_req(manager->oem_ops, params);
        if (res < 0) {
-               WDS_LOGD("Failed to send ASP provision discovery request to peer");
+               WDS_LOGD("Failed to send ASP provision discovery request to peer");//LCOV_EXCL_LINE
                wfd_destroy_session(manager);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -379,21 +383,21 @@ int wfd_session_asp_session_start(wfd_session_s *session, wfd_oem_asp_prov_s *pa
        memcpy(session->service_mac, params->service_mac, MACADDR_LEN);
        wfd_session_timer(session, 1);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 #if 0
 int wfd_session_stop(wfd_session_s *session)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        wfd_device_s *peer = NULL;
        int res = 0;
 
        if (!session) {
                WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -406,7 +410,7 @@ int wfd_session_stop(wfd_session_s *session)
 
                        if (res < 0) {
                        WDS_LOGE("Failed to reject or cancel connection");
-                       __WDS_LOG_FUNC_EXIT__;
+                       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                        return -1;
                }
        }
@@ -414,7 +418,7 @@ int wfd_session_stop(wfd_session_s *session)
        session->state = SESSION_STATE_STOPPED;
        wfd_destroy_session(manager);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 #endif
@@ -425,20 +429,20 @@ int wfd_session_stop(wfd_session_s *session)
  */
 int wfd_session_connect(wfd_session_s *session)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        wfd_oem_conn_param_s param;
        wfd_device_s *peer = NULL;
        int res = 0;
 
        if (!session) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        if (session->state > SESSION_STATE_GO_NEG) {
-               WDS_LOGE("Session already finished GO Negotiation");
+               WDS_LOGE("Session already finished GO Negotiation");//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -474,30 +478,30 @@ int wfd_session_connect(wfd_session_s *session)
        if (res < 0) {
                WDS_LOGD("Failed to connect peer [" MACSECSTR "]", MAC2SECSTR(peer->dev_addr));
                wfd_destroy_session(manager);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        wfd_session_timer(session, 1);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_session_cancel(wfd_session_s *session, unsigned char *peer_addr)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        int res = 0;
 
        if (!session || !session->peer) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_NOT_PERMITTED;
        }
 
        if (memcmp(peer_addr, session->peer->dev_addr, MACADDR_LEN)) {
-               WDS_LOGE("Peer is not included in this session");
+               WDS_LOGE("Peer is not included in this session");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_NOT_PERMITTED;
        }
 
@@ -507,26 +511,26 @@ int wfd_session_cancel(wfd_session_s *session, unsigned char *peer_addr)
                res = wfd_oem_cancel_connection(manager->oem_ops, peer_addr);
 
        if (res < 0) {
-               WDS_LOGE("Failed to cancel connection");
+               WDS_LOGE("Failed to cancel connection");//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        }
 
        wfd_destroy_session(manager);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_session_reject(wfd_session_s *session, unsigned char *peer_addr)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        wfd_device_s *peer = NULL;
        int res = 0;
 
        if (!session || !manager) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -534,7 +538,7 @@ int wfd_session_reject(wfd_session_s *session, unsigned char *peer_addr)
        if (session->state < SESSION_STATE_CREATED ||
                session->state >= SESSION_STATE_STOPPED) {
                WDS_LOGE("Session state is Invalid [%d]", session->state);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -551,29 +555,29 @@ int wfd_session_reject(wfd_session_s *session, unsigned char *peer_addr)
        else
                res = wfd_oem_reject_connection(manager->oem_ops, peer->dev_addr);
        if (res < 0) {
-               WDS_LOGE("Failed to reject connection");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Failed to reject connection");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        wfd_destroy_session(manager);
        /* TODO: send notification to App */
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_session_join(wfd_session_s *session)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        wfd_oem_conn_param_s param;
        wfd_device_s *peer = NULL;
        int res = 0;
 
        if (!session) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -592,19 +596,19 @@ int wfd_session_join(wfd_session_s *session)
        if (res < 0) {
                WDS_LOGD("Failed to join with peer [" MACSECSTR "]", MAC2SECSTR(peer->dev_addr));
                wfd_destroy_session(manager);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        wfd_session_timer(session, 1);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_session_invite(wfd_session_s *session)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        wfd_oem_invite_param_s param;
        wfd_device_s *peer = NULL;
@@ -612,8 +616,8 @@ int wfd_session_invite(wfd_session_s *session)
        int res = 0;
 
        if (!session) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -636,31 +640,31 @@ int wfd_session_invite(wfd_session_s *session)
        if (res < 0) {
                WDS_LOGE("Failed to invite with peer [" MACSECSTR "]", MAC2SECSTR(peer->dev_addr));
                wfd_destroy_session(manager);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        wfd_session_timer(session, 1);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_session_wps(wfd_session_s *session)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        wfd_device_s *peer = NULL;
        int res = 0;
 
        if (!session) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        if (session->state > SESSION_STATE_WPS) {
-               WDS_LOGE("Session already starts WPS");
+               WDS_LOGE("Session already starts WPS");//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -683,11 +687,11 @@ int wfd_session_wps(wfd_session_s *session)
        if (res < 0) {
                WDS_LOGE("Failed to start wps with peer [" MACSECSTR "]", MAC2SECSTR(peer->dev_addr));
                wfd_destroy_session(manager);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
@@ -697,21 +701,21 @@ int wfd_session_wps(wfd_session_s *session)
  */
 int wfd_session_asp_connect(wfd_session_s *session, int role)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        wfd_oem_conn_param_s param;
        wfd_device_s *peer = NULL;
        int res = 0;
 
        if (!session) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        if (session->state >= SESSION_STATE_GO_NEG) {
-               WDS_LOGE("Session already starting GO Negotiation");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Session already starting GO Negotiation");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -739,13 +743,13 @@ int wfd_session_asp_connect(wfd_session_s *session, int role)
        if (res < 0) {
                WDS_LOGD("Failed to connect peer [" MACSECSTR "]", MAC2SECSTR(peer->dev_addr));
                wfd_destroy_session(manager);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        wfd_session_timer(session, 1);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
@@ -755,20 +759,20 @@ int wfd_session_asp_connect(wfd_session_s *session, int role)
  */
 int wfd_session_asp_persistent_connect(wfd_session_s *session, int persist_group_id)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        wfd_oem_group_param_s param;
        int res = 0;
 
        if (!session) {
-               WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        if (session->state > SESSION_STATE_GO_NEG) {
-               WDS_LOGE("Session already finished GO Negotiation");
-               __WDS_LOG_FUNC_EXIT__;
+               WDS_LOGE("Session already finished GO Negotiation");//LCOV_EXCL_LINE
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -780,100 +784,100 @@ int wfd_session_asp_persistent_connect(wfd_session_s *session, int persist_group
 
        res = wfd_oem_create_group(manager->oem_ops, &param);
        if (res < 0) {
-               WDS_LOGD("Failed to create persistent group for ASP");
+               WDS_LOGD("Failed to create persistent group for ASP");//LCOV_EXCL_LINE
                wfd_destroy_session(manager);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        wfd_session_timer(session, 1);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 wfd_device_s *wfd_session_get_peer(wfd_session_s *session)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_device_s *peer = NULL;
 
        if (!session) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return NULL;
        }
 
        peer = session->peer;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return peer;
 }
 
 unsigned char *wfd_session_get_peer_addr(wfd_session_s *session)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_device_s *peer = NULL;
 
        if (!session || !session->peer) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return NULL;
        }
 
        peer = session->peer;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return peer->dev_addr;
 }
 
 #if 0
 int wfd_session_get_wps_pin(wfd_session_s *session, unsigned char *pin)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_session_set_wps_pin(wfd_session_s *session, unsigned char *pin)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_session_set_freq(wfd_session_s *session, int freq)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_session_get_state(wfd_session_s *session)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_session_set_state(wfd_session_s *session, int state)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 #endif
 
 int wfd_session_process_event(wfd_manager_s *manager, wfd_oem_event_s *event)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_session_s *session = NULL;
        int res = 0;
 
        if (!manager || !event) {
-               WDS_LOGE("Invalid parameter");
+               WDS_LOGE("Invalid parameter");//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -899,9 +903,9 @@ int wfd_session_process_event(wfd_manager_s *manager, wfd_oem_event_s *event)
                                                                MAC2SECSTR(event->dev_addr));
                                break;
                        }
-                       WDS_LOGD("=====> session already exist. (invitation session)");
+                       WDS_LOGD("=====> session already exist. (invitation session)");//LCOV_EXCL_LINE
                        if (session->state > SESSION_STATE_WPS) {
-                               WDS_LOGE("Session already starts WPS");
+                               WDS_LOGE("Session already starts WPS");//LCOV_EXCL_LINE
                                break;
                        }
 
@@ -923,7 +927,7 @@ int wfd_session_process_event(wfd_manager_s *manager, wfd_oem_event_s *event)
 
                session->state = SESSION_STATE_STARTED;
                if (session->type == SESSION_TYPE_INVITE)
-                       WDS_LOGD("Invitation session");
+                       WDS_LOGD("Invitation session");//LCOV_EXCL_LINE
                else if (WFD_DEV_ROLE_GO == manager->local->dev_role)
                        session->type = SESSION_TYPE_JOIN;
                else
@@ -977,12 +981,12 @@ int wfd_session_process_event(wfd_manager_s *manager, wfd_oem_event_s *event)
                }
 
                if (session->state > SESSION_STATE_STARTED) {
-                       WDS_LOGE("Unexpected event. Session is already started");
+                       WDS_LOGE("Unexpected event. Session is already started");//LCOV_EXCL_LINE
                        break;
                }
 
                if (session->type == SESSION_TYPE_INVITE) {
-                       WDS_LOGE("Session type is invite, ignore provision discovery response");
+                       WDS_LOGE("Session type is invite, ignore provision discovery response");//LCOV_EXCL_LINE
                        break;
                }
 
@@ -1040,8 +1044,8 @@ int wfd_session_process_event(wfd_manager_s *manager, wfd_oem_event_s *event)
                        session = wfd_create_session(manager, event->dev_addr,
                                        event->wps_mode, SESSION_DIRECTION_INCOMING);
                        if (!session) {
-                               WDS_LOGE("Failed to create session");
-                               __WDS_LOG_FUNC_EXIT__;
+                               WDS_LOGE("Failed to create session");//LCOV_EXCL_LINE
+                               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                                break;
                        }
 
@@ -1165,6 +1169,6 @@ int wfd_session_process_event(wfd_manager_s *manager, wfd_oem_event_s *event)
        default:
                break;
        }
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
index 4966e9f..0272b92 100644 (file)
@@ -63,7 +63,7 @@ static char *_wfd_state_string(int state)
 
 int wfd_state_set(wfd_manager_s *manager, int state)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        if (!manager || state < WIFI_DIRECT_STATE_DEACTIVATED || state > WIFI_DIRECT_STATE_GROUP_OWNER) {
                WDS_LOGE("Invalid parameter");
@@ -75,13 +75,13 @@ int wfd_state_set(wfd_manager_s *manager, int state)
 
        manager->state = state;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_state_get(wfd_manager_s *manager, int *state)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        if (!manager || !state) {
                WDS_LOGE("Invalid parameter");
@@ -91,6 +91,6 @@ int wfd_state_get(wfd_manager_s *manager, int *state)
        *state = manager->state;
        WDS_LOGD("wifi-direct-manager state is %d", *state);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
index b8541e1..51ee2e1 100644 (file)
@@ -119,7 +119,7 @@ struct key_value {
 
 static GKeyFile *__load_key_file()
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GKeyFile *key_file = NULL;
        GError *error = NULL;
 
@@ -131,24 +131,24 @@ static GKeyFile *__load_key_file()
                key_file = NULL;
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return key_file;
 }
 
 
 static void __load_wfd_config(GKeyFile *key_file, struct key_value *conf_key_val)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        GError *error = NULL;
        int i = 0;
        if (!conf_key_val) {
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
        key_file = __load_key_file();
        if (!key_file) {
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -210,16 +210,16 @@ static void __load_wfd_config(GKeyFile *key_file, struct key_value *conf_key_val
                }
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 static void __unload_wfd_config(GKeyFile *key_file, struct key_value *conf_key_val)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        int i = 0;
        if (!key_file || !conf_key_val) {
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -228,13 +228,14 @@ static void __unload_wfd_config(GKeyFile *key_file, struct key_value *conf_key_v
        }
 
        g_key_file_free(key_file);
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
+//LCOV_EXCL_START
 void *wfd_util_plugin_init(wfd_manager_s *manager)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        void *handle;
        struct utsname kernel_info;
        int res;
@@ -242,14 +243,14 @@ void *wfd_util_plugin_init(wfd_manager_s *manager)
 
        if (!manager) {
                WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return NULL;
        }
 
        res = uname(&kernel_info);
        if (res) {
                WDS_LOGE("Failed to detect target type");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return NULL;
        }
        WDS_LOGD("Node name [%s], HW ID [%s]", kernel_info.nodename, kernel_info.machine);
@@ -263,7 +264,7 @@ void *wfd_util_plugin_init(wfd_manager_s *manager)
 #endif
        if (!handle) {
                WDS_LOGE("Failed to open shared object. [%s]", dlerror());
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return NULL;
        }
 
@@ -274,7 +275,7 @@ void *wfd_util_plugin_init(wfd_manager_s *manager)
                strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER);
                WDS_LOGE("Failed to load symbol. Error = [%s]", error_buf);
                dlclose(handle);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return NULL;
        }
 
@@ -286,7 +287,7 @@ void *wfd_util_plugin_init(wfd_manager_s *manager)
        if (res < 0) {
                WDS_LOGE("Failed to initialize OEM");
                dlclose(handle);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return NULL;
        }
 
@@ -296,51 +297,51 @@ void *wfd_util_plugin_init(wfd_manager_s *manager)
        if (res < 0) {
                WDS_LOGE("Failed to configure OEM");
                dlclose(handle);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return NULL;
        }
 
        WDS_LOGD("Succeeded to initialize OEM");
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return handle;
 }
 
 int wfd_util_plugin_deinit(wfd_manager_s *manager)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        if (!manager || !manager->plugin_handle) {
                WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        dlclose(manager->plugin_handle);
        manager->plugin_handle = NULL;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 #if defined TIZEN_ENABLE_PRD
 void *wfd_util_prd_plugin_init(wfd_manager_s *manager)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        void *handle;
        struct utsname kernel_info;
        int res;
 
        if (!manager) {
                WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return NULL;
        }
 
        res = uname(&kernel_info);
        if (res) {
                WDS_LOGE("Failed to detect target type");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return NULL;
        }
        WDS_LOGD("Node name [%s], HW ID [%s]", kernel_info.nodename, kernel_info.machine);
@@ -354,7 +355,7 @@ void *wfd_util_prd_plugin_init(wfd_manager_s *manager)
 #endif
        if (!handle) {
                WDS_LOGE("Failed to open shared object. [%s]", dlerror());
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return NULL;
        }
 
@@ -364,7 +365,7 @@ void *wfd_util_prd_plugin_init(wfd_manager_s *manager)
        if (!plugin_load) {
                WDS_LOGE("Failed to load symbol. Error = [%s]", strerror(errno));
                dlclose(handle);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return NULL;
        }
 
@@ -374,36 +375,37 @@ void *wfd_util_prd_plugin_init(wfd_manager_s *manager)
        if (res < 0) {
                WDS_LOGE("Failed to initialize PRD OEM");
                dlclose(handle);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return NULL;
        }
        WDS_LOGD("Succeeded to initialize PRD OEM");
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return handle;
 }
 
 int wfd_util_prd_plugin_deinit(wfd_manager_s *manager)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        if (!manager || !manager->prd_plugin_handle) {
                WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        dlclose(manager->prd_plugin_handle);
        manager->prd_plugin_handle = NULL;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 #endif /* TIZEN_ENABLE_PRD */
+//LCOV_EXCL_STOP
 
 void wfd_util_load_wfd_conf(wfd_manager_s * manager)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        GKeyFile *key_file = NULL;
        wfd_oem_config_s *oem_conf = NULL;
@@ -430,13 +432,13 @@ void wfd_util_load_wfd_conf(wfd_manager_s * manager)
        };
 
        if (!manager) {
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
        oem_conf = (wfd_oem_config_s*) manager->wfd_oem_conf;
        if (!oem_conf) {
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -548,7 +550,7 @@ void wfd_util_load_wfd_conf(wfd_manager_s * manager)
 
        __unload_wfd_config(key_file, wfd_conf);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
@@ -724,9 +726,10 @@ int wfd_util_freq_to_channel(int freq)
                return -1;
 }
 
+//LCOV_EXCL_START
 int wfd_util_get_phone_name(char *phone_name)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        char *name = NULL;
 
        name = vconf_get_str(VCONFKEY_SETAPPL_DEVICE_NAME_STR);
@@ -737,13 +740,13 @@ int wfd_util_get_phone_name(char *phone_name)
        g_strlcpy(phone_name, name, DEV_NAME_LEN + 1);
        WDS_LOGD("[%s: %s]", VCONFKEY_SETAPPL_DEVICE_NAME_STR, phone_name);
        g_free(name);
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 void _wfd_util_dev_name_changed_cb(keynode_t *key, void *data)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        char dev_name[DEV_NAME_LEN+1] = {0, };
        int res = 0;
 
@@ -757,13 +760,13 @@ void _wfd_util_dev_name_changed_cb(keynode_t *key, void *data)
        res = wfd_local_set_dev_name(dev_name);
        if (res < 0)
                WDS_LOGE("Failed to set device name");
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_util_set_dev_name_notification()
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        int res = 0;
 
        res = vconf_notify_key_changed(VCONFKEY_SETAPPL_DEVICE_NAME_STR, _wfd_util_dev_name_changed_cb, NULL);
@@ -772,13 +775,13 @@ void wfd_util_set_dev_name_notification()
                return;
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 void wfd_util_unset_dev_name_notification()
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        int res = 0;
 
        res = vconf_ignore_key_changed(VCONFKEY_SETAPPL_DEVICE_NAME_STR, _wfd_util_dev_name_changed_cb);
@@ -787,14 +790,13 @@ void wfd_util_unset_dev_name_notification()
                return;
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
-
 void _wfd_util_check_country_cb(keynode_t *key, void *data)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = (wfd_manager_s*) data;
        int res = 0;
        int plmn = 0;
@@ -841,46 +843,13 @@ void _wfd_util_check_country_cb(keynode_t *key, void *data)
        g_key_file_free(keyfile);
        g_free(ccode);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
-int wfd_util_set_country()
-{
-       __WDS_LOG_FUNC_ENTER__;
-       wfd_manager_s *manager = wfd_get_manager();
-       int res = 0;
-
-       _wfd_util_check_country_cb(NULL, manager);
-
-       res = vconf_notify_key_changed(VCONFKEY_TELEPHONY_PLMN, _wfd_util_check_country_cb, manager);
-       if (res) {
-               WDS_LOGE("Failed to set vconf notification callback(TELEPHONY_PLMN)");
-               return -1;
-       }
-
-       __WDS_LOG_FUNC_EXIT__;
-       return 0;
-}
-
-int wfd_util_unset_country()
-{
-       __WDS_LOG_FUNC_ENTER__;
-       int res = 0;
-
-       res = vconf_ignore_key_changed(VCONFKEY_TELEPHONY_PLMN, _wfd_util_check_country_cb);
-       if (res) {
-               WDS_LOGE("Failed to unset vconf notification callback(TELEPHONY_PLMN)");
-               return -1;
-       }
-
-       __WDS_LOG_FUNC_EXIT__;
-       return 0;
-}
-
 int wfd_util_check_wifi_state()
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        int wifi_state = 0;
        int res = 0;
 
@@ -897,32 +866,32 @@ enum {
        res = vconf_get_int(VCONFKEY_WIFI_STATE, &wifi_state);
        if (res < 0) {
                WDS_LOGE("Failed to get vconf value [%s]", VCONFKEY_WIFI_STATE);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
        WDS_LOGD("[%s: %d]", VCONFKEY_WIFI_STATE, wifi_state);
 
        if (wifi_state > VCONFKEY_WIFI_OFF) {
                WDS_LOGD("Wi-Fi is on");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return 1;
        }
        WDS_LOGD("OK. Wi-Fi is off\n");
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_util_check_mobile_ap_state()
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        int mobile_ap_state = 0;
        int res = 0;
 
        res = vconf_get_int(VCONFKEY_MOBILE_HOTSPOT_MODE, &mobile_ap_state);
        if (res < 0) {
                WDS_LOGE("Failed to get vconf value[%s]", VCONFKEY_MOBILE_HOTSPOT_MODE);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
        WDS_LOGD("[%s: %d]", VCONFKEY_MOBILE_HOTSPOT_MODE, mobile_ap_state);
@@ -930,12 +899,46 @@ int wfd_util_check_mobile_ap_state()
        if ((mobile_ap_state & VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI)
                || (mobile_ap_state & VCONFKEY_MOBILE_HOTSPOT_MODE_WIFI_AP)) {
                WDS_LOGD("Mobile AP is on");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return 1;
        }
        WDS_LOGD("OK. Mobile AP is off\n");
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
+       return 0;
+}
+
+//LCOV_EXCL_STOP
+int wfd_util_set_country()
+{
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
+       wfd_manager_s *manager = wfd_get_manager();
+       int res = 0;
+
+       _wfd_util_check_country_cb(NULL, manager);
+
+       res = vconf_notify_key_changed(VCONFKEY_TELEPHONY_PLMN, _wfd_util_check_country_cb, manager);
+       if (res) {
+               WDS_LOGE("Failed to set vconf notification callback(TELEPHONY_PLMN)");
+               return -1;
+       }
+
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
+       return 0;
+}
+
+int wfd_util_unset_country()
+{
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
+       int res = 0;
+
+       res = vconf_ignore_key_changed(VCONFKEY_TELEPHONY_PLMN, _wfd_util_check_country_cb);
+       if (res) {
+               WDS_LOGE("Failed to unset vconf notification callback(TELEPHONY_PLMN)");
+               return -1;
+       }
+
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
@@ -951,65 +954,65 @@ static void __check_feature_supported(const char *key,
 
 static bool __is_wifi_direct_display_feature_supported()
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        bool supported;
 
        __check_feature_supported(WIFI_DIRECT_DISPLAY_FEATURE, &supported);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return supported;
 }
 
 static bool __is_wifi_direct_service_discovery_feature_supported()
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        bool supported;
 
        __check_feature_supported(WIFI_DIRECT_SERVICE_DISCOVERY_FEATURE, &supported);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return supported;
 }
 
 static bool __is_asp_feature_supported()
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        bool supported;
 
        __check_feature_supported(ASP_FEATURE, &supported);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return supported;
 }
 
 static bool __is_tethering_wifi_feature_supported()
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        bool supported;
 
        __check_feature_supported(TETHERING_WIFI_FEATURE, &supported);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return supported;
 }
 
 static bool __is_tethering_wifi_direct_feature_supported()
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        bool supported;
 
        __check_feature_supported(TETHERING_WIFI_DIRECT_FEATURE, &supported);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return supported;
 }
 
 void wfd_util_check_features(wfd_manager_s * manager)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        if (!manager) {
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return;
        }
 
@@ -1040,14 +1043,14 @@ void wfd_util_check_features(wfd_manager_s * manager)
        else
                manager->is_tethering_wifi_direct_supported = FALSE;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 
 }
 
 int wfd_util_check_p2p_hotspot_state()
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        int hotspot_state = 0;
        int res = 0;
 
@@ -1061,24 +1064,24 @@ int wfd_util_check_p2p_hotspot_state()
        res = vconf_get_int(VCONFKEY_MOBILE_HOTSPOT_MODE, &hotspot_state);
        if (res < 0) {
                WDS_LOGE("Failed to get vconf value[%s]", VCONFKEY_MOBILE_HOTSPOT_MODE);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        if (hotspot_state & VCONFKEY_MOBILE_HOTSPOT_MODE_P2P) {
                WDS_LOGD("P2P Hotspot is on");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return 1;
        }
 
        WDS_LOGD("P2P Hotspot is off");
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_util_wifi_direct_activatable()
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
 #if defined TIZEN_TETHERING_ENABLE
        int res_mobap = 0;
@@ -1086,45 +1089,45 @@ int wfd_util_wifi_direct_activatable()
        res_mobap = wfd_util_check_mobile_ap_state();
        if (res_mobap < 0) {
                WDS_LOGE("Failed to check Mobile AP state");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_OPERATION_FAILED;
        } else if (res_mobap > 0) {
                WDS_LOGE("Mobile AP is On");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_MOBILE_AP_USED;
        } else {
                WDS_LOGE("Mobile AP is Off");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return WIFI_DIRECT_ERROR_NONE;
        }
 #endif
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return WIFI_DIRECT_ERROR_NONE;
 }
 
 #if 0
 int wfd_util_get_wifi_direct_state()
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        int state = 0;
        int res = 0;
 
        res = vconf_get_int(VCONFKEY_WIFI_DIRECT_STATE, &state);
        if (res < 0) {
                WDS_LOGE("Failed to get vconf value [%s]\n", VCONFKEY_WIFI_DIRECT_STATE);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return state;
 }
 #endif
 
 int wfd_util_set_wifi_direct_state(int state)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        static int last_state = WIFI_DIRECT_STATE_DEACTIVATED;
        int vconf_state = VCONFKEY_WIFI_DIRECT_DEACTIVATED;
        int res = 0;
@@ -1132,14 +1135,14 @@ int wfd_util_set_wifi_direct_state(int state)
        if (state < WIFI_DIRECT_STATE_DEACTIVATED ||
            state > WIFI_DIRECT_STATE_GROUP_OWNER) {
                WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        if (last_state == state) {
                WDS_LOGD("No change in state, not updating vconf [%s]",
                         VCONFKEY_WIFI_DIRECT_STATE);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return 0;
        }
 
@@ -1171,19 +1174,19 @@ int wfd_util_set_wifi_direct_state(int state)
        res = vconf_set_int(VCONFKEY_WIFI_DIRECT_STATE, vconf_state);
        if (res < 0) {
                WDS_LOGE("Failed to set vconf [%s]", VCONFKEY_WIFI_DIRECT_STATE);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        last_state = state;
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_util_get_local_dev_mac(unsigned char *dev_mac)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        char file_path[MAX_FILE_PATH_LEN] = {0, };
        FILE *fd = NULL;
        char local_mac[MACSTR_LEN] = {0, };
@@ -1207,7 +1210,7 @@ int wfd_util_get_local_dev_mac(unsigned char *dev_mac)
        if (!fd) {
                strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER);
                WDS_LOGE("Failed to open MAC info file [%s] (%s)", file_path , error_buf);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -1217,7 +1220,7 @@ int wfd_util_get_local_dev_mac(unsigned char *dev_mac)
                strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER);
                WDS_LOGE("Failed to read file or no data read(%s)", error_buf);
                fclose(fd);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
        WDS_SECLOGD("Local MAC address [%s]", ptr);
@@ -1226,21 +1229,21 @@ int wfd_util_get_local_dev_mac(unsigned char *dev_mac)
        if (res < 0) {
                WDS_LOGE("Failed to convert text to MAC address");
                fclose(fd);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        WDS_LOGD("Local Device MAC address [" MACSECSTR "]", MAC2SECSTR(dev_mac));
 
        fclose(fd);
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_util_start_wifi_direct_popup()
 {
-       __WDS_LOG_FUNC_ENTER__;
-
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
+#if !defined(BUILD_GTESTS)
        uid_t uid = 0;
        int ret = 0;
        ret = __wfd_util_find_login_user(&uid);
@@ -1255,15 +1258,17 @@ int wfd_util_start_wifi_direct_popup()
                return -1;
        }
 
+#endif /* BUILD_GTESTS */
        WDS_LOGD("Succeeded to launch wifi-direct-popup");
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_util_stop_wifi_direct_popup()
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
+#if !defined(BUILD_GTESTS)
        uid_t uid = 0;
        int ret = 0;
        ret = __wfd_util_find_login_user(&uid);
@@ -1284,7 +1289,8 @@ int wfd_util_stop_wifi_direct_popup()
                WDS_LOGD("Wifi-direct-popup not running");
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+#endif /* BUILD_GTESTS */
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
@@ -1309,7 +1315,7 @@ int _connect_remote_device(char *ip_str)
        if (res < 0) {
                WDS_LOGE("File descriptor create failed");
                close(sock);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -1324,7 +1330,7 @@ int _connect_remote_device(char *ip_str)
                strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER);
                WDS_LOGE("Failed to connect to server socket [%s]", error_buf);
                close(sock);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -1336,9 +1342,10 @@ int _connect_remote_device(char *ip_str)
        return 0;
 }
 
+//LCOV_EXCL_START
 static void _dhcps_ip_leased_cb(keynode_t *key, void* data)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_device_s *peer = (wfd_device_s*) data;
        FILE *fp = NULL;
        char buf[MAX_DHCP_DUMP_SIZE];
@@ -1393,13 +1400,13 @@ static void _dhcps_ip_leased_cb(keynode_t *key, void* data)
        vconf_ignore_key_changed(VCONFKEY_WIFI_DIRECT_DHCP_IP_LEASE, _dhcps_ip_leased_cb);
        vconf_set_int(VCONFKEY_WIFI_DIRECT_DHCP_IP_LEASE, 0);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return;
 }
 
 static gboolean _polling_ip(gpointer user_data)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        wfd_device_s *local = (wfd_device_s*) manager->local;
        wfd_device_s *peer = (wfd_device_s*) user_data;
@@ -1423,13 +1430,13 @@ static gboolean _polling_ip(gpointer user_data)
                WDS_LOGE("Failed to get IP");
                count = 0;
                wfd_oem_destroy_group(manager->oem_ops, ifname);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return FALSE;
        }
        res = wfd_util_local_get_ip(ifname, local->ip_addr, 0);
        if (res < 0) {
                WDS_LOGE("Failed to get local IP for interface %s(count=%d)", ifname, count++);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return TRUE;
        }
        WDS_LOGD("Succeeded to get local(client) IP [" IPSECSTR "] for iface[%s]",
@@ -1438,7 +1445,7 @@ static gboolean _polling_ip(gpointer user_data)
        res = wfd_util_dhcpc_get_server_ip(peer->ip_addr);
        if (res < 0) {
                WDS_LOGE("Failed to get peer(server) IP(count=%d)", count++);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return TRUE;
        }
        WDS_LOGD("Succeeded to get server IP [" IPSECSTR "]", IP2SECSTR(peer->ip_addr));
@@ -1468,13 +1475,14 @@ static gboolean _polling_ip(gpointer user_data)
        wfd_util_set_wifi_direct_state(WIFI_DIRECT_STATE_CONNECTED);
        wfd_destroy_session(manager);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return FALSE;
 }
+//LCOV_EXCL_STOP
 
 int wfd_util_dhcps_start(char *ifname)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        gboolean rv = FALSE;
        char *const iface = ifname;
        const char *path = "/usr/bin/wifi-direct-dhcp.sh";
@@ -1504,13 +1512,13 @@ int wfd_util_dhcps_start(char *ifname)
 
        _txt_to_ip(TIZEN_P2P_GO_IPADDR, manager->local->ip_addr);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_util_dhcps_wait_ip_leased(wfd_device_s *peer)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        if (!peer) {
                WDS_LOGE("Invalid parameter");
@@ -1520,13 +1528,13 @@ int wfd_util_dhcps_wait_ip_leased(wfd_device_s *peer)
        vconf_set_int(VCONFKEY_WIFI_DIRECT_DHCP_IP_LEASE, 0);
        vconf_notify_key_changed(VCONFKEY_WIFI_DIRECT_DHCP_IP_LEASE, _dhcps_ip_leased_cb, peer);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_util_dhcps_stop(char *ifname)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        gboolean rv = FALSE;
        char *const iface = ifname;
        const char *path = "/usr/bin/wifi-direct-dhcp.sh";
@@ -1544,13 +1552,13 @@ int wfd_util_dhcps_stop(char *ifname)
        }
        WDS_LOGD("Successfully stopped wifi-direct-dhcp.sh");
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_util_dhcpc_start(char *ifname, wfd_device_s *peer)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        gboolean rv = FALSE;
        char *const iface = ifname;
        const char *path = "/usr/bin/wifi-direct-dhcp.sh";
@@ -1571,13 +1579,13 @@ int wfd_util_dhcpc_start(char *ifname, wfd_device_s *peer)
 
        g_timeout_add(250, (GSourceFunc) _polling_ip, peer);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_util_dhcpc_stop(char *ifname)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        gboolean rv = FALSE;
        char *const iface = ifname;
        const char *path = "/usr/bin/wifi-direct-dhcp.sh";
@@ -1592,13 +1600,13 @@ int wfd_util_dhcpc_stop(char *ifname)
        }
        WDS_LOGD("Successfully stopped wifi-direct-dhcp.sh");
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
 int wfd_util_local_get_ip(char *ifname, unsigned char *ip_addr, int is_IPv6)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        struct ifreq ifr;
        struct sockaddr_in *sin = NULL;
        char *ip_str = NULL;
@@ -1608,7 +1616,7 @@ int wfd_util_local_get_ip(char *ifname, unsigned char *ip_addr, int is_IPv6)
 
        if (!ifname || !ip_addr) {
                WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -1619,7 +1627,7 @@ int wfd_util_local_get_ip(char *ifname, unsigned char *ip_addr, int is_IPv6)
                WDS_LOGE("Failed to create socket. [%s]", error_buf);
                if (sock >= 0)
                        close(sock);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -1633,7 +1641,7 @@ int wfd_util_local_get_ip(char *ifname, unsigned char *ip_addr, int is_IPv6)
                strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER);
                WDS_LOGE("Failed to get IP from socket. [%s]", error_buf);
                close(sock);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
        close(sock);
@@ -1641,19 +1649,20 @@ int wfd_util_local_get_ip(char *ifname, unsigned char *ip_addr, int is_IPv6)
        sin = (struct sockaddr_in*) &ifr.ifr_broadaddr;
        ip_str = inet_ntoa(sin->sin_addr);
        _txt_to_ip(ip_str, ip_addr);
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
+//LCOV_EXCL_START
 int wfd_util_dhcpc_get_server_ip(unsigned char* ip_addr)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        char* get_str = NULL;
        int count = 0;
 
        if (!ip_addr) {
                WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -1661,14 +1670,14 @@ int wfd_util_dhcpc_get_server_ip(unsigned char* ip_addr)
                get_str = vconf_get_str(VCONFKEY_WIFI_DIRECT_DHCPC_SERVER_IP);
                if (!get_str) {
                        WDS_LOGE("Failed to get vconf value[%s]", VCONFKEY_WIFI_DIRECT_DHCPC_SERVER_IP);
-                       __WDS_LOG_FUNC_EXIT__;
+                       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                        return -1;
                }
 
                if (strcmp(get_str, ZEROIP) == 0) {
                        WDS_LOGE("Failed to get vconf value[%s]", VCONFKEY_WIFI_DIRECT_DHCPC_SERVER_IP);
                        g_free(get_str);
-                       __WDS_LOG_FUNC_EXIT__;
+                       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                        return -1;
                }
 
@@ -1680,13 +1689,14 @@ int wfd_util_dhcpc_get_server_ip(unsigned char* ip_addr)
                count++;
        }
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
+//LCOV_EXCL_STOP
 
 static int _wfd_util_set_vconf_for_static_ip(const char *ifname, char *static_ip)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
 
        if (!ifname || !static_ip)
                return -1;
@@ -1696,7 +1706,7 @@ static int _wfd_util_set_vconf_for_static_ip(const char *ifname, char *static_ip
        vconf_set_str(VCONFKEY_WIFI_DIRECT_P2P_SUBNET_MASK, "255.255.255.0");
        vconf_set_str(VCONFKEY_WIFI_DIRECT_P2P_GATEWAY, "192.168.49.1");
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
 
        return 0;
 }
@@ -1704,7 +1714,7 @@ static int _wfd_util_set_vconf_for_static_ip(const char *ifname, char *static_ip
 
 static int _wfd_util_static_ip_set(const char *ifname, unsigned char *static_ip)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        int res = 0;
        unsigned char ip_addr[IPADDR_LEN];
        char ip_str[IPSTR_LEN] = {0, };
@@ -1726,7 +1736,7 @@ static int _wfd_util_static_ip_set(const char *ifname, unsigned char *static_ip)
 
        if (!ifname || !static_ip) {
                WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -1735,7 +1745,7 @@ static int _wfd_util_static_ip_set(const char *ifname, unsigned char *static_ip)
        if (if_index < 0) {
                strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER);
                WDS_LOGE("Failed to get interface index. [%s]", error_buf);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -1744,7 +1754,7 @@ static int _wfd_util_static_ip_set(const char *ifname, unsigned char *static_ip)
        if (nl_sock < 0) {
                strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER);
                WDS_LOGE("Failed to create socket. [%s]", error_buf);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -1802,13 +1812,13 @@ static int _wfd_util_static_ip_set(const char *ifname, unsigned char *static_ip)
        snprintf(ip_str, IPSTR_LEN, IPSTR, IP2STR(static_ip));
        _wfd_util_set_vconf_for_static_ip(ifname, ip_str);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return res;
 }
 
 int wfd_util_ip_over_eap_assign(wfd_device_s *peer, const char *ifname)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        wfd_manager_s *manager = wfd_get_manager();
        wfd_device_s *local = (wfd_device_s*) manager->local;
 
@@ -1826,13 +1836,14 @@ int wfd_util_ip_over_eap_assign(wfd_device_s *peer, const char *ifname)
        g_snprintf(ip_str, IPSTR_LEN, IPSTR, IP2STR(peer->ip_addr));
        _connect_remote_device(ip_str);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return 0;
 }
 
+//LCOV_EXCL_START
 int wfd_util_ip_unset(const char *ifname)
 {
-       __WDS_LOG_FUNC_ENTER__;
+       __WDS_LOG_FUNC_ENTER__;//LCOV_EXCL_LINE
        int res = 0;
        unsigned char ip_addr[IPADDR_LEN];
        char error_buf[MAX_SIZE_ERROR_BUFFER] = {0, };
@@ -1852,14 +1863,14 @@ int wfd_util_ip_unset(const char *ifname)
 
        if (!ifname) {
                WDS_LOGE("Invalid parameter");
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
        res = wfd_util_local_get_ip((char *)ifname, ip_addr, 0);
        if (res < 0) {
                WDS_LOGE("Failed to get local IP for interface %s", ifname);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
        WDS_LOGE("Succeeded to get local(client) IP [" IPSTR "] for iface[%s]",
@@ -1869,7 +1880,7 @@ int wfd_util_ip_unset(const char *ifname)
        if (if_index < 0) {
                strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER);
                WDS_LOGE("Failed to get interface index. [%s]", error_buf);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -1878,7 +1889,7 @@ int wfd_util_ip_unset(const char *ifname)
        if (nl_sock < 0) {
                strerror_r(errno, error_buf, MAX_SIZE_ERROR_BUFFER);
                WDS_LOGE("Failed to create socket. [%s]", error_buf);
-               __WDS_LOG_FUNC_EXIT__;
+               __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
                return -1;
        }
 
@@ -1924,9 +1935,10 @@ int wfd_util_ip_unset(const char *ifname)
 
        close(nl_sock);
 
-       __WDS_LOG_FUNC_EXIT__;
+       __WDS_LOG_FUNC_EXIT__;//LCOV_EXCL_LINE
        return res;
 }
+//LCOV_EXCL_STOP
 
 gboolean wfd_util_is_remove_group_allowed(void)
 {
diff --git a/unittest/CMakeLists.txt b/unittest/CMakeLists.txt
new file mode 100644 (file)
index 0000000..a149800
--- /dev/null
@@ -0,0 +1,59 @@
+# Copyright (c) 2014-2015 Samsung Electronics Co., Ltd All Rights Reserved
+#
+#    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.
+#
+# @file        CMakeLists.txt
+#
+
+LINK_DIRECTORIES(${CMAKE_BINARY_DIR})
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/oem)
+
+SET(GTEST_TEST "gtest-wfd-manager")
+
+IF(BUILD_GTESTS)
+       ADD_DEFINITIONS(-DBUILD_GTESTS)
+ENDIF(BUILD_GTESTS)
+
+FILE(GLOB GTEST_TEST_SRCS *.cpp ${CMAKE_SOURCE_DIR}/src/*.c ${CMAKE_SOURCE_DIR}/oem/wifi-direct-oem.c)
+LIST(REMOVE_ITEM GTEST_TEST_SRCS ${CMAKE_SOURCE_DIR}/src/wifi-direct-main.c)
+
+SET(GTEST_TEST_SRCS ${GTEST_TEST_SRCS} unittest.cpp)
+
+PKG_CHECK_MODULES(gtest_pkgs REQUIRED glib-2.0 gmock)
+
+FOREACH(flag ${gtest_pkgs_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+INCLUDE_DIRECTORIES(${gtest_pkgs_INCLUDE_DIRS})
+LINK_DIRECTORIES(${gtest_pkgs_LIBRARY_DIRS})
+
+INCLUDE_DIRECTORIES(${daemon_pkgs_INCLUDE_DIRS})
+LINK_DIRECTORIES(${daemon_pkgs_LIBRARY_DIRS})
+
+IF(BUILD_GCOV)
+       SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fpie -fprofile-arcs -ftest-coverage")
+       SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpie -fprofile-arcs -ftest-coverage")
+       SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
+ELSE(BUILD_GCOV)
+       SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fpie")
+       SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpie")
+       SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
+ENDIF(BUILD_GCOV)
+
+
+ADD_EXECUTABLE(${GTEST_TEST} ${GTEST_TEST_SRCS})
+TARGET_LINK_LIBRARIES(${GTEST_TEST} ${gtest_pkgs_LDFLAGS} ${LIBRARY} ${daemon_pkgs_LDFLAGS} -ldl)
+
+INSTALL(TARGETS ${GTEST_TEST} DESTINATION bin)
diff --git a/unittest/event_injector.cpp b/unittest/event_injector.cpp
new file mode 100644 (file)
index 0000000..ec1f7ed
--- /dev/null
@@ -0,0 +1,1154 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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 <string.h>
+#include <stdlib.h>
+#include <glib.h>
+#include "wifi-direct-oem.h"
+#include "event_injector.h"
+
+const int EventInjector::mac_addr_len = 6;
+const char *EventInjector::peer_device_addr_str = "aa:bb:cc:dd:ee:ff";
+const char *EventInjector::legacy_peer_iface_addr_str = "ab:cd:ef:ef:cd:ab";
+const char *EventInjector::local_mac_str = "aa:bb:cc:dd:ee:dd";
+const char *EventInjector::peer_iface_addr_str = "ac:bb:cc:dd:ee:ff";
+const char *EventInjector::peer_go_addr_str = "00:11:22:33:44:55";
+const char *EventInjector::peer_device_name = "TEST";
+const int EventInjector::peer_config_methods = WFD_OEM_WPS_MODE_PBC;
+const int EventInjector::peer_dev_flag = 0x25;
+const int EventInjector::peer_group_flag = 0x0;
+const int EventInjector::peer_dev_role = WFD_OEM_DEV_ROLE_NONE;
+const unsigned char EventInjector::peer_pri_dev_type = 10;
+const unsigned char EventInjector::peer_sec_dev_type = 1;
+const char *EventInjector::pin_str = "12345678";
+const unsigned char EventInjector::ip_addr[4] = {192, 168, 49, 100};
+const unsigned char EventInjector::ip_addr_mask[4] = {255, 255, 255, 0};
+const unsigned char EventInjector::ip_addr_go[4] = {192, 168, 49, 1};
+const int EventInjector::group_freq = 2412;
+const char *EventInjector::group_pass = "abcdefgh";
+
+EventInjector::EventInjector()
+{
+       this->event_data = NULL;
+       this->event_data = g_try_malloc0(sizeof(wfd_oem_event_s));
+}
+
+EventInjector::~EventInjector()
+{
+       wfd_oem_event_s *data = (wfd_oem_event_s *)this->event_data;
+       if (data) {
+               if (data->edata_type == WFD_OEM_EDATA_TYPE_NEW_SERVICE) {
+                       g_list_free((GList*) data->edata);
+                       data->edata = NULL;
+               }
+
+               if (data->edata_type == WFD_OEM_EDATA_TYPE_ASP_SERVICE) {
+
+                       wfd_oem_asp_service_s *service = (wfd_oem_asp_service_s *)data->edata;
+                       g_free(service->service_type);
+                       g_free(service->service_info);
+                       g_free(service);
+               }
+
+               if (data->edata_type == WFD_OEM_EDATA_TYPE_ASP_PROV) {
+                       wfd_oem_asp_prov_s *edata = (wfd_oem_asp_prov_s *)data->edata;
+                       g_free(edata->session_information);
+                       g_free(edata);
+                       data->edata = NULL;
+
+               }
+
+               if (data->edata)
+                       g_free(data->edata);
+
+               if (data->asp_services != NULL) {
+                       GList *l;
+                       wfd_oem_advertise_service_s *service;
+                       for (l = (GList *)data->asp_services; l != NULL; l = l->next) {
+                               service = (wfd_oem_advertise_service_s *)l->data;
+                               data->asp_services = g_list_remove(l, service);
+                               g_free(service->service_type);
+                               g_free(service);
+                       }
+               }
+               if (data->asp2_services != NULL) {
+                       GList *l;
+                       wfd_oem_advertise_service_s *service;
+                       for (l = (GList *)data->asp2_services; l != NULL; l = l->next) {
+                               service = (wfd_oem_advertise_service_s *)l->data;
+                               data->asp_services = g_list_remove(l, service);
+                               g_free(service->service_type);
+                               g_free(service->instance_name);
+                               g_free(service);
+                       }
+               }
+
+               g_free(data);
+       }
+}
+
+int EventInjector::txt_to_mac(const char *txt, unsigned char *mac)
+{
+       int i = 0;
+
+       if (!txt || !mac) {
+               return -1;
+       }
+
+       for (;;) {
+               mac[i++] = (char) strtoul((char *)txt, (char **)&txt, 16);
+               if (!*txt++ || i == 6)
+                       break;
+       }
+
+       if (i != this->mac_addr_len)
+               return -1;
+
+       return 0;
+}
+
+void EventInjector::InitData()
+{
+       wfd_oem_event_s *event = NULL;
+       event = (wfd_oem_event_s *)this->event_data;
+       if (event->edata_type == WFD_OEM_EDATA_TYPE_NEW_SERVICE) {
+               g_list_free((GList*) event->edata);
+               event->edata = NULL;
+       }
+
+       if (event->edata_type == WFD_OEM_EDATA_TYPE_ASP_SERVICE) {
+
+               wfd_oem_asp_service_s *service = (wfd_oem_asp_service_s *)event->edata;
+               g_free(service->service_type);
+               g_free(service->service_info);
+               g_free(service);
+       }
+
+       if (event->edata_type == WFD_OEM_EDATA_TYPE_ASP_PROV) {
+               wfd_oem_asp_prov_s *edata = (wfd_oem_asp_prov_s *)event->edata;
+               g_free(edata->session_information);
+               g_free(edata);
+               event->edata = NULL;
+
+       }
+
+       if (event->edata) {
+               g_free(event->edata);
+       }
+
+       if (event->asp_services != NULL) {
+               GList *l;
+               wfd_oem_advertise_service_s *service;
+               for (l = (GList *)event->asp_services; l != NULL; l = l->next) {
+                       service = (wfd_oem_advertise_service_s *)l->data;
+                       event->asp_services = g_list_remove(l, service);
+                       g_free(service->service_type);
+                       g_free(service);
+               }
+       }
+       if (event->asp2_services != NULL) {
+               GList *l;
+               wfd_oem_advertise_service_s *service;
+               for (l = (GList *)event->asp2_services; l != NULL; l = l->next) {
+                       service = (wfd_oem_advertise_service_s *)l->data;
+                       event->asp_services = g_list_remove(l, service);
+                       g_free(service->service_type);
+                       g_free(service->instance_name);
+                       g_free(service);
+               }
+       }
+       memset(event, 0, sizeof(wfd_oem_event_s));
+}
+
+void *EventInjector::GetData()
+{
+       return this->event_data;
+}
+
+void *EventInjector::Deactivated()
+{
+       wfd_oem_event_s *event = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       event->event_id = WFD_OEM_EVENT_DEACTIVATED;
+       event->edata_type = WFD_OEM_EDATA_TYPE_NONE;
+
+       return this->event_data;
+}
+
+void *EventInjector::PeerFound()
+{
+       wfd_oem_event_s *event = NULL;
+       wfd_oem_dev_data_s *edata = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       edata = (wfd_oem_dev_data_s *) g_try_malloc0(sizeof(wfd_oem_dev_data_s));
+
+       event->edata = (void*) edata;
+       event->edata_type = WFD_OEM_EDATA_TYPE_DEVICE;
+       event->event_id = WFD_OEM_EVENT_PEER_FOUND;
+
+       this->txt_to_mac(this->peer_device_addr_str, event->dev_addr);
+       g_strlcpy(edata->name, this->peer_device_name, OEM_DEV_NAME_LEN);
+       edata->config_methods = this->peer_config_methods;
+       edata->dev_flags = this->peer_dev_flag;
+       edata->group_flags = this->peer_group_flag;
+       edata->dev_role = this->peer_dev_role;
+       edata->pri_dev_type = this->peer_pri_dev_type;
+       edata->sec_dev_type = this->peer_sec_dev_type;
+       edata->rssi = -56;
+
+       edata->display.type = WFD_OEM_DISPLAY_TYPE_SOURCE;
+       edata->display.availability = 1;
+       edata->display.hdcp_support = 1;
+       edata->display.max_tput = 54;
+       edata->display.port = 7236;
+
+       this->txt_to_mac(this->peer_device_addr_str, edata->p2p_dev_addr);
+       return this->event_data;
+}
+
+void *EventInjector::GoFound()
+{
+       wfd_oem_event_s *event = NULL;
+       wfd_oem_dev_data_s *edata = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       edata = (wfd_oem_dev_data_s *) g_try_malloc0(sizeof(wfd_oem_dev_data_s));
+
+       event->edata = (void*) edata;
+       event->edata_type = WFD_OEM_EDATA_TYPE_DEVICE;
+       event->event_id = WFD_OEM_EVENT_PEER_FOUND;
+
+       this->txt_to_mac(this->peer_device_addr_str, event->dev_addr);
+       g_strlcpy(edata->name, this->peer_device_name, OEM_DEV_NAME_LEN);
+       edata->config_methods = this->peer_config_methods;
+       edata->dev_flags = this->peer_dev_flag;
+       edata->group_flags = this->peer_group_flag;
+       edata->dev_role = WFD_OEM_DEV_ROLE_GO;
+       edata->pri_dev_type = this->peer_pri_dev_type;
+       edata->sec_dev_type = this->peer_sec_dev_type;
+       edata->rssi = -56;
+
+       edata->display.type = WFD_OEM_DISPLAY_TYPE_SOURCE;
+       edata->display.availability = 1;
+       edata->display.hdcp_support = 1;
+       edata->display.max_tput = 54;
+       edata->display.port = 7236;
+
+       this->txt_to_mac(this->peer_device_addr_str, edata->p2p_dev_addr);
+       this->txt_to_mac(this->peer_iface_addr_str, edata->p2p_intf_addr);
+       return this->event_data;
+}
+
+void *EventInjector::PeerJoined()
+{
+       wfd_oem_event_s *event = NULL;
+       wfd_oem_dev_data_s *edata = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       edata = (wfd_oem_dev_data_s *) g_try_malloc0(sizeof(wfd_oem_dev_data_s));
+
+       event->edata = (void*) edata;
+       event->edata_type = WFD_OEM_EDATA_TYPE_DEVICE;
+       event->event_id = WFD_OEM_EVENT_STA_CONNECTED;
+
+       /* connected as Group Client*/
+       this->txt_to_mac(this->peer_device_addr_str, event->dev_addr);
+       g_strlcpy(edata->name, this->peer_device_name, OEM_DEV_NAME_LEN);
+       edata->config_methods = this->peer_config_methods;
+       edata->dev_flags = this->peer_dev_flag;
+       edata->group_flags = this->peer_group_flag;
+       edata->dev_role = WFD_OEM_DEV_ROLE_GC;
+       edata->pri_dev_type = this->peer_pri_dev_type;
+       edata->sec_dev_type = this->peer_sec_dev_type;
+       this->txt_to_mac(this->peer_device_addr_str, edata->p2p_dev_addr);
+
+       return this->event_data;
+}
+
+void *EventInjector::PeerJoinedwithIP()
+{
+       wfd_oem_event_s *event = NULL;
+       wfd_oem_dev_data_s *edata = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       edata = (wfd_oem_dev_data_s *) g_try_malloc0(sizeof(wfd_oem_dev_data_s));
+
+       event->edata = (void*) edata;
+       event->edata_type = WFD_OEM_EDATA_TYPE_DEVICE;
+       event->event_id = WFD_OEM_EVENT_STA_CONNECTED;
+
+       /* connected as Group Client*/
+       this->txt_to_mac(this->peer_device_addr_str, event->dev_addr);
+       g_strlcpy(edata->name, this->peer_device_name, OEM_DEV_NAME_LEN);
+       edata->config_methods = this->peer_config_methods;
+       edata->dev_flags = this->peer_dev_flag;
+       edata->group_flags = this->peer_group_flag;
+       edata->dev_role = WFD_OEM_DEV_ROLE_GC;
+       edata->pri_dev_type = this->peer_pri_dev_type;
+       edata->sec_dev_type = this->peer_sec_dev_type;
+       this->txt_to_mac(this->peer_device_addr_str, edata->p2p_dev_addr);
+
+       for (int i = 0; i <OEM_IPADDR_LEN; i++) {
+               event->ip_addr_peer[i] = this->ip_addr[i];
+       }
+
+       return this->event_data;
+}
+
+void *EventInjector::PeerDisconnected()
+{
+       wfd_oem_event_s *event = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+
+       event->edata_type = WFD_OEM_EDATA_TYPE_NONE;
+       event->event_id = WFD_OEM_EVENT_STA_DISCONNECTED;
+
+       /* Disconnected device device address*/
+       this->txt_to_mac(this->peer_device_addr_str, event->dev_addr);
+
+       return this->event_data;
+}
+void *EventInjector::LegacyPeerJoined()
+{
+       wfd_oem_event_s *event = NULL;
+       wfd_oem_dev_data_s *edata = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       edata = (wfd_oem_dev_data_s *) g_try_malloc0(sizeof(wfd_oem_dev_data_s));
+
+       event->edata = (void*) edata;
+       event->edata_type = WFD_OEM_EDATA_TYPE_DEVICE;
+       event->event_id = WFD_OEM_EVENT_STA_CONNECTED;
+
+       /* connected as Group Client*/
+       this->txt_to_mac(this->legacy_peer_iface_addr_str, event->intf_addr);
+
+       return this->event_data;
+}
+void *EventInjector::LegacyPeerDisconnected()
+{
+       wfd_oem_event_s *event = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+
+       event->edata_type = WFD_OEM_EDATA_TYPE_NONE;
+       event->event_id = WFD_OEM_EVENT_STA_DISCONNECTED;
+
+       /* Disconnected device device address*/
+       this->txt_to_mac(this->legacy_peer_iface_addr_str, event->intf_addr);
+
+       return this->event_data;
+}
+
+void *EventInjector::DeviceLost()
+{
+       wfd_oem_event_s *event = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+
+       event->edata_type = WFD_OEM_EDATA_TYPE_NONE;
+       event->event_id = WFD_OEM_EVENT_PEER_DISAPPEARED;
+
+       /* Disappeared device device address*/
+       this->txt_to_mac(this->peer_device_addr_str, event->dev_addr);
+
+       return this->event_data;
+}
+
+void *EventInjector::FindStopped()
+{
+       wfd_oem_event_s *event = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+
+       event->edata_type = WFD_OEM_EDATA_TYPE_NONE;
+       event->event_id = WFD_OEM_EVENT_DISCOVERY_FINISHED;
+
+       return this->event_data;
+}
+
+void *EventInjector::ProvReqDisplayPin(bool from_go)
+{
+       wfd_oem_event_s *event = NULL;
+       wfd_oem_dev_data_s *edata = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       edata = (wfd_oem_dev_data_s *) g_try_malloc0(sizeof(wfd_oem_dev_data_s));
+
+       event->edata = (void*) edata;
+       event->edata_type = WFD_OEM_EDATA_TYPE_DEVICE;
+       event->event_id = WFD_OEM_EVENT_PROV_DISC_REQ;
+       event->wps_mode = WFD_OEM_WPS_MODE_DISPLAY;
+
+       this->txt_to_mac(this->peer_device_addr_str, event->dev_addr);
+       g_strlcpy(edata->name, this->peer_device_name, OEM_DEV_NAME_LEN);
+       edata->config_methods = this->peer_config_methods;
+       edata->dev_flags = this->peer_dev_flag;
+       edata->group_flags = this->peer_group_flag;
+       edata->dev_role = this->peer_dev_role;
+       edata->pri_dev_type = this->peer_pri_dev_type;
+       edata->sec_dev_type = this->peer_sec_dev_type;
+       if (from_go)
+               edata->dev_role = WFD_OEM_DEV_ROLE_GO;
+
+       this->txt_to_mac(this->peer_device_addr_str, edata->p2p_dev_addr);
+       g_strlcpy(event->wps_pin, this->pin_str, OEM_PINSTR_LEN + 1);
+
+       return this->event_data;
+}
+
+void *EventInjector::ProvRespDisplayPin(bool from_go)
+{
+       wfd_oem_event_s *event = NULL;
+       wfd_oem_dev_data_s *edata = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       edata = (wfd_oem_dev_data_s *) g_try_malloc0(sizeof(wfd_oem_dev_data_s));
+
+       event->edata = (void*) edata;
+       event->edata_type = WFD_OEM_EDATA_TYPE_DEVICE;
+       event->event_id = WFD_OEM_EVENT_PROV_DISC_RESP;
+       event->wps_mode = WFD_OEM_WPS_MODE_DISPLAY;
+
+       this->txt_to_mac(this->peer_device_addr_str, event->dev_addr);
+       g_strlcpy(edata->name, this->peer_device_name, OEM_DEV_NAME_LEN);
+       edata->config_methods = this->peer_config_methods;
+       edata->dev_flags = this->peer_dev_flag;
+       edata->group_flags = this->peer_group_flag;
+       edata->dev_role = this->peer_dev_role;
+       edata->pri_dev_type = this->peer_pri_dev_type;
+       edata->sec_dev_type = this->peer_sec_dev_type;
+       if (from_go)
+               edata->dev_role = WFD_OEM_DEV_ROLE_GO;
+
+       this->txt_to_mac(this->peer_device_addr_str, edata->p2p_dev_addr);
+       g_strlcpy(event->wps_pin, this->pin_str, OEM_PINSTR_LEN + 1);
+
+       return this->event_data;
+}
+
+void *EventInjector::ProvReqEnterPin(bool from_go)
+{
+       wfd_oem_event_s *event = NULL;
+       wfd_oem_dev_data_s *edata = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       edata = (wfd_oem_dev_data_s *) g_try_malloc0(sizeof(wfd_oem_dev_data_s));
+
+       event->edata = (void*) edata;
+       event->edata_type = WFD_OEM_EDATA_TYPE_DEVICE;
+       event->event_id = WFD_OEM_EVENT_PROV_DISC_REQ;
+       event->wps_mode = WFD_OEM_WPS_MODE_KEYPAD;
+
+       this->txt_to_mac(this->peer_device_addr_str, event->dev_addr);
+       g_strlcpy(edata->name, this->peer_device_name, OEM_DEV_NAME_LEN);
+       edata->config_methods = this->peer_config_methods;
+       edata->dev_flags = this->peer_dev_flag;
+       edata->group_flags = this->peer_group_flag;
+       edata->dev_role = this->peer_dev_role;
+       edata->pri_dev_type = this->peer_pri_dev_type;
+       edata->sec_dev_type = this->peer_sec_dev_type;
+       if (from_go)
+               edata->dev_role = WFD_OEM_DEV_ROLE_GO;
+
+       this->txt_to_mac(this->peer_device_addr_str, edata->p2p_dev_addr);
+       return this->event_data;
+}
+
+void *EventInjector::ProvRespEnterPin(bool from_go)
+{
+       wfd_oem_event_s *event = NULL;
+       wfd_oem_dev_data_s *edata = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       edata = (wfd_oem_dev_data_s *) g_try_malloc0(sizeof(wfd_oem_dev_data_s));
+
+       event->edata = (void*) edata;
+       event->edata_type = WFD_OEM_EDATA_TYPE_DEVICE;
+       event->event_id = WFD_OEM_EVENT_PROV_DISC_RESP;
+       event->wps_mode = WFD_OEM_WPS_MODE_KEYPAD;
+
+       this->txt_to_mac(this->peer_device_addr_str, event->dev_addr);
+       g_strlcpy(edata->name, this->peer_device_name, OEM_DEV_NAME_LEN);
+       edata->config_methods = this->peer_config_methods;
+       edata->dev_flags = this->peer_dev_flag;
+       edata->group_flags = this->peer_group_flag;
+       edata->dev_role = this->peer_dev_role;
+       edata->pri_dev_type = this->peer_pri_dev_type;
+       edata->sec_dev_type = this->peer_sec_dev_type;
+       if (from_go)
+               edata->dev_role = WFD_OEM_DEV_ROLE_GO;
+
+       this->txt_to_mac(this->peer_device_addr_str, edata->p2p_dev_addr);
+       return this->event_data;
+}
+
+void *EventInjector::ProvPbcReq(bool from_go)
+{
+       wfd_oem_event_s *event = NULL;
+       wfd_oem_dev_data_s *edata = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       edata = (wfd_oem_dev_data_s *) g_try_malloc0(sizeof(wfd_oem_dev_data_s));
+
+       event->edata = (void*) edata;
+       event->edata_type = WFD_OEM_EDATA_TYPE_DEVICE;
+       event->event_id = WFD_OEM_EVENT_PROV_DISC_REQ;
+       event->wps_mode = WFD_OEM_WPS_MODE_PBC;
+
+       this->txt_to_mac(this->peer_device_addr_str, event->dev_addr);
+       g_strlcpy(edata->name, this->peer_device_name, OEM_DEV_NAME_LEN);
+       edata->config_methods = this->peer_config_methods;
+       edata->dev_flags = this->peer_dev_flag;
+       edata->group_flags = this->peer_group_flag;
+       edata->dev_role = this->peer_dev_role;
+       edata->pri_dev_type = this->peer_pri_dev_type;
+       edata->sec_dev_type = this->peer_sec_dev_type;
+       if (from_go)
+               edata->dev_role = WFD_OEM_DEV_ROLE_GO;
+
+       this->txt_to_mac(this->peer_device_addr_str, edata->p2p_dev_addr);
+       return this->event_data;
+}
+
+void *EventInjector::ProvPbcResp(bool from_go)
+{
+       wfd_oem_event_s *event = NULL;
+       wfd_oem_dev_data_s *edata = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       edata = (wfd_oem_dev_data_s *) g_try_malloc0(sizeof(wfd_oem_dev_data_s));
+
+       event->edata = (void*) edata;
+       event->edata_type = WFD_OEM_EDATA_TYPE_DEVICE;
+       event->event_id = WFD_OEM_EVENT_PROV_DISC_RESP;
+       event->wps_mode = WFD_OEM_WPS_MODE_PBC;
+
+       this->txt_to_mac(this->peer_device_addr_str, event->dev_addr);
+       g_strlcpy(edata->name, this->peer_device_name, OEM_DEV_NAME_LEN);
+       edata->config_methods = this->peer_config_methods;
+       edata->dev_flags = this->peer_dev_flag;
+       edata->group_flags = this->peer_group_flag;
+       edata->dev_role = this->peer_dev_role;
+       edata->pri_dev_type = this->peer_pri_dev_type;
+       edata->sec_dev_type = this->peer_sec_dev_type;
+       if (from_go)
+               edata->dev_role = WFD_OEM_DEV_ROLE_GO;
+
+       this->txt_to_mac(this->peer_device_addr_str, edata->p2p_dev_addr);
+       return this->event_data;
+}
+
+void *EventInjector::ProvFailure()
+{
+       wfd_oem_event_s *event = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       event->edata_type = WFD_OEM_EDATA_TYPE_NONE;
+       event->event_id = WFD_OEM_EVENT_PROV_DISC_FAIL;
+
+       return this->event_data;
+}
+
+void *EventInjector::GroupStartedGO()
+{
+       wfd_oem_event_s *event = NULL;
+       wfd_oem_group_data_s *group;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       group = (wfd_oem_group_data_s*)calloc(1, sizeof(wfd_oem_group_data_s));
+
+       event->edata = (void*) group;
+       event->edata_type = WFD_OEM_EDATA_TYPE_GROUP;
+       event->event_id = WFD_OEM_EVENT_GROUP_CREATED;
+
+       event->dev_role = WFD_OEM_DEV_ROLE_GO;
+       group->is_persistent = false;
+       group->freq = this->group_freq;
+       g_strlcpy(group->pass, this->group_pass, OEM_PASS_PHRASE_LEN+1);
+
+       return this->event_data;
+}
+
+void *EventInjector::GroupStartedGOPersistent()
+{
+       wfd_oem_event_s *event = NULL;
+       wfd_oem_group_data_s *group;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       group = (wfd_oem_group_data_s*)calloc(1, sizeof(wfd_oem_group_data_s));
+
+       event->edata = (void*) group;
+       event->edata_type = WFD_OEM_EDATA_TYPE_GROUP;
+       event->event_id = WFD_OEM_EVENT_GROUP_CREATED;
+
+       event->dev_role = WFD_OEM_DEV_ROLE_GO;
+       group->is_persistent = true;
+       group->freq = this->group_freq;
+       g_strlcpy(group->pass, this->group_pass, OEM_PASS_PHRASE_LEN+1);
+
+       return this->event_data;
+}
+
+void *EventInjector::GroupStartedGC()
+{
+       wfd_oem_event_s *event = NULL;
+       wfd_oem_group_data_s *group;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       group = (wfd_oem_group_data_s*)calloc(1, sizeof(wfd_oem_group_data_s));
+
+       event->edata = (void*) group;
+       event->edata_type = WFD_OEM_EDATA_TYPE_GROUP;
+       event->event_id = WFD_OEM_EVENT_GROUP_CREATED;
+
+       event->dev_role = WFD_OEM_DEV_ROLE_GC;
+       group->is_persistent = false;
+       group->freq = this->group_freq;
+       g_strlcpy(group->pass, this->group_pass, OEM_PASS_PHRASE_LEN+1);
+
+       for (int i = 0; i <OEM_IPADDR_LEN; i++) {
+               group->ip_addr[i] = this->ip_addr[i];
+               group->ip_addr_mask[i] = this->ip_addr_mask[i];
+               group->ip_addr_go[i] = this->ip_addr_go[i];
+       }
+
+       return this->event_data;
+}
+
+void *EventInjector::GroupStartedGCPersistent()
+{
+       wfd_oem_event_s *event = NULL;
+       wfd_oem_group_data_s *group;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       group = (wfd_oem_group_data_s*)calloc(1, sizeof(wfd_oem_group_data_s));
+
+       event->edata = (void*) group;
+       event->edata_type = WFD_OEM_EDATA_TYPE_GROUP;
+       event->event_id = WFD_OEM_EVENT_GROUP_CREATED;
+
+       event->dev_role = WFD_OEM_DEV_ROLE_GC;
+       group->is_persistent = true;
+       group->freq = this->group_freq;
+       g_strlcpy(group->pass, this->group_pass, OEM_PASS_PHRASE_LEN+1);
+
+       for (int i = 0; i <OEM_IPADDR_LEN; i++) {
+               group->ip_addr[i] = this->ip_addr[i];
+               group->ip_addr_mask[i] = this->ip_addr_mask[i];
+               group->ip_addr_go[i] = this->ip_addr_go[i];
+       }
+
+       return this->event_data;
+}
+
+void *EventInjector::GroupStartedGCwithoutIP()
+{
+       wfd_oem_event_s *event = NULL;
+       wfd_oem_group_data_s *group;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       group = (wfd_oem_group_data_s*)calloc(1, sizeof(wfd_oem_group_data_s));
+
+       event->edata = (void*) group;
+       event->edata_type = WFD_OEM_EDATA_TYPE_GROUP;
+       event->event_id = WFD_OEM_EVENT_GROUP_CREATED;
+
+       event->dev_role = WFD_OEM_DEV_ROLE_GC;
+       group->is_persistent = false;
+       group->freq = this->group_freq;
+       g_strlcpy(group->pass, this->group_pass, OEM_PASS_PHRASE_LEN+1);
+
+       return this->event_data;
+}
+
+void *EventInjector::GoNegSuccessGo()
+{
+       wfd_oem_event_s *event;
+       wfd_oem_conn_data_s *edata = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       edata = (wfd_oem_conn_data_s*)calloc(1, sizeof(wfd_oem_conn_data_s));
+
+       event->edata = (void*) edata;
+       event->edata_type = WFD_OEM_EDATA_TYPE_CONN;
+       event->event_id = WFD_OEM_EVENT_GO_NEG_DONE;
+
+       event->dev_role = WFD_OEM_DEV_ROLE_GO;
+
+       this->txt_to_mac(this->peer_device_addr_str, edata->peer_device_addr);
+       this->txt_to_mac(this->peer_iface_addr_str, edata->peer_intf_addr);
+
+       return this->event_data;
+}
+
+void *EventInjector::GoNegSuccessGc()
+{
+       wfd_oem_event_s *event;
+       wfd_oem_conn_data_s *edata = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       edata = (wfd_oem_conn_data_s*)calloc(1, sizeof(wfd_oem_conn_data_s));
+
+       event->edata = (void*) edata;
+       event->edata_type = WFD_OEM_EDATA_TYPE_CONN;
+       event->event_id = WFD_OEM_EVENT_GO_NEG_DONE;
+
+       event->dev_role = WFD_OEM_DEV_ROLE_GC;
+
+       this->txt_to_mac(this->peer_device_addr_str, edata->peer_device_addr);
+       this->txt_to_mac(this->peer_iface_addr_str, edata->peer_intf_addr);
+
+       return this->event_data;
+}
+
+void *EventInjector::GoNegFailure()
+{
+       wfd_oem_event_s *event;
+       wfd_oem_conn_data_s *edata = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       edata = (wfd_oem_conn_data_s*)calloc(1, sizeof(wfd_oem_conn_data_s));
+
+       event->edata = (void*) edata;
+       event->edata_type = WFD_OEM_EDATA_TYPE_CONN;
+       event->event_id = WFD_OEM_EVENT_GO_NEG_FAIL;
+
+       /* TODO: check status */
+       edata->status = 0;
+
+       return this->event_data;
+}
+
+void *EventInjector::GoNegRequestPbc()
+{
+       wfd_oem_event_s *event;
+       wfd_oem_dev_data_s *edata = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       edata = (wfd_oem_dev_data_s *) g_try_malloc0(sizeof(wfd_oem_dev_data_s));
+
+       event->edata = (void*) edata;
+       event->edata_type = WFD_OEM_EDATA_TYPE_DEVICE;
+       event->event_id = WFD_OEM_EVENT_GO_NEG_REQ;
+       event->wps_mode = WFD_OEM_WPS_MODE_PBC;
+
+       edata->device_go_intent = 7;
+
+       this->txt_to_mac(this->peer_device_addr_str, event->dev_addr);
+       g_strlcpy(edata->name, this->peer_device_name, OEM_DEV_NAME_LEN);
+       edata->config_methods = this->peer_config_methods;
+       edata->dev_flags = this->peer_dev_flag;
+       edata->group_flags = this->peer_group_flag;
+       edata->dev_role = this->peer_dev_role;
+       edata->pri_dev_type = this->peer_pri_dev_type;
+       edata->sec_dev_type = this->peer_sec_dev_type;
+       this->txt_to_mac(this->peer_device_addr_str, edata->p2p_dev_addr);
+
+       return this->event_data;
+}
+
+void *EventInjector::GoNegRequestDisplay()
+{
+       wfd_oem_event_s *event;
+       wfd_oem_dev_data_s *edata = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       edata = (wfd_oem_dev_data_s *) g_try_malloc0(sizeof(wfd_oem_dev_data_s));
+
+       event->edata = (void*) edata;
+       event->edata_type = WFD_OEM_EDATA_TYPE_DEVICE;
+       event->event_id = WFD_OEM_EVENT_GO_NEG_REQ;
+       event->wps_mode = WFD_OEM_WPS_MODE_KEYPAD;
+
+       edata->device_go_intent = 7;
+
+       this->txt_to_mac(this->peer_device_addr_str, event->dev_addr);
+       g_strlcpy(edata->name, this->peer_device_name, OEM_DEV_NAME_LEN);
+       edata->config_methods = this->peer_config_methods;
+       edata->dev_flags = this->peer_dev_flag;
+       edata->group_flags = this->peer_group_flag;
+       edata->dev_role = this->peer_dev_role;
+       edata->pri_dev_type = this->peer_pri_dev_type;
+       edata->sec_dev_type = this->peer_sec_dev_type;
+       this->txt_to_mac(this->peer_device_addr_str, edata->p2p_dev_addr);
+
+       return this->event_data;
+}
+
+void *EventInjector::GoNegRequestKeypad()
+{
+       wfd_oem_event_s *event;
+       wfd_oem_dev_data_s *edata = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       edata = (wfd_oem_dev_data_s *) g_try_malloc0(sizeof(wfd_oem_dev_data_s));
+
+       event->edata = (void*) edata;
+       event->edata_type = WFD_OEM_EDATA_TYPE_DEVICE;
+       event->event_id = WFD_OEM_EVENT_GO_NEG_REQ;
+
+       event->wps_mode = WFD_OEM_WPS_MODE_DISPLAY;
+
+       edata->device_go_intent = 7;
+
+       this->txt_to_mac(this->peer_device_addr_str, event->dev_addr);
+       g_strlcpy(edata->name, this->peer_device_name, OEM_DEV_NAME_LEN);
+       edata->config_methods = this->peer_config_methods;
+       edata->dev_flags = this->peer_dev_flag;
+       edata->group_flags = this->peer_group_flag;
+       edata->dev_role = this->peer_dev_role;
+       edata->pri_dev_type = this->peer_pri_dev_type;
+       edata->sec_dev_type = this->peer_sec_dev_type;
+       this->txt_to_mac(this->peer_device_addr_str, edata->p2p_dev_addr);
+
+       return this->event_data;
+}
+
+void *EventInjector::InvitationReceived()
+{
+       wfd_oem_event_s *event;
+       wfd_oem_invite_data_s *edata = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       edata = (wfd_oem_invite_data_s *) g_try_malloc0(sizeof(wfd_oem_invite_data_s));
+
+       event->edata = (void*) edata;
+       event->edata_type = WFD_OEM_EDATA_TYPE_INVITE;
+       event->event_id = WFD_OEM_EVENT_INVITATION_REQ;
+
+       this->txt_to_mac(this->peer_device_addr_str, event->dev_addr);
+       this->txt_to_mac(this->peer_iface_addr_str, edata->bssid);
+
+       return this->event_data;
+}
+
+void *EventInjector::GroupFinished()
+{
+       wfd_oem_event_s *event;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+
+       event->edata_type = WFD_OEM_EDATA_TYPE_NONE;
+       event->event_id = WFD_OEM_EVENT_GROUP_DESTROYED;
+
+       return this->event_data;
+}
+
+void *EventInjector::WpsFailed()
+{
+       wfd_oem_event_s *event;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+
+       event->edata_type = WFD_OEM_EDATA_TYPE_NONE;
+       event->event_id = WFD_OEM_EVENT_WPS_FAIL;
+
+       return this->event_data;
+}
+
+void *EventInjector::KeyNegFailed()
+{
+       wfd_oem_event_s *event;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+
+       event->edata_type = WFD_OEM_EDATA_TYPE_NONE;
+       event->event_id = WFD_OEM_EVENT_KEY_NEG_FAIL;
+
+       return this->event_data;
+}
+
+void *EventInjector::GroupFormationFailed()
+{
+       wfd_oem_event_s *event;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+
+       event->edata_type = WFD_OEM_EDATA_TYPE_NONE;
+       event->event_id = WFD_OEM_EVENT_GROUP_FORMATION_FAILURE;
+
+       return this->event_data;
+}
+
+void *EventInjector::InvitationAccepted()
+{
+       wfd_oem_event_s *event;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+
+       event->edata_type = WFD_OEM_EDATA_TYPE_NONE;
+       event->event_id = WFD_OEM_EVENT_INVITATION_ACCEPTED;
+
+       this->txt_to_mac(this->peer_device_addr_str, event->dev_addr);
+
+       return this->event_data;
+}
+
+void *EventInjector::ServDiscResp()
+{
+       GList *services = NULL;
+       wfd_oem_new_service_s *new_service = NULL;
+       wfd_oem_event_s *event;
+       int count = 0;
+
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+
+       event->edata_type = WFD_OEM_EDATA_TYPE_NEW_SERVICE;
+       event->event_id = WFD_OEM_EVENT_SERV_DISC_RESP;
+
+       new_service = (wfd_oem_new_service_s*)g_try_malloc0(sizeof(wfd_oem_new_service_s));
+       new_service->protocol = WFD_OEM_SERVICE_TYPE_BONJOUR;
+       new_service->trans_id = 1;
+       new_service->status = 1;
+       new_service->data.bonjour.query = strdup("_afpovertcp._tcp.local.");
+       new_service->data.bonjour.rdata = strdup("Example._afpovertcp._tcp.local");
+
+       services = g_list_append(services, new_service);
+       count++;
+
+       new_service = (wfd_oem_new_service_s*)g_try_malloc0(sizeof(wfd_oem_new_service_s));
+       new_service->protocol = WFD_OEM_SERVICE_TYPE_UPNP;
+       new_service->trans_id = 2;
+       new_service->status = 1;
+       new_service->data.upnp.version = strdup("10");
+       new_service->data.upnp.service = strdup("uuid:6859dede-8574-59ab-9332-123456789012::upnp:rootdevice");
+
+       services = g_list_append(services, new_service);
+       count++;
+
+       event->dev_role = count;
+       event->edata = (void*) services;
+
+       this->txt_to_mac(this->peer_device_addr_str, event->dev_addr);
+
+       return this->event_data;
+}
+
+void *EventInjector::AspPeerFound()
+{
+       wfd_oem_event_s *event = NULL;
+       wfd_oem_dev_data_s *edata = NULL;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       edata = (wfd_oem_dev_data_s *) g_try_malloc0(sizeof(wfd_oem_dev_data_s));
+
+       event->edata = (void*) edata;
+       event->edata_type = WFD_OEM_EDATA_TYPE_DEVICE;
+       event->event_id = WFD_OEM_EVENT_PEER_FOUND;
+
+       this->txt_to_mac(this->peer_device_addr_str, event->dev_addr);
+       g_strlcpy(edata->name, this->peer_device_name, OEM_DEV_NAME_LEN);
+       edata->config_methods = this->peer_config_methods;
+       edata->dev_flags = this->peer_dev_flag;
+       edata->group_flags = this->peer_group_flag;
+       edata->dev_role = this->peer_dev_role;
+       edata->pri_dev_type = this->peer_pri_dev_type;
+       edata->sec_dev_type = this->peer_sec_dev_type;
+       edata->rssi = -56;
+
+       edata->display.type = WFD_OEM_DISPLAY_TYPE_SOURCE;
+       edata->display.availability = 1;
+       edata->display.hdcp_support = 1;
+       edata->display.max_tput = 54;
+       edata->display.port = 7236;
+
+       this->txt_to_mac(this->peer_device_addr_str, edata->p2p_dev_addr);
+
+       /* P2PS service */
+       wfd_oem_advertise_service_s *service;
+       char *service_type = strdup("service_type");
+       int service_type_len = strlen(service_type);
+
+       service = (wfd_oem_advertise_service_s *)
+                       g_try_malloc0(sizeof(wfd_oem_advertise_service_s));
+       event->asp_services =  g_list_append((GList *)event->asp_services, service);
+
+       service->adv_id = 0;
+       service->config_method = 0;
+       service->service_type_length = service_type_len;
+       service->service_type = service_type;
+       service->search_id  = 0;
+
+       /* ASP service */
+       event->asp2_services;
+
+       char *asp_service_type = strdup("asp_service_type");
+       int asp_service_type_len = strlen(asp_service_type);
+       char *instance_name = strdup("instance_name");
+       int instance_name_len = strlen(instance_name);
+
+       service = (wfd_oem_advertise_service_s *)
+                       g_try_malloc0(sizeof(wfd_oem_advertise_service_s));
+       event->asp2_services =  g_list_append((GList *)event->asp2_services, service);
+
+       service->adv_id = 1;
+       service->config_method = 0;
+       service->service_type_length = asp_service_type_len;
+       service->service_type = asp_service_type;
+       service->instance_name_length = instance_name_len;
+       service->instance_name = instance_name;
+       service->search_id  = 0;
+
+       return this->event_data;
+}
+void *EventInjector::AspServiceFound()
+{
+       wfd_oem_event_s *event = NULL;
+       wfd_oem_asp_service_s *service = NULL;
+       char *asp_service_type = strdup("asp_service_type");
+       char *service_info = strdup("service_info");
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       service = (wfd_oem_asp_service_s *) g_try_malloc0(sizeof(wfd_oem_asp_service_s));
+
+       event->edata = (void*) service;
+       event->edata_type = WFD_OEM_EDATA_TYPE_ASP_SERVICE;
+       event->event_id = WFD_OEM_EVENT_ASP_SERV_RESP;
+
+       service->adv_id = 0;
+       service->status = 0;
+       service->config_method = 0;
+       service->service_type = asp_service_type;
+       service->service_info = service_info;
+
+       this->txt_to_mac(this->peer_device_addr_str, event->dev_addr);
+
+       return this->event_data;
+}
+
+void *EventInjector::AspProvStart(int wps_mode, int network_role)
+{
+       wfd_oem_event_s *event = NULL;
+       wfd_oem_asp_prov_s *edata;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       edata = (wfd_oem_asp_prov_s *) g_try_malloc0(sizeof(wfd_oem_asp_prov_s));
+
+       event->edata = (void*) edata;
+       event->edata_type = WFD_OEM_EDATA_TYPE_ASP_PROV;
+       event->event_id = WFD_OEM_EVENT_ASP_PROV_START;
+
+       edata->adv_id = 0;
+       edata->session_id = 0;
+       edata->network_role = network_role;
+       edata->session_information = strdup("session_info");
+
+       this->txt_to_mac(this->local_mac_str, edata->service_mac);
+       this->txt_to_mac(this->peer_device_addr_str, edata->session_mac);
+
+       event->wps_mode = wps_mode;
+
+       this->txt_to_mac(this->peer_device_addr_str, event->dev_addr);
+
+       return this->event_data;
+}
+
+void *EventInjector::AspProvDone(int status, int wps_mode, int network_role, int persist, int persist_id)
+{
+       wfd_oem_event_s *event = NULL;
+       wfd_oem_asp_prov_s *edata;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       edata = (wfd_oem_asp_prov_s *) g_try_malloc0(sizeof(wfd_oem_asp_prov_s));
+
+       event->edata = (void*) edata;
+       event->edata_type = WFD_OEM_EDATA_TYPE_ASP_PROV;
+       event->event_id = WFD_OEM_EVENT_ASP_PROV_DONE;
+
+       this->txt_to_mac(this->peer_device_addr_str, event->dev_addr);
+
+       edata->adv_id = 0;
+       edata->session_id = 0;
+       edata->network_role = network_role;
+       edata->session_information = strdup("session_info");
+       edata->status = status;
+       if (persist) {
+               edata->persist = persist;
+               edata->persistent_group_id = persist_id;
+       }
+
+       this->txt_to_mac(this->local_mac_str, edata->service_mac);
+       this->txt_to_mac(this->peer_device_addr_str, edata->session_mac);
+
+       event->wps_mode = 0;
+
+       this->txt_to_mac(this->peer_device_addr_str, event->dev_addr);
+
+       return this->event_data;
+}
+
+void *EventInjector::AspProvFail(int status)
+{
+       wfd_oem_event_s *event = NULL;
+       wfd_oem_asp_prov_s *edata;
+       this->InitData();
+
+       event = (wfd_oem_event_s *)this->event_data;
+       edata = (wfd_oem_asp_prov_s *) g_try_malloc0(sizeof(wfd_oem_asp_prov_s));
+
+       event->edata = (void*) edata;
+       event->edata_type = WFD_OEM_EDATA_TYPE_ASP_PROV;
+       event->event_id = WFD_OEM_EVENT_PROV_DISC_FAIL;
+
+       edata->adv_id = 0;
+       edata->status = status;
+       edata->session_information = strdup("session_info");
+
+       return this->event_data;
+}
diff --git a/unittest/event_injector.h b/unittest/event_injector.h
new file mode 100644 (file)
index 0000000..085b127
--- /dev/null
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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.
+ */
+
+#ifndef __EVENT_INJECTOR_H__
+#define __EVENT_INJECTOR_H__
+
+class EventInjector {
+private:
+       static const int mac_addr_len;
+       static const char *local_mac_str;
+       static const char *peer_device_addr_str;
+       static const char *peer_iface_addr_str;
+       static const char *legacy_peer_iface_addr_str;
+       static const char *peer_go_addr_str;
+       static const char *peer_device_name;
+       static const int peer_config_methods;
+       static const int peer_dev_flag;
+       static const int peer_group_flag;
+       static const int peer_dev_role;
+       static const unsigned char peer_pri_dev_type;
+       static const unsigned char peer_sec_dev_type;
+       static const char *pin_str;
+       static const unsigned char ip_addr[4];
+       static const unsigned char ip_addr_mask[4];
+       static const unsigned char ip_addr_go[4];
+       static const int group_freq;
+       static const char *group_pass;
+
+       void *event_data;
+       int txt_to_mac(const char *txt, unsigned char *mac);
+       void InitData();
+public:
+       EventInjector();
+       ~EventInjector();
+       void *GetData();
+       void *Deactivated();
+       void *PeerFound();
+       void *GoFound();
+       void *PeerJoined();
+       void *PeerJoinedwithIP();
+       void *PeerDisconnected();
+       void *LegacyPeerJoined();
+       void *LegacyPeerDisconnected();
+       void *DeviceLost();
+       void *FindStopped();
+       void *ProvReqDisplayPin(bool from_go);
+       void *ProvRespDisplayPin(bool from_go);
+       void *ProvReqEnterPin(bool from_go);
+       void *ProvRespEnterPin(bool from_go);
+       void *ProvPbcReq(bool from_go);
+       void *ProvPbcResp(bool from_go);
+       void *ProvFailure();
+       void *GroupStartedGO();
+       void *GroupStartedGOPersistent();
+       void *GroupStartedGC();
+       void *GroupStartedGCPersistent();
+       void *GroupStartedGCwithoutIP();
+       void *GoNegSuccessGo();
+       void *GoNegSuccessGc();
+       void *GoNegFailure();
+       void *GoNegRequestPbc();
+       void *GoNegRequestDisplay();
+       void *GoNegRequestKeypad();
+       void *InvitationReceived();
+       void *GroupFinished();
+       void *KeyNegFailed();
+       void *WpsFailed();
+       void *GroupFormationFailed();
+       void *InvitationAccepted();
+       void *ServDiscResp();
+       void *AspPeerFound();
+       void *AspServiceFound();
+       void *AspProvStart(int wps_mode, int network_role);
+       void *AspProvDone(int status, int wps_mode, int network_role, int persist, int persist_id);
+       void *AspProvFail(int status);
+};
+
+#endif
diff --git a/unittest/method_injector.cpp b/unittest/method_injector.cpp
new file mode 100644 (file)
index 0000000..67292e2
--- /dev/null
@@ -0,0 +1,681 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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 <glib.h>
+#include "wifi-direct-oem.h"
+#include "method_injector.h"
+
+const char *MethodInjector::peer_device_addr_str = "aa:bb:cc:dd:ee:ff";
+const char *MethodInjector::legacy_peer_iface_addr_str = "aa:bb:cc:dd:ee:ee";
+const char *MethodInjector::local_mac_str = "aa:bb:cc:dd:ee:dd";
+const char *MethodInjector::device_name = "gunit_test_name";
+const char *MethodInjector::pin_str = "12345678";
+const int MethodInjector::frame_id = WFD_OEM_VSIE_FRAME_P2P_PD_REQ;
+const char *MethodInjector::vsie_str = "ABCDEFGH";
+
+const int MethodInjector::display_type = 3;
+const int MethodInjector::display_port = 12345;
+const int MethodInjector::display_hdcp = 0;
+const int MethodInjector::display_avail = 0;
+const char *MethodInjector::passphrase = "abcdefgh";
+
+MethodInjector::MethodInjector()
+{
+       this->result = NULL;
+}
+
+MethodInjector::MethodInjector(GVariant *input)
+{
+       this->result = input;
+       g_variant_ref(input);
+}
+
+MethodInjector::MethodInjector(const MethodInjector & Other)
+{
+       if (Other.result) {
+               this->result = Other.result;
+               g_variant_ref(Other.result);
+       }
+}
+
+MethodInjector::~MethodInjector()
+{
+       if (MethodInjector::result) {
+               g_variant_unref(result);
+               result = NULL;
+       }
+}
+
+GVariant *MethodInjector::GetResult()
+{
+       return this->result;
+}
+
+const char *MethodInjector::GetDeviceName()
+{
+       return this->device_name;
+}
+
+GVariant *MethodInjector::StartDiscoveryListen()
+{
+       GVariantBuilder *builder = NULL;
+       GVariant *res = NULL;
+
+       gboolean listen_only = true;
+       int timeout = 0;
+       int frequency = 0;
+
+       builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+       g_variant_builder_add(builder, "{sv}", "Mode",
+                             g_variant_new("b", listen_only));
+       g_variant_builder_add(builder, "{sv}", "Timeout",
+                             g_variant_new("i", timeout));
+       g_variant_builder_add(builder, "{sv}", "Frequency",
+                             g_variant_new("i", frequency));
+       res = g_variant_new("(a{sv})", builder);
+       g_variant_builder_unref(builder);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::StartDiscoveryFind()
+{
+       GVariantBuilder *builder = NULL;
+       GVariant *res = NULL;
+
+       gboolean listen_only = false;
+       int timeout = 0;
+       int frequency = 0;
+
+       builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+       g_variant_builder_add(builder, "{sv}", "Mode",
+                             g_variant_new("b", listen_only));
+       g_variant_builder_add(builder, "{sv}", "Timeout",
+                             g_variant_new("i", timeout));
+       g_variant_builder_add(builder, "{sv}", "Frequency",
+                             g_variant_new("i", frequency));
+       res = g_variant_new("(a{sv})", builder);
+       g_variant_builder_unref(builder);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::CreateGroup()
+{
+       GVariantBuilder *builder = NULL;
+       GVariant *res = NULL;
+
+       builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+       g_variant_builder_add(builder, "{sv}", "ssid",
+                       g_variant_new_string("TIZEN"));
+       res = g_variant_new("(a{sv})", builder);
+       g_variant_builder_unref(builder);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::Connect()
+{
+       GVariant *res = NULL;
+
+       res = g_variant_new("(s)", this->peer_device_addr_str);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::AcceptConnect()
+{
+       GVariant *res = NULL;
+
+       res = g_variant_new("(s)", this->peer_device_addr_str);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::RejectConnect()
+{
+       GVariant *res = NULL;
+
+       res = g_variant_new("(s)", this->peer_device_addr_str);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+
+GVariant *MethodInjector::CancelConnect()
+{
+       GVariant *res = NULL;
+
+       res = g_variant_new("(s)", this->peer_device_addr_str);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::SetDeviceName()
+{
+       GVariant *res = NULL;
+
+       res = g_variant_new("(s)", this->device_name);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::SetReqWpsMode(int req_wps_mode)
+{
+       GVariant *res = NULL;
+
+       res = g_variant_new("(i)", req_wps_mode);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::SetGoIntent(int go_intent)
+{
+       GVariant *res = NULL;
+
+       res = g_variant_new("(i)", go_intent);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::SetMaxClient(int max_client)
+{
+       GVariant *res = NULL;
+
+       res = g_variant_new("(i)", max_client);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::SetAutoConnection(bool mode)
+{
+       GVariant *res = NULL;
+
+       res = g_variant_new("(b)", mode);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::SetSessionTimer(int session_timer)
+{
+       GVariant *res = NULL;
+
+       res = g_variant_new("(i)", session_timer);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::GetPeerAddr()
+{
+       GVariant *res = NULL;
+
+       res = g_variant_new("(s)", this->peer_device_addr_str);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::GetLegacyPeerAddr()
+{
+       GVariant *res = NULL;
+
+       res = g_variant_new("(s)", this->legacy_peer_iface_addr_str);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::SetWpsPin()
+{
+       GVariant *res = NULL;
+
+       res = g_variant_new("(s)", this->pin_str);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::SetPassphrase()
+{
+       GVariant *res = NULL;
+
+       res = g_variant_new("(s)", this->passphrase);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::SetDisplay()
+{
+       GVariant *res = NULL;
+
+       res = g_variant_new("(iii)", this->display_type, this->display_port, this->display_hdcp);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+
+}
+
+GVariant *MethodInjector::SetDisplayAvail()
+{
+       GVariant *res = NULL;
+
+       res = g_variant_new("(i)", this->display_avail);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::SetAutoGroupRemoval(bool enable)
+{
+       GVariant *res = NULL;
+
+       res = g_variant_new("(b)", enable);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::SetPersistentGroup(bool enable)
+{
+       GVariant *res = NULL;
+
+       res = g_variant_new("(b)", enable);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::AddVsie()
+{
+       GVariant *res = NULL;
+
+       res = g_variant_new("(is)", this->frame_id, this->vsie_str);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::GetVsie()
+{
+       GVariant *res = NULL;
+
+       res = g_variant_new("(i)", this->frame_id);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::RemoveVsie()
+{
+       GVariant *res = NULL;
+
+       res = g_variant_new("(is)", this->frame_id, this->vsie_str);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::SrvStartDiscovery()
+{
+       GVariant *res = NULL;
+       int srv_type = 2;
+       char *mac_addr = "00:00:00:00:00:00";
+
+       res = g_variant_new("(is)", srv_type, mac_addr);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::SrvStopDiscovery()
+{
+       GVariant *res = NULL;
+       int srv_type = 2;
+       char *mac_addr = "00:00:00:00:00:00";
+
+       res = g_variant_new("(is)", srv_type, mac_addr);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::SrvRegister()
+{
+       GVariant *res = NULL;
+       int srv_type = 2;
+       char *srv = "10|uuid:6859dede-8574-59ab-9332-123456789012::upnp:rootFdevice";
+
+       res = g_variant_new("(is)", srv_type, srv);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::SrvRegisterBonjourPtr()
+{
+       GVariant *res = NULL;
+       int srv_type = 1;
+       char *srv = "_http._tcp|ptrLocal._http._tcp";
+
+       res = g_variant_new("(is)", srv_type, srv);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::SrvRegisterBonjourTxt()
+{
+       GVariant *res = NULL;
+       int srv_type = 1;
+       char *srv = "_http._tcp|key=value";
+
+       res = g_variant_new("(is)", srv_type, srv);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::SrvRegister(int type, char *srv_str)
+{
+       GVariant *res = NULL;
+
+       res = g_variant_new("(is)", type, srv_str);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::SrvDeregister()
+{
+       GVariant *res = NULL;
+       int srv_id = 1;
+
+       res = g_variant_new("(i)", srv_id);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::AspAdvertise()
+{
+       GVariant *res = NULL;
+       GVariantBuilder *builder = NULL;
+
+       builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+       g_variant_builder_add(builder, "{sv}", "adv_id", g_variant_new("u", 0));
+       g_variant_builder_add(builder, "{sv}", "discovery_tech", g_variant_new("i", 0));
+       g_variant_builder_add(builder, "{sv}", "preferred_connection", g_variant_new("y", 0));
+       g_variant_builder_add(builder, "{sv}", "auto_accept", g_variant_new("i", 0));
+       g_variant_builder_add(builder, "{sv}", "status", g_variant_new("y", 0));
+       g_variant_builder_add(builder, "{sv}", "role", g_variant_new("y", 0));
+       g_variant_builder_add(builder, "{sv}", "replace", g_variant_new("i", 0));
+       g_variant_builder_add(builder, "{sv}", "config_method", g_variant_new("u", 0));
+       g_variant_builder_add(builder, "{sv}", "instance_name", g_variant_new("s", "instance_name"));
+       g_variant_builder_add(builder, "{sv}", "service_type", g_variant_new("s", "service_type"));
+       g_variant_builder_add(builder, "{sv}", "rsp_info", g_variant_new("s", "rsp_info"));
+       res = g_variant_new("(a{sv})", builder);
+       g_variant_builder_unref(builder);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::AspAdvertiseCancel()
+{
+       GVariant *res = NULL;
+
+       res = g_variant_new("(u)", 0);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+
+}
+
+GVariant *MethodInjector::AspSeek()
+{
+       GVariant *res = NULL;
+       GVariantBuilder *builder = NULL;
+
+       builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+       g_variant_builder_add(builder, "{sv}", "discovery_tech", g_variant_new("i", 0));
+       g_variant_builder_add(builder, "{sv}", "preferred_connection", g_variant_new("y", 0));
+       g_variant_builder_add(builder, "{sv}", "search_id", g_variant_new("t", 0));
+       g_variant_builder_add(builder, "{sv}", "service_type", g_variant_new("s", "service_type"));
+       res = g_variant_new("(a{sv})", builder);
+       g_variant_builder_unref(builder);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::AspSeekCancel()
+{
+       GVariant *res = NULL;
+       res = g_variant_new("(t)", 0);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
+
+GVariant *MethodInjector::AspSessionConnect(const char *session_mac_str, unsigned char network_role, unsigned int network_config)
+{
+       GVariant *res = NULL;
+       GVariantBuilder *builder = NULL;
+
+       builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+
+       g_variant_builder_add(builder, "{sv}", "service_mac", g_variant_new("s", this->peer_device_addr_str));
+       g_variant_builder_add(builder, "{sv}", "adv_id", g_variant_new("u", 0));
+
+       g_variant_builder_add(builder, "{sv}", "session_mac", g_variant_new("s", session_mac_str));
+       g_variant_builder_add(builder, "{sv}", "session_id", g_variant_new("u", 0));
+       g_variant_builder_add(builder, "{sv}", "role", g_variant_new("y", network_role));
+       g_variant_builder_add(builder, "{sv}", "config_method", g_variant_new("u", network_config));
+       g_variant_builder_add(builder, "{sv}", "session _info", g_variant_new("s", "session_info"));
+
+       res = g_variant_new("(a{sv})", builder);
+       g_variant_builder_unref(builder);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+
+}
+
+GVariant *MethodInjector::AspSessionConfirm(const char *session_mac_str, int confirm, char *pin)
+{
+       GVariant *res = NULL;
+       GVariantBuilder *builder = NULL;
+       gchar pin_str[8 + 1] = {0, };
+
+       builder = g_variant_builder_new(G_VARIANT_TYPE("a{sv}"));
+
+       g_variant_builder_add(builder, "{sv}", "session_mac", g_variant_new("s", this->peer_device_addr_str));
+       g_variant_builder_add(builder, "{sv}", "session_id", g_variant_new("u", 0));
+       g_variant_builder_add(builder, "{sv}", "confirm", g_variant_new("i", confirm));
+       if (pin != 0) {
+               g_snprintf(pin_str, 8 + 1, "%s", (gchar *)pin);
+               g_variant_builder_add(builder, "{sv}", "pin", g_variant_new("s", pin_str));
+       }
+       g_variant_builder_add(builder, "{sv}", "service_mac", g_variant_new("s", this->local_mac_str));
+       g_variant_builder_add(builder, "{sv}", "adv_id", g_variant_new("u", 0));
+
+       res = g_variant_new("(a{sv})", builder);
+       g_variant_builder_unref(builder);
+
+       if (this->result)
+               g_variant_unref(this->result);
+       this->result = res;
+       g_variant_ref(res);
+
+       return res;
+}
diff --git a/unittest/method_injector.h b/unittest/method_injector.h
new file mode 100644 (file)
index 0000000..c450289
--- /dev/null
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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.
+ */
+
+#ifndef __METHOD_INJECTOR_H__
+#define __METHOD_INJECTOR_H__
+
+class MethodInjector {
+private:
+       static const char *peer_device_addr_str;
+       static const char *legacy_peer_iface_addr_str;
+       static const char *device_name;
+       static const char *pin_str;
+       static const int frame_id;
+       static const char *vsie_str;
+       GVariant *result;
+public:
+       static const char *passphrase;
+       static const int display_type;
+       static const int display_port;
+       static const int display_hdcp;
+       static const int display_avail;
+       static const char *local_mac_str;
+       MethodInjector();
+       MethodInjector(GVariant *input);
+       MethodInjector(const MethodInjector & Other);
+       ~MethodInjector();
+       const char *GetDeviceName();
+       GVariant *GetResult();
+       GVariant *StartDiscoveryListen();
+       GVariant *StartDiscoveryFind();
+       GVariant *CreateGroup();
+       GVariant *DestroyGroup();
+       GVariant *Connect();
+       GVariant *AcceptConnect();
+       GVariant *RejectConnect();
+       GVariant *CancelConnect();
+       GVariant *SetDeviceName();
+       GVariant *SetReqWpsMode(int req_wps_mode);
+       GVariant *SetGoIntent(int go_intent);
+       GVariant *SetMaxClient(int max_client);
+       GVariant *SetAutoConnection(bool mode);
+       GVariant *SetSessionTimer(int session_timer);
+       GVariant *GetPeerAddr();
+       GVariant *GetLegacyPeerAddr();
+       GVariant *SetWpsPin();
+       GVariant *SetPassphrase();
+       GVariant *SetDisplay();
+       GVariant *SetDisplayAvail();
+       GVariant *SetAutoGroupRemoval(bool enable);
+       GVariant *SetPersistentGroup(bool enable);
+       GVariant *AddVsie();
+       GVariant *GetVsie();
+       GVariant *RemoveVsie();
+       GVariant *SrvStartDiscovery();
+       GVariant *SrvStopDiscovery();
+       GVariant *SrvRegister();
+       GVariant *SrvRegisterBonjourPtr();
+       GVariant *SrvRegisterBonjourTxt();
+       GVariant *SrvRegister(int type, char *srv_str);
+       GVariant *SrvDeregister();
+       GVariant *AspAdvertise();
+       GVariant *AspAdvertiseCancel();
+       GVariant *AspSeek();
+       GVariant *AspSeekCancel();
+       GVariant *AspSessionConnect(const char *session_mac_str, unsigned char network_role, unsigned int network_config);
+       GVariant *AspSessionConfirm(const char *session_mac_str, int confirm, char *pin);
+};
+
+#endif
diff --git a/unittest/unittest.cpp b/unittest/unittest.cpp
new file mode 100644 (file)
index 0000000..172f98d
--- /dev/null
@@ -0,0 +1,5229 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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 <stdio.h>
+#include <stdlib.h>
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include <unistd.h>
+
+#include "unittest.h"
+#include "method_injector.h"
+#include "event_injector.h"
+#include "wifi-direct-ipc.h"
+#include "wifi-direct-manager.h"
+#include "wifi-direct-method.h"
+#include "wifi-direct-state.h"
+#include "wifi-direct-oem.h"
+#include "wifi-direct-event.h"
+#include "wifi-direct-group.h"
+#include "wifi-direct-log.h"
+
+using ::testing::EmptyTestEventListener;
+using ::testing::InitGoogleTest;
+using ::testing::Test;
+using ::testing::TestCase;
+using ::testing::TestEventListeners;
+using ::testing::TestInfo;
+using ::testing::TestPartResult;
+using ::testing::UnitTest;
+
+#define CHECK_WFD_MGR_STATE(manager, expected_state)\
+       do {\
+               int res = 0;\
+               int state = 0;\
+               res = wfd_state_get((manager), &state);\
+               ASSERT_EQ(0, res);\
+               ASSERT_EQ((expected_state), state);\
+               } while (0);
+
+#define INIT_WFD_MGR(manager)\
+       do {\
+               wfd_manager_s *manager_null = NULL;\
+               int res = 0;\
+               res = wfd_manager_load();\
+               ASSERT_EQ(0, res);\
+               ASSERT_NE(manager_null, wfd_get_manager());\
+               CHECK_WFD_MGR_STATE(wfd_get_manager(), WIFI_DIRECT_STATE_DEACTIVATED);\
+               } while (0);
+
+TEST(wfd_mgr_activate_deactivate, activate_hanlder_Positive)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+}
+
+TEST(wfd_mgr_activate_deactivate, activate_hanlder_Negative)
+{
+       wfd_manager_s * manager = NULL;
+       int state = 0;
+       int ret = 0;
+
+       manager = wfd_get_manager();
+       activate_handler(NULL, NULL);
+       ret = wfd_state_get(NULL, &state);
+       ASSERT_EQ(-1, ret);
+}
+
+TEST(wfd_mgr_get, get_info_Positive )
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       EventInjector *group_started_event = new EventInjector;
+       wfd_event_group_created((wfd_oem_event_s*)group_started_event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       get_state_handler(NULL, NULL);
+       get_supported_wps_mode_handler(NULL, NULL);
+       get_local_wps_mode_handler(NULL, NULL);
+       is_listening_only_handler(NULL, NULL);
+       is_discoverable_handler(NULL, NULL);
+       is_group_owner_handler(NULL, NULL);
+       is_auto_group_handler(NULL, NULL);
+       get_operating_channel_handler(NULL, NULL);
+       activate_pushbutton_handler(NULL, NULL);
+       get_ip_address_handler(NULL, NULL);
+       get_mac_address_handler(NULL, NULL);
+       get_interface_name_handler(NULL, NULL);
+       get_subnet_mask_handler(NULL, NULL);
+       get_gateway_handler(NULL, NULL);
+       get_primary_dev_type_handler(NULL, NULL);
+       get_secondary_dev_type_handler(NULL, NULL);
+
+       destroy_group_handler(NULL, NULL);
+
+       EventInjector *group_destroy_event = new EventInjector;
+       wfd_event_group_destroyed((wfd_oem_event_s*)group_destroy_event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete group_create_method;
+       delete group_started_event;
+       delete group_destroy_event;
+}
+
+TEST(wfd_mgr_get, is_listening_only_handler_Negative)
+{
+       is_listening_only_handler(NULL, NULL);
+}
+
+TEST(wfd_mgr_get, is_group_owner_handler_Negative)
+{
+       is_group_owner_handler(NULL, NULL);
+}
+
+TEST(wfd_mgr_get, is_discoverable_handler_Negative)
+{
+       is_discoverable_handler(NULL, NULL);
+}
+
+TEST(wfd_mgr_get, is_auto_group_handler_Negative)
+{
+       is_auto_group_handler(NULL, NULL);
+}
+
+TEST(wfd_mgr_get, get_operating_channel_handler_Negative1)
+{
+       get_operating_channel_handler(NULL, NULL);
+}
+
+TEST(wfd_mgr_get, get_operating_channel_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       get_operating_channel_handler(NULL, NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+}
+
+TEST(wfd_mgr_get, activate_pushbutton_handler_Negative1)
+{
+       activate_pushbutton_handler(NULL, NULL);
+}
+
+TEST(wfd_mgr_get, activate_pushbutton_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       activate_pushbutton_handler(NULL, NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+}
+
+TEST(wfd_mgr_get, get_ip_address_handler_Negative1)
+{
+       get_ip_address_handler(NULL, NULL);
+}
+
+TEST(wfd_mgr_get, get_ip_address_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       get_ip_address_handler(NULL, NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+}
+
+TEST(wfd_mgr_get, get_interface_name_handler_Negative1)
+{
+       get_interface_name_handler(NULL, NULL);
+}
+
+TEST(wfd_mgr_get, get_interface_name_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       get_interface_name_handler(NULL, NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+}
+
+
+TEST(wfd_mgr_set_get, set_get_device_name_handler_Positive)
+{
+       wfd_manager_s * manager = NULL;
+       char device_name_orig[WIFI_DIRECT_MAX_DEVICE_NAME_LEN+1] = {0, };
+       char device_name[WIFI_DIRECT_MAX_DEVICE_NAME_LEN+1] = {0, };
+       int ret = 0;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       ret = wfd_local_get_dev_name(device_name_orig);
+       ASSERT_EQ(0, ret);
+
+       MethodInjector *set_device_name_method = new MethodInjector;
+       set_device_name_handler(set_device_name_method->SetDeviceName(), NULL);
+
+       ret = wfd_local_get_dev_name(device_name);
+       ASSERT_EQ(0, ret);
+       ASSERT_STREQ(set_device_name_method->GetDeviceName(), device_name);
+
+       get_device_name_handler(NULL, NULL);
+       ret = wfd_local_set_dev_name(device_name_orig);
+       ASSERT_EQ(0, ret);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete set_device_name_method;
+}
+
+TEST(wfd_mgr_set_get, __set_get_req_wps_mode_handler_Positive)
+{
+       wfd_manager_s * manager = NULL;
+       int wps_mode_orig = 0;
+       int wps_mode = 4;
+       int ret = 0;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       ret = wfd_manager_get_req_wps_mode(&wps_mode_orig);
+       ASSERT_EQ(0, ret);
+
+       get_local_wps_mode_handler(NULL, NULL);
+       get_req_wps_mode_handler(NULL, NULL);
+
+       MethodInjector *set_req_wps_method = new MethodInjector;
+       set_req_wps_mode_handler(set_req_wps_method->SetReqWpsMode(wps_mode), NULL);
+       ret = wfd_manager_get_req_wps_mode(&wps_mode);
+       ASSERT_EQ(4, wps_mode);
+       ASSERT_EQ(0, ret);
+
+       ret = wfd_manager_set_req_wps_mode(wps_mode_orig);
+       ASSERT_EQ(0, ret);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+       delete set_req_wps_method;
+}
+
+TEST(wfd_mgr_set_get, set_get_passphrase_handler_Positive)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *set_passphrase_method = new MethodInjector;
+       set_passphrase_handler(set_passphrase_method->SetPassphrase(), NULL);
+       ASSERT_STREQ(manager->local->passphrase, set_passphrase_method->passphrase);
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       EventInjector *group_started_event = new EventInjector;
+       wfd_event_group_created((wfd_oem_event_s*)group_started_event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       get_passphrase_handler(NULL, NULL);
+
+       destroy_group_handler(NULL, NULL);
+
+       EventInjector *group_destroy_event = new EventInjector;
+       wfd_event_group_destroyed((wfd_oem_event_s*)group_destroy_event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+       wfd_manager_unload();
+
+       delete group_create_method;
+       delete set_passphrase_method;
+       delete group_started_event;
+       delete group_destroy_event;
+}
+TEST(wfd_mgr_set_get, set_passphrase_handler_Negative1)
+{
+       MethodInjector *set_passphrase_method = new MethodInjector;
+       set_passphrase_handler(set_passphrase_method->SetPassphrase(), NULL);
+
+       delete set_passphrase_method;
+}
+
+TEST(wfd_mgr_set_get, set_passphrase_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       EventInjector *group_started_event = new EventInjector;
+       wfd_event_group_created((wfd_oem_event_s*)group_started_event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       MethodInjector *set_passphrase_method = new MethodInjector;
+       set_passphrase_handler(set_passphrase_method->SetPassphrase(), NULL);
+       ASSERT_STRNE(manager->local->passphrase, set_passphrase_method->passphrase);
+
+       destroy_group_handler(NULL, NULL);
+
+       EventInjector *group_destroy_event = new EventInjector;
+       wfd_event_group_destroyed((wfd_oem_event_s*)group_destroy_event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+       wfd_manager_unload();
+
+       delete set_passphrase_method;
+       delete group_create_method;
+       delete group_started_event;
+       delete group_destroy_event;
+}
+
+TEST(wfd_mgr_set_get, set_passphrase_handler_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       set_passphrase_handler(g_variant_new("(s)", "0"), NULL);
+
+       wfd_manager_unload();
+}
+
+TEST(wfd_mgr_set_get, set_get_go_intent_handler_Positive)
+{
+       wfd_manager_s * manager = NULL;
+       int go_intent_orig = 0;
+       int go_intent = 14;
+       int ret = 0;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       ret = wfd_manager_get_go_intent(&go_intent_orig);
+       ASSERT_EQ(0, ret);
+
+       get_go_intent_handler(NULL, NULL);
+
+       MethodInjector *set_go_intent_method = new MethodInjector;
+       set_go_intent_handler(set_go_intent_method->SetGoIntent(go_intent), NULL);
+
+       get_go_intent_handler(NULL, NULL);
+       ret = wfd_manager_get_go_intent(&go_intent);
+       ASSERT_EQ(14, go_intent);
+       ASSERT_EQ(0, ret);
+
+       ret = wfd_manager_set_go_intent(go_intent_orig);
+       ASSERT_EQ(0, ret);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+       delete set_go_intent_method;
+}
+
+TEST(wfd_mgr_set_get, set_go_intent_handler_Negative)
+{
+       wfd_manager_s * manager = NULL;
+       int go_intent_orig = 0;
+       int go_intent = 14;
+       int ret = 0;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       ret = wfd_manager_get_go_intent(&go_intent_orig);
+       ASSERT_EQ(0, ret);
+
+       get_go_intent_handler(NULL, NULL);
+
+       MethodInjector *set_go_intent_method = new MethodInjector;
+       set_go_intent_handler(set_go_intent_method->SetGoIntent(-1), NULL);
+       ret = wfd_manager_get_go_intent(&go_intent);
+       ASSERT_EQ(go_intent_orig, go_intent);
+       ASSERT_EQ(0, ret);
+
+       ret = wfd_manager_set_go_intent(go_intent_orig);
+       ASSERT_EQ(0, ret);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+       delete set_go_intent_method;
+}
+
+TEST(wfd_mgr_set_get, set_get_max_client_handler_Positive)
+{
+       wfd_manager_s * manager = NULL;
+       int max_client_orig = 0;
+       int max_client = 5;
+       int ret = 0;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       ret = wfd_manager_get_max_station(&max_client_orig);
+       ASSERT_EQ(0, ret);
+
+       MethodInjector *set_max_client_method = new MethodInjector;
+       set_max_client_handler(set_max_client_method->SetMaxClient(max_client), NULL);
+
+       get_max_client_handler(NULL, NULL);
+       ret = wfd_manager_get_max_station(&max_client);
+       ASSERT_EQ(5, max_client);
+       ASSERT_EQ(0, ret);
+
+       ret = wfd_manager_set_max_station(max_client_orig);
+       ASSERT_EQ(0, ret);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+       delete set_max_client_method;
+}
+
+TEST(wfd_mgr_set_get, set_max_client_handler_Negative)
+{
+       wfd_manager_s * manager = NULL;
+       int max_client_orig = 0;
+       int max_client = 5;
+       int ret = 0;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       ret = wfd_manager_get_max_station(&max_client_orig);
+       ASSERT_EQ(0, ret);
+
+       MethodInjector *set_max_client_method = new MethodInjector;
+       set_max_client_handler(set_max_client_method->SetMaxClient(-1), NULL);
+
+       ret = wfd_manager_get_max_station(&max_client);
+       ASSERT_EQ(max_client_orig, max_client);
+       ASSERT_EQ(0, ret);
+
+       ret = wfd_manager_set_max_station(max_client_orig);
+       ASSERT_EQ(0, ret);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+       delete set_max_client_method;
+}
+
+
+TEST(wfd_mgr_set_get, set_autoconnection_mode_handler_Positive)
+{
+       wfd_manager_s * manager = NULL;
+       int auto_connect_orig = 0;
+       int auto_connect;
+       int ret = 0;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       ret = wfd_manager_get_autoconnection(&auto_connect_orig);
+       ASSERT_EQ(0, ret);
+
+       MethodInjector *set_auto_connect = new MethodInjector;
+       set_autoconnection_mode_handler(set_auto_connect->SetAutoConnection(true), NULL);
+       is_autoconnection_mode_handler(NULL, NULL);
+       ret = wfd_manager_get_autoconnection(&auto_connect);
+       ASSERT_EQ(true, auto_connect);
+
+       set_autoconnection_mode_handler(set_auto_connect->SetAutoConnection(false), NULL);
+       ret = wfd_manager_get_autoconnection(&auto_connect);
+       ASSERT_EQ(false, auto_connect);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+       delete set_auto_connect;
+}
+
+TEST(wfd_mgr_set_get, set_get_session_timer_handler_Positive)
+{
+       wfd_manager_s * manager = NULL;
+       int session_timer_orig = 0;
+       int session_timer = 5;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       session_timer_orig = manager->session_timer;
+
+       MethodInjector *set_session_timer_method = new MethodInjector;
+       set_session_timer_handler(set_session_timer_method->SetSessionTimer(session_timer), NULL);
+       get_session_timer_handler(NULL, NULL);
+       session_timer = manager->session_timer;
+       ASSERT_EQ(5, session_timer);
+
+       manager->session_timer = session_timer_orig;
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+       delete set_session_timer_method;
+}
+
+TEST(wfd_mgr_set_get, set_session_timer_handler_Negative)
+{
+       MethodInjector *set_session_timer_method = new MethodInjector;
+       set_session_timer_handler(set_session_timer_method->SetSessionTimer(10), NULL);
+}
+
+TEST(wfd_mgr_set_get, get_session_timer_handler_Negative)
+{
+       get_session_timer_handler(NULL, NULL);
+}
+
+TEST(wfd_mgr_set_get, set_persistent_group_handler_Positive)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *enable_persistent_group_method = new MethodInjector;
+       set_persistent_group_handler(enable_persistent_group_method->SetPersistentGroup(true), NULL);
+       ASSERT_EQ(true, (manager->local->group_flags &
+                       WFD_GROUP_FLAG_PERSISTENT)
+               == WFD_GROUP_FLAG_PERSISTENT);
+
+       is_persistent_group_enabled_handler(NULL, NULL);
+
+       set_persistent_group_handler(enable_persistent_group_method->SetPersistentGroup(false), NULL);
+       ASSERT_EQ(false, (manager->local->group_flags &
+                       WFD_GROUP_FLAG_PERSISTENT)
+               == WFD_GROUP_FLAG_PERSISTENT);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+       delete enable_persistent_group_method;
+}
+
+TEST(wfd_mgr_set_get, set_persistent_group_handler_Negative)
+{
+       MethodInjector *enable_persistent_group_method = new MethodInjector;
+       set_persistent_group_handler(enable_persistent_group_method->SetPersistentGroup(true), NULL);
+}
+
+TEST(wfd_mgr_set_get, get_auto_group_removal_handler_Positive1)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *set_auto_group_removal_method = new MethodInjector;
+       get_auto_group_removal_handler(set_auto_group_removal_method->SetAutoGroupRemoval(true), NULL);
+       ASSERT_EQ(true, manager->auto_group_remove_enable);
+
+       get_auto_group_removal_handler(set_auto_group_removal_method->SetAutoGroupRemoval(false), NULL);
+       ASSERT_EQ(false, manager->auto_group_remove_enable);
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       EventInjector *group_started_event = new EventInjector;
+       wfd_event_group_created((wfd_oem_event_s*)group_started_event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       get_auto_group_removal_handler(set_auto_group_removal_method->SetAutoGroupRemoval(true), NULL);
+       ASSERT_EQ(true, manager->auto_group_remove_enable);
+
+       EventInjector *group_destroy_event = new EventInjector;
+       wfd_event_group_destroyed((wfd_oem_event_s*)group_destroy_event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete group_create_method;
+       delete group_started_event;
+       delete group_destroy_event;
+       delete set_auto_group_removal_method;
+}
+
+TEST(wfd_mgr_set_get, get_auto_group_removal_handler_Positive2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *set_auto_group_removal_method = new MethodInjector;
+       get_auto_group_removal_handler(set_auto_group_removal_method->SetAutoGroupRemoval(true), NULL);
+       ASSERT_EQ(true, manager->auto_group_remove_enable);
+
+       get_auto_group_removal_handler(set_auto_group_removal_method->SetAutoGroupRemoval(false), NULL);
+       ASSERT_EQ(false, manager->auto_group_remove_enable);
+
+       EventInjector *found_event = new EventInjector;
+       wfd_event_peer_found((wfd_oem_event_s *)found_event->PeerFound());
+
+       get_connected_peers_handler(NULL, NULL);
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+
+       EventInjector *prov_pbc_resp_event = new EventInjector;
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)prov_pbc_resp_event->ProvPbcResp(false));
+
+       EventInjector *go_neg_req_event = new EventInjector;
+       wfd_event_go_neg_req((wfd_oem_event_s*)go_neg_req_event->GoNegRequestPbc());
+
+       get_auto_group_removal_handler(set_auto_group_removal_method->SetAutoGroupRemoval(true), NULL);
+       ASSERT_EQ(true, manager->auto_group_remove_enable);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete set_auto_group_removal_method;
+       delete found_event;
+       delete connect_method;
+       delete prov_pbc_resp_event;
+       delete go_neg_req_event;
+}
+
+TEST(wfd_mgr_set_get, get_auto_group_removal_handler_Negative1)
+{
+       MethodInjector *set_auto_group_removal_method = new MethodInjector;
+       get_auto_group_removal_handler(set_auto_group_removal_method->SetAutoGroupRemoval(true), NULL);
+
+       delete set_auto_group_removal_method;
+}
+
+TEST(wfd_mgr_set_get, get_auto_group_removal_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       MethodInjector *set_auto_group_removal_method = new MethodInjector;
+       get_auto_group_removal_handler(set_auto_group_removal_method->SetAutoGroupRemoval(true), NULL);
+
+       wfd_manager_unload();
+       delete set_auto_group_removal_method;
+}
+
+
+TEST(wfd_mgr_discovery, start_discovery_handler_find_Positive1)
+{
+       EventInjector *event = new EventInjector;
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *find_injector = new MethodInjector;
+       start_discovery_handler(find_injector->StartDiscoveryFind(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DISCOVERING);
+
+       stop_discovery_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       start_discovery_handler(find_injector->StartDiscoveryFind(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DISCOVERING);
+
+       wfd_event_discovery_finished((wfd_oem_event_s*)event->FindStopped());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+       delete find_injector;
+       delete event;
+}
+
+TEST(wfd_mgr_discovery, start_discovery_handler_find_Positive2)
+{
+       EventInjector *event = new EventInjector;
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       MethodInjector *find_injector = new MethodInjector;
+       start_discovery_handler(find_injector->StartDiscoveryFind(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       stop_discovery_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       start_discovery_handler(find_injector->StartDiscoveryFind(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_discovery_finished((wfd_oem_event_s*)event->FindStopped());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       destroy_group_handler(NULL, NULL);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete find_injector;
+       delete group_create_method;
+       delete event;
+}
+
+TEST(wfd_mgr_discovery, start_discovery_handler_Negative1)
+{
+       wfd_manager_s * manager = NULL;
+       int state = 0;
+       int ret = 0;
+
+       MethodInjector *find_injector = new MethodInjector;
+       start_discovery_handler(find_injector->StartDiscoveryFind(), NULL);
+       ret = wfd_state_get(manager, &state);
+       ASSERT_EQ(-1, ret);
+
+       delete find_injector;
+}
+
+TEST(wfd_mgr_discovery, start_discovery_handler_find_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       MethodInjector *find_injector = new MethodInjector;
+       start_discovery_handler(find_injector->StartDiscoveryFind(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete find_injector;
+}
+
+TEST(wfd_mgr_discovery, start_discovery_handler_find_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       MethodInjector *find_injector = new MethodInjector;
+       start_discovery_handler(find_injector->StartDiscoveryFind(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete find_injector;
+}
+
+TEST(wfd_mgr_discovery, start_discovery_handler_listen_Positive)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *find_injector = new MethodInjector;
+       start_discovery_handler(find_injector->StartDiscoveryListen(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DISCOVERING);
+
+       stop_discovery_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+       delete find_injector;
+}
+
+TEST(wfd_mgr_discovery, start_discovery_handler_go_Listen)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       EventInjector *group_started_event = new EventInjector;
+       wfd_event_group_created((wfd_oem_event_s*)group_started_event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       MethodInjector *find_injector = new MethodInjector;
+       start_discovery_handler(find_injector->StartDiscoveryListen(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       destroy_group_handler(NULL, NULL);
+
+       EventInjector *group_destroy_event = new EventInjector;
+       wfd_event_group_destroyed((wfd_oem_event_s*)group_destroy_event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete find_injector;
+       delete group_create_method;
+       delete group_started_event;
+       delete group_destroy_event;
+}
+
+TEST(wfd_mgr_discovery, start_discovery_handler_get_peer_Positive)
+{
+       wfd_manager_s * manager = NULL;
+       wfd_oem_event_s *event = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       EventInjector *found_injector = new EventInjector;
+       event = (wfd_oem_event_s *)found_injector->PeerFound();
+       wfd_event_peer_found(event);
+
+       get_discovered_peer_handler(NULL, NULL);
+
+       EventInjector *lost_injector = new EventInjector;
+       event = (wfd_oem_event_s *)lost_injector->DeviceLost();
+       wfd_event_peer_disappeared(event);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+       delete found_injector;
+       delete lost_injector;
+}
+
+TEST(wfd_mgr_discovery, start_discovery_handler_get_peer_Negative1)
+{
+       get_discovered_peer_handler(NULL, NULL);
+}
+
+TEST(wfd_mgr_discovery, start_discovery_handler_get_peer_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       get_discovered_peer_handler(NULL, NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+}
+
+TEST(wfd_mgr_get_peer_info, get_peer_info_handler_Positive)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       get_peer_info_handler(peer_dev_addr->GetPeerAddr(), NULL);
+       get_peer_rssi_handler(peer_dev_addr->GetPeerAddr(), NULL);
+       display_get_peer_type_handler(peer_dev_addr->GetPeerAddr(), NULL);
+       display_get_peer_type_handler(peer_dev_addr->GetPeerAddr(), NULL);
+       display_get_peer_hdcp_handler(peer_dev_addr->GetPeerAddr(), NULL);
+       display_get_peer_port_handler(peer_dev_addr->GetPeerAddr(), NULL);
+       display_get_peer_throughput_handler(peer_dev_addr->GetPeerAddr(), NULL);
+
+       wfd_event_peer_disappeared((wfd_oem_event_s *)event->DeviceLost());
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+       delete event;
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, get_peer_info_handler_Negative1)
+{
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       get_peer_info_handler(peer_dev_addr->GetPeerAddr(), NULL);
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, get_peer_info_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       get_peer_info_handler(peer_dev_addr->GetPeerAddr(), NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, get_peer_rssi_handler_Negative1)
+{
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       get_peer_rssi_handler(peer_dev_addr->GetPeerAddr(), NULL);
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, get_peer_rssi_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       get_peer_rssi_handler(peer_dev_addr->GetPeerAddr(), NULL);
+
+       wfd_manager_unload();
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, get_peer_rssi_handler_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       get_peer_rssi_handler(peer_dev_addr->GetPeerAddr(), NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, display_get_peer_type_handler_Negative1)
+{
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       display_get_peer_type_handler(peer_dev_addr->GetPeerAddr(), NULL);
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, display_get_peer_type_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_wifi_display_supported = false;
+
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       display_get_peer_type_handler(peer_dev_addr->GetPeerAddr(), NULL);
+
+       wfd_manager_unload();
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, display_get_peer_type_handler_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_wifi_display_supported = true;
+
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       display_get_peer_type_handler(peer_dev_addr->GetPeerAddr(), NULL);
+
+       wfd_manager_unload();
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, display_get_peer_type_handler_Negative4)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_wifi_display_supported = true;
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       display_get_peer_type_handler(peer_dev_addr->GetPeerAddr(), NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, display_get_peer_avail_handler_Negative1)
+{
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       display_get_peer_avail_handler(peer_dev_addr->GetPeerAddr(), NULL);
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, display_get_peer_avail_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_wifi_display_supported = false;
+
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       display_get_peer_avail_handler(peer_dev_addr->GetPeerAddr(), NULL);
+
+       wfd_manager_unload();
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, display_get_peer_avail_handler_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_wifi_display_supported = true;
+
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       display_get_peer_avail_handler(peer_dev_addr->GetPeerAddr(), NULL);
+
+       wfd_manager_unload();
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, display_get_peer_avail_handler_Negative4)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_wifi_display_supported = true;
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       display_get_peer_avail_handler(peer_dev_addr->GetPeerAddr(), NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, display_get_peer_hdcp_handler_Negative1)
+{
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       display_get_peer_hdcp_handler(peer_dev_addr->GetPeerAddr(), NULL);
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, display_get_peer_hdcp_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_wifi_display_supported = false;
+
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       display_get_peer_hdcp_handler(peer_dev_addr->GetPeerAddr(), NULL);
+
+       wfd_manager_unload();
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, display_get_peer_hdcp_handler_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_wifi_display_supported = true;
+
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       display_get_peer_hdcp_handler(peer_dev_addr->GetPeerAddr(), NULL);
+
+       wfd_manager_unload();
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, display_get_peer_hdcp_handler_Negative4)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_wifi_display_supported = true;
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       display_get_peer_hdcp_handler(peer_dev_addr->GetPeerAddr(), NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, display_get_peer_port_handler_Negative1)
+{
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       display_get_peer_port_handler(peer_dev_addr->GetPeerAddr(), NULL);
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, display_get_peer_port_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_wifi_display_supported = false;
+
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       display_get_peer_port_handler(peer_dev_addr->GetPeerAddr(), NULL);
+
+       wfd_manager_unload();
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, display_get_peer_port_handler_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_wifi_display_supported = true;
+
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       display_get_peer_port_handler(peer_dev_addr->GetPeerAddr(), NULL);
+
+       wfd_manager_unload();
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, display_get_peer_port_handler_Negative4)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_wifi_display_supported = true;
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       display_get_peer_port_handler(peer_dev_addr->GetPeerAddr(), NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, display_get_peer_throughput_handler_Negative1)
+{
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       display_get_peer_throughput_handler(peer_dev_addr->GetPeerAddr(), NULL);
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, display_get_peer_throughput_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_wifi_display_supported = false;
+
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       display_get_peer_throughput_handler(peer_dev_addr->GetPeerAddr(), NULL);
+
+       wfd_manager_unload();
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, display_get_peer_throughput_handler_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_wifi_display_supported = true;
+
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       display_get_peer_throughput_handler(peer_dev_addr->GetPeerAddr(), NULL);
+
+       wfd_manager_unload();
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_get_peer_info, display_get_peer_throughput_handler_Negative4)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_wifi_display_supported = true;
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *peer_dev_addr = new MethodInjector;
+       display_get_peer_throughput_handler(peer_dev_addr->GetPeerAddr(), NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+       delete peer_dev_addr;
+}
+
+TEST(wfd_mgr_gruop, create_group_handler_Positive)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       EventInjector *group_started_event = new EventInjector;
+       wfd_event_group_created((wfd_oem_event_s*)group_started_event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       destroy_group_handler(NULL, NULL);
+
+       EventInjector *group_destroy_event = new EventInjector;
+       wfd_event_group_destroyed((wfd_oem_event_s*)group_destroy_event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete group_create_method;
+       delete group_started_event;
+       delete group_destroy_event;
+}
+
+TEST(wfd_mgr_gruop, create_group_handler_Negative1)
+{
+       wfd_manager_s * manager = NULL;
+       int state = 0;
+       int ret = 0;
+       manager = wfd_get_manager();
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       ret = wfd_state_get(manager, &state);
+       ASSERT_EQ(-1, ret);
+
+       delete group_create_method;
+}
+
+TEST(wfd_mgr_gruop, create_group_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+       delete group_create_method;
+}
+
+TEST(wfd_mgr_gruop, create_group_handler_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       EventInjector *group_started_event = new EventInjector;
+       wfd_event_group_created((wfd_oem_event_s*)group_started_event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       destroy_group_handler(NULL, NULL);
+
+       EventInjector *group_destroy_event = new EventInjector;
+       wfd_event_group_destroyed((wfd_oem_event_s*)group_destroy_event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete group_create_method;
+       delete group_started_event;
+       delete group_destroy_event;
+}
+
+TEST(wfd_mgr_gruop, destroy_group_handler_Negative1)
+{
+       wfd_manager_s * manager = NULL;
+       int state = 0;
+       int ret = 0;
+
+       manager = wfd_get_manager();
+
+       destroy_group_handler(NULL, NULL);
+
+       ret = wfd_state_get(manager, &state);
+       ASSERT_EQ(-1, ret);
+}
+
+TEST(wfd_mgr_gruop, destroy_group_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       destroy_group_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+}
+
+TEST(wfd_mgr_vsie, add_get_remove_vsie_handler_Positive)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *add_vsie_method = new MethodInjector;
+       add_vsie_handler(add_vsie_method->AddVsie(), NULL);
+
+       MethodInjector *get_vsie_method = new MethodInjector;
+       get_vsie_handler(get_vsie_method->GetVsie(), NULL);
+
+       MethodInjector *remove_vsie_method = new MethodInjector;
+       remove_vsie_handler(remove_vsie_method->RemoveVsie(), NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete add_vsie_method;
+       delete get_vsie_method;
+       delete remove_vsie_method;
+}
+
+TEST(wfd_mgr_vsie, add_vsie_handler_Negative1)
+{
+       MethodInjector *add_vsie_method = new MethodInjector;
+       add_vsie_handler(add_vsie_method->AddVsie(), NULL);
+       delete add_vsie_method;
+}
+
+TEST(wfd_mgr_vsie, add_vsie_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       MethodInjector *add_vsie_method = new MethodInjector;
+       add_vsie_handler(add_vsie_method->AddVsie(), NULL);
+
+       wfd_manager_unload();
+
+       delete add_vsie_method;
+}
+
+TEST(wfd_mgr_vsie, get_vsie_handler_Negative1)
+{
+       MethodInjector *get_vsie_method = new MethodInjector;
+       get_vsie_handler(get_vsie_method->GetVsie(), NULL);
+       delete get_vsie_method;
+}
+
+TEST(wfd_mgr_vsie, get_vsie_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       MethodInjector *get_vsie_method = new MethodInjector;
+       get_vsie_handler(get_vsie_method->GetVsie(), NULL);
+
+       wfd_manager_unload();
+
+       delete get_vsie_method;
+}
+
+TEST(wfd_mgr_vsie, remove_vsie_handler_Negative1)
+{
+       MethodInjector *remove_vsie_method = new MethodInjector;
+       remove_vsie_handler(remove_vsie_method->RemoveVsie(), NULL);
+       delete remove_vsie_method;
+}
+
+TEST(wfd_mgr_vsie, remove_vsie_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       MethodInjector *remove_vsie_method = new MethodInjector;
+       remove_vsie_handler(remove_vsie_method->RemoveVsie(), NULL);
+
+       wfd_manager_unload();
+
+       delete remove_vsie_method;
+}
+
+
+TEST(wfd_mgr_display, display_set_handler_Positive)
+{
+       wfd_manager_s * manager = NULL;
+       wfd_device_s *device = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       display_init_handler(NULL, NULL);
+       device = manager->local;
+       ASSERT_EQ(device->display.type, WIFI_DISPLAY_DEFAULT_TYPE);
+       ASSERT_EQ(device->display.port, WIFI_DISPLAY_DEFAULT_PORT);
+       ASSERT_EQ(device->display.availability, WIFI_DISPLAY_DEFAULT_AVAIL);
+       ASSERT_EQ(device->display.hdcp_support, WIFI_DISPLAY_DEFAULT_HDCP);
+
+       MethodInjector *set_display_method = new MethodInjector;
+       display_set_config_handler(set_display_method->SetDisplay(), NULL);
+       ASSERT_EQ(device->display.type, set_display_method->display_type);
+       ASSERT_EQ(device->display.port, set_display_method->display_port);
+       ASSERT_EQ(device->display.hdcp_support, set_display_method->display_hdcp);
+
+       MethodInjector *set_display_avail_method = new MethodInjector;
+       display_set_avail_handler(set_display_avail_method->SetDisplayAvail(), NULL);
+       ASSERT_EQ(device->display.availability, set_display_avail_method->display_avail);
+
+       display_deinit_handler(NULL, NULL);
+       ASSERT_EQ(device->display.type, 0);
+       ASSERT_EQ(device->display.port, 0);
+       ASSERT_EQ(device->display.availability, 0);
+       ASSERT_EQ(device->display.hdcp_support, 0);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete set_display_method;
+       delete set_display_avail_method;
+}
+
+TEST(wfd_mgr_display, display_init_handler_Negative1)
+{
+       display_init_handler(NULL, NULL);
+}
+
+TEST(wfd_mgr_display, display_init_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       display_init_handler(NULL, NULL);
+
+       wfd_manager_unload();
+}
+
+TEST(wfd_mgr_display, display_init_handler_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_wifi_display_supported = false;
+
+       display_init_handler(NULL, NULL);
+
+       wfd_manager_unload();
+}
+
+TEST(wfd_mgr_display, display_init_handler_Negative4)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_wifi_display_supported = true;
+
+       display_init_handler(NULL, NULL);
+
+       wfd_manager_unload();
+}
+
+TEST(wfd_mgr_display, display_deinit_handler_Negative1)
+{
+       display_deinit_handler(NULL, NULL);
+}
+
+TEST(wfd_mgr_display, display_deinit_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       display_deinit_handler(NULL, NULL);
+
+       wfd_manager_unload();
+}
+
+TEST(wfd_mgr_display, display_deinit_handler_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_wifi_display_supported = false;
+
+       display_deinit_handler(NULL, NULL);
+
+       wfd_manager_unload();
+}
+
+TEST(wfd_mgr_display, display_deinit_handler_Negative4)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_wifi_display_supported = true;
+
+       display_deinit_handler(NULL, NULL);
+
+       wfd_manager_unload();
+}
+
+TEST(wfd_mgr_display, display_set_config_handler_Negative1)
+{
+       display_set_config_handler(NULL, NULL);
+}
+
+TEST(wfd_mgr_display, display_set_config_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       display_set_config_handler(NULL, NULL);
+
+       wfd_manager_unload();
+}
+
+TEST(wfd_mgr_display, display_set_config_handler_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_wifi_display_supported = false;
+
+       display_set_config_handler(NULL, NULL);
+
+       wfd_manager_unload();
+}
+
+TEST(wfd_mgr_display, display_set_config_handler_Negative4)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_wifi_display_supported = true;
+
+       display_set_config_handler(NULL, NULL);
+
+       wfd_manager_unload();
+}
+
+TEST(wfd_mgr_display, display_set_avail_handler_Negative1)
+{
+       display_set_avail_handler(NULL, NULL);
+}
+
+TEST(wfd_mgr_display, display_set_avail_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       display_set_avail_handler(NULL, NULL);
+
+       wfd_manager_unload();
+}
+
+TEST(wfd_mgr_display, display_set_avail_handler_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_wifi_display_supported = false;
+
+       display_set_avail_handler(NULL, NULL);
+
+       wfd_manager_unload();
+}
+
+TEST(wfd_mgr_display, display_set_avail_handler_Negative4)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_wifi_display_supported = true;
+
+       display_set_avail_handler(NULL, NULL);
+
+       wfd_manager_unload();
+}
+
+
+TEST(wfd_mgr_connection, connection_Positive1)
+{
+       EventInjector *event = new EventInjector;
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+
+       get_connected_peers_handler(NULL, NULL);
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvPbcResp(false));
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestPbc());
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGo());
+
+       get_connecting_peer_handler(NULL, NULL);
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       wfd_event_sta_connected((wfd_oem_event_s*)event->PeerJoined());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       get_connected_peers_handler(NULL, NULL);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+       delete connect_method;
+}
+
+TEST(wfd_mgr_connection, connection_Positive2)
+{
+       EventInjector *event = new EventInjector;
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvPbcResp(false));
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestPbc());
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGo());
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       wfd_event_sta_connected((wfd_oem_event_s*)event->PeerJoinedwithIP());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       get_connected_peers_handler(NULL, NULL);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+       delete connect_method;
+}
+
+TEST(wfd_mgr_connection, connection_Positive3)
+{
+       EventInjector *event = new EventInjector;
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s *)event->ProvPbcResp(false));
+       wfd_event_go_neg_req((wfd_oem_event_s *)event->GoNegRequestPbc());
+       wfd_event_go_neg_done((wfd_oem_event_s *)event->GoNegSuccessGo());
+
+       wfd_event_peer_disappeared((wfd_oem_event_s *)event->DeviceLost());
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       wfd_event_sta_connected((wfd_oem_event_s*)event->PeerJoinedwithIP());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       get_connected_peers_handler(NULL, NULL);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+       delete connect_method;
+}
+
+
+TEST(wfd_mgr_connection, connection_Positive4)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_invitation_accepted((wfd_oem_event_s*)event->InvitationAccepted());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGCPersistent());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTED);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+}
+
+TEST(wfd_mgr_connection, get_connected_peers_handler_Negative1)
+{
+       get_connected_peers_handler(NULL, NULL);
+}
+
+TEST(wfd_mgr_connection, get_connected_peers_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       get_connected_peers_handler(NULL, NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+}
+
+TEST(wfd_mgr_connection, get_connected_peers_handler_Negative3)
+{
+       EventInjector *event = new EventInjector;
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       get_connected_peers_handler(NULL, NULL);
+
+       destroy_group_handler(NULL, NULL);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete group_create_method;
+       delete event;
+}
+
+TEST(wfd_mgr_connection, connect_handler_Negative1)
+{
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+
+       delete connect_method;
+}
+
+TEST(wfd_mgr_connection, connect_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+
+       wfd_manager_unload();
+
+       delete connect_method;
+}
+
+TEST(wfd_mgr_connection, connect_handler_Negative3)
+{
+       EventInjector *event = new EventInjector;
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+       delete connect_method;
+}
+
+TEST(wfd_mgr_connection, connect_handler_Negative4)
+{
+
+       EventInjector *event = new EventInjector;
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+
+       get_connected_peers_handler(NULL, NULL);
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvPbcResp(false));
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestPbc());
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGo());
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       wfd_event_sta_connected((wfd_oem_event_s*)event->PeerJoined());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       manager->max_station = 0;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+       delete connect_method;
+}
+
+TEST(wfd_mgr_connection, connect_handler_Negative5)
+{
+
+       EventInjector *event = new EventInjector;
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+
+       get_connected_peers_handler(NULL, NULL);
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvPbcResp(false));
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestPbc());
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGo());
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_sta_disconnected((wfd_oem_event_s*)event->PeerDisconnected());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+       delete connect_method;
+}
+
+TEST(wfd_mgr_connection, connect_handler_Negative6)
+{
+
+       EventInjector *event = new EventInjector;
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+
+       get_connected_peers_handler(NULL, NULL);
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvPbcResp(false));
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestPbc());
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGo());
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_key_neg_fail((wfd_oem_event_s*)event->KeyNegFailed());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+       delete connect_method;
+}
+
+TEST(wfd_mgr_connection, connect_handler_Negative7)
+{
+
+       EventInjector *event = new EventInjector;
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+
+       get_connected_peers_handler(NULL, NULL);
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvPbcResp(false));
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestPbc());
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGo());
+
+       wfd_event_group_formation_failure((wfd_oem_event_s*)event->GroupFormationFailed());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+       delete connect_method;
+}
+
+
+TEST(wfd_mgr_connection, get_connecting_peer_handler_Negative1)
+{
+       get_connecting_peer_handler(NULL, NULL);
+}
+
+TEST(wfd_mgr_connection, get_connecting_peer_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       get_connecting_peer_handler(NULL, NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+}
+
+TEST(wfd_mgr_connection, accept_connection_Positive1)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvPbcReq(false));
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestPbc());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGc());
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGC());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTED);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete accept_connect_method;
+       delete event;
+}
+
+TEST(wfd_mgr_connection, accept_connection_Positive2)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestPbc());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGc());
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGC());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTED);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete accept_connect_method;
+       delete event;
+}
+
+TEST(wfd_mgr_connection, accept_connection_Positive3)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestPbc());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGc());
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGCwithoutIP());
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete accept_connect_method;
+       delete event;
+}
+
+TEST(wfd_mgr_connection, accept_connection_Negative1)
+{
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+
+       delete accept_connect_method;
+}
+
+TEST(wfd_mgr_connection, accept_connection_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete accept_connect_method;
+}
+
+TEST(wfd_mgr_connection, accept_connection_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete accept_connect_method;
+}
+
+TEST(wfd_mgr_connection, accept_connection_Positive4)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestPbc());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGc());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_key_neg_fail((wfd_oem_event_s*)event->KeyNegFailed());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete accept_connect_method;
+       delete event;
+}
+TEST(wfd_mgr_connection, cancel_connection_handler_Positive1)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_prov_disc_req((wfd_oem_event_s*)event->ProvPbcReq(false));
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestPbc());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+
+       MethodInjector *cancel_connect_method = new MethodInjector;
+       cancel_connection_handler(cancel_connect_method->CancelConnect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+       delete accept_connect_method;
+       delete cancel_connect_method;
+}
+
+TEST(wfd_mgr_connection, cancel_connection_handler_Positive2)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_prov_disc_req((wfd_oem_event_s*)event->ProvPbcReq(false));
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestPbc());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGc());
+
+       MethodInjector *cancel_connect_method = new MethodInjector;
+       cancel_connection_handler(cancel_connect_method->CancelConnect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+       delete accept_connect_method;
+       delete cancel_connect_method;
+}
+
+TEST(wfd_mgr_connection, cancel_connection_handler_Negative1)
+{
+       MethodInjector *cancel_connect_method = new MethodInjector;
+       cancel_connection_handler(cancel_connect_method->CancelConnect(), NULL);
+
+       delete cancel_connect_method;
+}
+
+TEST(wfd_mgr_connection, cancel_connection_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       MethodInjector *cancel_connect_method = new MethodInjector;
+       cancel_connection_handler(cancel_connect_method->CancelConnect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete cancel_connect_method;
+}
+
+TEST(wfd_mgr_connection, reject_connection_handler_Positive)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_prov_disc_req((wfd_oem_event_s*)event->ProvPbcReq(false));
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestPbc());
+
+       MethodInjector *reject_connect_method = new MethodInjector;
+       reject_connection_handler(reject_connect_method->RejectConnect(), NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+       delete reject_connect_method;
+}
+
+TEST(wfd_mgr_connection, reject_connection_handler_Negative1)
+{
+
+       MethodInjector *reject_connect_method = new MethodInjector;
+       reject_connection_handler(reject_connect_method->RejectConnect(), NULL);
+
+       delete reject_connect_method;
+}
+
+TEST(wfd_mgr_connection, reject_connection_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       MethodInjector *reject_connect_method = new MethodInjector;
+       reject_connection_handler(reject_connect_method->RejectConnect(), NULL);
+
+       wfd_manager_unload();
+
+       delete reject_connect_method;
+}
+
+TEST(wfd_mgr_connection, reject_connection_handler_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+
+       MethodInjector *reject_connect_method = new MethodInjector;
+       reject_connection_handler(reject_connect_method->RejectConnect(), NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete reject_connect_method;
+}
+
+TEST(wfd_mgr_connection, disconnect_handler_Positive1)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvPbcResp(false));
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestPbc());
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGo());
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       wfd_event_sta_connected((wfd_oem_event_s*)event->PeerJoined());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       MethodInjector *find_method = new MethodInjector;
+       start_discovery_handler(find_method->StartDiscoveryFind(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       MethodInjector *peer_addr = new MethodInjector;
+       disconnect_handler(peer_addr->GetPeerAddr(), NULL);
+
+       wfd_event_sta_disconnected((wfd_oem_event_s*)event->PeerDisconnected());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete connect_method;
+       delete find_method;
+       delete event;
+       delete peer_addr;
+}
+
+TEST(wfd_mgr_connection, disconnect_handler_Positive2)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvPbcReq(false));
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestPbc());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGc());
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGC());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTED);
+
+       MethodInjector *find_method = new MethodInjector;
+       start_discovery_handler(find_method->StartDiscoveryFind(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTED);
+
+       MethodInjector *peer_addr = new MethodInjector;
+       disconnect_handler(peer_addr->GetPeerAddr(), NULL);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete accept_connect_method;
+       delete find_method;
+       delete event;
+       delete peer_addr;
+}
+
+TEST(wfd_mgr_connection, disconnect_handler_Negative1)
+{
+       MethodInjector *peer_addr = new MethodInjector;
+       disconnect_handler(peer_addr->GetPeerAddr(), NULL);
+
+       delete peer_addr;
+}
+
+TEST(wfd_mgr_connection, disconnect_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       MethodInjector *peer_addr = new MethodInjector;
+       disconnect_handler(peer_addr->GetPeerAddr(), NULL);
+
+       wfd_manager_unload();
+
+       delete peer_addr;
+}
+TEST(wfd_mgr_connection, disconnect_all_handler_Positive1)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvPbcResp(false));
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestPbc());
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGo());
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       wfd_event_sta_connected((wfd_oem_event_s*)event->PeerJoined());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       MethodInjector *find_method = new MethodInjector;
+       start_discovery_handler(find_method->StartDiscoveryFind(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       disconnect_all_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete connect_method;
+       delete find_method;
+       delete event;
+}
+
+TEST(wfd_mgr_connection, disconnect_all_handler_Positive2)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvPbcReq(false));
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestPbc());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGc());
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGC());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTED);
+
+       MethodInjector *find_method = new MethodInjector;
+       start_discovery_handler(find_method->StartDiscoveryFind(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTED);
+
+       disconnect_all_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete accept_connect_method;
+       delete find_method;
+       delete event;
+}
+
+TEST(wfd_mgr_connection, disconnect_all_handler_Negative1)
+{
+       disconnect_all_handler(NULL, NULL);
+}
+
+TEST(wfd_mgr_connection, disconnect_all_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       disconnect_all_handler(NULL, NULL);
+
+       wfd_manager_unload();
+}
+
+TEST(wfd_mgr_connection, legacy_connection_Positive)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_sta_connected((wfd_oem_event_s*)event->LegacyPeerJoined());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_sta_disconnected((wfd_oem_event_s*)event->LegacyPeerDisconnected());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete group_create_method;
+}
+
+
+TEST(wfd_mgr_connection, multi_connect_Positive)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+       wfd_event_prov_disc_req((wfd_oem_event_s*)event->ProvPbcReq(false));
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+
+       wfd_event_sta_connected((wfd_oem_event_s*)event->PeerJoined());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_sta_connected((wfd_oem_event_s*)event->LegacyPeerJoined());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       MethodInjector *peer_addr = new MethodInjector;
+       disconnect_handler(peer_addr->GetPeerAddr(), NULL);
+
+       wfd_event_sta_disconnected((wfd_oem_event_s*)event->PeerDisconnected());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_sta_disconnected((wfd_oem_event_s*)event->LegacyPeerDisconnected());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete group_create_method;
+}
+
+
+TEST(wfd_mgr_connection_fail, wfd_event_prov_disc_fail_Positive1)
+{
+       EventInjector *event = new EventInjector;
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_fail((wfd_oem_event_s*)event->ProvFailure());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+       delete connect_method;
+}
+
+TEST(wfd_mgr_connection_fail, wfd_event_prov_disc_fail_Positive2)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_fail((wfd_oem_event_s*)event->ProvFailure());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete group_create_method;
+       delete connect_method;
+       delete event;
+}
+
+TEST(wfd_mgr_connection_fail, wfd_event_prov_disc_fail_Positive3)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_sta_connected((wfd_oem_event_s*)event->LegacyPeerJoined());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_fail((wfd_oem_event_s*)event->ProvFailure());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_sta_disconnected((wfd_oem_event_s*)event->LegacyPeerDisconnected());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete group_create_method;
+       delete connect_method;
+       delete event;
+}
+
+TEST(wfd_mgr_connection_fail, wfd_event_prov_disc_fail_Negative1)
+{
+       EventInjector *event = new EventInjector;
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_prov_disc_fail((wfd_oem_event_s*)event->ProvFailure());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+}
+
+TEST(wfd_mgr_connection, wfd_event_go_neg_fail_Positive)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvPbcReq(false));
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestPbc());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+
+       wfd_event_go_neg_fail((wfd_oem_event_s*)event->GoNegFailure());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete accept_connect_method;
+       delete event;
+}
+
+TEST(wfd_mgr_connection, wfd_event_go_neg_fail_Negative)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_go_neg_fail((wfd_oem_event_s*)event->GoNegFailure());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+}
+
+TEST(wfd_mgr_connection_fail, wfd_event_wps_fail_Positive1)
+{
+       EventInjector *event = new EventInjector;
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvPbcResp(false));
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestPbc());
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGo());
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+
+       wfd_event_wps_fail((wfd_oem_event_s*)event->WpsFailed());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+       delete connect_method;
+}
+
+TEST(wfd_mgr_connection_fail, wfd_event_wps_fail_Positive2)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvPbcResp(false));
+
+       wfd_event_wps_fail((wfd_oem_event_s*)event->WpsFailed());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete group_create_method;
+       delete connect_method;
+       delete event;
+}
+
+TEST(wfd_mgr_connection_fail, wfd_event_wps_fail_Positive3)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_sta_connected((wfd_oem_event_s*)event->LegacyPeerJoined());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvPbcResp(false));
+
+       wfd_event_wps_fail((wfd_oem_event_s*)event->WpsFailed());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_sta_disconnected((wfd_oem_event_s*)event->LegacyPeerDisconnected());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete group_create_method;
+       delete connect_method;
+       delete event;
+}
+
+TEST(wfd_mgr_connection_fail, wfd_event_wps_fail_Negative1)
+{
+       EventInjector *event = new EventInjector;
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_wps_fail((wfd_oem_event_s*)event->WpsFailed());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+}
+
+TEST(wfd_mgr_connect_pbc, pbc_connection_Positive1)
+{
+       EventInjector *event = new EventInjector;
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvPbcResp(false));
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestPbc());
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGo());
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       wfd_event_sta_connected((wfd_oem_event_s*)event->PeerJoined());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+       delete connect_method;
+}
+
+TEST(wfd_mgr_connect_pbc, pbc_connection_Positive2)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_prov_disc_req((wfd_oem_event_s*)event->ProvPbcReq(false));
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestPbc());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGc());
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGC());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTED);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete accept_connect_method;
+       delete event;
+}
+
+TEST(wfd_mgr_connect_pbc, pbc_connection_Positive3)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->GoFound());
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvPbcResp(true));
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGC());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTED);
+
+       destroy_group_handler(NULL, NULL);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+
+       wfd_manager_unload();
+
+       delete event;
+       delete connect_method;
+}
+
+TEST(wfd_mgr_connect_pbc, pbc_connection_Positive4)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_invitation_req((wfd_oem_event_s*)event->InvitationReceived());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvPbcResp(true));
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGC());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTED);
+
+       destroy_group_handler(NULL, NULL);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete accept_connect_method;
+       delete event;
+}
+
+TEST(wfd_mgr_connect_pbc, pbc_connection_Positive5)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_req((wfd_oem_event_s*)event->ProvPbcReq(false));
+       wfd_event_sta_connected((wfd_oem_event_s*)event->PeerJoined());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_sta_disconnected((wfd_oem_event_s*)event->PeerDisconnected());
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+       delete group_create_method;
+       delete connect_method;
+}
+
+TEST(wfd_mgr_connect_pbc, pbc_connection_Positive6)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_prov_disc_req((wfd_oem_event_s*)event->ProvPbcReq(false));
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_sta_connected((wfd_oem_event_s*)event->PeerJoined());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_sta_disconnected((wfd_oem_event_s*)event->PeerDisconnected());
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+       delete group_create_method;
+       delete accept_connect_method;
+}
+
+TEST(wfd_mgr_connect_keypad, keypad_connection_Positive1)
+{
+       EventInjector *event = new EventInjector;
+       wfd_manager_s * manager = NULL;
+       int wps_mode = WFD_WPS_MODE_DISPLAY;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *set_req_wps_method = new MethodInjector;
+       set_req_wps_mode_handler(set_req_wps_method->SetReqWpsMode(wps_mode), NULL);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvRespEnterPin(false));
+
+       get_local_wps_mode_handler(NULL, NULL);
+
+       MethodInjector *set_wps_pin_method = new MethodInjector;
+       set_wps_pin_handler(set_wps_pin_method->SetWpsPin(), NULL);
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestKeypad());
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGo());
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       wfd_event_sta_connected((wfd_oem_event_s*)event->PeerJoined());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+       delete connect_method;
+       delete accept_connect_method;
+       delete set_wps_pin_method;
+}
+
+TEST(wfd_mgr_connect_keypad, keypad_connection_Positive2)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_prov_disc_req((wfd_oem_event_s*)event->ProvReqEnterPin(false));
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestKeypad());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       get_local_wps_mode_handler(NULL, NULL);
+
+       MethodInjector *set_wps_pin_method = new MethodInjector;
+       set_wps_pin_handler(set_wps_pin_method->SetWpsPin(), NULL);
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGc());
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGC());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTED);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete accept_connect_method;
+       delete event;
+}
+
+TEST(wfd_mgr_connect_keypad, keypad_connection_Positive3)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+       int wps_mode = WFD_WPS_MODE_DISPLAY;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *set_req_wps_method = new MethodInjector;
+       set_req_wps_mode_handler(set_req_wps_method->SetReqWpsMode(wps_mode), NULL);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->GoFound());
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvRespEnterPin(true));
+
+       get_local_wps_mode_handler(NULL, NULL);
+
+       MethodInjector *set_wps_pin_method = new MethodInjector;
+       set_wps_pin_handler(set_wps_pin_method->SetWpsPin(), NULL);
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGC());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTED);
+
+       destroy_group_handler(NULL, NULL);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+
+       wfd_manager_unload();
+
+       delete event;
+       delete connect_method;
+       delete set_req_wps_method;
+}
+
+TEST(wfd_mgr_connect_keypad, keypad_connection_Positive4)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+       int wps_mode = WFD_WPS_MODE_DISPLAY;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *set_req_wps_method = new MethodInjector;
+       set_req_wps_mode_handler(set_req_wps_method->SetReqWpsMode(wps_mode), NULL);
+
+       wfd_event_invitation_req((wfd_oem_event_s*)event->InvitationReceived());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvRespEnterPin(true));
+
+       get_local_wps_mode_handler(NULL, NULL);
+
+       MethodInjector *set_wps_pin_method = new MethodInjector;
+       set_wps_pin_handler(set_wps_pin_method->SetWpsPin(), NULL);
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGC());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTED);
+
+       destroy_group_handler(NULL, NULL);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete set_req_wps_method;
+       delete accept_connect_method;
+       delete set_wps_pin_method;
+       delete event;
+}
+
+TEST(wfd_mgr_connect_keypad, keypad_connection_Positive5)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_req((wfd_oem_event_s*)event->ProvReqEnterPin(true));
+
+       get_local_wps_mode_handler(NULL, NULL);
+
+       MethodInjector *set_wps_pin_method = new MethodInjector;
+       set_wps_pin_handler(set_wps_pin_method->SetWpsPin(), NULL);
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+
+       wfd_event_sta_connected((wfd_oem_event_s*)event->PeerJoined());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_sta_disconnected((wfd_oem_event_s*)event->PeerDisconnected());
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+       delete group_create_method;
+       delete connect_method;
+       delete accept_connect_method;
+       delete set_wps_pin_method;
+}
+
+TEST(wfd_mgr_connect_keypad, keypad_connection_Positive6)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_prov_disc_req((wfd_oem_event_s*)event->ProvReqEnterPin(true));
+
+       get_local_wps_mode_handler(NULL, NULL);
+
+       MethodInjector *set_wps_pin_method = new MethodInjector;
+       set_wps_pin_handler(set_wps_pin_method->SetWpsPin(), NULL);
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+
+       wfd_event_sta_connected((wfd_oem_event_s*)event->PeerJoined());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_sta_disconnected((wfd_oem_event_s*)event->PeerDisconnected());
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+       delete group_create_method;
+       delete set_wps_pin_method;
+       delete accept_connect_method;
+}
+
+TEST(wfd_mgr_connect_display, display_connection_Positive1)
+{
+       EventInjector *event = new EventInjector;
+       wfd_manager_s * manager = NULL;
+       int wps_mode = WFD_WPS_MODE_KEYPAD;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *set_req_wps_method = new MethodInjector;
+       set_req_wps_mode_handler(set_req_wps_method->SetReqWpsMode(wps_mode), NULL);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvRespDisplayPin(false));
+
+       get_local_wps_mode_handler(NULL, NULL);
+       get_wps_pin_handler(NULL, NULL);
+
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestDisplay());
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGo());
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       wfd_event_sta_connected((wfd_oem_event_s*)event->PeerJoined());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+       delete connect_method;
+}
+
+TEST(wfd_mgr_connect_display, display_connection_Positive2)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       wfd_event_prov_disc_req((wfd_oem_event_s*)event->ProvReqDisplayPin(false));
+       wfd_event_go_neg_req((wfd_oem_event_s*)event->GoNegRequestDisplay());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       get_local_wps_mode_handler(NULL, NULL);
+       get_wps_pin_handler(NULL, NULL);
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGc());
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGC());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTED);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete accept_connect_method;
+       delete event;
+}
+
+TEST(wfd_mgr_connect_display, display_connection_Positive3)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+       int wps_mode = WFD_WPS_MODE_KEYPAD;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *set_req_wps_method = new MethodInjector;
+       set_req_wps_mode_handler(set_req_wps_method->SetReqWpsMode(wps_mode), NULL);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->GoFound());
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvRespDisplayPin(true));
+
+       get_local_wps_mode_handler(NULL, NULL);
+       get_wps_pin_handler(NULL, NULL);
+
+       get_wps_pin_handler(NULL, NULL);
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGC());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTED);
+
+       destroy_group_handler(NULL, NULL);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+
+       wfd_manager_unload();
+
+       delete event;
+       delete connect_method;
+}
+
+TEST(wfd_mgr_connect_display, display_connection_Positive4)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+       int wps_mode = WFD_WPS_MODE_KEYPAD;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *set_req_wps_method = new MethodInjector;
+       set_req_wps_mode_handler(set_req_wps_method->SetReqWpsMode(wps_mode), NULL);
+
+       wfd_event_invitation_req((wfd_oem_event_s*)event->InvitationReceived());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_resp((wfd_oem_event_s*)event->ProvRespDisplayPin(true));
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+
+       get_local_wps_mode_handler(NULL, NULL);
+       get_wps_pin_handler(NULL, NULL);
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGC());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTED);
+
+       destroy_group_handler(NULL, NULL);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete accept_connect_method;
+       delete event;
+}
+
+TEST(wfd_mgr_connect_display, display_connection_Positive5)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+
+       MethodInjector *connect_method = new MethodInjector;
+       connect_handler(connect_method->Connect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_prov_disc_req((wfd_oem_event_s*)event->ProvReqDisplayPin(false));
+
+       get_local_wps_mode_handler(NULL, NULL);
+       get_wps_pin_handler(NULL, NULL);
+
+       wfd_event_sta_connected((wfd_oem_event_s*)event->PeerJoined());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_sta_disconnected((wfd_oem_event_s*)event->PeerDisconnected());
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+       delete group_create_method;
+       delete connect_method;
+}
+
+TEST(wfd_mgr_connect_display, display_connection_Positive6)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_prov_disc_req((wfd_oem_event_s*)event->ProvReqDisplayPin(false));
+
+       get_local_wps_mode_handler(NULL, NULL);
+       get_wps_pin_handler(NULL, NULL);
+
+       MethodInjector *accept_connect_method = new MethodInjector;
+       accept_connection_handler(accept_connect_method->AcceptConnect(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTING);
+
+       wfd_event_sta_connected((wfd_oem_event_s*)event->PeerJoined());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       wfd_event_sta_disconnected((wfd_oem_event_s*)event->PeerDisconnected());
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+       delete group_create_method;
+       delete accept_connect_method;
+}
+
+TEST(wfd_mgr_connect_srv, srv_discovery_Positive)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       manager->is_service_discovery_supported = true;
+
+       MethodInjector *srv_start = new MethodInjector;
+       srv_start_discovery_handler(srv_start->SrvStartDiscovery(), NULL);
+
+       MethodInjector *srv_stop = new MethodInjector;
+       srv_stop_discovery_handler(srv_start->SrvStopDiscovery(), NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete srv_start;
+       delete srv_stop;
+}
+
+TEST(wfd_mgr_connect_srv, srv_start_discovery_handler_Negative1)
+{
+
+       MethodInjector *srv_start = new MethodInjector;
+       srv_start_discovery_handler(srv_start->SrvStartDiscovery(), NULL);
+
+       delete srv_start;
+}
+
+TEST(wfd_mgr_connect_srv, srv_start_discovery_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       MethodInjector *srv_start = new MethodInjector;
+       srv_start_discovery_handler(srv_start->SrvStartDiscovery(), NULL);
+
+       wfd_manager_unload();
+
+       delete srv_start;
+}
+
+TEST(wfd_mgr_connect_srv, srv_start_discovery_handler_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_service_discovery_supported = true;
+
+       MethodInjector *srv_start = new MethodInjector;
+       srv_start_discovery_handler(srv_start->SrvStartDiscovery(), NULL);
+
+       wfd_manager_unload();
+
+       delete srv_start;
+}
+
+TEST(wfd_mgr_connect_srv, srv_stop_discovery_handler_Negative1)
+{
+
+       MethodInjector *srv_stop = new MethodInjector;
+       srv_stop_discovery_handler(srv_stop->SrvStopDiscovery(), NULL);
+
+       delete srv_stop;
+}
+
+TEST(wfd_mgr_connect_srv, srv_stop_discovery_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       MethodInjector *srv_stop = new MethodInjector;
+       srv_stop_discovery_handler(srv_stop->SrvStopDiscovery(), NULL);
+
+       wfd_manager_unload();
+
+       delete srv_stop;
+}
+
+TEST(wfd_mgr_connect_srv, srv_stop_discovery_handler_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_service_discovery_supported = true;
+
+       MethodInjector *srv_stop = new MethodInjector;
+       srv_stop_discovery_handler(srv_stop->SrvStopDiscovery(), NULL);
+
+       wfd_manager_unload();
+
+       delete srv_stop;
+}
+
+TEST(wfd_mgr_connect_srv, srv_register_deregister_Positive1)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       manager->is_service_discovery_supported = true;
+
+       MethodInjector *srv_register = new MethodInjector;
+       srv_register_handler(srv_register->SrvRegister(), NULL);
+
+       MethodInjector *srv_deregister = new MethodInjector;
+       srv_deregister_handler(srv_deregister->SrvDeregister(), NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete srv_register;
+       delete srv_deregister;
+}
+
+TEST(wfd_mgr_connect_srv, srv_register_deregister_Positive2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       manager->is_service_discovery_supported = true;
+
+       MethodInjector *srv_register = new MethodInjector;
+       srv_register_handler(srv_register->SrvRegisterBonjourPtr(), NULL);
+
+       MethodInjector *srv_deregister = new MethodInjector;
+       srv_deregister_handler(srv_deregister->SrvDeregister(), NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete srv_register;
+       delete srv_deregister;
+}
+
+TEST(wfd_mgr_connect_srv, srv_register_deregister_Positive3)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       manager->is_service_discovery_supported = true;
+
+       MethodInjector *srv_register = new MethodInjector;
+       srv_register_handler(srv_register->SrvRegisterBonjourTxt(), NULL);
+
+       MethodInjector *srv_deregister = new MethodInjector;
+       srv_deregister_handler(srv_deregister->SrvDeregister(), NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete srv_register;
+       delete srv_deregister;
+}
+
+TEST(wfd_mgr_connect_srv, srv_register_deregister_Positive4)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       manager->is_service_discovery_supported = true;
+
+       MethodInjector *srv_register = new MethodInjector;
+       srv_register_handler(srv_register->SrvRegister(0xff, "Vendor|Specific"), NULL);
+
+       MethodInjector *srv_deregister = new MethodInjector;
+       srv_deregister_handler(srv_deregister->SrvDeregister(), NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete srv_register;
+       delete srv_deregister;
+}
+
+TEST(wfd_mgr_connect_srv, srv_register_handler_Negative1)
+{
+
+       MethodInjector *srv_register = new MethodInjector;
+       srv_register_handler(srv_register->SrvRegister(), NULL);
+
+       delete srv_register;
+}
+
+TEST(wfd_mgr_connect_srv, srv_register_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+       GList *services = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       MethodInjector *srv_register = new MethodInjector;
+       srv_register_handler(srv_register->SrvRegister(), NULL);
+       ASSERT_EQ(services, manager->local->services);
+
+       wfd_manager_unload();
+
+       delete srv_register;
+}
+
+TEST(wfd_mgr_connect_srv, srv_register_handler_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+       GList *services = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_service_discovery_supported = true;
+
+       MethodInjector *srv_register = new MethodInjector;
+       srv_register_handler(srv_register->SrvRegister(), NULL);
+       ASSERT_EQ(services, manager->local->services);
+
+       wfd_manager_unload();
+
+       delete srv_register;
+}
+
+TEST(wfd_mgr_connect_srv, srv_register_handler_Negative4)
+{
+       wfd_manager_s * manager = NULL;
+       GList *services = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_service_discovery_supported = true;
+
+       MethodInjector *srv_register = new MethodInjector;
+       srv_register_handler(srv_register->SrvRegister(4, "Wrong|Type"), NULL);
+       ASSERT_EQ(services, manager->local->services);
+
+       wfd_manager_unload();
+
+       delete srv_register;
+}
+
+TEST(wfd_mgr_connect_srv, srv_register_handler_Negative5)
+{
+       wfd_manager_s * manager = NULL;
+       GList *services = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_service_discovery_supported = true;
+
+       MethodInjector *srv_register = new MethodInjector;
+       srv_register_handler(srv_register->SrvRegister(10, "Invalid|ServiceType"), NULL);
+       ASSERT_EQ(services, manager->local->services);
+
+       wfd_manager_unload();
+
+       delete srv_register;
+}
+
+TEST(wfd_mgr_connect_srv, srv_register_handler_Negative6)
+{
+       wfd_manager_s * manager = NULL;
+       GList *services = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_service_discovery_supported = true;
+
+       MethodInjector *srv_register = new MethodInjector;
+       srv_register_handler(srv_register->SrvRegister(2, "InvalidServiceStr"), NULL);
+       ASSERT_EQ(services, manager->local->services);
+
+       wfd_manager_unload();
+
+       delete srv_register;
+}
+
+TEST(wfd_mgr_connect_srv, srv_deregister_handler_Negative1)
+{
+
+       MethodInjector *srv_deregister = new MethodInjector;
+       srv_deregister_handler(srv_deregister->SrvDeregister(), NULL);
+
+       delete srv_deregister;
+}
+
+TEST(wfd_mgr_connect_srv, srv_deregister_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       MethodInjector *srv_deregister = new MethodInjector;
+       srv_deregister_handler(srv_deregister->SrvDeregister(), NULL);
+
+       wfd_manager_unload();
+
+       delete srv_deregister;
+}
+
+TEST(wfd_mgr_connect_srv, srv_deregister_handler_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+       manager->is_service_discovery_supported = true;
+
+       MethodInjector *srv_deregister = new MethodInjector;
+       srv_deregister_handler(srv_deregister->SrvDeregister(), NULL);
+
+       wfd_manager_unload();
+
+       delete srv_deregister;
+}
+
+
+TEST(wfd_mgr_connect_srv, wfd_event_serv_disc_resp_Positive)
+{
+       EventInjector *event = new EventInjector;
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       manager->is_service_discovery_supported = true;
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->PeerFound());
+       wfd_event_serv_disc_resp((wfd_oem_event_s*)event->ServDiscResp());
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+}
+
+TEST(wfd_mgr_asp, asp_advertise_Positive1)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       manager->is_asp_supported = true;
+
+       MethodInjector *advertse_start = new MethodInjector;
+       advertise_service_handler(advertse_start->AspAdvertise(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DISCOVERING);
+       ASSERT_EQ(WFD_SCAN_MODE_PASSIVE, manager->scan_mode);
+
+       MethodInjector *advertise_cancel = new MethodInjector;
+       cancel_advertise_service_handler(advertise_cancel->AspAdvertiseCancel(), NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete advertse_start;
+       delete advertise_cancel;
+}
+
+TEST(wfd_mgr_asp, asp_advertise_Positive2)
+{
+       EventInjector *event = new EventInjector;
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       MethodInjector *group_create_method = new MethodInjector;
+       create_group_handler(group_create_method->CreateGroup(), NULL);
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGO());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_GROUP_OWNER);
+
+       manager->is_asp_supported = true;
+
+       MethodInjector *advertse_start = new MethodInjector;
+       advertise_service_handler(advertse_start->AspAdvertise(), NULL);
+
+       MethodInjector *advertise_cancel = new MethodInjector;
+       cancel_advertise_service_handler(advertise_cancel->AspAdvertiseCancel(), NULL);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete advertse_start;
+       delete advertise_cancel;
+       delete group_create_method;
+       delete event;
+}
+
+TEST(wfd_mgr_asp, advertise_service_handler_Negative1)
+{
+
+       MethodInjector *advertse_start = new MethodInjector;
+       advertise_service_handler(advertse_start->AspAdvertise(), NULL);
+
+       delete advertse_start;
+}
+
+TEST(wfd_mgr_asp, advertise_service_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       MethodInjector *advertse_start = new MethodInjector;
+       advertise_service_handler(advertse_start->AspAdvertise(), NULL);
+
+       wfd_manager_unload();
+
+       delete advertse_start;
+}
+
+TEST(wfd_mgr_asp, advertise_service_handler_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       manager->is_asp_supported = true;
+
+       MethodInjector *advertse_start = new MethodInjector;
+       advertise_service_handler(advertse_start->AspAdvertise(), NULL);
+
+       wfd_manager_unload();
+
+       delete advertse_start;
+}
+
+TEST(wfd_mgr_asp, cancel_advertise_service_handler_Negative1)
+{
+
+       MethodInjector *advertise_cancel = new MethodInjector;
+       cancel_advertise_service_handler(advertise_cancel->AspAdvertiseCancel(), NULL);
+
+       delete advertise_cancel;
+}
+
+TEST(wfd_mgr_asp, cancel_advertise_service_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       MethodInjector *advertise_cancel = new MethodInjector;
+       cancel_advertise_service_handler(advertise_cancel->AspAdvertiseCancel(), NULL);
+
+       wfd_manager_unload();
+
+       delete advertise_cancel;
+}
+
+TEST(wfd_mgr_asp, cancel_advertise_service_handler_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       manager->is_asp_supported = true;
+
+       MethodInjector *advertise_cancel = new MethodInjector;
+       cancel_advertise_service_handler(advertise_cancel->AspAdvertiseCancel(), NULL);
+
+       wfd_manager_unload();
+
+       delete advertise_cancel;
+}
+
+TEST(wfd_mgr_asp, asp_seek_service_Positive)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       manager->is_asp_supported = true;
+
+       MethodInjector *asp_seek = new MethodInjector;
+       seek_service_handler(asp_seek->AspSeek(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DISCOVERING);
+       ASSERT_EQ(WFD_SCAN_MODE_ACTIVE, manager->scan_mode);
+
+       MethodInjector *asp_seek_cancel = new MethodInjector;
+       cancel_seek_service_handler(asp_seek_cancel->AspSeekCancel(), NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete asp_seek;
+       delete asp_seek_cancel;
+}
+
+TEST(wfd_mgr_asp, seek_service_handler_Negative1)
+{
+
+       MethodInjector *asp_seek = new MethodInjector;
+       seek_service_handler(asp_seek->AspSeek(), NULL);
+
+       delete asp_seek;
+}
+
+TEST(wfd_mgr_asp, seek_service_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       MethodInjector *asp_seek = new MethodInjector;
+       seek_service_handler(asp_seek->AspSeek(), NULL);
+
+       wfd_manager_unload();
+
+       delete asp_seek;
+}
+
+TEST(wfd_mgr_asp, seek_service_handler_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       manager->is_asp_supported = true;
+
+       MethodInjector *asp_seek = new MethodInjector;
+       seek_service_handler(asp_seek->AspSeek(), NULL);
+
+       wfd_manager_unload();
+
+       delete asp_seek;
+}
+
+TEST(wfd_mgr_asp, cancel_seek_service_handler_Negative1)
+{
+
+       MethodInjector *asp_seek_cancel = new MethodInjector;
+       cancel_seek_service_handler(asp_seek_cancel->AspSeekCancel(), NULL);
+
+       delete asp_seek_cancel;
+}
+
+TEST(wfd_mgr_asp, cancel_seek_service_handler_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       MethodInjector *asp_seek_cancel = new MethodInjector;
+       cancel_seek_service_handler(asp_seek_cancel->AspSeekCancel(), NULL);
+
+       wfd_manager_unload();
+
+       delete asp_seek_cancel;
+}
+
+TEST(wfd_mgr_asp, cancel_seek_service_handler_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       manager->is_asp_supported = true;
+
+       MethodInjector *asp_seek_cancel = new MethodInjector;
+       cancel_seek_service_handler(asp_seek_cancel->AspSeekCancel(), NULL);
+
+       wfd_manager_unload();
+
+       delete asp_seek_cancel;
+}
+
+TEST(wfd_mgr_asp, asp_peer_found_Positive)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       manager->is_asp_supported = true;
+
+       MethodInjector *asp_seek = new MethodInjector;
+       seek_service_handler(asp_seek->AspSeek(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DISCOVERING);
+       ASSERT_EQ(WFD_SCAN_MODE_ACTIVE, manager->scan_mode);
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->AspPeerFound());
+
+       MethodInjector *asp_seek_cancel = new MethodInjector;
+       cancel_seek_service_handler(asp_seek_cancel->AspSeekCancel(), NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete asp_seek;
+       delete asp_seek_cancel;
+}
+
+TEST(wfd_mgr_asp, asp_service_found_Positive)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       manager->is_asp_supported = true;
+
+       MethodInjector *asp_seek = new MethodInjector;
+       seek_service_handler(asp_seek->AspSeek(), NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DISCOVERING);
+       ASSERT_EQ(WFD_SCAN_MODE_ACTIVE, manager->scan_mode);
+
+       wfd_event_asp_serv_resp((wfd_oem_event_s *)event->AspServiceFound());
+
+       MethodInjector *asp_seek_cancel = new MethodInjector;
+       cancel_seek_service_handler(asp_seek_cancel->AspSeekCancel(), NULL);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete asp_seek;
+       delete asp_seek_cancel;
+}
+
+TEST(wfd_mgr_asp, asp_connect_session_Positive1)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       manager->is_asp_supported = true;
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->AspPeerFound());
+       wfd_event_asp_prov_done((wfd_oem_event_s *)event->AspProvDone
+                       (WFD_OEM_SC_SUCCESS, WFD_WPS_MODE_P2PS, WFD_OEM_ASP_SESSION_ROLE_NEW, 0, 0));
+
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGc());
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGC());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTED);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete event;
+}
+
+TEST(wfd_mgr_asp, asp_connect_session_Positive2)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       manager->is_asp_supported = true;
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->AspPeerFound());
+
+       MethodInjector *asp_connect = new MethodInjector;
+       connect_sessoin_handler(asp_connect->AspSessionConnect
+                       (asp_connect->local_mac_str,
+                                       WFD_OEM_ASP_WPS_TYPE_NONE,
+                                       WFD_OEM_ASP_SESSION_ROLE_NONE), NULL);
+
+       wfd_event_asp_prov_done((wfd_oem_event_s*)event->AspProvDone
+                       (WFD_OEM_SC_SUCCESS, WFD_WPS_MODE_P2PS, WFD_OEM_ASP_SESSION_ROLE_NEW, 0, 0));
+
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGc());
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGC());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTED);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete asp_connect;
+       delete event;
+}
+
+TEST(wfd_mgr_asp, asp_connect_session_Positive3)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       manager->is_asp_supported = true;
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->AspPeerFound());
+
+       MethodInjector *asp_connect = new MethodInjector;
+       connect_sessoin_handler(asp_connect->AspSessionConnect
+                       (asp_connect->local_mac_str,
+                                       WFD_OEM_ASP_WPS_TYPE_NONE,
+                                       WFD_OEM_ASP_SESSION_ROLE_NONE), NULL);
+
+       wfd_event_prov_disc_fail((wfd_oem_event_s*)event->AspProvFail(WFD_OEM_SC_FAIL_INVALID_PARAMS));
+       wfd_event_asp_prov_done((wfd_oem_event_s*)event->AspProvDone
+                       (WFD_OEM_SC_SUCCESS_ACCEPTED_BY_USER, WFD_WPS_MODE_P2PS,
+                                       WFD_OEM_ASP_SESSION_ROLE_NEW, 0, 0));
+
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGc());
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGC());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTED);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete asp_connect;
+       delete event;
+}
+
+
+TEST(wfd_mgr_asp, asp_connect_session_Positive4)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       manager->is_asp_supported = true;
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->AspPeerFound());
+
+       MethodInjector *asp_connect = new MethodInjector;
+       connect_sessoin_handler(asp_connect->AspSessionConnect
+                       (asp_connect->local_mac_str,
+                                       WFD_OEM_ASP_WPS_TYPE_NONE,
+                                       WFD_OEM_ASP_SESSION_ROLE_NONE), NULL);
+
+       wfd_event_prov_disc_fail((wfd_oem_event_s*)event->AspProvFail(WFD_OEM_SC_FAIL_INVALID_PARAMS));
+       wfd_event_asp_prov_done((wfd_oem_event_s*)event->AspProvDone
+                       (WFD_OEM_SC_SUCCESS_ACCEPTED_BY_USER, 0, 0, 1, 0));
+
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGC());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTED);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete asp_connect;
+       delete event;
+}
+
+
+TEST(wfd_mgr_asp, asp_connect_session_Positive5)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       manager->is_asp_supported = true;
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->AspPeerFound());
+
+       wfd_event_asp_prov_start((wfd_oem_event_s*)event->AspProvStart
+                       (WFD_WPS_MODE_P2PS, WFD_OEM_ASP_SESSION_ROLE_NEW));
+
+       MethodInjector *asp_confirm = new MethodInjector;
+       confirm_sessoin_handler(asp_confirm->AspSessionConfirm
+                       (asp_confirm->local_mac_str,
+                                       1, NULL), NULL);
+
+       wfd_event_asp_prov_done((wfd_oem_event_s*)event->AspProvDone
+                       (WFD_OEM_SC_SUCCESS_ACCEPTED_BY_USER, WFD_WPS_MODE_P2PS,
+                                       WFD_OEM_ASP_SESSION_ROLE_NEW, 0, 0));
+
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGc());
+       wfd_event_group_created((wfd_oem_event_s*)event->GroupStartedGC());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_CONNECTED);
+
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete asp_confirm;
+       delete event;
+}
+
+TEST(wfd_mgr_asp, asp_connect_session_Negative1)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       manager->is_asp_supported = true;
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->AspPeerFound());
+
+       MethodInjector *asp_connect = new MethodInjector;
+       connect_sessoin_handler(asp_connect->AspSessionConnect
+                       (asp_connect->local_mac_str,
+                                       WFD_OEM_ASP_WPS_TYPE_NONE,
+                                       WFD_OEM_ASP_SESSION_ROLE_NONE), NULL);
+
+       wfd_event_prov_disc_fail((wfd_oem_event_s*)event->AspProvFail(WFD_OEM_SC_FAIL_INCOMPATIBLE_PROV_METHOD));
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete asp_connect;
+       delete event;
+}
+
+TEST(wfd_mgr_asp, asp_connect_session_Negative2)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       manager->is_asp_supported = true;
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->AspPeerFound());
+
+       MethodInjector *asp_connect = new MethodInjector;
+       connect_sessoin_handler(asp_connect->AspSessionConnect
+                       (asp_connect->local_mac_str,
+                                       WFD_OEM_ASP_WPS_TYPE_NONE,
+                                       WFD_OEM_ASP_SESSION_ROLE_NONE), NULL);
+
+       wfd_event_asp_prov_done((wfd_oem_event_s*)event->AspProvDone
+                       (WFD_OEM_SC_FAIL_REJECTED_BY_USER, 0, 0, 0, 0));
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete asp_connect;
+       delete event;
+}
+
+TEST(wfd_mgr_asp, asp_connect_session_Negative3)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       manager->is_asp_supported = true;
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->AspPeerFound());
+
+       MethodInjector *asp_connect = new MethodInjector;
+       connect_sessoin_handler(asp_connect->AspSessionConnect
+                       (asp_connect->local_mac_str,
+                                       WFD_OEM_ASP_WPS_TYPE_NONE,
+                                       WFD_OEM_ASP_SESSION_ROLE_NONE), NULL);
+
+       wfd_event_asp_prov_done((wfd_oem_event_s*)event->AspProvDone
+                       (WFD_OEM_SC_SUCCESS,
+                                       WFD_WPS_MODE_DISPLAY,
+                                       WFD_OEM_ASP_SESSION_ROLE_NEW,
+                                       1, 0));
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete asp_connect;
+       delete event;
+}
+
+TEST(wfd_mgr_asp, asp_connect_session_Negative4)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       manager->is_asp_supported = true;
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->AspPeerFound());
+
+       MethodInjector *asp_connect = new MethodInjector;
+       connect_sessoin_handler(asp_connect->AspSessionConnect
+                       (asp_connect->local_mac_str,
+                                       WFD_OEM_ASP_WPS_TYPE_NONE,
+                                       WFD_OEM_ASP_SESSION_ROLE_NONE), NULL);
+
+       wfd_event_asp_prov_done((wfd_oem_event_s*)event->AspProvDone
+                       (WFD_OEM_SC_SUCCESS, 0, 0, 0, 0));
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete asp_connect;
+       delete event;
+}
+TEST(wfd_mgr_asp, asp_connect_session_Negative5)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       manager->is_asp_supported = true;
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->AspPeerFound());
+
+       MethodInjector *asp_connect = new MethodInjector;
+       connect_sessoin_handler(asp_connect->AspSessionConnect
+                       (asp_connect->local_mac_str,
+                                       WFD_OEM_ASP_WPS_TYPE_NONE,
+                                       WFD_OEM_ASP_SESSION_ROLE_NONE), NULL);
+
+       wfd_event_asp_prov_done((wfd_oem_event_s*)event->AspProvDone
+                       (WFD_OEM_SC_SUCCESS,
+                                       WFD_WPS_MODE_P2PS,
+                                       WFD_OEM_ASP_SESSION_ROLE_NEW,
+                                       0, 0));
+
+       wfd_event_go_neg_fail((wfd_oem_event_s*)event->GoNegFailure());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete asp_connect;
+       delete event;
+}
+
+TEST(wfd_mgr_asp, asp_connect_session_Negative6)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       manager->is_asp_supported = true;
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->AspPeerFound());
+
+       MethodInjector *asp_connect = new MethodInjector;
+       connect_sessoin_handler(asp_connect->AspSessionConnect
+                       (asp_connect->local_mac_str,
+                                       WFD_OEM_ASP_WPS_TYPE_NONE,
+                                       WFD_OEM_ASP_SESSION_ROLE_NONE), NULL);
+
+       wfd_event_asp_prov_done((wfd_oem_event_s*)event->AspProvDone
+                       (WFD_OEM_SC_SUCCESS,
+                                       WFD_WPS_MODE_P2PS,
+                                       WFD_OEM_ASP_SESSION_ROLE_NEW,
+                                       0, 0));
+
+       wfd_event_wps_fail((wfd_oem_event_s*)event->WpsFailed());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete asp_connect;
+       delete event;
+}
+
+TEST(wfd_mgr_asp, asp_connect_session_Negative7)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       manager->is_asp_supported = true;
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->AspPeerFound());
+
+       MethodInjector *asp_connect = new MethodInjector;
+       connect_sessoin_handler(asp_connect->AspSessionConnect
+                       (asp_connect->local_mac_str,
+                                       WFD_OEM_ASP_WPS_TYPE_NONE,
+                                       WFD_OEM_ASP_SESSION_ROLE_NONE), NULL);
+
+       wfd_event_asp_prov_done((wfd_oem_event_s*)event->AspProvDone
+                       (WFD_OEM_SC_SUCCESS,
+                                       WFD_WPS_MODE_P2PS,
+                                       WFD_OEM_ASP_SESSION_ROLE_NEW,
+                                       0, 0));
+
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGc());
+       wfd_event_group_formation_failure((wfd_oem_event_s*)event->GroupFormationFailed());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete asp_connect;
+       delete event;
+}
+
+TEST(wfd_mgr_asp, asp_connect_session_Negative8)
+{
+       wfd_manager_s * manager = NULL;
+       EventInjector *event = new EventInjector;
+
+       INIT_WFD_MGR(manager);
+       manager = wfd_get_manager();
+
+       activate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       manager->is_asp_supported = true;
+
+       wfd_event_peer_found((wfd_oem_event_s *)event->AspPeerFound());
+
+       MethodInjector *asp_connect = new MethodInjector;
+       connect_sessoin_handler(asp_connect->AspSessionConnect
+                       (asp_connect->local_mac_str,
+                                       WFD_OEM_ASP_WPS_TYPE_NONE,
+                                       WFD_OEM_ASP_SESSION_ROLE_NONE), NULL);
+
+       wfd_event_asp_prov_done((wfd_oem_event_s*)event->AspProvDone
+                       (WFD_OEM_SC_SUCCESS,
+                                       WFD_WPS_MODE_P2PS,
+                                       WFD_OEM_ASP_SESSION_ROLE_NEW,
+                                       0, 0));
+
+       wfd_event_go_neg_done((wfd_oem_event_s*)event->GoNegSuccessGc());
+       wfd_event_group_destroyed((wfd_oem_event_s*)event->GroupFinished());
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_ACTIVATED);
+
+       deactivate_handler(NULL, NULL);
+       CHECK_WFD_MGR_STATE(manager, WIFI_DIRECT_STATE_DEACTIVATED);
+
+       wfd_manager_unload();
+
+       delete asp_connect;
+       delete event;
+}
+
+int main(int argc, char **argv)
+{
+  InitGoogleTest(&argc, argv);
+
+  return RUN_ALL_TESTS();
+}
+
diff --git a/unittest/unittest.h b/unittest/unittest.h
new file mode 100644 (file)
index 0000000..098bf36
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * 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.
+ */
+#ifndef __WFD_MANAGER_UNITTEST_H__
+#define __WFD_MANAGER_UNITTEST_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <glib.h>
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif //__WFD_MANAGER_UNITTEST_H__