From: Samuel Peter Date: Thu, 9 Aug 2018 11:29:20 +0000 (+0530) Subject: [ITC][capi-network-inm][ACR-1250,1286][Add new CAPI to intelligent network monitoring] X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1ba182567bad263b03449858370ed9b42d96b627;p=test%2Ftct%2Fnative%2Fapi.git [ITC][capi-network-inm][ACR-1250,1286][Add new CAPI to intelligent network monitoring] Signed-off-by: Samuel Peter Change-Id: Ifa920be5e011456ea6658c2b95716e422d4eb37f --- diff --git a/packaging/itc/native-capi-network-inm-itc.spec b/packaging/itc/native-capi-network-inm-itc.spec new file mode 100755 index 000000000..b9c19c1c6 --- /dev/null +++ b/packaging/itc/native-capi-network-inm-itc.spec @@ -0,0 +1,78 @@ +%define MODULE_NAME capi-network-inm +%define MODULE_LIBNAME capi-network-inm +Name: native-%{MODULE_NAME}-itc +Summary: Native API Integration TC (%{name}) +Version: 0.1 +Release: 0 +Group: Development/Tools +License: Apache-2.0 +Source0: %{name}-%{version}.tar.gz +BuildRequires: pkgconfig(%{MODULE_LIBNAME}) +BuildRequires: pkgconfig(capi-appfw-application) +BuildRequires: pkgconfig(elementary) +BuildRequires: pkgconfig(dlog) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: cmake +BuildRequires: pkgconfig(bundle) +BuildRequires: pkgconfig(capi-system-info) + +%description +Native API Integration TC (%{name}) + +%prep +%setup -q + +%build + +%define PREFIX "%{_libdir}/%{name}" + +export LDFLAGS+="-Wl,--rpath=%{PREFIX} -Wl,--as-needed" + +%if %{?ASAN_BUILD:1}0 + %if %{?DEVICE_BUILD_TYPE_MOBILE:1}0 + cmake . -DMODULE="%{MODULE_NAME}" -DBUILDTCTYPE="itc" -DDEVICE_BUILD_TYPE="mobile" -DASANBUILD="true" -DCMAKE_INSTALL_PREFIX=%{_prefix} + %endif + %if %{?DEVICE_BUILD_TYPE_WEARABLE:1}0 + cmake . -DMODULE="%{MODULE_NAME}" -DBUILDTCTYPE="itc" -DDEVICE_BUILD_TYPE="wearable" -DASANBUILD="true" -DCMAKE_INSTALL_PREFIX=%{_prefix} + %endif + %if %{?DEVICE_BUILD_TYPE_TV:1}0 + cmake . -DMODULE="%{MODULE_NAME}" -DBUILDTCTYPE="itc" -DDEVICE_BUILD_TYPE="tv" -DASANBUILD="true" -DCMAKE_INSTALL_PREFIX=%{_prefix} + %endif + %if %{?DEVICE_BUILD_TYPE_TIZENIOT:1}0 + cmake . -DMODULE="%{MODULE_NAME}" -DBUILDTCTYPE="itc" -DDEVICE_BUILD_TYPE="tizeniot" -DASANBUILD="true" -DCMAKE_INSTALL_PREFIX=%{_prefix} + %endif +%else + %if %{?DEVICE_BUILD_TYPE_MOBILE:1}0 + cmake . -DMODULE="%{MODULE_NAME}" -DBUILDTCTYPE="itc" -DDEVICE_BUILD_TYPE="mobile" -DASANBUILD="false" -DCMAKE_INSTALL_PREFIX=%{_prefix} + %endif + %if %{?DEVICE_BUILD_TYPE_WEARABLE:1}0 + cmake . -DMODULE="%{MODULE_NAME}" -DBUILDTCTYPE="itc" -DDEVICE_BUILD_TYPE="wearable" -DASANBUILD="false" -DCMAKE_INSTALL_PREFIX=%{_prefix} + %endif + %if %{?DEVICE_BUILD_TYPE_TV:1}0 + cmake . -DMODULE="%{MODULE_NAME}" -DBUILDTCTYPE="itc" -DDEVICE_BUILD_TYPE="tv" -DASANBUILD="false" -DCMAKE_INSTALL_PREFIX=%{_prefix} + %endif + %if %{?DEVICE_BUILD_TYPE_TIZENIOT:1}0 + cmake . -DMODULE="%{MODULE_NAME}" -DBUILDTCTYPE="itc" -DDEVICE_BUILD_TYPE="tizeniot" -DASANBUILD="false" -DCMAKE_INSTALL_PREFIX=%{_prefix} + %endif +%endif + +make %{?jobs:-j%jobs} + +%install +rm -rf %{buildroot} +%make_install +mkdir -p %{buildroot}/usr/share/license +cp LICENSE %{buildroot}/usr/share/license/%{name} + +mkdir -p %{buildroot}/usr/share/packages/ +cp packaging/itc/native-%{MODULE_NAME}-itc.xml %{buildroot}/usr/share/packages/ +mkdir -p %{buildroot}%{APP_PATH}%{name}/bin +#cp templates/external_wrapper.sh %{buildroot}%{APP_PATH}%{name}/bin +%post + +%postun + +%files +%{APP_PATH}%{name}/* +/usr/share/packages/native-%{MODULE_NAME}-itc.xml +/usr/share/license/%{name} diff --git a/packaging/itc/native-capi-network-inm-itc.xml b/packaging/itc/native-capi-network-inm-itc.xml new file mode 100755 index 000000000..d5321cdcf --- /dev/null +++ b/packaging/itc/native-capi-network-inm-itc.xml @@ -0,0 +1,18 @@ + + + + test + Native API test Application + + + + + + + + + + http://tizen.org/privilege/network.get + http://tizen.org/privilege/network.set + + diff --git a/src/itc/capi-network-inm/CMakeLists.txt b/src/itc/capi-network-inm/CMakeLists.txt new file mode 100755 index 000000000..180c4b778 --- /dev/null +++ b/src/itc/capi-network-inm/CMakeLists.txt @@ -0,0 +1,40 @@ +SET(PKG_NAME "capi-network-inm") + +SET(EXEC_NAME "tct-${PKG_NAME}-native") +SET(RPM_NAME "native-${PKG_NAME}-itc") + +SET(CAPI_LIB "capi-network-inm") +SET(TC_SOURCES + ITs-capi-network-inm-common.c + ITs-capi-network-inm.c +) + +PKG_CHECK_MODULES(${CAPI_LIB} REQUIRED + ${CAPI_LIB} + capi-appfw-application + libsystemd-journal + bundle + glib-2.0 + capi-system-info +) + +INCLUDE_DIRECTORIES( + ${${CAPI_LIB}_INCLUDE_DIRS} +) + +ADD_EXECUTABLE(${EXEC_NAME} ${EXEC_NAME}.c ${TC_SOURCES} ${COMMON_FILE}) +TARGET_LINK_LIBRARIES(${EXEC_NAME} + ${${CAPI_LIB}_LIBRARIES} +) + +INSTALL(PROGRAMS ${EXEC_NAME} + DESTINATION ${BIN_DIR}/${RPM_NAME}/bin +) + +IF( DEFINED ASAN ) +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -Wall -pie -g -fsanitize=address -fsanitize-recover=address -U_FORTIFY_SOURCE -fno-omit-frame-pointer") +SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=/usr/lib -Wl,-fsanitize=address") +ELSE() +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -g -fPIE -Wall") +SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=/usr/lib -pie") +ENDIF() diff --git a/src/itc/capi-network-inm/ITs-capi-network-inm-common.c b/src/itc/capi-network-inm/ITs-capi-network-inm-common.c new file mode 100755 index 000000000..814ecf774 --- /dev/null +++ b/src/itc/capi-network-inm/ITs-capi-network-inm-common.c @@ -0,0 +1,310 @@ +// +// Copyright (c) 2014 Samsung Electronics Co., Ltd. +// +// Licensed under the Apache License, Version 2.0 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#include "ITs-capi-network-inm-common.h" + +/** @addtogroup itc-dlog +* @ingroup itc +* @{ +*/ + +//Add helper function definitions here +char* InmGetError(int error) +{ + char *pszErrorValue = NULL; + switch (error) { + case INM_ERROR_NONE: + pszErrorValue = "INM_ERROR_NONE"; + break; + case INM_ERROR_NOT_PERMITTED: + pszErrorValue = "INM_ERROR_NOT_PERMITTED"; + break; + case INM_ERROR_OUT_OF_MEMORY: + pszErrorValue = "INM_ERROR_OUT_OF_MEMORY"; + break; + case INM_ERROR_PERMISSION_DENIED: + pszErrorValue = "INM_ERROR_PERMISSION_DENIED"; + break; + case INM_ERROR_RESOURCE_BUSY: + pszErrorValue = "INM_ERROR_RESOURCE_BUSY"; + break; + case INM_ERROR_INVALID_PARAMETER: + pszErrorValue = "INM_ERROR_INVALID_PARAMETER"; + break; + case INM_ERROR_CONNECTION_TIME_OUT: + pszErrorValue = "INM_ERROR_CONNECTION_TIME_OUT"; + break; + case INM_ERROR_NOW_IN_PROGRESS: + pszErrorValue = "INM_ERROR_NOW_IN_PROGRESS"; + break; + case INM_ERROR_NOT_SUPPORTED: + pszErrorValue = "INM_ERROR_NOT_SUPPORTED"; + break; + case INM_ERROR_NOT_INITIALIZED: + pszErrorValue = "INM_ERROR_NOT_INITIALIZED"; + break; + case INM_ERROR_ALREADY_INITIALIZED: + pszErrorValue = "INM_ERROR_ALREADY_INITIALIZED"; + break; + case INM_ERROR_OPERATION_FAILED: + pszErrorValue = "INM_ERROR_OPERATION_FAILED"; + break; + default: + pszErrorValue = "Unknown Error"; + break; + } + return pszErrorValue; +} + +char* InmGetDisconnectReason(int error) +{ + char *pszDisconnectReason = NULL; + switch (error) { + case WIFI_REASON_LOCAL_GENERATE_FROM_USER: + pszDisconnectReason = "WIFI_REASON_LOCAL_GENERATE_FROM_USER"; + break; + case WIFI_REASON_UNSPECIFIED: + pszDisconnectReason = "WIFI_REASON_UNSPECIFIED"; + break; + case WIFI_REASON_PREV_AUTH_NOT_VALID: + pszDisconnectReason = "WIFI_REASON_PREV_AUTH_NOT_VALID"; + break; + case WIFI_REASON_DEAUTH_LEAVING: + pszDisconnectReason = "WIFI_REASON_DEAUTH_LEAVING"; + break; + case WIFI_REASON_DISASSOC_DUE_TO_INACTIVITY: + pszDisconnectReason = "WIFI_REASON_DISASSOC_DUE_TO_INACTIVITY"; + break; + case WIFI_REASON_DISASSOC_AP_BUSY: + pszDisconnectReason = "WIFI_REASON_DISASSOC_AP_BUSY"; + break; + case WIFI_REASON_CLASS2_FRAME_FROM_NONAUTH_STA: + pszDisconnectReason = "WIFI_REASON_CLASS2_FRAME_FROM_NONAUTH_STA"; + break; + case WIFI_REASON_CLASS3_FRAME_FROM_NONASSOC_STA: + pszDisconnectReason = "WIFI_REASON_CLASS3_FRAME_FROM_NONASSOC_STA"; + break; + case WIFI_REASON_DISASSOC_STA_HAS_LEFT: + pszDisconnectReason = "WIFI_REASON_DISASSOC_STA_HAS_LEFT"; + break; + case WIFI_REASON_STA_REQ_ASSOC_WITHOUT_AUTH: + pszDisconnectReason = "WIFI_REASON_STA_REQ_ASSOC_WITHOUT_AUTH"; + break; + case WIFI_REASON_PWR_CAPABILITY_NOT_VALID: + pszDisconnectReason = "WIFI_REASON_PWR_CAPABILITY_NOT_VALID"; + break; + case WIFI_REASON_SUPPORTED_CHANNEL_NOT_VALID: + pszDisconnectReason = "WIFI_REASON_SUPPORTED_CHANNEL_NOT_VALID"; + break; + case WIFI_REASON_INVALID_IE: + pszDisconnectReason = "WIFI_REASON_INVALID_IE"; + break; + case WIFI_REASON_MICHAEL_MIC_FAILURE: + pszDisconnectReason = "WIFI_REASON_MICHAEL_MIC_FAILURE"; + break; + case WIFI_REASON_4WAY_HANDSHAKE_TIMEOUT: + pszDisconnectReason = "WIFI_REASON_4WAY_HANDSHAKE_TIMEOUT"; + break; + case WIFI_REASON_GROUP_KEY_UPDATE_TIMEOUT: + pszDisconnectReason = "WIFI_REASON_GROUP_KEY_UPDATE_TIMEOUT"; + break; + case WIFI_REASON_IE_IN_4WAY_DIFFERS: + pszDisconnectReason = "WIFI_REASON_IE_IN_4WAY_DIFFERS"; + break; + case WIFI_REASON_GROUP_CIPHER_NOT_VALID: + pszDisconnectReason = "WIFI_REASON_GROUP_CIPHER_NOT_VALID"; + break; + case WIFI_REASON_PAIRWISE_CIPHER_NOT_VALID: + pszDisconnectReason = "WIFI_REASON_PAIRWISE_CIPHER_NOT_VALID"; + break; + case WIFI_REASON_AKMP_NOT_VALID: + pszDisconnectReason = "WIFI_REASON_AKMP_NOT_VALID"; + break; + case WIFI_REASON_UNSUPPORTED_RSN_IE_VERSION: + pszDisconnectReason = "WIFI_REASON_UNSUPPORTED_RSN_IE_VERSION"; + break; + case WIFI_REASON_INVALID_RSN_IE_CAPAB: + pszDisconnectReason = "WIFI_REASON_INVALID_RSN_IE_CAPAB"; + break; + case WIFI_REASON_IEEE_802_1X_AUTH_FAILED: + pszDisconnectReason = "WIFI_REASON_IEEE_802_1X_AUTH_FAILED"; + break; + case WIFI_REASON_CIPHER_SUITE_REJECTED: + pszDisconnectReason = "WIFI_REASON_CIPHER_SUITE_REJECTED"; + break; + case WIFI_REASON_TDLS_TEARDOWN_UNREACHABLE: + pszDisconnectReason = "WIFI_REASON_TDLS_TEARDOWN_UNREACHABLE"; + break; + case WIFI_REASON_TDLS_TEARDOWN_UNSPECIFIED: + pszDisconnectReason = "WIFI_REASON_TDLS_TEARDOWN_UNSPECIFIED"; + break; + case WIFI_REASON_DISASSOC_LOW_ACK: + pszDisconnectReason = "WIFI_REASON_DISASSOC_LOW_ACK"; + break; + case WIFI_REASON_MESH_PEERING_CANCELLED: + pszDisconnectReason = "WIFI_REASON_MESH_PEERING_CANCELLED"; + break; + case WIFI_REASON_MESH_MAX_PEERS: + pszDisconnectReason = "WIFI_REASON_MESH_MAX_PEERS"; + break; + case WIFI_REASON_MESH_CONFIG_POLICY_VIOLATION: + pszDisconnectReason = "WIFI_REASON_MESH_CONFIG_POLICY_VIOLATION"; + break; + case WIFI_REASON_MESH_CLOSE_RCVD: + pszDisconnectReason = "WIFI_REASON_MESH_CLOSE_RCVD"; + break; + case WIFI_REASON_MESH_MAX_RETRIES: + pszDisconnectReason = "WIFI_REASON_MESH_MAX_RETRIES"; + break; + case WIFI_REASON_MESH_CONFIRM_TIMEOUT: + pszDisconnectReason = "WIFI_REASON_MESH_CONFIRM_TIMEOUT"; + break; + case WIFI_REASON_MESH_INVALID_GTK: + pszDisconnectReason = "WIFI_REASON_MESH_INVALID_GTK"; + break; + case WIFI_REASON_MESH_INCONSISTENT_PARAMS: + pszDisconnectReason = "WIFI_REASON_MESH_INCONSISTENT_PARAMS"; + break; + case WIFI_REASON_MESH_INVALID_SECURITY_CAP: + pszDisconnectReason = "WIFI_REASON_MESH_INVALID_SECURITY_CAP"; + break; + case 0: + pszDisconnectReason = "WIFI_NOT_DISCONNECTED"; + break; + default: + pszDisconnectReason = NULL; + break; + } + return pszDisconnectReason; +} + +int InmGetAnyProfile(inm_connection_h *profile) +{ + inm_connection_h hProfile; + inm_connection_iterator_h hProfileIter; + + int nRet = inm_get_connection_iterator(g_hInm, &hProfileIter); + if (g_bFeatureAllNotSupported) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_get_connection_iterator", InmGetError(nRet)); + return FEATURE_NOT_SUPPORTED; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_get_connection_iterator", InmGetError(nRet)); + CHECK_HANDLE(hProfileIter, "inm_get_connection_iterator"); + + nRet = inm_connection_iterator_next(hProfileIter, &hProfile); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_connection_iterator_next", InmGetError(nRet), inm_destroy_connection_iterator(hProfileIter)); + CHECK_HANDLE_CLEANUP(hProfile, "inm_connection_iterator_next", inm_destroy_connection_iterator(hProfileIter)); + + nRet = inm_connection_clone(profile, hProfile); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_connection_clone", InmGetError(nRet), inm_destroy_connection_iterator(hProfileIter); inm_connection_destroy(&hProfile)); + + nRet = inm_destroy_connection_iterator(hProfileIter); + PRINT_RESULT_NORETURN(nRet, INM_ERROR_NONE, "inm_destroy_connection_iterator", InmGetError(nRet)); + + return 0; +} + +bool InmForeachFoundApCallback(inm_connection_h ap, void *user_data) +{ + PRINT_RETURN("inm_foreach_found_ap_callback", INM_ERROR_NONE); + g_nCallbackRet = true; + return false; +} + +void InmWifiStateChangedCallback(inm_wifi_state_e result, void* user_data) +{ + PRINT_RETURN("inm_wifi_state_changed_callback", result); + g_nCallbackRet = true; +} + +void InmWifiScanStateChangedCallback(inm_wifi_scan_state_e state, void* user_data) +{ + PRINT_RETURN("inm_wifi_scan_state_changed_callback", state); + g_nCallbackRet = true; +} + +bool InmConnectionStateChangedCallback(inm_connection_state_e state, void* user_data) +{ + char *pszProfileName; + inm_connection_h profile = user_data; + + if (profile == NULL) + return; + + int nRet = inm_connection_get_name(profile, NULL); + PRINT_RETURN("inm_connection_get_name", nRet); + if (nRet != INM_ERROR_NONE) { + FREE_MEMORY_TC(pszProfileName); + return; + } + g_nCallbackRet = true; + FREE_MEMORY_TC(pszProfileName); +} + +bool InmWifiApForeachVsieCallback(unsigned char *vsie_bytes, int vsie_len, void *user_data) +{ + PRINT_RETURN("inm_wifi_ap_foreach_vsie_callback", INM_ERROR_NONE); + g_nCallbackRet = true; + return false; +} + +void InmSetEthernetCableStateChangedCallback(inm_ethernet_cable_state_e result, void* user_data) +{ + PRINT_RETURN("inm_set_ethernet_cable_state_changed_callback", INM_ERROR_NONE); + g_nCallbackRet = true; +} + +void InmSetIpConflictCallback(char *if_name, char *ip, inm_ip_conflict_state_e state, void *user_data) +{ + PRINT_RETURN("inm_set_ip_conflict_callback", INM_ERROR_NONE); + g_nCallbackRet = true; +} + +void InmSetCongestionLevelCallback(inm_congestion_level_e result, void* user_data) +{ + PRINT_RETURN("inm_set_congestion_level_callback", INM_ERROR_NONE); + g_nCallbackRet = true; +} + +void InmSetRetryTxRateCallback(int rate, void* user_data) +{ + PRINT_RETURN("inm_set_retry_tx_rate_callback", INM_ERROR_NONE); + g_nCallbackRet = true; +} + +void InmSetChannelInterferenceCallback(int freq, double channel_intf, void* user_data) +{ + PRINT_RETURN("inm_set_channel_interference_callback", INM_ERROR_NONE); + g_nCallbackRet = true; +} + +void InmSetCellularStateChangedCallback(inm_cellular_state_e result, void* user_data) +{ + PRINT_RETURN("inm_set_cellular_state_changed_callback", INM_ERROR_NONE); + g_nCallbackRet = true; +} + +void InmSetWifiStateChangedCallback(inm_wifi_state_e result, void* user_data) +{ + PRINT_RETURN("inm_set_cellular_state_changed_callback", INM_ERROR_NONE); + g_nCallbackRet = true; +} + +void InmSetEthernetStateChangedCallback(inm_ethernet_state_e result, void* user_data) +{ + PRINT_RETURN("inm_set_cellular_state_changed_callback", INM_ERROR_NONE); + g_nCallbackRet = true; +} +/** @} */ diff --git a/src/itc/capi-network-inm/ITs-capi-network-inm-common.h b/src/itc/capi-network-inm/ITs-capi-network-inm-common.h new file mode 100755 index 000000000..c37b2cbad --- /dev/null +++ b/src/itc/capi-network-inm/ITs-capi-network-inm-common.h @@ -0,0 +1,146 @@ +// +// Copyright (c) 2014 Samsung Electronics Co., Ltd. +// +// Licensed under the Apache License, Version 2.0 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#ifndef _INM_COMMON_H_ +#define _INM_H_ + +#include "tct_common.h" +#include +#include +#include +#include + + +/** @addtogroup itc-dlog +* @ingroup itc +* @{ +*/ + +bool g_bDlogCreation; + +#define INM_DEBUG 1 +#define GMAINTIMEOUT 20000 +#define API_NAMESPACE "INM_ITC" +#define MAXENUMSIZE 50 +#define SETENUM 1 +#define GETENUM 0 +#define FEATURE_INM "http://tizen.org/feature/network.inm" +#define FEATURE_WIFI "http://tizen.org/feature/network.wifi" +#define FEATURE_ETHERNET "http://tizen.org/feature/network.ethernet" +#define FEATURE_TELEPHONY "http://tizen.org/feature/network.telephony" +#define FEATURE_BT_TETHERING "http://tizen.org/feature/network.tethering.bluetooth" +#define FEATURE_NOT_SUPPORTED 999 + +bool g_bFeatureInm; +bool g_bFeatureWifi; +bool g_bFeatureEthernet; +bool g_bFeatureTelephony; +bool g_bFeatureBttethering; +bool g_bFeatureAllNotSupported; +bool g_bInmCreation; +bool g_bIsFeatureMismatched; +bool g_nCallbackRet; +bool g_bFeatureNotSupported; + +inm_h g_hInm; +inm_connection_h g_hProfileTemp; +inm_connection_h g_hConnection; + +#define START_TEST {\ + if(g_bFeatureNotSupported)\ + {\ + FPRINTF("[Line:%d][%s] FeatureInm not supported\\n", __LINE__, API_NAMESPACE);\ + return 0;\ + }\ +\ + if( g_bIsFeatureMismatched )\ + {\ + FPRINTF("[Line:%d][%s] Feature Mismatch Error\\n", __LINE__, API_NAMESPACE);\ + dlog_print(DLOG_ERROR, "NativeTCT", "[Line:%d][%s] Feature Mismatch Error", __LINE__, API_NAMESPACE);\ + return 1;\ + }\ +\ + FPRINTF("[Line : %d][%s] Starting test : %s\\n", __LINE__, API_NAMESPACE, __FUNCTION__);\ + if ( !g_bInmCreation )\ + {\ + FPRINTF("[Line : %d][%s] Precondition of inm failed so leaving test\\n", __LINE__, API_NAMESPACE);\ + return 1;\ + }\ +} + +#define PRINT_RETURN(api, ret) {\ + if (INM_DEBUG) {\ + FPRINTF("[Line : %d][%s] %s returned = %s\\n",\ + __LINE__, API_NAMESPACE, api, InmGetError(ret));\ + dlog_print(DLOG_INFO, "NativeTCT", "[Line : %d][%s] %s returned = %s",\ + __LINE__, API_NAMESPACE, api, InmGetError(ret));\ + }\ +} + +#define PRINT_RETURN_CLEANUP(api, ret, FreeResource) {\ + if (INM_DEBUG) {\ + FPRINTF("[Line : %d][%s] %s returned = %s\\n",\ + __LINE__, API_NAMESPACE, api, InmGetError(ret));\ + dlog_print(DLOG_INFO, "NativeTCT", "[Line : %d][%s] %s returned = %s",\ + __LINE__, API_NAMESPACE, api, InmGetError(ret));\ + FreeResource;\ + }\ +} + +#define CHECK_HANDLE_CLEANUP(Handle, API, FreeResource) {\ + if ( Handle == NULL )\ + {\ + FPRINTF("[Line : %d][%s] %s failed, error returned = Handle returned is NULL\\n", __LINE__, API_NAMESPACE, API);\ + FreeResource;\ + return 1;\ + }\ +} + +#define PRINT_RESULT_CHECK(nRetVal, eCompare, API, Error) {\ + if ( nRetVal == eCompare )\ + {\ + if ( DEBUG )\ + {\ + FPRINTF("[Line : %d][%s] %s passed\\n", __LINE__, API_NAMESPACE, API);\ + }\ + }\ + else \ + {\ + FPRINTF("[Line : %d][%s] %s failed due to feature support mismatch.\\n", __LINE__, API_NAMESPACE, API);\ + return 1;\ + }\ +} + +//Add test package related includes here +char* InmGetError(int error); +char* InmGetDisconnectReason(int error); +int InmGetAnyProfile(inm_connection_h *profile); + +bool InmConnectionStateChangedCallback(inm_connection_state_e state, void* user_data); +bool InmForeachFoundApCallback(inm_connection_h ap, void *user_data); +void InmSetEthernetCableStateChangedCallback(inm_ethernet_cable_state_e result, void* user_data); +void InmSetIpConflictCallback(char *if_name, char *ip, inm_ip_conflict_state_e state, void *user_data); +void InmWifiStateChangedCallback(inm_wifi_state_e result, void* user_data); +void InmWifiScanStateChangedCallback(inm_wifi_scan_state_e state, void* user_data); +bool InmWifiApForeachVsieCallback(unsigned char *vsie_bytes, int vsie_len, void *user_data); +void InmSetCongestionLevelCallback(inm_congestion_level_e result, void* user_data); +void InmSetRetryTxRateCallback(int rate, void* user_data); +void InmSetChannelInterferenceCallback(int freq, double channel_intf, void* user_data); +void InmSetCellularStateChangedCallback(inm_cellular_state_e result, void* user_data); +void InmSetWifiStateChangedCallback(inm_wifi_state_e result, void* user_data); +void InmSetEthernetStateChangedCallback(inm_ethernet_state_e result, void* user_data); +/** @} */ +#endif //_ITS_INM_COMMON_H_ diff --git a/src/itc/capi-network-inm/ITs-capi-network-inm.c b/src/itc/capi-network-inm/ITs-capi-network-inm.c new file mode 100755 index 000000000..1f29f6dc0 --- /dev/null +++ b/src/itc/capi-network-inm/ITs-capi-network-inm.c @@ -0,0 +1,2725 @@ +// +// Copyright (c) 2014 Samsung Electronics Co., Ltd. +// +// Licensed under the Apache License, Version 2.0 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#include "ITs-capi-network-inm-common.h" + +/** @addtogroup itc-capi-network-inm +* @ingroup itc +* @{ +*/ + +//& set: Inm + +/** +* @function ITs_inm_startup +* @description Called before each test +* @parameter NA +* @return NA +*/ +void ITs_inm_startup(void) +{ + g_bFeatureInm = TCTCheckSystemInfoFeatureSupported(FEATURE_INM, API_NAMESPACE); + g_bFeatureWifi = TCTCheckSystemInfoFeatureSupported(FEATURE_WIFI, API_NAMESPACE); + g_bFeatureEthernet = TCTCheckSystemInfoFeatureSupported(FEATURE_ETHERNET, API_NAMESPACE); + g_bFeatureTelephony = TCTCheckSystemInfoFeatureSupported(FEATURE_TELEPHONY, API_NAMESPACE); + g_bFeatureBttethering = TCTCheckSystemInfoFeatureSupported(FEATURE_BT_TETHERING, API_NAMESPACE); + + g_hInm = NULL; + g_bInmCreation = false; + g_bFeatureAllNotSupported = false; + g_bIsFeatureMismatched = false; + g_bFeatureNotSupported = false; + + int nRet = inm_initialize(&g_hInm); + if(!g_bFeatureInm) + { + if(nRet != INM_ERROR_NOT_SUPPORTED) + { + FPRINTF("[Line : %d][%s] inm_initialize failed due to feature mismatch.\\n", __LINE__, API_NAMESPACE); + g_bIsFeatureMismatched = true; + return; + } + else + { + g_bFeatureNotSupported = true; + return; + } + } + else + { + if(nRet != INM_ERROR_NONE) + { + FPRINTF("[Line : %d][%s] inm_initialize failed. Error returned = %s\\n", __LINE__, API_NAMESPACE, InmGetError(nRet)); + return; + } + } + if(g_hInm == NULL) + { + FPRINTF("[Line : %d][%s] inm_initialize failed. Handle returned = %d, nRet = %s\\n", __LINE__, API_NAMESPACE, g_hInm, InmGetError(nRet)); + return; + } + + + nRet = inm_get_current_connection(g_hInm, &g_hConnection); + if ((g_bFeatureTelephony == false) && (g_bFeatureWifi == false) && (g_bFeatureBttethering == false) && (g_bFeatureEthernet == false) && (g_bFeatureInm == false)) + { + g_bFeatureAllNotSupported = true; + FPRINTF("[Line : %d][%s] No feature is supported\\n", __LINE__, API_NAMESPACE); + dlog_print(DLOG_INFO, "NativeTCT", "[Line : %d][%s] no feature is supported", __LINE__, API_NAMESPACE); + } + else if (nRet != INM_ERROR_NONE) + { + FPRINTF("[Line : %d][%s] Fail to get current profile or service. Error = %s, g_hConnection = %d\\n", __LINE__, API_NAMESPACE, InmGetError(nRet), g_hConnection); + dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Fail to get current profile or service", __LINE__, API_NAMESPACE); + return; + } + + if(g_hConnection == NULL) + { + FPRINTF("[Line : %d][%s] Fail to get current profile or service.\\n", __LINE__, API_NAMESPACE); + return; + } + + g_bInmCreation = true; + return; +} + +/** +* @function ITs_inm_cleanup +* @description Called after each test +* @parameter NA +* @return NA +*/ +void ITs_inm_cleanup(void) +{ + if(g_hInm != NULL) + { + int nRet = inm_deinitialize(g_hInm); + g_hInm = NULL; + } +} + + +/** @addtogroup itc-inm-testcases +* @brief Integration testcases for module capi-network-inm +* @ingroup itc-inm +* @{ +*/ + +/** +* @testcase ITc_inm_set_unset_ethernet_cable_state_changed_cb +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Set and unset ethernet cable state-changed callback +* @scenario Ethernet cable state-changed callback is set and then unset +* @apicovered inm_set_ethernet_cable_state_changed_cb, inm_unset_ethernet_cable_state_changed_cb +* @passcase When inm_set_ethernet_cable_state_changed_cb, inm_unset_ethernet_cable_state_changed_cb are successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to test setting and unsetting of ethernet cable state-changed callbacks +//& type: auto +int ITc_inm_set_unset_ethernet_cable_state_changed_cb_p(void) +{ + START_TEST; + + int nRet; + + nRet = inm_set_ethernet_cable_state_changed_cb(g_hInm, InmSetEthernetCableStateChangedCallback, NULL); + if(!g_bFeatureEthernet) + { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_set_ethernet_cable_state_changed_cb", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_set_ethernet_cable_state_changed_cb", InmGetError(nRet)); + + nRet = inm_unset_ethernet_cable_state_changed_cb(g_hInm); + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_unset_ethernet_cable_state_changed_cb", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_get_ethernet_cable_state +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Get ethernet cable state +* @scenario Ethernet cable state gotten +* @apicovered inm_get_ethernet_cable_state +* @passcase When inm_get_ethernet_cable_state is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get ethernet cable state-changed +//& type: auto +int ITc_inm_get_ethernet_cable_state_p(void) +{ + START_TEST; + + int nRet; + inm_ethernet_cable_state_e eCableState; + + nRet = inm_get_ethernet_cable_state(g_hInm, &eCableState); + if(!g_bFeatureEthernet) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_get_ethernet_cable_state", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_get_ethernet_cable_state", InmGetError(nRet)); + if(!(eCableState == INM_ETHERNET_CABLE_STATE_DETACHED || eCableState == INM_ETHERNET_CABLE_STATE_ATTACHED)) + { + FPRINTF("[Line : %d][%s] %s failed. CableState value = %d\\n", __LINE__, API_NAMESPACE, "inm_get_ethernet_cable_state", eCableState); + return 1; + } + + return 0; +} + +/** +* @testcase ITc_inm_set_unset_wifi_module_state_changed_cb +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Set and unset wifi module state-changed callback +* @scenario Wifi module state-changed callback is set and then unset +* @apicovered inm_set_wifi_module_state_changed_cb, inm_unset_wifi_module_state_changed_cb +* @passcase When inm_set_wifi_module_state_changed_cb, inm_unset_wifi_module_state_changed_cb are successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to test setting and unsetting of wifi module state-changed callbacks +//& type: auto +int ITc_inm_set_unset_wifi_module_state_changed_cb_p(void) +{ + START_TEST; + + int nRet = INM_ERROR_NONE; + + nRet = inm_set_wifi_module_state_changed_cb(g_hInm, InmWifiStateChangedCallback, NULL); + if(!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_set_wifi_module_state_changed_cb", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_set_wifi_module_state_changed_cb", InmGetError(nRet)); + + nRet = inm_unset_wifi_module_state_changed_cb(g_hInm); + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_unset_wifi_module_state_changed_cb", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_get_wifi_module_state +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Get wifi module state +* @scenario Wifi module cable state is gotten +* @apicovered inm_get_wifi_module_state +* @passcase When inm_get_wifi_module_state is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get wifi module state +//& type: auto +int ITc_inm_get_wifi_module_state_p(void) +{ + START_TEST; + + inm_wifi_module_state_e eModuleState; + int nRet = INM_ERROR_NONE; + + nRet = inm_get_wifi_module_state(g_hInm, &eModuleState); + if(!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_get_wifi_module_state", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_get_wifi_module_state", InmGetError(nRet)); + if(eModuleState < INM_WIFI_MODULE_STATE_DETACHED || eModuleState > INM_WIFI_MODULE_STATE_ATTACHED) + { + FPRINTF("[Line : %d][%s] %s failed. ModuleState value = %d\\n", __LINE__, API_NAMESPACE, "inm_get_wifi_module_state", eModuleState); + return 1; + } + + return 0; +} + + +/** +* @testcase ITc_inm_set_unset_ip_conflict_cb +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Set and unset ip conflict callback +* @scenario Ip conflict callback is set and then unset +* @apicovered inm_set_ip_conflict_cb, inm_unset_ip_conflict_cb +* @passcase When inm_set_ip_conflict_cb, inm_unset_ip_conflict_cb are successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to test setting and unsetting of ip conflict callbacks +//& type: auto +int ITc_inm_set_unset_ip_conflict_cb_p(void) +{ + START_TEST; + + int nRet = INM_ERROR_NONE; + + nRet = inm_set_ip_conflict_cb(g_hInm, InmSetIpConflictCallback, NULL); + if(!g_bFeatureWifi && !g_bFeatureEthernet) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_set_ip_conflict_cb", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_set_ip_conflict_cb", InmGetError(nRet)); + + nRet = inm_unset_ip_conflict_cb(g_hInm); + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_unset_ip_conflict_cb", InmGetError(nRet)); + + return 0; +} + + +/** +* @testcase ITc_inm_ip_conflict_detect_is_enabled +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Checks whether ip conflict detection is enabled or not +* @scenario IP conflict detection is checked +* @apicovered inm_ip_conflict_detect_is_enabled +* @passcase When inm_ip_conflict_detect_is_enabled is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to whether ip conflict detection is enabled or not +//& type: auto +int ITc_inm_ip_conflict_detect_is_enabled_p(void) +{ + START_TEST; + + bool bState = false; + + int nRet = inm_ip_conflict_detect_is_enabled(g_hInm, &bState); + if(!g_bFeatureWifi && !g_bFeatureEthernet) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_ip_conflict_detect_is_enabled", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_ip_conflict_detect_is_enabled", InmGetError(nRet)); + + return 0; +} + + +/** +* @testcase ITc_inm_get_ip_conflict_state +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Checks IP conflict state +* @scenario IP conflict state is checked +* @apicovered inm_get_ip_conflict_state +* @passcase When inm_get_ip_conflict_state is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to check IP conflict state +//& type: auto +int ITc_inm_get_ip_conflict_state_p(void) +{ + START_TEST; + + inm_ip_conflict_state_e eConflictState; + + int nRet = inm_get_ip_conflict_state(g_hInm, &eConflictState); + if(!g_bFeatureWifi && !g_bFeatureEthernet) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_get_ip_conflict_state", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_get_ip_conflict_state", InmGetError(nRet)); + if(eConflictState < INM_IP_CONFLICT_STATE_UNKNOWN || eConflictState > INM_IP_CONFLICT_STATE_CONFLICT_DETECTED) + { + FPRINTF("[Line : %d][%s] %s failed. ConflictState value = %d\\n", __LINE__, API_NAMESPACE, "inm_get_ip_conflict_state", eConflictState); + return 1; + } + + return 0; +} + + +/** +* @testcase ITc_inm_get_statistics +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets INM statistics +* @scenario INM statistics are gotten +* @apicovered inm_get_statistics +* @passcase When inm_get_statistics is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get INM statistics +//& type: auto +int ITc_inm_get_statistics_p(void) +{ + START_TEST; + + unsigned long long llStat=0; + int nRet = INM_ERROR_NONE; + + inm_statistics_type_e eStatType[] = { + INM_STATISTICS_TYPE_LAST_RECEIVED_DATA, + INM_STATISTICS_TYPE_LAST_SENT_DATA, + INM_STATISTICS_TYPE_TOTAL_RECEIVED_DATA, + INM_STATISTICS_TYPE_TOTAL_SENT_DATA + }; + + inm_connection_type_e eConnectionType[] = { + INM_CONNECTION_TYPE_WIFI, + INM_CONNECTION_TYPE_CELLULAR, + }; + + bool bConnectionTypeFeatureChecks[] = { + g_bFeatureWifi, + g_bFeatureTelephony + }; + + int nStatTypeSize = sizeof(eStatType)/sizeof(eStatType[0]); + int nConnectionTypeSize = sizeof(eConnectionType)/sizeof(eConnectionType[0]); + + for(int connectionTypeIndex = 0; connectionTypeIndex INM_CONGESTION_LEVEL_LOW) + { + FPRINTF("[Line : %d][%s] %s failed. CongestionLevel value = %d\\n", __LINE__, API_NAMESPACE, "inm_get_congestion_level", eCongestionLevel); + return 1; + } + + return 0; +} + + +/** +* @testcase ITc_inm_set_unset_retry_tx_rate_cb +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Set and unset retry tx rate callback +* @scenario Retry tx rate callback is set and then unset +* @apicovered inm_set_retry_tx_rate_cb, inm_unset_retry_tx_rate_cbs +* @passcase When inm_set_retry_tx_rate_cb, inm_unset_retry_tx_rate_cbs are successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to test setting and unsetting of retry tx rate callbacks +//& type: auto +int ITc_inm_set_unset_retry_tx_rate_cb_p(void) +{ + START_TEST; + + int nRet = INM_ERROR_NONE; + + nRet = inm_set_retry_tx_rate_cb(g_hInm, InmSetRetryTxRateCallback, NULL); + if (!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_set_retry_tx_rate_cb", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_set_retry_tx_rate_cb", InmGetError(nRet)); + + nRet = inm_unset_retry_tx_rate_cb(g_hInm); + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_unset_retry_tx_rate_cb", InmGetError(nRet)); + + return 0; +} + + +/** +* @testcase ITc_inm_get_retry_tx_rate +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets retry tx rate +* @scenario Retry tx rate is gotten +* @apicovered inm_get_retry_tx_rate +* @passcase When inm_get_retry_tx_rate is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get retry tx rate +int ITc_inm_get_retry_tx_rate_p(void) +{ + START_TEST; + + int nTxRate = -1; + int nRet = INM_ERROR_NONE; + + nRet = inm_get_retry_tx_rate(g_hInm, &nTxRate); + if (!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_get_retry_tx_rate", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_get_retry_tx_rate", InmGetError(nRet)); + if(nTxRate < 0) + { + FPRINTF("[Line : %d][%s] %s failed. TxRate value = %d\\n", __LINE__, API_NAMESPACE, "inm_get_congestion_level", nTxRate); + return 1; + } + + return 0; +} + +/** +* @testcase ITc_inm_set_unset_channel_interference_cb +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Set and unset channel interference callback +* @scenario Channel interference callback is set and then unset +* @apicovered inm_set_channel_interference_cb, inm_unset_channel_interference_cb +* @passcase When inm_set_channel_interference_cb, inm_unset_channel_interference_cb are successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to test setting and unsetting of channel interference callbacks +//& type: auto +int ITc_inm_set_unset_channel_interference_cb_p(void) +{ + START_TEST; + + int nRet = INM_ERROR_NONE; + + nRet = inm_set_channel_interference_cb(g_hInm, InmSetChannelInterferenceCallback, NULL); + if (!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_set_channel_interference_cb", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_set_channel_interference_cb", InmGetError(nRet)); + + nRet = inm_unset_channel_interference_cb(g_hInm); + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_unset_channel_interference_cb", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_get_channel_interference +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Get channel interference +* @scenario Channel interference is gotten +* @apicovered inm_get_channel_interference +* @passcase When inm_get_channel_interference is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get channel interference +//& type: auto +int ITc_inm_get_channel_interference_p(void) +{ + START_TEST; + + double nInterference = -1; + int nRet = INM_ERROR_NONE; + + nRet = inm_get_channel_interference(g_hInm, &nInterference); + if (!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_get_channel_interference", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_get_channel_interference", InmGetError(nRet)); + if(nInterference < 0) + { + FPRINTF("[Line : %d][%s] %s failed. Interference value = %d\\n", __LINE__, API_NAMESPACE, "inm_get_congestion_level", nInterference); + return 1; + } + + return 0; +} + +/** +* @testcase ITc_inm_set_unset_cellular_state_changed_cb +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Set and unset cellular state-changed callback +* @scenario Cellular state-changed callback is set and then unset +* @apicovered inm_set_cellular_state_changed_cb, inm_unset_cellular_state_changed_cb +* @passcase When inm_set_cellular_state_changed_cb, inm_unset_cellular_state_changed_cb are successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to test setting and unsetting of cellular state-changed callbacks +//& type: auto +int ITc_inm_set_unset_cellular_state_changed_cb_p(void) +{ + START_TEST; + + int nRet = INM_ERROR_NONE; + + nRet = inm_set_cellular_state_changed_cb(g_hInm, InmSetCellularStateChangedCallback, NULL); + if (!g_bFeatureTelephony) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_set_cellular_state_changed_cb", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_set_cellular_state_changed_cb", InmGetError(nRet)); + + nRet = inm_unset_cellular_state_changed_cb(g_hInm); + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_unset_cellular_state_changed_cb", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_get_cellular_state +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets cellular state +* @scenario Cellular state is gotten +* @apicovered inm_get_cellular_state +* @passcase When inm_get_cellular_state is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get cellular state +//& type: auto +int ITc_inm_get_cellular_state_p(void) +{ + START_TEST; + + inm_cellular_state_e eCellularState; + + int nRet = inm_get_cellular_state(g_hInm, &eCellularState); + if (!g_bFeatureTelephony) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_get_cellular_state", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_get_cellular_state", InmGetError(nRet)); + if(eCellularState < INM_CELLULAR_STATE_DEACTIVATED || eCellularState > INM_CELLULAR_STATE_CONNECTED) + { + FPRINTF("[Line : %d][%s] %s failed. CellularState value = %d\\n", __LINE__, API_NAMESPACE, "inm_get_cellular_state", eCellularState); + return 1; + } + + return 0; +} + +/** +* @testcase ITc_inm_set_unset_wifi_state_changed_cb +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Set and unset wifi state-changed callback +* @scenario Wifi state-changed callback is set and then unset +* @apicovered inm_set_wifi_state_changed_cb, inm_unset_wifi_state_changed_cb +* @passcase When inm_set_wifi_state_changed_cb, inm_unset_wifi_state_changed_cb are successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to test setting and unsetting of wifi state-changed callbacks +//& type: auto +int ITc_inm_set_unset_wifi_state_changed_cb_p(void) +{ + START_TEST; + + int nRet = INM_ERROR_NONE; + + nRet = inm_set_wifi_state_changed_cb(g_hInm, InmSetWifiStateChangedCallback, NULL); + if (!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_set_wifi_state_changed_cb", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_set_wifi_state_changed_cb", InmGetError(nRet)); + + nRet = inm_unset_wifi_state_changed_cb(g_hInm); + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_unset_wifi_state_changed_cb", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_get_wifi_state +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets wifi state +* @scenario Wifi state is gotten +* @apicovered inm_get_wifi_state +* @passcase When inm_get_wifi_state is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get wifi state +//& type: auto +int ITc_inm_get_wifi_state_p(void) +{ + START_TEST; + + inm_wifi_state_e eWifiState; + int nRet = INM_ERROR_NONE; + + nRet = inm_get_wifi_state(g_hInm, &eWifiState); + if (!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_get_wifi_state", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_get_wifi_state", InmGetError(nRet)); + if(eWifiState < INM_WIFI_STATE_DEACTIVATED || eWifiState > INM_WIFI_STATE_CONNECTED) + { + FPRINTF("[Line : %d][%s] %s failed. WifiState value = %d\\n", __LINE__, API_NAMESPACE, "inm_get_wifi_state", eWifiState); + return 1; + } + + return 0; +} + +/** +* @testcase ITc_inm_set_unset_ethernet_state_changed_cb +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Set and unset ethernet state-changed callback +* @scenario Ethernet state-changed callback is set and then unset +* @apicovered inm_set_ethernet_state_changed_cb, inm_unset_ethernet_state_changed_cb +* @passcase When inm_set_ethernet_state_changed_cb, inm_unset_ethernet_state_changed_cb are successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to test setting and unsetting of ethernet state-changed callbacks +//& type: auto +int ITc_inm_set_unset_ethernet_state_changed_cb_p(void) +{ + START_TEST; + + int nRet = INM_ERROR_NONE; + + nRet = inm_set_ethernet_state_changed_cb(g_hInm, InmSetEthernetStateChangedCallback, NULL); + if (!g_bFeatureEthernet) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_set_ethernet_state_changed_cb", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_set_ethernet_state_changed_cb", InmGetError(nRet)); + + nRet = inm_unset_ethernet_state_changed_cb(g_hInm); + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_unset_ethernet_state_changed_cb", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_get_ethernet_state +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets ethernet state +* @scenario Ethernet state is gotten +* @apicovered inm_get_ethernet_state +* @passcase When inm_get_ethernet_state is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get ethernet state +//& type: auto +int ITc_inm_get_ethernet_state_p(void) +{ + START_TEST; + + inm_ethernet_state_e eEthernetState; + int nRet = INM_ERROR_NONE; + + nRet = inm_get_ethernet_state(g_hInm, &eEthernetState); + if (!g_bFeatureEthernet) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_get_ethernet_state", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_get_ethernet_state", InmGetError(nRet)); + if(eEthernetState < INM_ETHERNET_STATE_DEACTIVATED || eEthernetState > INM_ETHERNET_STATE_CONNECTED) + { + FPRINTF("[Line : %d][%s] %s failed. EthernetState value = %d\\n", __LINE__, API_NAMESPACE, "inm_get_ethernet_state", eEthernetState); + return 1; + } + + return 0; +} + +/** +* @testcase ITc_inm_get_current_connection +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets current connection +* @scenario Current connection is gotten +* @apicovered inm_get_current_connection +* @passcase When inm_get_current_connection is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get current connection +//& type: auto +int ITc_inm_get_current_connection_p(void) +{ + START_TEST; + + inm_connection_h hProfile; + + int nRet = inm_get_current_connection(g_hInm, &hProfile); + if (g_bFeatureAllNotSupported) { + if(hProfile != NULL) + inm_connection_destroy(&hProfile); + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_get_current_connection", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_get_current_connection", InmGetError(nRet)); + CHECK_HANDLE(hProfile, "inm_get_current_connection"); + + nRet = inm_connection_destroy(&hProfile); + PRINT_RESULT_NORETURN(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_connection_clone_destroy +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Clone and destroy connection +* @scenario Connection is cloned and destroyed +* @apicovered inm_connection_clone, inm_connection_destroy +* @passcase When inm_connection_clone, inm_connection_destroy are successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to clone and destroy connections +//& type: auto +int ITc_inm_connection_clone_destroy_p(void) +{ + START_TEST; + + int nRet = INM_ERROR_NONE; + + inm_connection_h hProfileCloned = NULL; + inm_connection_h hProfileOrigin = NULL; + + nRet = InmGetAnyProfile(&hProfileOrigin); + if(nRet == FEATURE_NOT_SUPPORTED) + return 0; + + PRINT_RESULT(nRet, INM_ERROR_NONE, "InmGetAnyProfile", InmGetError(nRet)); + CHECK_HANDLE(hProfileOrigin, "InmGetAnyProfile"); + + nRet = inm_connection_clone(&hProfileCloned, hProfileOrigin); + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_connection_clone", InmGetError(nRet)); + CHECK_HANDLE(hProfileCloned, "inm_connection_clone"); + + nRet = inm_connection_destroy(&hProfileOrigin); + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + nRet = inm_connection_destroy(&hProfileCloned); + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_destroy_connection_iterator +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Destroys connection iterator +* @scenario Connection iterator is destroyed +* @apicovered inm_get_connection_iterator, inm_destroy_connection_iterator +* @passcase When inm_get_connection_iterator, inm_destroy_connection_iterator are successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to destroy connection iterator +//& type: auto +int ITc_inm_get_destroy_connection_iterator_p(void) +{ + START_TEST; + + int nRet = INM_ERROR_NONE; + inm_connection_iterator_h hConnectionIterator = NULL; + + nRet = inm_get_connection_iterator(g_hInm, &hConnectionIterator); + if (g_bFeatureAllNotSupported) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_destroy_connection_iterator", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_get_connection_iterator", InmGetError(nRet)); + CHECK_HANDLE(hConnectionIterator, "inm_get_connection_iterator"); + + nRet = inm_destroy_connection_iterator(hConnectionIterator); + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_destroy_connection_iterator", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_connection_iterator_next +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets next element in connection iterator +* @scenario Next element in connection iterator is gotten +* @apicovered inm_connection_iterator_next +* @passcase When inm_connection_iterator_next are successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get next element in the connection iterator +//& type: auto +int ITc_inm_connection_iterator_next_p(void) +{ + START_TEST; + + int nRet = INM_ERROR_NONE; + inm_connection_iterator_h hConnectionIterator = NULL; + inm_connection_h hProfile = NULL; + + nRet = inm_get_connection_iterator(g_hInm, &hConnectionIterator); + if (g_bFeatureAllNotSupported) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_get_connection_iterator", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_get_connection_iterator", InmGetError(nRet)); + CHECK_HANDLE(hConnectionIterator, "inm_get_connection_iterator"); + + nRet = inm_connection_iterator_next(hConnectionIterator, &hProfile); + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_connection_iterator_next", InmGetError(nRet)); + CHECK_HANDLE(hProfile, "inm_get_connection_iterator"); + + nRet = inm_connection_destroy(&hProfile); + PRINT_RESULT_NORETURN(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_connection_get_id +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets connection ID +* @scenario Connection ID is gotten +* @apicovered inm_connection_get_id +* @passcase When inm_connection_get_id is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get connection id +//& type: auto +int ITc_inm_connection_get_id_p(void) +{ + START_TEST; + + char *pszId = NULL; + int nRet = INM_ERROR_NONE; + inm_connection_h hProfile = NULL; + + nRet = InmGetAnyProfile(&hProfile); + if(nRet == FEATURE_NOT_SUPPORTED) + return 0; + + PRINT_RESULT(nRet, INM_ERROR_NONE, "InmGetAnyProfile", InmGetError(nRet)); + CHECK_HANDLE(hProfile, "InmGetAnyProfile"); + + nRet = inm_connection_get_id(hProfile, &pszId); + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_connection_get_id", InmGetError(nRet)); + CHECK_HANDLE_CLEANUP(pszId, "inm_connection_get_id", FREE_MEMORY_TC(pszId)); + FREE_MEMORY_TC(pszId); + + nRet = inm_connection_destroy(&hProfile); + PRINT_RESULT_NORETURN(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_connection_get_name +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets connection name +* @scenario Connection name is gotten +* @apicovered inm_connection_get_name +* @passcase When inm_connection_get_name is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get connection name +//& type: auto +int ITc_inm_connection_get_name_p(void) +{ + START_TEST; + + int nRet = INM_ERROR_NONE; + char *pszName = NULL; + inm_connection_h hProfile = NULL; + + nRet = InmGetAnyProfile(&hProfile); + if(nRet == FEATURE_NOT_SUPPORTED) + return 0; + + PRINT_RESULT(nRet, INM_ERROR_NONE, "InmGetAnyProfile", InmGetError(nRet)); + CHECK_HANDLE(hProfile, "InmGetAnyProfile"); + + nRet = inm_connection_get_name(hProfile, &pszName); + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_connection_get_name", InmGetError(nRet)); + CHECK_HANDLE_CLEANUP(pszName, "inm_connection_get_name", FREE_MEMORY_TC(pszName)); + FREE_MEMORY_TC(pszName); + + nRet = inm_connection_destroy(&hProfile); + PRINT_RESULT_NORETURN(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_connection_get_type +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets connection type +* @scenario Connection type is gotten +* @apicovered inm_connection_get_type +* @passcase When inm_connection_get_type is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get connection type +//& type: auto +int ITc_inm_connection_get_type_p(void) +{ + START_TEST; + + int nRet = INM_ERROR_NONE; + inm_connection_type_e eConnectionType; + inm_connection_h hProfile = NULL; + + nRet = InmGetAnyProfile(&hProfile); + if(nRet == FEATURE_NOT_SUPPORTED) + return 0; + + PRINT_RESULT(nRet, INM_ERROR_NONE, "InmGetAnyProfile", InmGetError(nRet)); + CHECK_HANDLE(hProfile, "InmGetAnyProfile"); + + nRet = inm_connection_get_type(hProfile, &eConnectionType); + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_connection_get_type", InmGetError(nRet)); + if(eConnectionType < INM_CONNECTION_TYPE_DISCONNECTED || eConnectionType > INM_CONNECTION_TYPE_NET_PROXY) + { + FPRINTF("[Line : %d][%s] %s failed. ConnectionType value = %d\\n", __LINE__, API_NAMESPACE, "inm_connection_get_type", eConnectionType); + if(hProfile != NULL) + { + inm_connection_destroy(&hProfile); + } + return 1; + } + + nRet = inm_connection_destroy(&hProfile); + PRINT_RESULT_NORETURN(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_connection_get_network_interface_name +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets connection Network Interface name +* @scenario Connection Network Interface name is gotten +* @apicovered inm_connection_get_network_interface_name +* @passcase When inm_connection_get_network_interface_name is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get connection network interface name +//& type: auto +int ITc_inm_connection_get_network_interface_name_p(void) +{ + START_TEST; + + int nRet = INM_ERROR_NONE; + char *pszInterfaceName = NULL; + inm_connection_h hProfile = NULL; + + nRet = InmGetAnyProfile(&hProfile); + if(nRet == FEATURE_NOT_SUPPORTED) + return 0; + + PRINT_RESULT(nRet, INM_ERROR_NONE, "InmGetAnyProfile", InmGetError(nRet)); + CHECK_HANDLE(hProfile, "InmGetAnyProfile"); + + nRet = inm_connection_get_network_interface_name(hProfile, &pszInterfaceName); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_connection_get_network_interface_name", InmGetError(nRet), inm_connection_destroy(&hProfile)); + CHECK_HANDLE_CLEANUP(pszInterfaceName, "inm_connection_get_network_interface_name", inm_connection_destroy(&hProfile)); + FREE_MEMORY_TC(pszInterfaceName); + + nRet = inm_connection_destroy(&hProfile); + PRINT_RESULT_NORETURN(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_connection_get_state +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets connection state +* @scenario Connection state is gotten +* @apicovered inm_connection_get_state +* @passcase When inm_connection_get_state is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get connection state +//& type: auto +int ITc_inm_connection_get_state_p(void) +{ + START_TEST; + + inm_connection_state_e eConnectionState; + int nRet = INM_ERROR_NONE; + inm_connection_h hProfile = NULL; + + nRet = InmGetAnyProfile(&hProfile); + if(nRet == FEATURE_NOT_SUPPORTED) + return 0; + + PRINT_RESULT(nRet, INM_ERROR_NONE, "InmGetAnyProfile", InmGetError(nRet)); + CHECK_HANDLE(hProfile, "InmGetAnyProfile"); + + nRet = inm_connection_get_state(hProfile, &eConnectionState); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_connection_get_state", InmGetError(nRet), inm_connection_destroy(&hProfile)); + if(eConnectionState < INM_CONNECTION_STATE_DISCONNECTED || eConnectionState > INM_CONNECTION_STATE_CONNECTED) + { + FPRINTF("[Line : %d][%s] %s failed. ConnectionState value = %d\\n", __LINE__, API_NAMESPACE, "inm_connection_get_state", eConnectionState); + if(hProfile != NULL) + inm_connection_destroy(&hProfile); + return 1; + } + + nRet = inm_connection_destroy(&hProfile); + PRINT_RESULT_NORETURN(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_connection_get_ipv6_state +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Get ipv6 state +* @scenario Connection ipv6 state is gotten +* @apicovered inm_connection_get_ipv6_state +* @passcase When inm_connection_get_ipv6_state is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get connection ipv6 state +//& type: auto +int ITc_inm_connection_get_ipv6_state_p(void) +{ + START_TEST; + + inm_connection_state_e eConnectionState; + int nRet = INM_ERROR_NONE; + inm_connection_h hProfile = NULL; + + nRet = InmGetAnyProfile(&hProfile); + if(nRet == FEATURE_NOT_SUPPORTED) + return 0; + + PRINT_RESULT(nRet, INM_ERROR_NONE, "InmGetAnyProfile", InmGetError(nRet)); + CHECK_HANDLE(hProfile, "InmGetAnyProfile"); + + nRet = inm_connection_get_ipv6_state(hProfile, &eConnectionState); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_connection_get_ipv6_state", InmGetError(nRet), inm_connection_destroy(&hProfile)); + if(eConnectionState < INM_CONNECTION_STATE_DISCONNECTED || eConnectionState > INM_CONNECTION_STATE_CONNECTED) + { + FPRINTF("[Line : %d][%s] %s failed. ConnectionState value = %d\\n", __LINE__, API_NAMESPACE, "inm_connection_get_ipv6_state", eConnectionState); + if(hProfile != NULL) + inm_connection_destroy(&hProfile); + return 1; + } + + nRet = inm_connection_destroy(&hProfile); + PRINT_RESULT_NORETURN(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_connection_get_ip_config_type +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Get ip config type +* @scenario Connection IP config type is gotten +* @apicovered inm_connection_get_ip_config_type +* @passcase When inm_connection_get_ip_config_type is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get ip config type +//& type: auto +int ITc_inm_connection_get_ip_config_type_p(void) +{ + START_TEST; + + inm_ip_config_type_e eIpConfType; + int nRet = INM_ERROR_NONE; + inm_connection_h hProfile = NULL; + + nRet = InmGetAnyProfile(&hProfile); + if(nRet == FEATURE_NOT_SUPPORTED) + return 0; + + PRINT_RESULT(nRet, INM_ERROR_NONE, "InmGetAnyProfile", InmGetError(nRet)); + CHECK_HANDLE(hProfile, "InmGetAnyProfile"); + + nRet = inm_connection_get_ip_config_type(hProfile, INM_ADDRESS_FAMILY_IPV4, &eIpConfType); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_connection_get_ip_config_type", InmGetError(nRet),inm_connection_destroy(&hProfile)); + if(eIpConfType < INM_IP_CONFIG_TYPE_NONE || eIpConfType > INM_IP_CONFIG_TYPE_FIXED) + { + FPRINTF("[Line : %d][%s] %s failed. IpConfType value = %d\\n", __LINE__, API_NAMESPACE, "inm_connection_get_ip_config_type", eIpConfType); + if(hProfile != NULL) + inm_connection_destroy(&hProfile); + return 1; + } + + nRet = inm_connection_get_ip_config_type(hProfile, INM_ADDRESS_FAMILY_IPV6, &eIpConfType); + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_connection_get_ip_config_type", InmGetError(nRet)); + if(eIpConfType < INM_IP_CONFIG_TYPE_NONE || eIpConfType > INM_IP_CONFIG_TYPE_FIXED) + { + FPRINTF("[Line : %d][%s] %s failed. IpConfType value = %d\\n", __LINE__, API_NAMESPACE, "inm_connection_get_ip_config_type", eIpConfType); + if(hProfile != NULL) + inm_connection_destroy(&hProfile); + return 1; + } + + nRet = inm_connection_destroy(&hProfile); + PRINT_RESULT_NORETURN(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_connection_get_ip_address +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets IP address +* @scenario Connection IP address is gotten +* @apicovered inm_connection_get_ip_address +* @passcase When inm_connection_get_ip_address is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get connection ip address +//& type: auto +int ITc_inm_connection_get_ip_address_p(void) +{ + START_TEST; + + char *pszIpAddr = NULL; + int nRet = INM_ERROR_NONE; + inm_connection_h hProfile = NULL; + + nRet = InmGetAnyProfile(&hProfile); + if(nRet == FEATURE_NOT_SUPPORTED) + return 0; + + PRINT_RESULT(nRet, INM_ERROR_NONE, "InmGetAnyProfile", InmGetError(nRet)); + CHECK_HANDLE(hProfile, "InmGetAnyProfile"); + + nRet = inm_connection_get_ip_address(hProfile, INM_ADDRESS_FAMILY_IPV4, &pszIpAddr); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_connection_get_ip_address", InmGetError(nRet), inm_connection_destroy(&hProfile)); + CHECK_HANDLE_CLEANUP(pszIpAddr, "inm_connection_get_ip_address", inm_connection_destroy(&hProfile)); + FREE_MEMORY_TC(pszIpAddr); + + nRet = inm_connection_get_ip_address(hProfile, INM_ADDRESS_FAMILY_IPV6, &pszIpAddr); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_connection_get_ip_address", InmGetError(nRet),inm_connection_destroy(&hProfile)); + CHECK_HANDLE_CLEANUP(pszIpAddr, "inm_connection_get_ip_address", inm_connection_destroy(&hProfile)); + FREE_MEMORY_TC(pszIpAddr); + + nRet = inm_connection_destroy(&hProfile); + PRINT_RESULT_NORETURN(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_connection_get_subnet_mask +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets subnet mask +* @scenario Connection subnet mask is gotten +* @apicovered inm_connection_get_subnet_mask +* @passcase When inm_connection_get_subnet_mask is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get connection subnet mask +//& type: auto +int ITc_inm_connection_get_subnet_mask_p(void) +{ + START_TEST; + + char *pszIpAddr = NULL; + int nRet = INM_ERROR_NONE; + inm_connection_h hProfile = NULL; + + nRet = InmGetAnyProfile(&hProfile); + if(nRet == FEATURE_NOT_SUPPORTED) + return 0; + + PRINT_RESULT(nRet, INM_ERROR_NONE, "InmGetAnyProfile", InmGetError(nRet)); + CHECK_HANDLE(hProfile, "InmGetAnyProfile"); + + nRet = inm_connection_get_subnet_mask(hProfile, INM_ADDRESS_FAMILY_IPV4, &pszIpAddr); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_connection_get_subnet_mask", InmGetError(nRet), inm_connection_destroy(&hProfile)); + CHECK_HANDLE_CLEANUP(pszIpAddr, "inm_connection_get_subnet_mask", inm_connection_destroy(&hProfile)); + FREE_MEMORY_TC(pszIpAddr); + + nRet = inm_connection_destroy(&hProfile); + PRINT_RESULT_NORETURN(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_connection_get_gateway_address +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Get gateway address +* @scenario Gateway address is gotten +* @apicovered inm_connection_get_gateway_address +* @passcase When inm_connection_get_gateway_address is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get gateway address +//& type: auto +int ITc_inm_connection_get_gateway_address_p(void) +{ + START_TEST; + + char *pszIpAddr = NULL; + int nRet = INM_ERROR_NONE; + inm_connection_h hProfile = NULL; + + nRet = InmGetAnyProfile(&hProfile); + if(nRet == FEATURE_NOT_SUPPORTED) + return 0; + + PRINT_RESULT(nRet, INM_ERROR_NONE, "InmGetAnyProfile", InmGetError(nRet)); + CHECK_HANDLE(hProfile, "InmGetAnyProfile"); + + nRet = inm_connection_get_gateway_address(hProfile, INM_ADDRESS_FAMILY_IPV4, &pszIpAddr); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_connection_get_gateway_address", InmGetError(nRet), inm_connection_destroy(&hProfile)); + CHECK_HANDLE_CLEANUP(pszIpAddr, "inm_connection_get_gateway_address", inm_connection_destroy(&hProfile)); + FREE_MEMORY_TC(pszIpAddr); + + nRet = inm_connection_get_gateway_address(hProfile, INM_ADDRESS_FAMILY_IPV6, &pszIpAddr); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_connection_get_gateway_address", InmGetError(nRet), inm_connection_destroy(&hProfile)); + CHECK_HANDLE_CLEANUP(pszIpAddr, "inm_connection_get_gateway_address", inm_connection_destroy(&hProfile)); + FREE_MEMORY_TC(pszIpAddr); + + nRet = inm_connection_destroy(&hProfile); + PRINT_RESULT_NORETURN(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_connection_get_dhcp_server_address +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets DHCP server address +* @scenario Connection DHCP server address is gotten +* @apicovered inm_connection_get_dhcp_server_address +* @passcase When inm_connection_get_dhcp_server_address is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to Connection DHCP server address +//& type: auto +int ITc_inm_connection_get_dhcp_server_address_p(void) +{ + START_TEST; + + char *pszIpAddr = NULL; + int nRet = INM_ERROR_NONE; + inm_connection_h hProfile = NULL; + + nRet = InmGetAnyProfile(&hProfile); + if(nRet == FEATURE_NOT_SUPPORTED) + return 0; + + PRINT_RESULT(nRet, INM_ERROR_NONE, "InmGetAnyProfile", InmGetError(nRet)); + CHECK_HANDLE(hProfile, "InmGetAnyProfile"); + + nRet = inm_connection_get_dhcp_server_address(hProfile, INM_ADDRESS_FAMILY_IPV4, &pszIpAddr); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_connection_get_dhcp_server_address", InmGetError(nRet), inm_connection_destroy(&hProfile)); + CHECK_HANDLE_CLEANUP(pszIpAddr, "inm_connection_get_dhcp_server_address", inm_connection_destroy(&hProfile)); + FREE_MEMORY_TC(pszIpAddr); + + nRet = inm_connection_destroy(&hProfile); + PRINT_RESULT_NORETURN(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_connection_get_dhcp_lease_duration +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets DHCP lease duration +* @scenario Connection DHCP lease duration is gotten +* @apicovered inm_connection_get_dhcp_lease_duration +* @passcase When inm_connection_get_dhcp_lease_duration are successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get connection DHCP lease duration +//& type: auto +int ITc_inm_connection_get_dhcp_lease_duration_p(void) +{ + START_TEST; + + int nDhcpLeaseDuration = -1; + int nRet = INM_ERROR_NONE; + inm_connection_h hProfile = NULL; + + nRet = InmGetAnyProfile(&hProfile); + if(nRet == FEATURE_NOT_SUPPORTED) + return 0; + + PRINT_RESULT(nRet, INM_ERROR_NONE, "InmGetAnyProfile", InmGetError(nRet)); + CHECK_HANDLE(hProfile, "InmGetAnyProfile"); + + nRet = inm_connection_get_dhcp_lease_duration(hProfile, INM_ADDRESS_FAMILY_IPV4, &nDhcpLeaseDuration); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_connection_get_dhcp_lease_duration", InmGetError(nRet), inm_connection_destroy(&hProfile)); + if(nDhcpLeaseDuration < 0) + { + FPRINTF("[Line : %d][%s] %s failed. DHCP Lease Duration obtained = %d\\n", __LINE__, API_NAMESPACE, "inm_connection_get_proxy_type", nDhcpLeaseDuration); + if(hProfile != NULL) + inm_connection_destroy(&hProfile); + return 1; + } + + nRet = inm_connection_destroy(&hProfile); + PRINT_RESULT_NORETURN(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_connection_get_dns_address +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets DNS address +* @scenario Connection DNS address is gotten +* @apicovered inm_connection_get_dns_address +* @passcase When inm_connection_get_dns_address is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get DNS address +//& type: auto +int ITc_inm_connection_get_dns_address_p(void) +{ + START_TEST; + + char *pszIpAddr = NULL; + int nRet = INM_ERROR_NONE; + inm_connection_h hProfile = NULL; + + nRet = InmGetAnyProfile(&hProfile); + if(nRet == FEATURE_NOT_SUPPORTED) + return 0; + + PRINT_RESULT(nRet, INM_ERROR_NONE, "InmGetAnyProfile", InmGetError(nRet)); + CHECK_HANDLE(hProfile, "InmGetAnyProfile"); + + nRet = inm_connection_get_dns_address(hProfile, 1, INM_ADDRESS_FAMILY_IPV4, &pszIpAddr); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_connection_get_dns_address", InmGetError(nRet), inm_connection_destroy(&hProfile)); + CHECK_HANDLE_CLEANUP(pszIpAddr, "inm_connection_get_dns_address", FREE_MEMORY_TC(pszIpAddr)); + FREE_MEMORY_TC(pszIpAddr); + + nRet = inm_connection_get_dns_address(hProfile, 2, INM_ADDRESS_FAMILY_IPV6, &pszIpAddr); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_connection_get_dns_address", InmGetError(nRet), inm_connection_destroy(&hProfile)); + CHECK_HANDLE_CLEANUP(pszIpAddr, "inm_connection_get_dns_address", inm_connection_destroy(&hProfile)); + FREE_MEMORY_TC(pszIpAddr); + + nRet = inm_connection_destroy(&hProfile); + PRINT_RESULT_NORETURN(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_connection_get_proxy_type +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets proxy type +* @scenario Connection proxy type is gotten +* @apicovered inm_connection_get_proxy_type +* @passcase When inm_connection_get_proxy_type is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get proxy type +//& type: auto +int ITc_inm_connection_get_proxy_type_p(void) +{ + START_TEST; + + inm_proxy_type_e eProxyType; + int nRet = INM_ERROR_NONE; + inm_connection_h hProfile = NULL; + + nRet = InmGetAnyProfile(&hProfile); + if(nRet == FEATURE_NOT_SUPPORTED) + return 0; + + PRINT_RESULT(nRet, INM_ERROR_NONE, "InmGetAnyProfile", InmGetError(nRet)); + CHECK_HANDLE(hProfile, "InmGetAnyProfile"); + + nRet = inm_connection_get_proxy_type(hProfile, &eProxyType); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_connection_get_proxy_type", InmGetError(nRet), inm_connection_destroy(&hProfile)); + if(eProxyType < INM_PROXY_TYPE_DIRECT || eProxyType > INM_PROXY_TYPE_MANUAL) + { + FPRINTF("[Line : %d][%s] %s failed. ProxyType value = %d\\n", __LINE__, API_NAMESPACE, "inm_connection_get_proxy_type", eProxyType); + if(hProfile != NULL) + inm_connection_destroy(&hProfile); + return 1; + } + + nRet = inm_connection_destroy(&hProfile); + PRINT_RESULT_NORETURN(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_connection_get_proxy_address +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets proxy address +* @scenario Connection proxy address is gotten +* @apicovered inm_connection_get_proxy_address +* @passcase When inm_connection_get_proxy_address is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to connection proxy address +//& type: auto +int ITc_inm_connection_get_proxy_address_p(void) +{ + START_TEST; + + char *pszIpAddr = NULL; + int nRet = INM_ERROR_NONE; + inm_connection_h hProfile = NULL; + + nRet = InmGetAnyProfile(&hProfile); + if(nRet == FEATURE_NOT_SUPPORTED) + return 0; + + PRINT_RESULT(nRet, INM_ERROR_NONE, "InmGetAnyProfile", InmGetError(nRet)); + CHECK_HANDLE(hProfile, "InmGetAnyProfile"); + + nRet = inm_connection_get_proxy_address(hProfile, INM_ADDRESS_FAMILY_IPV4, &pszIpAddr); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_connection_get_proxy_address", InmGetError(nRet), inm_connection_destroy(&hProfile)); + CHECK_HANDLE_CLEANUP(pszIpAddr, "inm_connection_get_proxy_address", inm_connection_destroy(&hProfile)); + FREE_MEMORY_TC(pszIpAddr); + + nRet = inm_connection_get_proxy_address(hProfile, INM_ADDRESS_FAMILY_IPV6, &pszIpAddr); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_connection_get_proxy_address", InmGetError(nRet), inm_connection_destroy(&hProfile)); + CHECK_HANDLE_CLEANUP(pszIpAddr, "inm_connection_get_proxy_address", inm_connection_destroy(&hProfile)); + FREE_MEMORY_TC(pszIpAddr); + + nRet = inm_connection_destroy(&hProfile); + PRINT_RESULT_NORETURN(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_connection_get_dns_config_type +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets DNS config type +* @scenario Connection DNS config type is gotten +* @apicovered inm_connection_get_dns_config_type +* @passcase When inm_connection_get_dns_config_type is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get DNS config type +//& type: auto +int ITc_inm_connection_get_dns_config_type_p(void) +{ + START_TEST; + + inm_dns_config_type_e eDnsConfType; + int nRet = INM_ERROR_NONE; + inm_connection_h hProfile = NULL; + + nRet = InmGetAnyProfile(&hProfile); + if(nRet == FEATURE_NOT_SUPPORTED) + return 0; + + PRINT_RESULT(nRet, INM_ERROR_NONE, "InmGetAnyProfile", InmGetError(nRet)); + CHECK_HANDLE(hProfile, "InmGetAnyProfile"); + + nRet = inm_connection_get_dns_config_type(hProfile, INM_ADDRESS_FAMILY_IPV4, &eDnsConfType); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_connection_get_dns_config_type", InmGetError(nRet), inm_connection_destroy(&hProfile)); + if(eDnsConfType < INM_DNS_CONFIG_TYPE_NONE || eDnsConfType > INM_DNS_CONFIG_TYPE_DYNAMIC) + { + FPRINTF("[Line : %d][%s] %s failed. DnsConfType value = %d\\n", __LINE__, API_NAMESPACE, "inm_connection_get_dns_config_type", eDnsConfType); + if(hProfile != NULL) + inm_connection_destroy(&hProfile); + return 1; + } + + nRet = inm_connection_get_dns_config_type(hProfile, INM_ADDRESS_FAMILY_IPV6, &eDnsConfType); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_connection_get_dns_config_type", InmGetError(nRet), inm_connection_destroy(&hProfile)); + if(eDnsConfType < INM_DNS_CONFIG_TYPE_NONE || eDnsConfType > INM_DNS_CONFIG_TYPE_DYNAMIC) + { + FPRINTF("[Line : %d][%s] %s failed. DnsConfType value = %d\\n", __LINE__, API_NAMESPACE, "inm_connection_get_dns_config_type", eDnsConfType); + if(hProfile != NULL) + inm_connection_destroy(&hProfile); + return 1; + } + + nRet = inm_connection_destroy(&hProfile); + PRINT_RESULT_NORETURN(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_connection_get_prefix_length +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets connection prefix length +* @scenario Connection prefix length is gotten +* @apicovered inm_connection_get_prefix_length +* @passcase When inm_connection_get_prefix_length is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get connection prefix length +//& type: auto +int ITc_inm_connection_get_prefix_length_p(void) +{ + START_TEST; + + int nLength=0; + int nRet = INM_ERROR_NONE; + inm_connection_h hProfile = NULL; + + nRet = InmGetAnyProfile(&hProfile); + if(nRet == FEATURE_NOT_SUPPORTED) + return 0; + + PRINT_RESULT(nRet, INM_ERROR_NONE, "InmGetAnyProfile", InmGetError(nRet)); + CHECK_HANDLE(hProfile, "InmGetAnyProfile"); + + nRet = inm_get_current_connection(g_hInm, &hProfile); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_get_current_connection", InmGetError(nRet), inm_connection_destroy(&hProfile)); + CHECK_HANDLE_CLEANUP(hProfile, "inm_get_current_connection", inm_connection_destroy(&hProfile)); + + nRet = inm_connection_get_prefix_length(hProfile, INM_ADDRESS_FAMILY_IPV6, &nLength); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_get_current_connection", InmGetError(nRet), inm_connection_destroy(&hProfile)); + CHECK_HANDLE_CLEANUP(hProfile, "inm_get_current_connection", inm_connection_destroy(&hProfile)); + if(nLength<0) + { + FPRINTF("[Line : %d][%s] %s failed. Length = %d\\n", __LINE__, API_NAMESPACE, "inm_connection_get_prefix_length", nLength); + if(hProfile != NULL) + inm_connection_destroy(&hProfile); + return 1; + } + + nRet = inm_connection_destroy(&hProfile); + PRINT_RESULT_NORETURN(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_connection_refresh +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Refreshes connection +* @scenario Connection is refreshed +* @apicovered inm_connection_refresh +* @passcase When inm_connection_refresh are successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to refresh connection +//& type: auto +int ITc_inm_connection_refresh_p(void) +{ + START_TEST; + + int nRet = INM_ERROR_NONE; + inm_connection_h hProfile = NULL; + + nRet = InmGetAnyProfile(&hProfile); + if(nRet == FEATURE_NOT_SUPPORTED) + return 0; + + PRINT_RESULT(nRet, INM_ERROR_NONE, "InmGetAnyProfile", InmGetError(nRet)); + CHECK_HANDLE(hProfile, "InmGetAnyProfile"); + + nRet = inm_connection_refresh(hProfile); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_connection_refresh", InmGetError(nRet), inm_connection_destroy(&hProfile)); + + nRet = inm_connection_destroy(&hProfile); + PRINT_RESULT_NORETURN(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_connection_set_unset_state_changed_cb +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Set and unset state-changed callback +* @scenario State-changed callback is set and then unset +* @apicovered inm_connection_set_state_changed_cb, inm_connection_unset_state_changed_cb +* @passcase When inm_connection_set_state_changed_cb, inm_connection_unset_state_changed_cb are successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to test setting and unsetting of state-changed callbacks +//& type: auto +int ITc_inm_connection_set_unset_state_changed_cb_p(void) +{ + START_TEST; + + int nRet = INM_ERROR_NONE; + inm_connection_h hProfile = NULL; + + nRet = InmGetAnyProfile(&hProfile); + if(nRet == FEATURE_NOT_SUPPORTED) + return 0; + + PRINT_RESULT(nRet, INM_ERROR_NONE, "InmGetAnyProfile", InmGetError(nRet)); + CHECK_HANDLE(hProfile, "InmGetAnyProfile"); + + nRet = inm_connection_set_state_changed_cb(hProfile, InmConnectionStateChangedCallback, NULL); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_connection_set_state_changed_cb", InmGetError(nRet), inm_connection_destroy(&hProfile)); + + nRet = inm_connection_unset_state_changed_cb(hProfile); + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_connection_unset_state_changed_cb", InmGetError(nRet), inm_connection_destroy(&hProfile)); + + nRet = inm_connection_destroy(&hProfile); + PRINT_RESULT_NORETURN(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_wifi_set_unset_scan_state_changed_cb +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Set and unset scan state-changed callback +* @scenario Scan state-changed callback is set and then unset +* @apicovered inm_wifi_set_scan_state_changed_cb, inm_wifi_unset_scan_state_changed_cb +* @passcase When inm_wifi_set_scan_state_changed_cb, inm_wifi_unset_scan_state_changed_cb are successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to test setting and unsetting of scan state-changed callbacks +//& type: auto +int ITc_inm_wifi_set_unset_scan_state_changed_cb_p(void) +{ + START_TEST; + + int nRet = INM_ERROR_NONE; + + nRet = inm_wifi_set_scan_state_changed_cb(g_hInm, InmWifiScanStateChangedCallback, NULL); + if (!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_wifi_set_scan_state_changed_cb", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_wifi_set_scan_state_changed_cb", InmGetError(nRet)); + + nRet = inm_wifi_unset_scan_state_changed_cb(g_hInm); + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_wifi_unset_scan_state_changed_cb", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_wifi_get_scan_state +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets the scan state +* @scenario Connection scan state is gotten +* @apicovered inm_wifi_get_scan_state +* @passcase When inm_wifi_get_scan_state is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get connection scan state +//& type: auto +int ITc_inm_wifi_get_scan_state_p(void) +{ + START_TEST; + + inm_wifi_scan_state_e eScanState; + int nRet = INM_ERROR_NONE; + + nRet = inm_wifi_get_scan_state(g_hInm, &eScanState); + if (!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_wifi_get_scan_state", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_wifi_get_scan_state", InmGetError(nRet)); + if(eScanState < INM_WIFI_SCAN_STATE_NOT_SCANNING || eScanState > INM_WIFI_SCAN_STATE_SCANNING) + { + FPRINTF("[Line : %d][%s] %s failed. ScanState value = %d\\n", __LINE__, API_NAMESPACE, "inm_wifi_get_scan_state", eScanState); + return 1; + } + + return 0; +} + +/** +* @testcase ITc_inm_wifi_get_connected_ap +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets connected wifi ap +* @scenario Connected wifi ap is gotten +* @apicovered inm_wifi_get_connected_ap +* @passcase When inm_wifi_get_connected_ap are successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get connected wifi ap +//& type: auto +int ITc_inm_wifi_get_connected_ap_p(void) +{ + START_TEST; + + inm_connection_h hAP = NULL; + int nRet = INM_ERROR_NONE; + + nRet = inm_wifi_get_connected_ap(g_hInm, &hAP); + if (!g_bFeatureWifi) { + if(hAP != NULL) + inm_connection_destroy(&hAP); + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_wifi_get_connected_ap", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_wifi_get_connected_ap", InmGetError(nRet)); + CHECK_HANDLE(hAP, "inm_wifi_get_connected_ap"); + + nRet = inm_connection_destroy(&hAP); + PRINT_RESULT_NORETURN(nRet, INM_ERROR_NONE, "inm_connection_destroy", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_wifi_foreach_found_ap +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Finds ap for each wifi connection +* @scenario AP for each wifi connection is gotten +* @apicovered inm_wifi_foreach_found_ap +* @passcase When inm_wifi_foreach_found_ap is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get ap for each wifi connection +//& type: auto +int ITc_inm_wifi_foreach_found_ap_p(void) +{ + START_TEST; + + int nRet = INM_ERROR_NONE; + + nRet = inm_wifi_foreach_found_ap(g_hInm, InmForeachFoundApCallback, NULL); + if (!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_wifi_foreach_found_ap", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_wifi_foreach_found_ap", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_wifi_ap_get_essid +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets essid for wifi ap +* @scenario Essid for wifi ap is gotten +* @apicovered inm_wifi_ap_get_essid +* @passcase When inm_wifi_ap_get_essid is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get essid for wifi ap +//& type: auto +int ITc_inm_wifi_ap_get_essid_p(void) +{ + START_TEST; + + char *pszEssid = NULL; + int nRet = INM_ERROR_NONE; + + nRet = inm_wifi_ap_get_essid(g_hConnection, &pszEssid); + if (!g_bFeatureWifi) { + FREE_MEMORY_TC(pszEssid); + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_wifi_ap_get_essid", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_wifi_ap_get_essid", InmGetError(nRet)); + CHECK_HANDLE(pszEssid, "inm_wifi_ap_get_essid"); + + FREE_MEMORY_TC(pszEssid); + return 0; +} + +/** +* @testcase ITc_inm_wifi_ap_get_raw_ssid +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets raw ssid for wifi ap +* @scenario Raw SSID for wifi ap is gotten +* @apicovered inm_wifi_ap_get_raw_ssid +* @passcase When inm_wifi_ap_get_raw_ssid is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get raw ssid for wifi ap +//& type: auto +int ITc_inm_wifi_ap_get_raw_ssid_p(void) +{ + START_TEST; + + char *pszRawSsid = NULL; + int nRawSsidLen; + int nRet = INM_ERROR_NONE; + + nRet = inm_wifi_ap_get_raw_ssid(g_hConnection, &pszRawSsid, &nRawSsidLen); + if (!g_bFeatureWifi) { + FREE_MEMORY_TC(pszRawSsid); + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_wifi_ap_get_raw_ssid", InmGetError(nRet)); + return 0; + } + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_wifi_ap_get_raw_ssid", InmGetError(nRet), FREE_MEMORY_TC(pszRawSsid)); + CHECK_HANDLE_CLEANUP(pszRawSsid, "inm_wifi_ap_get_raw_ssid", FREE_MEMORY_TC(pszRawSsid)); + FREE_MEMORY_TC(pszRawSsid); + + if(nRawSsidLen < 0) + { + FPRINTF("[Line : %d][%s] %s failed. RawSsid Length = %d\\n", __LINE__, API_NAMESPACE, "inm_wifi_ap_get_raw_ssid", nRawSsidLen); + return 1; + } + + return 0; +} + +/** +* @testcase ITc_inm_wifi_ap_get_bssid +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets bssid for wifi ap +* @scenario BSSID for wifi ap is gotten +* @apicovered inm_wifi_ap_get_bssid +* @passcase When inm_wifi_ap_get_bssid is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get bssid for wifi ap +//& type: auto +int ITc_inm_wifi_ap_get_bssid_p(void) +{ + START_TEST; + + char *pszBssid = NULL; + int nRet = INM_ERROR_NONE; + + nRet = inm_wifi_ap_get_bssid(g_hConnection, &pszBssid); + if (!g_bFeatureWifi) { + FREE_MEMORY_TC(pszBssid); + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_wifi_ap_get_bssid", InmGetError(nRet)); + return 0; + } + PRINT_RESULT_CLEANUP(nRet, INM_ERROR_NONE, "inm_wifi_ap_get_bssid", InmGetError(nRet), FREE_MEMORY_TC(pszBssid)); + CHECK_HANDLE_CLEANUP(pszBssid, "inm_wifi_ap_get_bssid", FREE_MEMORY_TC(pszBssid)); + + FREE_MEMORY_TC(pszBssid); + + return 0; +} + +/** +* @testcase ITc_inm_wifi_ap_get_rssi +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets RSSI for wifi ap +* @scenario RSSI for wifi ap is gotten +* @apicovered inm_wifi_ap_get_rssi +* @passcase When inm_wifi_ap_get_rssi is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get RSSI for wifi ap +//& type: auto +int ITc_inm_wifi_ap_get_rssi_p(void) +{ + START_TEST; + + int nRssi = 1; + int nRet = INM_ERROR_NONE; + + nRet = inm_wifi_ap_get_rssi(g_hConnection, &nRssi); + if (!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_wifi_ap_get_rssi", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_wifi_ap_get_rssi", InmGetError(nRet)); + if(nRssi >= 0) + { + FPRINTF("[Line : %d][%s] %s failed. Rssi Length = %d\\n", __LINE__, API_NAMESPACE, "inm_wifi_ap_get_raw_ssid", nRssi); + return 1; + } + + return 0; +} + +/** +* @testcase ITc_inm_wifi_ap_get_rssi_level +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Get RSSI level for wifi ap +* @scenario RSSI level for wifi ap is gotten +* @apicovered inm_wifi_ap_get_rssi_level +* @passcase When inm_wifi_ap_get_rssi_level is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get RSSI level for wifi ap +//& type: auto +int ITc_inm_wifi_ap_get_rssi_level_p(void) +{ + START_TEST; + + int nRet = INM_ERROR_NONE; + inm_wifi_rssi_level_e eRssiLevel; + + nRet = inm_wifi_ap_get_rssi_level(g_hConnection, &eRssiLevel); + if (!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_wifi_ap_get_rssi_level", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_wifi_ap_get_rssi_level", InmGetError(nRet)); + if(eRssiLevel < INM_WIFI_RSSI_LEVEL_0 || eRssiLevel > INM_WIFI_RSSI_LEVEL_4) + { + FPRINTF("[Line : %d][%s] %s failed. Rssi Level = %d\\n", __LINE__, API_NAMESPACE, "inm_wifi_ap_get_rssi_level", eRssiLevel); + return 1; + } + + return 0; +} + +/** +* @testcase ITc_inm_wifi_ap_get_frequency +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets frequency of wifi ap +* @scenario Frequency of wifi ap is gotten +* @apicovered inm_set_ethernet_cable_state_changed_cb, inm_unset_ethernet_cable_state_changed_cb +* @passcase When inm_set_ethernet_cable_state_changed_cb, inm_unset_ethernet_cable_state_changed_cb are successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get frequency of wifi ap +//& type: auto +int ITc_inm_wifi_ap_get_frequency_p(void) +{ + START_TEST; + + int nFrequency = -1; + int nRet = INM_ERROR_NONE; + + nRet = inm_wifi_ap_get_frequency(g_hConnection, &nFrequency); + if (!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_wifi_ap_get_frequency", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_wifi_ap_get_frequency", InmGetError(nRet)); + + if(nFrequency < 0) + { + FPRINTF("[Line : %d][%s] %s failed. Frequency = %d\\n", __LINE__, API_NAMESPACE, "inm_wifi_ap_get_frequency", nFrequency); + return 1; + } + + return 0; +} + +/** +* @testcase ITc_inm_wifi_ap_get_max_speed +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets max speed for wifi ap +* @scenario Max speed for wifi ap is gotten +* @apicovered inm_wifi_ap_get_max_speed +* @passcase When inm_wifi_ap_get_max_speed is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get max speed for wifi sp +//& type: auto +int ITc_inm_wifi_ap_get_max_speed_p(void) +{ + START_TEST; + + int nSpeed = -1; + int nRet = INM_ERROR_NONE; + + nRet = inm_wifi_ap_get_max_speed(g_hConnection, &nSpeed); + if (!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_wifi_ap_get_max_speed", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_wifi_ap_get_max_speed", InmGetError(nRet)); + + if(nSpeed < 0) + { + FPRINTF("[Line : %d][%s] %s failed. Speed = %d\\n", __LINE__, API_NAMESPACE, "inm_wifi_ap_get_max_speed", nSpeed); + return 1; + } + + return 0; +} + +/** +* @testcase ITc_inm_wifi_ap_is_favorite +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Checks whether wifi ap is favourite or not +* @scenario Wifi ap is checked for favourites +* @apicovered inm_wifi_ap_is_favorite +* @passcase When inm_wifi_ap_is_favorite is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to check if wifi ap is favourite or not +//& type: auto +int ITc_inm_wifi_ap_is_favorite_p(void) +{ + START_TEST; + + bool bFavorite = false; + int nRet = INM_ERROR_NONE; + + nRet = inm_wifi_ap_is_favorite(g_hConnection, &bFavorite); + if (!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_wifi_ap_is_favorite", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_wifi_ap_is_favorite", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_wifi_ap_is_passpoint +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Checks whether wifi ap is passpoint or not +* @scenario Wifi ap is checked for passpoint +* @apicovered inm_wifi_ap_is_passpoint +* @passcase When inm_wifi_ap_is_passpoint is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to check whether wifi ap is a passpoint or not +//& type: auto +int ITc_inm_wifi_ap_is_passpoint_p(void) +{ + START_TEST; + + bool bPasspoint = false; + int nRet = INM_ERROR_NONE; + + nRet = inm_wifi_ap_is_passpoint(g_hConnection, &bPasspoint); + if (!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_wifi_ap_is_passpoint", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_wifi_ap_is_passpoint", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_wifi_ap_get_security_type +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets security type for wifi ap +* @scenario Security type for wifi ap is gotten +* @apicovered inm_wifi_ap_get_security_type +* @passcase When inm_wifi_ap_get_security_type are successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get security type of wifi ap +//& type: auto +int ITc_inm_wifi_ap_get_security_type_p(void) +{ + START_TEST; + + inm_wifi_security_type_e eWifiSecurityType; + int nRet = INM_ERROR_NONE; + + nRet = inm_wifi_ap_get_security_type(g_hConnection, &eWifiSecurityType); + if (!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_wifi_ap_get_security_type", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_wifi_ap_get_security_type", InmGetError(nRet)); + if(eWifiSecurityType < INM_WIFI_SECURITY_TYPE_NONE || eWifiSecurityType > INM_WIFI_SECURITY_TYPE_FT_PSK) + { + FPRINTF("[Line : %d][%s] %s failed. WifiSecurityType value = %d\\n", __LINE__, API_NAMESPACE, "inm_wifi_ap_get_rssi_level", eWifiSecurityType); + return 1; + } + + return 0; +} + +/** +* @testcase ITc_inm_wifi_ap_get_encryption_type +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets encryption type for wifi ap +* @scenario Encryption type for wifi ap is gotten +* @apicovered inm_wifi_ap_get_encryption_type +* @passcase When inm_wifi_ap_get_encryption_type is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get encryption type of wifi ap +//& type: auto +int ITc_inm_wifi_ap_get_encryption_type_p(void) +{ + START_TEST; + + inm_wifi_encryption_type_e eWifiEncryptionType; + int nRet = INM_ERROR_NONE; + + nRet = inm_wifi_ap_get_encryption_type(g_hConnection, &eWifiEncryptionType); + if (!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_wifi_ap_get_encryption_type", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_wifi_ap_get_encryption_type", InmGetError(nRet)); + if(eWifiEncryptionType < INM_WIFI_ENCRYPTION_TYPE_NONE || eWifiEncryptionType > INM_WIFI_ENCRYPTION_TYPE_TKIP_AES_MIXED) + { + FPRINTF("[Line : %d][%s] %s failed. WifiEncryptionType value = %d\\n", __LINE__, API_NAMESPACE, "inm_wifi_ap_get_rssi_level", eWifiEncryptionType); + return 1; + } + + return 0; +} + +/** +* @testcase ITc_inm_wifi_ap_is_passphrase_required +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Checks whether passphrase is required for wifi ap +* @scenario Wifi ap is checked for passphrase requirement +* @apicovered inm_wifi_ap_is_passphrase_required +* @passcase When inm_wifi_ap_is_passphrase_required is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to check if passphrase is required for wifi ap +//& type: auto +int ITc_inm_wifi_ap_is_passphrase_required_p(void) +{ + START_TEST; + + bool bRequired; + int nRet = INM_ERROR_NONE; + inm_wifi_security_type_e eWifiSecurityType; + + nRet = inm_wifi_ap_get_security_type(g_hConnection, &eWifiSecurityType); + if (!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_wifi_ap_get_security_type", InmGetError(nRet)); + return 0; + } + + if(eWifiSecurityType != INM_WIFI_SECURITY_TYPE_EAP) + { + nRet = inm_wifi_ap_is_passphrase_required(g_hConnection, &bRequired); + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_wifi_ap_is_passphrase_required", InmGetError(nRet)); + } + else + { + FPRINTF("[Line : %d][%s] API \"%s\" cannot be checked. Wifi Security Type = INM_WIFI_SECURITY_TYPE_EAP\\n", __LINE__, API_NAMESPACE, "inm_wifi_ap_is_passphrase_required"); + } + + return 0; +} + +/** +* @testcase ITc_inm_wifi_ap_is_wps_supported +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Checks whether wps is supported by wifi ap +* @scenario Wifi ap is checked for wps support +* @apicovered inm_wifi_ap_is_wps_supported +* @passcase When inm_wifi_ap_is_wps_supported are successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to check whether wps is supported by wifi ap +//& type: auto +int ITc_inm_wifi_ap_is_wps_supported_p(void) +{ + START_TEST; + + bool bSupported; + int nRet = INM_ERROR_NONE; + + nRet = inm_wifi_ap_is_wps_supported(g_hConnection, &bSupported); + if (!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_wifi_ap_is_wps_supported", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_wifi_ap_is_wps_supported", InmGetError(nRet)); + + return 0; +} + +/** +* @testcase ITc_inm_wifi_ap_get_disconnect_reason +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets reason for wifi disconnect +* @scenario Reason for wifi disconnect is gottens +* @apicovered inm_wifi_ap_get_disconnect_reason +* @passcase When inm_wifi_ap_get_disconnect_reason are successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get wifi disconnect reason +//& type: auto +int ITc_inm_wifi_ap_get_disconnect_reason_p(void) +{ + START_TEST; + + inm_wifi_disconnect_reason_e eDisconnectReason = 1; + int nRet = INM_ERROR_NONE; + + nRet = inm_wifi_ap_get_disconnect_reason(g_hConnection, &eDisconnectReason); + if (!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_wifi_ap_get_disconnect_reason", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_wifi_ap_get_disconnect_reason", InmGetError(nRet)); + if(InmGetDisconnectReason(eDisconnectReason) == NULL) + { + FPRINTF("[Line : %d][%s] %s failed. Disconnect reason = %d\\n", __LINE__, API_NAMESPACE, "inm_wifi_ap_get_disconnect_reason", eDisconnectReason); + return 1; + } + + return 0; +} + +/** +* @testcase ITc_inm_wifi_ap_get_assoc_status_code +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Gets assoc status code for wifi ap +* @scenario Assoc status code for wifi ap is gotten +* @apicovered inm_wifi_ap_get_assoc_status_code +* @passcase When inm_wifi_ap_get_assoc_status_code are successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to get assoc status code for wifi ap +//& type: auto +int ITc_inm_wifi_ap_get_assoc_status_code_p(void) +{ + START_TEST; + + int nRet = INM_ERROR_NONE; + inm_wifi_assoc_status_code_e eStatusCode; + + nRet = inm_wifi_ap_get_assoc_status_code(g_hConnection, &eStatusCode); + if (!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_wifi_ap_get_assoc_status_code", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_wifi_ap_get_assoc_status_code", InmGetError(nRet)); + if(eStatusCode < WLAN_STATUS_SUCCESS || eStatusCode > WLAN_STATUS_ASSOC_DENIED_NO_VHT) + { + FPRINTF("[Line : %d][%s] %s failed. StatusCode value = %d\\n", __LINE__, API_NAMESPACE, "inm_wifi_ap_get_rssi_level", eStatusCode); + return 1; + } + + return 0; +} + +/** +* @testcase ITc_inm_wifi_ap_foreach_vsie +* @since_tizen 5.0 +* @author SRID(samuel.peter) +* @reviewer SRID(manoj.g2) +* @type auto +* @description Checks wifi ap for each vsie +* @scenario Wifi ap is checked for each vsie +* @apicovered inm_wifi_ap_foreach_vsie +* @passcase When inm_wifi_ap_foreach_vsie is successful. +* @failcase If target API fails or any precondition API fails +* @precondition None +* @postcondition None +*/ +//& purpose: API to check wifi ap for each vsie +//& type: auto +int ITc_inm_wifi_ap_foreach_vsie_p(void) +{ + START_TEST; + + int nRet = INM_ERROR_NONE; + + nRet = inm_wifi_ap_foreach_vsie(g_hConnection, InmWifiApForeachVsieCallback, NULL); + if (!g_bFeatureWifi) { + PRINT_RESULT_CHECK(nRet, INM_ERROR_NOT_SUPPORTED, "inm_wifi_ap_foreach_vsie", InmGetError(nRet)); + return 0; + } + PRINT_RESULT(nRet, INM_ERROR_NONE, "inm_wifi_ap_foreach_vsie", InmGetError(nRet)); + + return 0; +} +/** @} */ +/** @} */ diff --git a/src/itc/capi-network-inm/tct-capi-network-inm-native.c b/src/itc/capi-network-inm/tct-capi-network-inm-native.c new file mode 100755 index 000000000..4ed816a27 --- /dev/null +++ b/src/itc/capi-network-inm/tct-capi-network-inm-native.c @@ -0,0 +1,137 @@ +// +// Copyright (c) 2014 Samsung Electronics Co., Ltd. +// +// Licensed under the Apache License, Version 2.0 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#include +#include +#include "tct_common.h" + +#ifdef MOBILE //Starts MOBILE +#include "tct-capi-network-inm-native_mobile.h" +#endif //MOBILE //End MOBILE + +#ifdef WEARABLE //Starts WEARABLE +#include "tct-capi-network-inm-native_wearable.h" +#endif //WEARABLE //End WEARABLE + +#ifdef TV //Starts TV +#include "tct-capi-network-inm-native_tv.h" +#endif //TV //End TV + +#ifdef TIZENIOT //Starts TIZENIOT +#include "tct-capi-network-inm-native_tizeniot.h" +#endif //TIZENIOT //End TIZENIOT + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include +#include + +static bool app_create(void *data) +{ + return true; +} + +static void app_control(app_control_h app_control, void *data) +{ + char* pszGetTCName = NULL; + int i=0, result=0, nRet=0; + nRet = app_control_get_extra_data(app_control, "testcase_name", &pszGetTCName); + if(nRet != APP_CONTROL_ERROR_NONE) + { + dlog_print(DLOG_ERROR, "NativeTCT", "[%s:%d] app_control_get_extra_data returns error = %d", __FUNCTION__, __LINE__, nRet); + PRINT_UTC_LOG("\\n[%s][Line : %d]Unable to fetch test case name: app_control_get_extra_data API call fails\\n", __FILE__, __LINE__); + PRINT_TC_RESULT("%d",1); + FREE_MEMORY_TC(pszGetTCName); + return; + } + + dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Executing TC Name = %s", __FUNCTION__, __LINE__, pszGetTCName); + for ( i = 0; tc_array[i].name; i++ ) + { + if ( 0 == strncmp(pszGetTCName, tc_array[i].name, strlen(pszGetTCName)) ) + { + dlog_print(DLOG_INFO, "NativeTCT", "%s : Startup begin", pszGetTCName); + if ( tc_array[i].startup ) + { + tc_array[i].startup(); + } + dlog_print(DLOG_INFO, "NativeTCT", "%s : Startup end", pszGetTCName); + + dlog_print(DLOG_INFO, "NativeTCT", "%s : Body begin", pszGetTCName); + result = tc_array[i].function(); + dlog_print(DLOG_INFO, "NativeTCT", "%s returns value = %d", pszGetTCName, result); + dlog_print(DLOG_INFO, "NativeTCT", "%s : Body end", pszGetTCName); + + dlog_print(DLOG_INFO, "NativeTCT", "%s : Cleanup begin", pszGetTCName); + if ( tc_array[i].cleanup ) + { + tc_array[i].cleanup(); + } + dlog_print(DLOG_INFO, "NativeTCT", "%s : Cleanup end", pszGetTCName); + PRINT_TC_RESULT("%d",result); + FREE_MEMORY_TC(pszGetTCName); + return; + } + } + + dlog_print(DLOG_ERROR, "NativeTCT", "[%s:%d] Unable to execute %s : Unknown Test Case Name", __FUNCTION__, __LINE__, pszGetTCName); + PRINT_UTC_LOG("\\n[%s][Line : %d]Unable to execute %s : Unknown Test Case Name\\n", __FILE__, __LINE__, pszGetTCName); + PRINT_TC_RESULT("%d",1); + FREE_MEMORY_TC(pszGetTCName); + return; +} + +static void app_terminate(void *data) +{ + dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Application Package is now Terminating", __FUNCTION__, __LINE__); +} + +int main(int argc, char *argv[]) +{ + int ret = 0; + + ui_app_lifecycle_callback_s event_callback = {0,}; + event_callback.create = app_create; + event_callback.terminate = app_terminate; + event_callback.app_control = app_control; + + //setting gcda file location for coverage + setenv("GCOV_PREFIX","/tmp",1); + dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Coverage *.gcda File location set to /tmp/home/abuild/rpmbuild/BUILD/ ", __FUNCTION__, __LINE__); + + dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Application Main Function is Invoked", __FUNCTION__, __LINE__); + ret = ui_app_main(argc, argv, &event_callback, NULL); + if (ret != APP_ERROR_NONE) + { + dlog_print(DLOG_ERROR, "NativeTCT", "Application ui_app_main call gets failed. err = %d", ret); + PRINT_UTC_LOG("\\n[%s][Line : %d]Application ui_app_main call gets failed. err = %d\\n", __FILE__, __LINE__, ret); + PRINT_TC_RESULT("%d",1); + return ret; + } + + dlog_print(DLOG_INFO, "NativeTCT", "[%s:%d] Application Package is Terminated", __FUNCTION__, __LINE__); + return ret; +} diff --git a/src/itc/capi-network-inm/tct-capi-network-inm-native_mobile.h b/src/itc/capi-network-inm/tct-capi-network-inm-native_mobile.h new file mode 100755 index 000000000..6ef568119 --- /dev/null +++ b/src/itc/capi-network-inm/tct-capi-network-inm-native_mobile.h @@ -0,0 +1,158 @@ +// +// Copyright (c) 2014 Samsung Electronics Co., Ltd. +// +// Licensed under the Apache License, Version 2.0 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#ifndef __TCT_INM-NATIVE_H__ +#define __TCT_INM-NATIVE_H__ + +#include "testcase.h" +#include "tct_common.h" + +extern void ITs_inm_startup(void); +extern void ITs_inm_cleanup(void); + +extern int ITc_inm_get_ethernet_cable_state_p(void); +extern int ITc_inm_set_unset_ethernet_cable_state_changed_cb_p(void); +extern int ITc_inm_set_unset_wifi_module_state_changed_cb_p(void); +extern int ITc_inm_get_wifi_module_state_p(void); +extern int ITc_inm_set_unset_ip_conflict_cb_p(void); +extern int ITc_inm_ip_conflict_detect_is_enabled_p(void); +extern int ITc_inm_get_ip_conflict_state_p(void); +extern int ITc_inm_get_statistics_p(void); +extern int ITc_inm_reset_statistics_p(void); +extern int ITc_inm_set_unset_congestion_level_cb_p(void); +extern int ITc_inm_get_congestion_level_p(void); +extern int ITc_inm_set_unset_retry_tx_rate_cb_p(void); +extern int ITc_inm_get_retry_tx_rate_p(void); +extern int ITc_inm_set_unset_channel_interference_cb_p(void); +extern int ITc_inm_get_channel_interference_p(void); +extern int ITc_inm_set_unset_cellular_state_changed_cb_p(void); +extern int ITc_inm_get_cellular_state_p(void); +extern int ITc_inm_set_unset_wifi_state_changed_cb_p(void); +extern int ITc_inm_get_wifi_state_p(void); +extern int ITc_inm_set_unset_ethernet_state_changed_cb_p(void); +extern int ITc_inm_get_ethernet_state_p(void); +extern int ITc_inm_get_current_connection_p(void); +extern int ITc_inm_connection_clone_destroy_p(void); +extern int ITc_inm_get_destroy_connection_iterator_p(void); +extern int ITc_inm_connection_iterator_next_p(void); +extern int ITc_inm_connection_get_id_p(void); +extern int ITc_inm_connection_get_name_p(void); +extern int ITc_inm_connection_get_type_p(void); +extern int ITc_inm_connection_get_network_interface_name_p(void); +extern int ITc_inm_connection_get_state_p(void); +extern int ITc_inm_connection_get_ipv6_state_p(void); +extern int ITc_inm_connection_get_ip_config_type_p(void); +extern int ITc_inm_connection_get_ip_address_p(void); +extern int ITc_inm_connection_get_subnet_mask_p(void); +extern int ITc_inm_connection_get_gateway_address_p(void); +extern int ITc_inm_connection_get_dhcp_server_address_p(void); +extern int ITc_inm_connection_get_dhcp_lease_duration_p(void); +extern int ITc_inm_connection_get_dns_address_p(void); +extern int ITc_inm_connection_get_proxy_type_p(void); +extern int ITc_inm_connection_get_proxy_address_p(void); +extern int ITc_inm_connection_get_dns_config_type_p(void); +extern int ITc_inm_connection_get_prefix_length_p(void); +extern int ITc_inm_connection_refresh_p(void); +extern int ITc_inm_connection_set_unset_state_changed_cb_p(void); +extern int ITc_inm_wifi_set_unset_scan_state_changed_cb_p(void); +extern int ITc_inm_wifi_get_scan_state_p(void); +extern int ITc_inm_wifi_get_connected_ap_p(void); +extern int ITc_inm_wifi_foreach_found_ap_p(void); +extern int ITc_inm_wifi_ap_get_essid_p(void); +extern int ITc_inm_wifi_ap_get_raw_ssid_p(void); +extern int ITc_inm_wifi_ap_get_bssid_p(void); +extern int ITc_inm_wifi_ap_get_rssi_p(void); +extern int ITc_inm_wifi_ap_get_rssi_level_p(void); +extern int ITc_inm_wifi_ap_get_frequency_p(void); +extern int ITc_inm_wifi_ap_get_max_speed_p(void); +extern int ITc_inm_wifi_ap_is_favorite_p(void); +extern int ITc_inm_wifi_ap_is_passpoint_p(void); +extern int ITc_inm_wifi_ap_get_security_type_p(void); +extern int ITc_inm_wifi_ap_get_encryption_type_p(void); +extern int ITc_inm_wifi_ap_is_passphrase_required_p(void); +extern int ITc_inm_wifi_ap_is_wps_supported_p(void); +extern int ITc_inm_wifi_ap_get_disconnect_reason_p(void); +extern int ITc_inm_wifi_ap_get_assoc_status_code_p(void); +extern int ITc_inm_wifi_ap_foreach_vsie_p(void); + +testcase tc_array[] = { + {"ITc_inm_get_ethernet_cable_state_p",ITc_inm_get_ethernet_cable_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_ethernet_cable_state_changed_cb_p",ITc_inm_set_unset_ethernet_cable_state_changed_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_wifi_module_state_changed_cb_p",ITc_inm_set_unset_wifi_module_state_changed_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_wifi_module_state_p",ITc_inm_get_wifi_module_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_ip_conflict_cb_p",ITc_inm_set_unset_ip_conflict_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_ip_conflict_detect_is_enabled_p",ITc_inm_ip_conflict_detect_is_enabled_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_ip_conflict_state_p",ITc_inm_get_ip_conflict_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_statistics_p",ITc_inm_get_statistics_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_reset_statistics_p",ITc_inm_reset_statistics_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_congestion_level_cb_p",ITc_inm_set_unset_congestion_level_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_congestion_level_p",ITc_inm_get_congestion_level_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_retry_tx_rate_cb_p",ITc_inm_set_unset_retry_tx_rate_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_retry_tx_rate_p",ITc_inm_get_retry_tx_rate_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_channel_interference_cb_p",ITc_inm_set_unset_channel_interference_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_channel_interference_p",ITc_inm_get_channel_interference_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_cellular_state_changed_cb_p",ITc_inm_set_unset_cellular_state_changed_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_cellular_state_p",ITc_inm_get_cellular_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_wifi_state_changed_cb_p",ITc_inm_set_unset_wifi_state_changed_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_wifi_state_p",ITc_inm_get_wifi_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_ethernet_state_changed_cb_p",ITc_inm_set_unset_ethernet_state_changed_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_ethernet_state_p",ITc_inm_get_ethernet_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_current_connection_p",ITc_inm_get_current_connection_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_clone_destroy_p",ITc_inm_connection_clone_destroy_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_destroy_connection_iterator_p",ITc_inm_get_destroy_connection_iterator_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_iterator_next_p",ITc_inm_connection_iterator_next_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_id_p",ITc_inm_connection_get_id_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_name_p",ITc_inm_connection_get_name_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_type_p",ITc_inm_connection_get_type_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_network_interface_name_p",ITc_inm_connection_get_network_interface_name_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_state_p",ITc_inm_connection_get_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_ipv6_state_p",ITc_inm_connection_get_ipv6_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_ip_config_type_p",ITc_inm_connection_get_ip_config_type_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_ip_address_p",ITc_inm_connection_get_ip_address_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_subnet_mask_p",ITc_inm_connection_get_subnet_mask_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_gateway_address_p",ITc_inm_connection_get_gateway_address_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_dhcp_server_address_p",ITc_inm_connection_get_dhcp_server_address_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_dhcp_lease_duration_p",ITc_inm_connection_get_dhcp_lease_duration_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_dns_address_p",ITc_inm_connection_get_dns_address_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_proxy_type_p",ITc_inm_connection_get_proxy_type_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_proxy_address_p",ITc_inm_connection_get_proxy_address_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_dns_config_type_p",ITc_inm_connection_get_dns_config_type_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_prefix_length_p",ITc_inm_connection_get_prefix_length_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_refresh_p",ITc_inm_connection_refresh_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_set_unset_state_changed_cb_p",ITc_inm_connection_set_unset_state_changed_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_set_unset_scan_state_changed_cb_p",ITc_inm_wifi_set_unset_scan_state_changed_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_get_scan_state_p",ITc_inm_wifi_get_scan_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_get_connected_ap_p",ITc_inm_wifi_get_connected_ap_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_foreach_found_ap_p",ITc_inm_wifi_foreach_found_ap_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_essid_p",ITc_inm_wifi_ap_get_essid_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_raw_ssid_p",ITc_inm_wifi_ap_get_raw_ssid_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_bssid_p",ITc_inm_wifi_ap_get_bssid_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_rssi_p",ITc_inm_wifi_ap_get_rssi_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_rssi_level_p",ITc_inm_wifi_ap_get_rssi_level_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_frequency_p",ITc_inm_wifi_ap_get_frequency_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_max_speed_p",ITc_inm_wifi_ap_get_max_speed_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_is_favorite_p",ITc_inm_wifi_ap_is_favorite_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_is_passpoint_p",ITc_inm_wifi_ap_is_passpoint_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_security_type_p",ITc_inm_wifi_ap_get_security_type_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_encryption_type_p",ITc_inm_wifi_ap_get_encryption_type_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_is_passphrase_required_p",ITc_inm_wifi_ap_is_passphrase_required_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_is_wps_supported_p",ITc_inm_wifi_ap_is_wps_supported_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_disconnect_reason_p",ITc_inm_wifi_ap_get_disconnect_reason_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_assoc_status_code_p",ITc_inm_wifi_ap_get_assoc_status_code_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_foreach_vsie_p",ITc_inm_wifi_ap_foreach_vsie_p,ITs_inm_startup,ITs_inm_cleanup}, + {NULL, NULL} +}; + +#endif // __TCT_INM-NATIVE_H__ diff --git a/src/itc/capi-network-inm/tct-capi-network-inm-native_tizeniot.h b/src/itc/capi-network-inm/tct-capi-network-inm-native_tizeniot.h new file mode 100755 index 000000000..6ef568119 --- /dev/null +++ b/src/itc/capi-network-inm/tct-capi-network-inm-native_tizeniot.h @@ -0,0 +1,158 @@ +// +// Copyright (c) 2014 Samsung Electronics Co., Ltd. +// +// Licensed under the Apache License, Version 2.0 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#ifndef __TCT_INM-NATIVE_H__ +#define __TCT_INM-NATIVE_H__ + +#include "testcase.h" +#include "tct_common.h" + +extern void ITs_inm_startup(void); +extern void ITs_inm_cleanup(void); + +extern int ITc_inm_get_ethernet_cable_state_p(void); +extern int ITc_inm_set_unset_ethernet_cable_state_changed_cb_p(void); +extern int ITc_inm_set_unset_wifi_module_state_changed_cb_p(void); +extern int ITc_inm_get_wifi_module_state_p(void); +extern int ITc_inm_set_unset_ip_conflict_cb_p(void); +extern int ITc_inm_ip_conflict_detect_is_enabled_p(void); +extern int ITc_inm_get_ip_conflict_state_p(void); +extern int ITc_inm_get_statistics_p(void); +extern int ITc_inm_reset_statistics_p(void); +extern int ITc_inm_set_unset_congestion_level_cb_p(void); +extern int ITc_inm_get_congestion_level_p(void); +extern int ITc_inm_set_unset_retry_tx_rate_cb_p(void); +extern int ITc_inm_get_retry_tx_rate_p(void); +extern int ITc_inm_set_unset_channel_interference_cb_p(void); +extern int ITc_inm_get_channel_interference_p(void); +extern int ITc_inm_set_unset_cellular_state_changed_cb_p(void); +extern int ITc_inm_get_cellular_state_p(void); +extern int ITc_inm_set_unset_wifi_state_changed_cb_p(void); +extern int ITc_inm_get_wifi_state_p(void); +extern int ITc_inm_set_unset_ethernet_state_changed_cb_p(void); +extern int ITc_inm_get_ethernet_state_p(void); +extern int ITc_inm_get_current_connection_p(void); +extern int ITc_inm_connection_clone_destroy_p(void); +extern int ITc_inm_get_destroy_connection_iterator_p(void); +extern int ITc_inm_connection_iterator_next_p(void); +extern int ITc_inm_connection_get_id_p(void); +extern int ITc_inm_connection_get_name_p(void); +extern int ITc_inm_connection_get_type_p(void); +extern int ITc_inm_connection_get_network_interface_name_p(void); +extern int ITc_inm_connection_get_state_p(void); +extern int ITc_inm_connection_get_ipv6_state_p(void); +extern int ITc_inm_connection_get_ip_config_type_p(void); +extern int ITc_inm_connection_get_ip_address_p(void); +extern int ITc_inm_connection_get_subnet_mask_p(void); +extern int ITc_inm_connection_get_gateway_address_p(void); +extern int ITc_inm_connection_get_dhcp_server_address_p(void); +extern int ITc_inm_connection_get_dhcp_lease_duration_p(void); +extern int ITc_inm_connection_get_dns_address_p(void); +extern int ITc_inm_connection_get_proxy_type_p(void); +extern int ITc_inm_connection_get_proxy_address_p(void); +extern int ITc_inm_connection_get_dns_config_type_p(void); +extern int ITc_inm_connection_get_prefix_length_p(void); +extern int ITc_inm_connection_refresh_p(void); +extern int ITc_inm_connection_set_unset_state_changed_cb_p(void); +extern int ITc_inm_wifi_set_unset_scan_state_changed_cb_p(void); +extern int ITc_inm_wifi_get_scan_state_p(void); +extern int ITc_inm_wifi_get_connected_ap_p(void); +extern int ITc_inm_wifi_foreach_found_ap_p(void); +extern int ITc_inm_wifi_ap_get_essid_p(void); +extern int ITc_inm_wifi_ap_get_raw_ssid_p(void); +extern int ITc_inm_wifi_ap_get_bssid_p(void); +extern int ITc_inm_wifi_ap_get_rssi_p(void); +extern int ITc_inm_wifi_ap_get_rssi_level_p(void); +extern int ITc_inm_wifi_ap_get_frequency_p(void); +extern int ITc_inm_wifi_ap_get_max_speed_p(void); +extern int ITc_inm_wifi_ap_is_favorite_p(void); +extern int ITc_inm_wifi_ap_is_passpoint_p(void); +extern int ITc_inm_wifi_ap_get_security_type_p(void); +extern int ITc_inm_wifi_ap_get_encryption_type_p(void); +extern int ITc_inm_wifi_ap_is_passphrase_required_p(void); +extern int ITc_inm_wifi_ap_is_wps_supported_p(void); +extern int ITc_inm_wifi_ap_get_disconnect_reason_p(void); +extern int ITc_inm_wifi_ap_get_assoc_status_code_p(void); +extern int ITc_inm_wifi_ap_foreach_vsie_p(void); + +testcase tc_array[] = { + {"ITc_inm_get_ethernet_cable_state_p",ITc_inm_get_ethernet_cable_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_ethernet_cable_state_changed_cb_p",ITc_inm_set_unset_ethernet_cable_state_changed_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_wifi_module_state_changed_cb_p",ITc_inm_set_unset_wifi_module_state_changed_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_wifi_module_state_p",ITc_inm_get_wifi_module_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_ip_conflict_cb_p",ITc_inm_set_unset_ip_conflict_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_ip_conflict_detect_is_enabled_p",ITc_inm_ip_conflict_detect_is_enabled_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_ip_conflict_state_p",ITc_inm_get_ip_conflict_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_statistics_p",ITc_inm_get_statistics_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_reset_statistics_p",ITc_inm_reset_statistics_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_congestion_level_cb_p",ITc_inm_set_unset_congestion_level_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_congestion_level_p",ITc_inm_get_congestion_level_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_retry_tx_rate_cb_p",ITc_inm_set_unset_retry_tx_rate_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_retry_tx_rate_p",ITc_inm_get_retry_tx_rate_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_channel_interference_cb_p",ITc_inm_set_unset_channel_interference_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_channel_interference_p",ITc_inm_get_channel_interference_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_cellular_state_changed_cb_p",ITc_inm_set_unset_cellular_state_changed_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_cellular_state_p",ITc_inm_get_cellular_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_wifi_state_changed_cb_p",ITc_inm_set_unset_wifi_state_changed_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_wifi_state_p",ITc_inm_get_wifi_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_ethernet_state_changed_cb_p",ITc_inm_set_unset_ethernet_state_changed_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_ethernet_state_p",ITc_inm_get_ethernet_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_current_connection_p",ITc_inm_get_current_connection_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_clone_destroy_p",ITc_inm_connection_clone_destroy_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_destroy_connection_iterator_p",ITc_inm_get_destroy_connection_iterator_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_iterator_next_p",ITc_inm_connection_iterator_next_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_id_p",ITc_inm_connection_get_id_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_name_p",ITc_inm_connection_get_name_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_type_p",ITc_inm_connection_get_type_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_network_interface_name_p",ITc_inm_connection_get_network_interface_name_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_state_p",ITc_inm_connection_get_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_ipv6_state_p",ITc_inm_connection_get_ipv6_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_ip_config_type_p",ITc_inm_connection_get_ip_config_type_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_ip_address_p",ITc_inm_connection_get_ip_address_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_subnet_mask_p",ITc_inm_connection_get_subnet_mask_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_gateway_address_p",ITc_inm_connection_get_gateway_address_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_dhcp_server_address_p",ITc_inm_connection_get_dhcp_server_address_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_dhcp_lease_duration_p",ITc_inm_connection_get_dhcp_lease_duration_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_dns_address_p",ITc_inm_connection_get_dns_address_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_proxy_type_p",ITc_inm_connection_get_proxy_type_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_proxy_address_p",ITc_inm_connection_get_proxy_address_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_dns_config_type_p",ITc_inm_connection_get_dns_config_type_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_prefix_length_p",ITc_inm_connection_get_prefix_length_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_refresh_p",ITc_inm_connection_refresh_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_set_unset_state_changed_cb_p",ITc_inm_connection_set_unset_state_changed_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_set_unset_scan_state_changed_cb_p",ITc_inm_wifi_set_unset_scan_state_changed_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_get_scan_state_p",ITc_inm_wifi_get_scan_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_get_connected_ap_p",ITc_inm_wifi_get_connected_ap_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_foreach_found_ap_p",ITc_inm_wifi_foreach_found_ap_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_essid_p",ITc_inm_wifi_ap_get_essid_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_raw_ssid_p",ITc_inm_wifi_ap_get_raw_ssid_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_bssid_p",ITc_inm_wifi_ap_get_bssid_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_rssi_p",ITc_inm_wifi_ap_get_rssi_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_rssi_level_p",ITc_inm_wifi_ap_get_rssi_level_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_frequency_p",ITc_inm_wifi_ap_get_frequency_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_max_speed_p",ITc_inm_wifi_ap_get_max_speed_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_is_favorite_p",ITc_inm_wifi_ap_is_favorite_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_is_passpoint_p",ITc_inm_wifi_ap_is_passpoint_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_security_type_p",ITc_inm_wifi_ap_get_security_type_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_encryption_type_p",ITc_inm_wifi_ap_get_encryption_type_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_is_passphrase_required_p",ITc_inm_wifi_ap_is_passphrase_required_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_is_wps_supported_p",ITc_inm_wifi_ap_is_wps_supported_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_disconnect_reason_p",ITc_inm_wifi_ap_get_disconnect_reason_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_assoc_status_code_p",ITc_inm_wifi_ap_get_assoc_status_code_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_foreach_vsie_p",ITc_inm_wifi_ap_foreach_vsie_p,ITs_inm_startup,ITs_inm_cleanup}, + {NULL, NULL} +}; + +#endif // __TCT_INM-NATIVE_H__ diff --git a/src/itc/capi-network-inm/tct-capi-network-inm-native_wearable.h b/src/itc/capi-network-inm/tct-capi-network-inm-native_wearable.h new file mode 100755 index 000000000..6ef568119 --- /dev/null +++ b/src/itc/capi-network-inm/tct-capi-network-inm-native_wearable.h @@ -0,0 +1,158 @@ +// +// Copyright (c) 2014 Samsung Electronics Co., Ltd. +// +// Licensed under the Apache License, Version 2.0 (the License); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#ifndef __TCT_INM-NATIVE_H__ +#define __TCT_INM-NATIVE_H__ + +#include "testcase.h" +#include "tct_common.h" + +extern void ITs_inm_startup(void); +extern void ITs_inm_cleanup(void); + +extern int ITc_inm_get_ethernet_cable_state_p(void); +extern int ITc_inm_set_unset_ethernet_cable_state_changed_cb_p(void); +extern int ITc_inm_set_unset_wifi_module_state_changed_cb_p(void); +extern int ITc_inm_get_wifi_module_state_p(void); +extern int ITc_inm_set_unset_ip_conflict_cb_p(void); +extern int ITc_inm_ip_conflict_detect_is_enabled_p(void); +extern int ITc_inm_get_ip_conflict_state_p(void); +extern int ITc_inm_get_statistics_p(void); +extern int ITc_inm_reset_statistics_p(void); +extern int ITc_inm_set_unset_congestion_level_cb_p(void); +extern int ITc_inm_get_congestion_level_p(void); +extern int ITc_inm_set_unset_retry_tx_rate_cb_p(void); +extern int ITc_inm_get_retry_tx_rate_p(void); +extern int ITc_inm_set_unset_channel_interference_cb_p(void); +extern int ITc_inm_get_channel_interference_p(void); +extern int ITc_inm_set_unset_cellular_state_changed_cb_p(void); +extern int ITc_inm_get_cellular_state_p(void); +extern int ITc_inm_set_unset_wifi_state_changed_cb_p(void); +extern int ITc_inm_get_wifi_state_p(void); +extern int ITc_inm_set_unset_ethernet_state_changed_cb_p(void); +extern int ITc_inm_get_ethernet_state_p(void); +extern int ITc_inm_get_current_connection_p(void); +extern int ITc_inm_connection_clone_destroy_p(void); +extern int ITc_inm_get_destroy_connection_iterator_p(void); +extern int ITc_inm_connection_iterator_next_p(void); +extern int ITc_inm_connection_get_id_p(void); +extern int ITc_inm_connection_get_name_p(void); +extern int ITc_inm_connection_get_type_p(void); +extern int ITc_inm_connection_get_network_interface_name_p(void); +extern int ITc_inm_connection_get_state_p(void); +extern int ITc_inm_connection_get_ipv6_state_p(void); +extern int ITc_inm_connection_get_ip_config_type_p(void); +extern int ITc_inm_connection_get_ip_address_p(void); +extern int ITc_inm_connection_get_subnet_mask_p(void); +extern int ITc_inm_connection_get_gateway_address_p(void); +extern int ITc_inm_connection_get_dhcp_server_address_p(void); +extern int ITc_inm_connection_get_dhcp_lease_duration_p(void); +extern int ITc_inm_connection_get_dns_address_p(void); +extern int ITc_inm_connection_get_proxy_type_p(void); +extern int ITc_inm_connection_get_proxy_address_p(void); +extern int ITc_inm_connection_get_dns_config_type_p(void); +extern int ITc_inm_connection_get_prefix_length_p(void); +extern int ITc_inm_connection_refresh_p(void); +extern int ITc_inm_connection_set_unset_state_changed_cb_p(void); +extern int ITc_inm_wifi_set_unset_scan_state_changed_cb_p(void); +extern int ITc_inm_wifi_get_scan_state_p(void); +extern int ITc_inm_wifi_get_connected_ap_p(void); +extern int ITc_inm_wifi_foreach_found_ap_p(void); +extern int ITc_inm_wifi_ap_get_essid_p(void); +extern int ITc_inm_wifi_ap_get_raw_ssid_p(void); +extern int ITc_inm_wifi_ap_get_bssid_p(void); +extern int ITc_inm_wifi_ap_get_rssi_p(void); +extern int ITc_inm_wifi_ap_get_rssi_level_p(void); +extern int ITc_inm_wifi_ap_get_frequency_p(void); +extern int ITc_inm_wifi_ap_get_max_speed_p(void); +extern int ITc_inm_wifi_ap_is_favorite_p(void); +extern int ITc_inm_wifi_ap_is_passpoint_p(void); +extern int ITc_inm_wifi_ap_get_security_type_p(void); +extern int ITc_inm_wifi_ap_get_encryption_type_p(void); +extern int ITc_inm_wifi_ap_is_passphrase_required_p(void); +extern int ITc_inm_wifi_ap_is_wps_supported_p(void); +extern int ITc_inm_wifi_ap_get_disconnect_reason_p(void); +extern int ITc_inm_wifi_ap_get_assoc_status_code_p(void); +extern int ITc_inm_wifi_ap_foreach_vsie_p(void); + +testcase tc_array[] = { + {"ITc_inm_get_ethernet_cable_state_p",ITc_inm_get_ethernet_cable_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_ethernet_cable_state_changed_cb_p",ITc_inm_set_unset_ethernet_cable_state_changed_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_wifi_module_state_changed_cb_p",ITc_inm_set_unset_wifi_module_state_changed_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_wifi_module_state_p",ITc_inm_get_wifi_module_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_ip_conflict_cb_p",ITc_inm_set_unset_ip_conflict_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_ip_conflict_detect_is_enabled_p",ITc_inm_ip_conflict_detect_is_enabled_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_ip_conflict_state_p",ITc_inm_get_ip_conflict_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_statistics_p",ITc_inm_get_statistics_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_reset_statistics_p",ITc_inm_reset_statistics_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_congestion_level_cb_p",ITc_inm_set_unset_congestion_level_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_congestion_level_p",ITc_inm_get_congestion_level_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_retry_tx_rate_cb_p",ITc_inm_set_unset_retry_tx_rate_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_retry_tx_rate_p",ITc_inm_get_retry_tx_rate_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_channel_interference_cb_p",ITc_inm_set_unset_channel_interference_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_channel_interference_p",ITc_inm_get_channel_interference_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_cellular_state_changed_cb_p",ITc_inm_set_unset_cellular_state_changed_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_cellular_state_p",ITc_inm_get_cellular_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_wifi_state_changed_cb_p",ITc_inm_set_unset_wifi_state_changed_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_wifi_state_p",ITc_inm_get_wifi_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_set_unset_ethernet_state_changed_cb_p",ITc_inm_set_unset_ethernet_state_changed_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_ethernet_state_p",ITc_inm_get_ethernet_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_current_connection_p",ITc_inm_get_current_connection_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_clone_destroy_p",ITc_inm_connection_clone_destroy_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_get_destroy_connection_iterator_p",ITc_inm_get_destroy_connection_iterator_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_iterator_next_p",ITc_inm_connection_iterator_next_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_id_p",ITc_inm_connection_get_id_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_name_p",ITc_inm_connection_get_name_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_type_p",ITc_inm_connection_get_type_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_network_interface_name_p",ITc_inm_connection_get_network_interface_name_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_state_p",ITc_inm_connection_get_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_ipv6_state_p",ITc_inm_connection_get_ipv6_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_ip_config_type_p",ITc_inm_connection_get_ip_config_type_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_ip_address_p",ITc_inm_connection_get_ip_address_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_subnet_mask_p",ITc_inm_connection_get_subnet_mask_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_gateway_address_p",ITc_inm_connection_get_gateway_address_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_dhcp_server_address_p",ITc_inm_connection_get_dhcp_server_address_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_dhcp_lease_duration_p",ITc_inm_connection_get_dhcp_lease_duration_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_dns_address_p",ITc_inm_connection_get_dns_address_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_proxy_type_p",ITc_inm_connection_get_proxy_type_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_proxy_address_p",ITc_inm_connection_get_proxy_address_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_dns_config_type_p",ITc_inm_connection_get_dns_config_type_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_get_prefix_length_p",ITc_inm_connection_get_prefix_length_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_refresh_p",ITc_inm_connection_refresh_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_connection_set_unset_state_changed_cb_p",ITc_inm_connection_set_unset_state_changed_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_set_unset_scan_state_changed_cb_p",ITc_inm_wifi_set_unset_scan_state_changed_cb_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_get_scan_state_p",ITc_inm_wifi_get_scan_state_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_get_connected_ap_p",ITc_inm_wifi_get_connected_ap_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_foreach_found_ap_p",ITc_inm_wifi_foreach_found_ap_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_essid_p",ITc_inm_wifi_ap_get_essid_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_raw_ssid_p",ITc_inm_wifi_ap_get_raw_ssid_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_bssid_p",ITc_inm_wifi_ap_get_bssid_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_rssi_p",ITc_inm_wifi_ap_get_rssi_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_rssi_level_p",ITc_inm_wifi_ap_get_rssi_level_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_frequency_p",ITc_inm_wifi_ap_get_frequency_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_max_speed_p",ITc_inm_wifi_ap_get_max_speed_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_is_favorite_p",ITc_inm_wifi_ap_is_favorite_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_is_passpoint_p",ITc_inm_wifi_ap_is_passpoint_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_security_type_p",ITc_inm_wifi_ap_get_security_type_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_encryption_type_p",ITc_inm_wifi_ap_get_encryption_type_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_is_passphrase_required_p",ITc_inm_wifi_ap_is_passphrase_required_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_is_wps_supported_p",ITc_inm_wifi_ap_is_wps_supported_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_disconnect_reason_p",ITc_inm_wifi_ap_get_disconnect_reason_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_get_assoc_status_code_p",ITc_inm_wifi_ap_get_assoc_status_code_p,ITs_inm_startup,ITs_inm_cleanup}, + {"ITc_inm_wifi_ap_foreach_vsie_p",ITc_inm_wifi_ap_foreach_vsie_p,ITs_inm_startup,ITs_inm_cleanup}, + {NULL, NULL} +}; + +#endif // __TCT_INM-NATIVE_H__