From: Sangchul Lee Date: Mon, 2 Aug 2021 08:46:11 +0000 (+0900) Subject: [UTC][capi-media-webrtc][ACR-1637] Add new API set for native WebRTC X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F94%2F262094%2F10;p=test%2Ftct%2Fnative%2Fapi.git [UTC][capi-media-webrtc][ACR-1637] Add new API set for native WebRTC Change-Id: I94a215c8a53ef73c6e5de0a1a6733d678b2ea21f Signed-off-by: Sangchul Lee --- diff --git a/packaging/TCT.spec b/packaging/TCT.spec index 8592ea7a8..bd5900af5 100755 --- a/packaging/TCT.spec +++ b/packaging/TCT.spec @@ -137,6 +137,7 @@ BuildRequires: pkgconfig(capi-ui-autofill) BuildRequires: pkgconfig(capi-system-battery-monitor) BuildRequires: pkgconfig(capi-ui-sticker-consumer) BuildRequires: pkgconfig(capi-ui-sticker-provider) +BuildRequires: pkgconfig(capi-media-webrtc) Requires(post): /sbin/ldconfig Requires(postun): /sbin/ldconfig @@ -1026,6 +1027,13 @@ Group: Development/Tools %description -n core-capi-ui-sticker-tests Native API Unit TC for sticker +%package -n core-webrtc-tests +Summary: Native API Unit TC for webrtc +Group: Development/Tools + +%description -n core-webrtc-tests +Native API Unit TC for webrtc + %package -n native-audio-io-ctc Summary: Native API Compatibility TC for audio-io @@ -2810,6 +2818,11 @@ pkgcmd -un org.tizen.testapp & /opt/share/packages/core-capi-ui-sticker-tests.xml /opt/usr/share/license/core-capi-ui-sticker-tests +%files -n core-webrtc-tests +/opt/usr/apps/core-webrtc-tests/* +/opt/share/packages/core-webrtc-tests.xml +/opt/usr/share/license/core-webrtc-tests + # End Adding for UTC****************************************************************************************************************************** %files -n native-audio-io-ctc diff --git a/packaging/utc/core-webrtc-tests.spec b/packaging/utc/core-webrtc-tests.spec new file mode 100644 index 000000000..26ea5502d --- /dev/null +++ b/packaging/utc/core-webrtc-tests.spec @@ -0,0 +1,75 @@ +%define MODULE_NAME webrtc +%define MODULE_LIBNAME capi-media-webrtc +Name: core-%{MODULE_NAME}-tests +Summary: Core API unit TC (%{name}) +Version: 0.1 +Release: 0 +Group: Development/Tools +License: Apache License, Version 2.0 +Source0: %{name}-%{version}.tar.gz +BuildRequires: pkgconfig(%{MODULE_LIBNAME}) +BuildRequires: cmake +BuildRequires: pkgconfig(capi-appfw-application) +BuildRequires: pkgconfig(capi-system-info) +BuildRequires: pkgconfig(dlog) +BuildRequires: pkgconfig(elementary) + +%description +Core API unit 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="utc" -DDEVICE_BUILD_TYPE="mobile" -DASANBUILD="true" -DCMAKE_INSTALL_PREFIX=%{_prefix} + %endif + %if %{?DEVICE_BUILD_TYPE_WEARABLE:1}0 + cmake . -DMODULE="%{MODULE_NAME}" -DBUILDTCTYPE="utc" -DDEVICE_BUILD_TYPE="wearable" -DASANBUILD="true" -DCMAKE_INSTALL_PREFIX=%{_prefix} + %endif + %if %{?DEVICE_BUILD_TYPE_TV:1}0 + cmake . -DMODULE="%{MODULE_NAME}" -DBUILDTCTYPE="utc" -DDEVICE_BUILD_TYPE="tv" -DASANBUILD="true" -DCMAKE_INSTALL_PREFIX=%{_prefix} + %endif + %if %{?DEVICE_BUILD_TYPE_TIZENIOT:1}0 + cmake . -DMODULE="%{MODULE_NAME}" -DBUILDTCTYPE="utc" -DDEVICE_BUILD_TYPE="tizeniot" -DASANBUILD="true" -DCMAKE_INSTALL_PREFIX=%{_prefix} + %endif +%else + %if %{?DEVICE_BUILD_TYPE_MOBILE:1}0 + cmake . -DMODULE="%{MODULE_NAME}" -DBUILDTCTYPE="utc" -DDEVICE_BUILD_TYPE="mobile" -DASANBUILD="false" -DCMAKE_INSTALL_PREFIX=%{_prefix} + %endif + %if %{?DEVICE_BUILD_TYPE_WEARABLE:1}0 + cmake . -DMODULE="%{MODULE_NAME}" -DBUILDTCTYPE="utc" -DDEVICE_BUILD_TYPE="wearable" -DASANBUILD="false" -DCMAKE_INSTALL_PREFIX=%{_prefix} + %endif + %if %{?DEVICE_BUILD_TYPE_TV:1}0 + cmake . -DMODULE="%{MODULE_NAME}" -DBUILDTCTYPE="utc" -DDEVICE_BUILD_TYPE="tv" -DASANBUILD="false" -DCMAKE_INSTALL_PREFIX=%{_prefix} + %endif + %if %{?DEVICE_BUILD_TYPE_TIZENIOT:1}0 + cmake . -DMODULE="%{MODULE_NAME}" -DBUILDTCTYPE="utc" -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/utc/%{name}.xml %{buildroot}/usr/share/packages/ +%post + +%postun + + +%files +/usr/apps/%{name}/* +/usr/share/packages/%{name}.xml +/usr/share/license/%{name} + diff --git a/packaging/utc/core-webrtc-tests.xml b/packaging/utc/core-webrtc-tests.xml new file mode 100644 index 000000000..ccf92a0de --- /dev/null +++ b/packaging/utc/core-webrtc-tests.xml @@ -0,0 +1,18 @@ + + + + test + Core API test Application + + + + + + + http://tizen.org/privilege/externalstorage + http://tizen.org/privilege/mediastorage + http://tizen.org/privilege/internet + http://tizen.org/privilege/camera + http://tizen.org/privilege/recorder + + diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c4a73c410..bb8438b1b 100755 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -195,6 +195,8 @@ ELSE( DEFINED MODULE ) ADD_SUBDIRECTORY(utc/multi-assistant) MESSAGE(STATUS "Building: ${CMAKE_CURRENT_SOURCE_DIR}/utc/capi-ui-sticker") ADD_SUBDIRECTORY(utc/capi-ui-sticker) + MESSAGE(STATUS "Building: ${CMAKE_CURRENT_SOURCE_DIR}/utc/webrtc") + ADD_SUBDIRECTORY(utc/webrtc) MESSAGE(STATUS "Building: ${CMAKE_CURRENT_SOURCE_DIR}/itc/accounts-svc") ADD_SUBDIRECTORY(itc/accounts-svc) MESSAGE(STATUS "Building: ${CMAKE_CURRENT_SOURCE_DIR}/itc/appcore-agent") diff --git a/src/utc/webrtc/CMakeLists.txt b/src/utc/webrtc/CMakeLists.txt new file mode 100644 index 000000000..97687bad5 --- /dev/null +++ b/src/utc/webrtc/CMakeLists.txt @@ -0,0 +1,39 @@ +SET(PKG_NAME "webrtc") + +SET(EXEC_NAME "tct-${PKG_NAME}-core") +SET(RPM_NAME "core-${PKG_NAME}-tests") + +SET(CAPI_LIB "capi-media-webrtc") +SET(TC_SOURCES + utc-media-webrtc.c + utc-media-webrtc-callback.c +) + +PKG_CHECK_MODULES(${CAPI_LIB} REQUIRED + ${CAPI_LIB} + capi-appfw-application + glib-2.0 + dlog +) + +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/utc/webrtc/public.list b/src/utc/webrtc/public.list new file mode 100644 index 000000000..90736ddd6 --- /dev/null +++ b/src/utc/webrtc/public.list @@ -0,0 +1,27 @@ +webrtc_create +webrtc_destroy +webrtc_start +webrtc_stop +webrtc_get_state +webrtc_add_media_source +webrtc_remove_media_source +webrtc_get_peer_connection_state +webrtc_get_signaling_state +webrtc_get_ice_gathering_state +webrtc_get_ice_connection_state +webrtc_set_state_changed_cb +webrtc_unset_state_changed_cb +webrtc_set_error_cb +webrtc_unset_error_cb +webrtc_set_ice_candidate_cb +webrtc_unset_ice_candidate_cb +webrtc_set_negotiation_needed_cb +webrtc_unset_negotiation_needed_cb +webrtc_set_peer_connection_state_change_cb +webrtc_unset_peer_connection_state_change_cb +webrtc_set_signaling_state_change_cb +webrtc_unset_signaling_state_change_cb +webrtc_set_ice_gathering_state_change_cb +webrtc_unset_ice_gathering_state_change_cb +webrtc_set_ice_connection_state_change_cb +webrtc_unset_ice_connection_state_change_cb \ No newline at end of file diff --git a/src/utc/webrtc/tct-webrtc-core.c b/src/utc/webrtc/tct-webrtc-core.c new file mode 100644 index 000000000..1558d41e5 --- /dev/null +++ b/src/utc/webrtc/tct-webrtc-core.c @@ -0,0 +1,142 @@ +/* + * Copyright (c) 2021 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include "tct_common.h" + +#ifdef MOBILE +#include "tct-webrtc-core_mobile.h" +#endif + +#ifdef WEARABLE +#include "tct-webrtc-core_wearable.h" +#endif + +#ifdef TV +#include "tct-webrtc-core_tv.h" +#endif + +#ifdef TIZENIOT +#include "tct-webrtc-core_tizeniot.h" +#endif + +#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)) ) + { + DUMP_UTC_ERRLOG(); + 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); + + CLOSE_UTC_ERRLOG(); + PRINT_TC_RESULT("%d",result); + + if(0 == strncmp(pszGetTCName, "utc_media_sound_manager_get_voip_session_mode_n2", strlen(pszGetTCName))) + { + /* Session TCs and Stream TCs should be seperated each other process */ + ui_app_exit(); + } + 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/utc/webrtc/tct-webrtc-core_mobile.h b/src/utc/webrtc/tct-webrtc-core_mobile.h new file mode 100644 index 000000000..7353e7a9c --- /dev/null +++ b/src/utc/webrtc/tct-webrtc-core_mobile.h @@ -0,0 +1,147 @@ +/* + * Copyright (c) 2021 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __TCT_WEBRTC-NATIVE_H__ +#define __TCT_WEBRTC-NATIVE_H__ + +#include "testcase.h" +#include "tct_common.h" + + +extern int utc_media_webrtc_create_p(void); +extern int utc_media_webrtc_create_n(void); +extern int utc_media_webrtc_destroy_p(void); +extern int utc_media_webrtc_destroy_n(void); +extern int utc_media_webrtc_start_p(void); +extern int utc_media_webrtc_start_n1(void); +extern int utc_media_webrtc_start_n2(void); +extern int utc_media_webrtc_stop_p(void); +extern int utc_media_webrtc_stop_n1(void); +extern int utc_media_webrtc_stop_n2(void); +extern int utc_media_webrtc_get_state_p(void); +extern int utc_media_webrtc_get_state_n1(void); +extern int utc_media_webrtc_get_state_n2(void); +extern int utc_media_webrtc_add_media_source_p(void); +extern int utc_media_webrtc_add_media_source_n1(void); +extern int utc_media_webrtc_add_media_source_n2(void); +extern int utc_media_webrtc_remove_media_source_p(void); +extern int utc_media_webrtc_remove_media_source_n1(void); +extern int utc_media_webrtc_remove_media_source_n2(void); +extern int utc_media_webrtc_get_peer_connection_state_p(void); +extern int utc_media_webrtc_get_peer_connection_state_n(void); +extern int utc_media_webrtc_get_signaling_state_p(void); +extern int utc_media_webrtc_get_signaling_state_n(void); +extern int utc_media_webrtc_get_ice_gathering_state_p(void); +extern int utc_media_webrtc_get_ice_gathering_state_n(void); +extern int utc_media_webrtc_get_ice_connection_state_p(void); +extern int utc_media_webrtc_get_ice_connection_state_n(void); +extern int utc_media_webrtc_set_state_changed_cb_p(void); +extern int utc_media_webrtc_set_state_changed_cb_n(void); +extern int utc_media_webrtc_unset_state_changed_cb_p(void); +extern int utc_media_webrtc_unset_state_changed_cb_n(void); +extern int utc_media_webrtc_set_error_cb_p(void); +extern int utc_media_webrtc_set_error_cb_n(void); +extern int utc_media_webrtc_unset_error_cb_p(void); +extern int utc_media_webrtc_unset_error_cb_n(void); +extern int utc_media_webrtc_set_ice_candidate_cb_p(void); +extern int utc_media_webrtc_set_ice_candidate_cb_n(void); +extern int utc_media_webrtc_unset_ice_candidate_cb_p(void); +extern int utc_media_webrtc_unset_ice_candidate_cb_n(void); +extern int utc_media_webrtc_set_negotiation_needed_cb_p(void); +extern int utc_media_webrtc_set_negotiation_needed_cb_n(void); +extern int utc_media_webrtc_unset_negotiation_needed_cb_p(void); +extern int utc_media_webrtc_unset_negotiation_needed_cb_n(void); +extern int utc_media_webrtc_set_peer_connection_state_change_cb_p(void); +extern int utc_media_webrtc_set_peer_connection_state_change_cb_n(void); +extern int utc_media_webrtc_unset_peer_connection_state_change_cb_p(void); +extern int utc_media_webrtc_unset_peer_connection_state_change_cb_n(void); +extern int utc_media_webrtc_set_signaling_state_change_cb_p(void); +extern int utc_media_webrtc_set_signaling_state_change_cb_n(void); +extern int utc_media_webrtc_unset_signaling_state_change_cb_p(void); +extern int utc_media_webrtc_unset_signaling_state_change_cb_n(void); +extern int utc_media_webrtc_set_ice_gathering_state_change_cb_p(void); +extern int utc_media_webrtc_set_ice_gathering_state_change_cb_n(void); +extern int utc_media_webrtc_unset_ice_gathering_state_change_cb_p(void); +extern int utc_media_webrtc_unset_ice_gathering_state_change_cb_n(void); +extern int utc_media_webrtc_set_ice_connection_state_change_cb_p(void); +extern int utc_media_webrtc_set_ice_connection_state_change_cb_n(void); +extern int utc_media_webrtc_unset_ice_connection_state_change_cb_p(void); +extern int utc_media_webrtc_unset_ice_connection_state_change_cb_n(void); + +testcase tc_array[] = { + {"utc_media_webrtc_create_p",utc_media_webrtc_create_p,NULL,NULL}, + {"utc_media_webrtc_create_n",utc_media_webrtc_create_n,NULL,NULL}, + {"utc_media_webrtc_destroy_p",utc_media_webrtc_destroy_p,NULL,NULL}, + {"utc_media_webrtc_destroy_n",utc_media_webrtc_destroy_n,NULL,NULL}, + {"utc_media_webrtc_start_p",utc_media_webrtc_start_p,NULL,NULL}, + {"utc_media_webrtc_start_n1",utc_media_webrtc_start_n1,NULL,NULL}, + {"utc_media_webrtc_start_n2",utc_media_webrtc_start_n2,NULL,NULL}, + {"utc_media_webrtc_stop_p",utc_media_webrtc_stop_p,NULL,NULL}, + {"utc_media_webrtc_stop_n1",utc_media_webrtc_stop_n1,NULL,NULL}, + {"utc_media_webrtc_stop_n2",utc_media_webrtc_stop_n2,NULL,NULL}, + {"utc_media_webrtc_get_state_p",utc_media_webrtc_get_state_p,NULL,NULL}, + {"utc_media_webrtc_get_state_n1",utc_media_webrtc_get_state_n1,NULL,NULL}, + {"utc_media_webrtc_get_state_n2",utc_media_webrtc_get_state_n2,NULL,NULL}, + {"utc_media_webrtc_add_media_source_p",utc_media_webrtc_add_media_source_p,NULL,NULL}, + {"utc_media_webrtc_add_media_source_n1",utc_media_webrtc_add_media_source_n1,NULL,NULL}, + {"utc_media_webrtc_add_media_source_n2",utc_media_webrtc_add_media_source_n2,NULL,NULL}, + {"utc_media_webrtc_remove_media_source_p",utc_media_webrtc_remove_media_source_p,NULL,NULL}, + {"utc_media_webrtc_remove_media_source_n1",utc_media_webrtc_remove_media_source_n1,NULL,NULL}, + {"utc_media_webrtc_remove_media_source_n2",utc_media_webrtc_remove_media_source_n2,NULL,NULL}, + {"utc_media_webrtc_get_peer_connection_state_p",utc_media_webrtc_get_peer_connection_state_p,NULL,NULL}, + {"utc_media_webrtc_get_peer_connection_state_n",utc_media_webrtc_get_peer_connection_state_n,NULL,NULL}, + {"utc_media_webrtc_get_signaling_state_p",utc_media_webrtc_get_signaling_state_p,NULL,NULL}, + {"utc_media_webrtc_get_signaling_state_n",utc_media_webrtc_get_signaling_state_n,NULL,NULL}, + {"utc_media_webrtc_get_ice_gathering_state_p",utc_media_webrtc_get_ice_gathering_state_p,NULL,NULL}, + {"utc_media_webrtc_get_ice_gathering_state_n",utc_media_webrtc_get_ice_gathering_state_n,NULL,NULL}, + {"utc_media_webrtc_get_ice_connection_state_p",utc_media_webrtc_get_ice_connection_state_p,NULL,NULL}, + {"utc_media_webrtc_get_ice_connection_state_n",utc_media_webrtc_get_ice_connection_state_n,NULL,NULL}, + {"utc_media_webrtc_set_state_changed_cb_p",utc_media_webrtc_set_state_changed_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_state_changed_cb_n",utc_media_webrtc_set_state_changed_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_state_changed_cb_p",utc_media_webrtc_unset_state_changed_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_state_changed_cb_n",utc_media_webrtc_unset_state_changed_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_error_cb_p",utc_media_webrtc_set_error_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_error_cb_n",utc_media_webrtc_set_error_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_error_cb_p",utc_media_webrtc_unset_error_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_error_cb_n",utc_media_webrtc_unset_error_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_ice_candidate_cb_p",utc_media_webrtc_set_ice_candidate_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_ice_candidate_cb_n",utc_media_webrtc_set_ice_candidate_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_ice_candidate_cb_p",utc_media_webrtc_unset_ice_candidate_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_ice_candidate_cb_n",utc_media_webrtc_unset_ice_candidate_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_negotiation_needed_cb_p",utc_media_webrtc_set_negotiation_needed_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_negotiation_needed_cb_n",utc_media_webrtc_set_negotiation_needed_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_negotiation_needed_cb_p",utc_media_webrtc_unset_negotiation_needed_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_negotiation_needed_cb_n",utc_media_webrtc_unset_negotiation_needed_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_peer_connection_state_change_cb_p",utc_media_webrtc_set_peer_connection_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_peer_connection_state_change_cb_n",utc_media_webrtc_set_peer_connection_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_peer_connection_state_change_cb_p",utc_media_webrtc_unset_peer_connection_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_peer_connection_state_change_cb_n",utc_media_webrtc_unset_peer_connection_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_signaling_state_change_cb_p",utc_media_webrtc_set_signaling_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_signaling_state_change_cb_n",utc_media_webrtc_set_signaling_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_signaling_state_change_cb_p",utc_media_webrtc_unset_signaling_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_signaling_state_change_cb_n",utc_media_webrtc_unset_signaling_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_ice_gathering_state_change_cb_p",utc_media_webrtc_set_ice_gathering_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_ice_gathering_state_change_cb_n",utc_media_webrtc_set_ice_gathering_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_ice_gathering_state_change_cb_p",utc_media_webrtc_unset_ice_gathering_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_ice_gathering_state_change_cb_n",utc_media_webrtc_unset_ice_gathering_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_ice_connection_state_change_cb_p",utc_media_webrtc_set_ice_connection_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_ice_connection_state_change_cb_n",utc_media_webrtc_set_ice_connection_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_ice_connection_state_change_cb_p",utc_media_webrtc_unset_ice_connection_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_ice_connection_state_change_cb_n",utc_media_webrtc_unset_ice_connection_state_change_cb_n,NULL,NULL}, + {NULL, NULL} +}; + +#endif // __TCT_WEBRTC-NATIVE_H__ diff --git a/src/utc/webrtc/tct-webrtc-core_tizeniot.h b/src/utc/webrtc/tct-webrtc-core_tizeniot.h new file mode 100644 index 000000000..7353e7a9c --- /dev/null +++ b/src/utc/webrtc/tct-webrtc-core_tizeniot.h @@ -0,0 +1,147 @@ +/* + * Copyright (c) 2021 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __TCT_WEBRTC-NATIVE_H__ +#define __TCT_WEBRTC-NATIVE_H__ + +#include "testcase.h" +#include "tct_common.h" + + +extern int utc_media_webrtc_create_p(void); +extern int utc_media_webrtc_create_n(void); +extern int utc_media_webrtc_destroy_p(void); +extern int utc_media_webrtc_destroy_n(void); +extern int utc_media_webrtc_start_p(void); +extern int utc_media_webrtc_start_n1(void); +extern int utc_media_webrtc_start_n2(void); +extern int utc_media_webrtc_stop_p(void); +extern int utc_media_webrtc_stop_n1(void); +extern int utc_media_webrtc_stop_n2(void); +extern int utc_media_webrtc_get_state_p(void); +extern int utc_media_webrtc_get_state_n1(void); +extern int utc_media_webrtc_get_state_n2(void); +extern int utc_media_webrtc_add_media_source_p(void); +extern int utc_media_webrtc_add_media_source_n1(void); +extern int utc_media_webrtc_add_media_source_n2(void); +extern int utc_media_webrtc_remove_media_source_p(void); +extern int utc_media_webrtc_remove_media_source_n1(void); +extern int utc_media_webrtc_remove_media_source_n2(void); +extern int utc_media_webrtc_get_peer_connection_state_p(void); +extern int utc_media_webrtc_get_peer_connection_state_n(void); +extern int utc_media_webrtc_get_signaling_state_p(void); +extern int utc_media_webrtc_get_signaling_state_n(void); +extern int utc_media_webrtc_get_ice_gathering_state_p(void); +extern int utc_media_webrtc_get_ice_gathering_state_n(void); +extern int utc_media_webrtc_get_ice_connection_state_p(void); +extern int utc_media_webrtc_get_ice_connection_state_n(void); +extern int utc_media_webrtc_set_state_changed_cb_p(void); +extern int utc_media_webrtc_set_state_changed_cb_n(void); +extern int utc_media_webrtc_unset_state_changed_cb_p(void); +extern int utc_media_webrtc_unset_state_changed_cb_n(void); +extern int utc_media_webrtc_set_error_cb_p(void); +extern int utc_media_webrtc_set_error_cb_n(void); +extern int utc_media_webrtc_unset_error_cb_p(void); +extern int utc_media_webrtc_unset_error_cb_n(void); +extern int utc_media_webrtc_set_ice_candidate_cb_p(void); +extern int utc_media_webrtc_set_ice_candidate_cb_n(void); +extern int utc_media_webrtc_unset_ice_candidate_cb_p(void); +extern int utc_media_webrtc_unset_ice_candidate_cb_n(void); +extern int utc_media_webrtc_set_negotiation_needed_cb_p(void); +extern int utc_media_webrtc_set_negotiation_needed_cb_n(void); +extern int utc_media_webrtc_unset_negotiation_needed_cb_p(void); +extern int utc_media_webrtc_unset_negotiation_needed_cb_n(void); +extern int utc_media_webrtc_set_peer_connection_state_change_cb_p(void); +extern int utc_media_webrtc_set_peer_connection_state_change_cb_n(void); +extern int utc_media_webrtc_unset_peer_connection_state_change_cb_p(void); +extern int utc_media_webrtc_unset_peer_connection_state_change_cb_n(void); +extern int utc_media_webrtc_set_signaling_state_change_cb_p(void); +extern int utc_media_webrtc_set_signaling_state_change_cb_n(void); +extern int utc_media_webrtc_unset_signaling_state_change_cb_p(void); +extern int utc_media_webrtc_unset_signaling_state_change_cb_n(void); +extern int utc_media_webrtc_set_ice_gathering_state_change_cb_p(void); +extern int utc_media_webrtc_set_ice_gathering_state_change_cb_n(void); +extern int utc_media_webrtc_unset_ice_gathering_state_change_cb_p(void); +extern int utc_media_webrtc_unset_ice_gathering_state_change_cb_n(void); +extern int utc_media_webrtc_set_ice_connection_state_change_cb_p(void); +extern int utc_media_webrtc_set_ice_connection_state_change_cb_n(void); +extern int utc_media_webrtc_unset_ice_connection_state_change_cb_p(void); +extern int utc_media_webrtc_unset_ice_connection_state_change_cb_n(void); + +testcase tc_array[] = { + {"utc_media_webrtc_create_p",utc_media_webrtc_create_p,NULL,NULL}, + {"utc_media_webrtc_create_n",utc_media_webrtc_create_n,NULL,NULL}, + {"utc_media_webrtc_destroy_p",utc_media_webrtc_destroy_p,NULL,NULL}, + {"utc_media_webrtc_destroy_n",utc_media_webrtc_destroy_n,NULL,NULL}, + {"utc_media_webrtc_start_p",utc_media_webrtc_start_p,NULL,NULL}, + {"utc_media_webrtc_start_n1",utc_media_webrtc_start_n1,NULL,NULL}, + {"utc_media_webrtc_start_n2",utc_media_webrtc_start_n2,NULL,NULL}, + {"utc_media_webrtc_stop_p",utc_media_webrtc_stop_p,NULL,NULL}, + {"utc_media_webrtc_stop_n1",utc_media_webrtc_stop_n1,NULL,NULL}, + {"utc_media_webrtc_stop_n2",utc_media_webrtc_stop_n2,NULL,NULL}, + {"utc_media_webrtc_get_state_p",utc_media_webrtc_get_state_p,NULL,NULL}, + {"utc_media_webrtc_get_state_n1",utc_media_webrtc_get_state_n1,NULL,NULL}, + {"utc_media_webrtc_get_state_n2",utc_media_webrtc_get_state_n2,NULL,NULL}, + {"utc_media_webrtc_add_media_source_p",utc_media_webrtc_add_media_source_p,NULL,NULL}, + {"utc_media_webrtc_add_media_source_n1",utc_media_webrtc_add_media_source_n1,NULL,NULL}, + {"utc_media_webrtc_add_media_source_n2",utc_media_webrtc_add_media_source_n2,NULL,NULL}, + {"utc_media_webrtc_remove_media_source_p",utc_media_webrtc_remove_media_source_p,NULL,NULL}, + {"utc_media_webrtc_remove_media_source_n1",utc_media_webrtc_remove_media_source_n1,NULL,NULL}, + {"utc_media_webrtc_remove_media_source_n2",utc_media_webrtc_remove_media_source_n2,NULL,NULL}, + {"utc_media_webrtc_get_peer_connection_state_p",utc_media_webrtc_get_peer_connection_state_p,NULL,NULL}, + {"utc_media_webrtc_get_peer_connection_state_n",utc_media_webrtc_get_peer_connection_state_n,NULL,NULL}, + {"utc_media_webrtc_get_signaling_state_p",utc_media_webrtc_get_signaling_state_p,NULL,NULL}, + {"utc_media_webrtc_get_signaling_state_n",utc_media_webrtc_get_signaling_state_n,NULL,NULL}, + {"utc_media_webrtc_get_ice_gathering_state_p",utc_media_webrtc_get_ice_gathering_state_p,NULL,NULL}, + {"utc_media_webrtc_get_ice_gathering_state_n",utc_media_webrtc_get_ice_gathering_state_n,NULL,NULL}, + {"utc_media_webrtc_get_ice_connection_state_p",utc_media_webrtc_get_ice_connection_state_p,NULL,NULL}, + {"utc_media_webrtc_get_ice_connection_state_n",utc_media_webrtc_get_ice_connection_state_n,NULL,NULL}, + {"utc_media_webrtc_set_state_changed_cb_p",utc_media_webrtc_set_state_changed_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_state_changed_cb_n",utc_media_webrtc_set_state_changed_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_state_changed_cb_p",utc_media_webrtc_unset_state_changed_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_state_changed_cb_n",utc_media_webrtc_unset_state_changed_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_error_cb_p",utc_media_webrtc_set_error_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_error_cb_n",utc_media_webrtc_set_error_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_error_cb_p",utc_media_webrtc_unset_error_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_error_cb_n",utc_media_webrtc_unset_error_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_ice_candidate_cb_p",utc_media_webrtc_set_ice_candidate_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_ice_candidate_cb_n",utc_media_webrtc_set_ice_candidate_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_ice_candidate_cb_p",utc_media_webrtc_unset_ice_candidate_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_ice_candidate_cb_n",utc_media_webrtc_unset_ice_candidate_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_negotiation_needed_cb_p",utc_media_webrtc_set_negotiation_needed_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_negotiation_needed_cb_n",utc_media_webrtc_set_negotiation_needed_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_negotiation_needed_cb_p",utc_media_webrtc_unset_negotiation_needed_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_negotiation_needed_cb_n",utc_media_webrtc_unset_negotiation_needed_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_peer_connection_state_change_cb_p",utc_media_webrtc_set_peer_connection_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_peer_connection_state_change_cb_n",utc_media_webrtc_set_peer_connection_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_peer_connection_state_change_cb_p",utc_media_webrtc_unset_peer_connection_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_peer_connection_state_change_cb_n",utc_media_webrtc_unset_peer_connection_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_signaling_state_change_cb_p",utc_media_webrtc_set_signaling_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_signaling_state_change_cb_n",utc_media_webrtc_set_signaling_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_signaling_state_change_cb_p",utc_media_webrtc_unset_signaling_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_signaling_state_change_cb_n",utc_media_webrtc_unset_signaling_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_ice_gathering_state_change_cb_p",utc_media_webrtc_set_ice_gathering_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_ice_gathering_state_change_cb_n",utc_media_webrtc_set_ice_gathering_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_ice_gathering_state_change_cb_p",utc_media_webrtc_unset_ice_gathering_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_ice_gathering_state_change_cb_n",utc_media_webrtc_unset_ice_gathering_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_ice_connection_state_change_cb_p",utc_media_webrtc_set_ice_connection_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_ice_connection_state_change_cb_n",utc_media_webrtc_set_ice_connection_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_ice_connection_state_change_cb_p",utc_media_webrtc_unset_ice_connection_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_ice_connection_state_change_cb_n",utc_media_webrtc_unset_ice_connection_state_change_cb_n,NULL,NULL}, + {NULL, NULL} +}; + +#endif // __TCT_WEBRTC-NATIVE_H__ diff --git a/src/utc/webrtc/tct-webrtc-core_tv.h b/src/utc/webrtc/tct-webrtc-core_tv.h new file mode 100644 index 000000000..7353e7a9c --- /dev/null +++ b/src/utc/webrtc/tct-webrtc-core_tv.h @@ -0,0 +1,147 @@ +/* + * Copyright (c) 2021 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __TCT_WEBRTC-NATIVE_H__ +#define __TCT_WEBRTC-NATIVE_H__ + +#include "testcase.h" +#include "tct_common.h" + + +extern int utc_media_webrtc_create_p(void); +extern int utc_media_webrtc_create_n(void); +extern int utc_media_webrtc_destroy_p(void); +extern int utc_media_webrtc_destroy_n(void); +extern int utc_media_webrtc_start_p(void); +extern int utc_media_webrtc_start_n1(void); +extern int utc_media_webrtc_start_n2(void); +extern int utc_media_webrtc_stop_p(void); +extern int utc_media_webrtc_stop_n1(void); +extern int utc_media_webrtc_stop_n2(void); +extern int utc_media_webrtc_get_state_p(void); +extern int utc_media_webrtc_get_state_n1(void); +extern int utc_media_webrtc_get_state_n2(void); +extern int utc_media_webrtc_add_media_source_p(void); +extern int utc_media_webrtc_add_media_source_n1(void); +extern int utc_media_webrtc_add_media_source_n2(void); +extern int utc_media_webrtc_remove_media_source_p(void); +extern int utc_media_webrtc_remove_media_source_n1(void); +extern int utc_media_webrtc_remove_media_source_n2(void); +extern int utc_media_webrtc_get_peer_connection_state_p(void); +extern int utc_media_webrtc_get_peer_connection_state_n(void); +extern int utc_media_webrtc_get_signaling_state_p(void); +extern int utc_media_webrtc_get_signaling_state_n(void); +extern int utc_media_webrtc_get_ice_gathering_state_p(void); +extern int utc_media_webrtc_get_ice_gathering_state_n(void); +extern int utc_media_webrtc_get_ice_connection_state_p(void); +extern int utc_media_webrtc_get_ice_connection_state_n(void); +extern int utc_media_webrtc_set_state_changed_cb_p(void); +extern int utc_media_webrtc_set_state_changed_cb_n(void); +extern int utc_media_webrtc_unset_state_changed_cb_p(void); +extern int utc_media_webrtc_unset_state_changed_cb_n(void); +extern int utc_media_webrtc_set_error_cb_p(void); +extern int utc_media_webrtc_set_error_cb_n(void); +extern int utc_media_webrtc_unset_error_cb_p(void); +extern int utc_media_webrtc_unset_error_cb_n(void); +extern int utc_media_webrtc_set_ice_candidate_cb_p(void); +extern int utc_media_webrtc_set_ice_candidate_cb_n(void); +extern int utc_media_webrtc_unset_ice_candidate_cb_p(void); +extern int utc_media_webrtc_unset_ice_candidate_cb_n(void); +extern int utc_media_webrtc_set_negotiation_needed_cb_p(void); +extern int utc_media_webrtc_set_negotiation_needed_cb_n(void); +extern int utc_media_webrtc_unset_negotiation_needed_cb_p(void); +extern int utc_media_webrtc_unset_negotiation_needed_cb_n(void); +extern int utc_media_webrtc_set_peer_connection_state_change_cb_p(void); +extern int utc_media_webrtc_set_peer_connection_state_change_cb_n(void); +extern int utc_media_webrtc_unset_peer_connection_state_change_cb_p(void); +extern int utc_media_webrtc_unset_peer_connection_state_change_cb_n(void); +extern int utc_media_webrtc_set_signaling_state_change_cb_p(void); +extern int utc_media_webrtc_set_signaling_state_change_cb_n(void); +extern int utc_media_webrtc_unset_signaling_state_change_cb_p(void); +extern int utc_media_webrtc_unset_signaling_state_change_cb_n(void); +extern int utc_media_webrtc_set_ice_gathering_state_change_cb_p(void); +extern int utc_media_webrtc_set_ice_gathering_state_change_cb_n(void); +extern int utc_media_webrtc_unset_ice_gathering_state_change_cb_p(void); +extern int utc_media_webrtc_unset_ice_gathering_state_change_cb_n(void); +extern int utc_media_webrtc_set_ice_connection_state_change_cb_p(void); +extern int utc_media_webrtc_set_ice_connection_state_change_cb_n(void); +extern int utc_media_webrtc_unset_ice_connection_state_change_cb_p(void); +extern int utc_media_webrtc_unset_ice_connection_state_change_cb_n(void); + +testcase tc_array[] = { + {"utc_media_webrtc_create_p",utc_media_webrtc_create_p,NULL,NULL}, + {"utc_media_webrtc_create_n",utc_media_webrtc_create_n,NULL,NULL}, + {"utc_media_webrtc_destroy_p",utc_media_webrtc_destroy_p,NULL,NULL}, + {"utc_media_webrtc_destroy_n",utc_media_webrtc_destroy_n,NULL,NULL}, + {"utc_media_webrtc_start_p",utc_media_webrtc_start_p,NULL,NULL}, + {"utc_media_webrtc_start_n1",utc_media_webrtc_start_n1,NULL,NULL}, + {"utc_media_webrtc_start_n2",utc_media_webrtc_start_n2,NULL,NULL}, + {"utc_media_webrtc_stop_p",utc_media_webrtc_stop_p,NULL,NULL}, + {"utc_media_webrtc_stop_n1",utc_media_webrtc_stop_n1,NULL,NULL}, + {"utc_media_webrtc_stop_n2",utc_media_webrtc_stop_n2,NULL,NULL}, + {"utc_media_webrtc_get_state_p",utc_media_webrtc_get_state_p,NULL,NULL}, + {"utc_media_webrtc_get_state_n1",utc_media_webrtc_get_state_n1,NULL,NULL}, + {"utc_media_webrtc_get_state_n2",utc_media_webrtc_get_state_n2,NULL,NULL}, + {"utc_media_webrtc_add_media_source_p",utc_media_webrtc_add_media_source_p,NULL,NULL}, + {"utc_media_webrtc_add_media_source_n1",utc_media_webrtc_add_media_source_n1,NULL,NULL}, + {"utc_media_webrtc_add_media_source_n2",utc_media_webrtc_add_media_source_n2,NULL,NULL}, + {"utc_media_webrtc_remove_media_source_p",utc_media_webrtc_remove_media_source_p,NULL,NULL}, + {"utc_media_webrtc_remove_media_source_n1",utc_media_webrtc_remove_media_source_n1,NULL,NULL}, + {"utc_media_webrtc_remove_media_source_n2",utc_media_webrtc_remove_media_source_n2,NULL,NULL}, + {"utc_media_webrtc_get_peer_connection_state_p",utc_media_webrtc_get_peer_connection_state_p,NULL,NULL}, + {"utc_media_webrtc_get_peer_connection_state_n",utc_media_webrtc_get_peer_connection_state_n,NULL,NULL}, + {"utc_media_webrtc_get_signaling_state_p",utc_media_webrtc_get_signaling_state_p,NULL,NULL}, + {"utc_media_webrtc_get_signaling_state_n",utc_media_webrtc_get_signaling_state_n,NULL,NULL}, + {"utc_media_webrtc_get_ice_gathering_state_p",utc_media_webrtc_get_ice_gathering_state_p,NULL,NULL}, + {"utc_media_webrtc_get_ice_gathering_state_n",utc_media_webrtc_get_ice_gathering_state_n,NULL,NULL}, + {"utc_media_webrtc_get_ice_connection_state_p",utc_media_webrtc_get_ice_connection_state_p,NULL,NULL}, + {"utc_media_webrtc_get_ice_connection_state_n",utc_media_webrtc_get_ice_connection_state_n,NULL,NULL}, + {"utc_media_webrtc_set_state_changed_cb_p",utc_media_webrtc_set_state_changed_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_state_changed_cb_n",utc_media_webrtc_set_state_changed_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_state_changed_cb_p",utc_media_webrtc_unset_state_changed_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_state_changed_cb_n",utc_media_webrtc_unset_state_changed_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_error_cb_p",utc_media_webrtc_set_error_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_error_cb_n",utc_media_webrtc_set_error_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_error_cb_p",utc_media_webrtc_unset_error_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_error_cb_n",utc_media_webrtc_unset_error_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_ice_candidate_cb_p",utc_media_webrtc_set_ice_candidate_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_ice_candidate_cb_n",utc_media_webrtc_set_ice_candidate_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_ice_candidate_cb_p",utc_media_webrtc_unset_ice_candidate_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_ice_candidate_cb_n",utc_media_webrtc_unset_ice_candidate_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_negotiation_needed_cb_p",utc_media_webrtc_set_negotiation_needed_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_negotiation_needed_cb_n",utc_media_webrtc_set_negotiation_needed_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_negotiation_needed_cb_p",utc_media_webrtc_unset_negotiation_needed_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_negotiation_needed_cb_n",utc_media_webrtc_unset_negotiation_needed_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_peer_connection_state_change_cb_p",utc_media_webrtc_set_peer_connection_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_peer_connection_state_change_cb_n",utc_media_webrtc_set_peer_connection_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_peer_connection_state_change_cb_p",utc_media_webrtc_unset_peer_connection_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_peer_connection_state_change_cb_n",utc_media_webrtc_unset_peer_connection_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_signaling_state_change_cb_p",utc_media_webrtc_set_signaling_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_signaling_state_change_cb_n",utc_media_webrtc_set_signaling_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_signaling_state_change_cb_p",utc_media_webrtc_unset_signaling_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_signaling_state_change_cb_n",utc_media_webrtc_unset_signaling_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_ice_gathering_state_change_cb_p",utc_media_webrtc_set_ice_gathering_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_ice_gathering_state_change_cb_n",utc_media_webrtc_set_ice_gathering_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_ice_gathering_state_change_cb_p",utc_media_webrtc_unset_ice_gathering_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_ice_gathering_state_change_cb_n",utc_media_webrtc_unset_ice_gathering_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_ice_connection_state_change_cb_p",utc_media_webrtc_set_ice_connection_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_ice_connection_state_change_cb_n",utc_media_webrtc_set_ice_connection_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_ice_connection_state_change_cb_p",utc_media_webrtc_unset_ice_connection_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_ice_connection_state_change_cb_n",utc_media_webrtc_unset_ice_connection_state_change_cb_n,NULL,NULL}, + {NULL, NULL} +}; + +#endif // __TCT_WEBRTC-NATIVE_H__ diff --git a/src/utc/webrtc/tct-webrtc-core_wearable.h b/src/utc/webrtc/tct-webrtc-core_wearable.h new file mode 100644 index 000000000..7353e7a9c --- /dev/null +++ b/src/utc/webrtc/tct-webrtc-core_wearable.h @@ -0,0 +1,147 @@ +/* + * Copyright (c) 2021 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __TCT_WEBRTC-NATIVE_H__ +#define __TCT_WEBRTC-NATIVE_H__ + +#include "testcase.h" +#include "tct_common.h" + + +extern int utc_media_webrtc_create_p(void); +extern int utc_media_webrtc_create_n(void); +extern int utc_media_webrtc_destroy_p(void); +extern int utc_media_webrtc_destroy_n(void); +extern int utc_media_webrtc_start_p(void); +extern int utc_media_webrtc_start_n1(void); +extern int utc_media_webrtc_start_n2(void); +extern int utc_media_webrtc_stop_p(void); +extern int utc_media_webrtc_stop_n1(void); +extern int utc_media_webrtc_stop_n2(void); +extern int utc_media_webrtc_get_state_p(void); +extern int utc_media_webrtc_get_state_n1(void); +extern int utc_media_webrtc_get_state_n2(void); +extern int utc_media_webrtc_add_media_source_p(void); +extern int utc_media_webrtc_add_media_source_n1(void); +extern int utc_media_webrtc_add_media_source_n2(void); +extern int utc_media_webrtc_remove_media_source_p(void); +extern int utc_media_webrtc_remove_media_source_n1(void); +extern int utc_media_webrtc_remove_media_source_n2(void); +extern int utc_media_webrtc_get_peer_connection_state_p(void); +extern int utc_media_webrtc_get_peer_connection_state_n(void); +extern int utc_media_webrtc_get_signaling_state_p(void); +extern int utc_media_webrtc_get_signaling_state_n(void); +extern int utc_media_webrtc_get_ice_gathering_state_p(void); +extern int utc_media_webrtc_get_ice_gathering_state_n(void); +extern int utc_media_webrtc_get_ice_connection_state_p(void); +extern int utc_media_webrtc_get_ice_connection_state_n(void); +extern int utc_media_webrtc_set_state_changed_cb_p(void); +extern int utc_media_webrtc_set_state_changed_cb_n(void); +extern int utc_media_webrtc_unset_state_changed_cb_p(void); +extern int utc_media_webrtc_unset_state_changed_cb_n(void); +extern int utc_media_webrtc_set_error_cb_p(void); +extern int utc_media_webrtc_set_error_cb_n(void); +extern int utc_media_webrtc_unset_error_cb_p(void); +extern int utc_media_webrtc_unset_error_cb_n(void); +extern int utc_media_webrtc_set_ice_candidate_cb_p(void); +extern int utc_media_webrtc_set_ice_candidate_cb_n(void); +extern int utc_media_webrtc_unset_ice_candidate_cb_p(void); +extern int utc_media_webrtc_unset_ice_candidate_cb_n(void); +extern int utc_media_webrtc_set_negotiation_needed_cb_p(void); +extern int utc_media_webrtc_set_negotiation_needed_cb_n(void); +extern int utc_media_webrtc_unset_negotiation_needed_cb_p(void); +extern int utc_media_webrtc_unset_negotiation_needed_cb_n(void); +extern int utc_media_webrtc_set_peer_connection_state_change_cb_p(void); +extern int utc_media_webrtc_set_peer_connection_state_change_cb_n(void); +extern int utc_media_webrtc_unset_peer_connection_state_change_cb_p(void); +extern int utc_media_webrtc_unset_peer_connection_state_change_cb_n(void); +extern int utc_media_webrtc_set_signaling_state_change_cb_p(void); +extern int utc_media_webrtc_set_signaling_state_change_cb_n(void); +extern int utc_media_webrtc_unset_signaling_state_change_cb_p(void); +extern int utc_media_webrtc_unset_signaling_state_change_cb_n(void); +extern int utc_media_webrtc_set_ice_gathering_state_change_cb_p(void); +extern int utc_media_webrtc_set_ice_gathering_state_change_cb_n(void); +extern int utc_media_webrtc_unset_ice_gathering_state_change_cb_p(void); +extern int utc_media_webrtc_unset_ice_gathering_state_change_cb_n(void); +extern int utc_media_webrtc_set_ice_connection_state_change_cb_p(void); +extern int utc_media_webrtc_set_ice_connection_state_change_cb_n(void); +extern int utc_media_webrtc_unset_ice_connection_state_change_cb_p(void); +extern int utc_media_webrtc_unset_ice_connection_state_change_cb_n(void); + +testcase tc_array[] = { + {"utc_media_webrtc_create_p",utc_media_webrtc_create_p,NULL,NULL}, + {"utc_media_webrtc_create_n",utc_media_webrtc_create_n,NULL,NULL}, + {"utc_media_webrtc_destroy_p",utc_media_webrtc_destroy_p,NULL,NULL}, + {"utc_media_webrtc_destroy_n",utc_media_webrtc_destroy_n,NULL,NULL}, + {"utc_media_webrtc_start_p",utc_media_webrtc_start_p,NULL,NULL}, + {"utc_media_webrtc_start_n1",utc_media_webrtc_start_n1,NULL,NULL}, + {"utc_media_webrtc_start_n2",utc_media_webrtc_start_n2,NULL,NULL}, + {"utc_media_webrtc_stop_p",utc_media_webrtc_stop_p,NULL,NULL}, + {"utc_media_webrtc_stop_n1",utc_media_webrtc_stop_n1,NULL,NULL}, + {"utc_media_webrtc_stop_n2",utc_media_webrtc_stop_n2,NULL,NULL}, + {"utc_media_webrtc_get_state_p",utc_media_webrtc_get_state_p,NULL,NULL}, + {"utc_media_webrtc_get_state_n1",utc_media_webrtc_get_state_n1,NULL,NULL}, + {"utc_media_webrtc_get_state_n2",utc_media_webrtc_get_state_n2,NULL,NULL}, + {"utc_media_webrtc_add_media_source_p",utc_media_webrtc_add_media_source_p,NULL,NULL}, + {"utc_media_webrtc_add_media_source_n1",utc_media_webrtc_add_media_source_n1,NULL,NULL}, + {"utc_media_webrtc_add_media_source_n2",utc_media_webrtc_add_media_source_n2,NULL,NULL}, + {"utc_media_webrtc_remove_media_source_p",utc_media_webrtc_remove_media_source_p,NULL,NULL}, + {"utc_media_webrtc_remove_media_source_n1",utc_media_webrtc_remove_media_source_n1,NULL,NULL}, + {"utc_media_webrtc_remove_media_source_n2",utc_media_webrtc_remove_media_source_n2,NULL,NULL}, + {"utc_media_webrtc_get_peer_connection_state_p",utc_media_webrtc_get_peer_connection_state_p,NULL,NULL}, + {"utc_media_webrtc_get_peer_connection_state_n",utc_media_webrtc_get_peer_connection_state_n,NULL,NULL}, + {"utc_media_webrtc_get_signaling_state_p",utc_media_webrtc_get_signaling_state_p,NULL,NULL}, + {"utc_media_webrtc_get_signaling_state_n",utc_media_webrtc_get_signaling_state_n,NULL,NULL}, + {"utc_media_webrtc_get_ice_gathering_state_p",utc_media_webrtc_get_ice_gathering_state_p,NULL,NULL}, + {"utc_media_webrtc_get_ice_gathering_state_n",utc_media_webrtc_get_ice_gathering_state_n,NULL,NULL}, + {"utc_media_webrtc_get_ice_connection_state_p",utc_media_webrtc_get_ice_connection_state_p,NULL,NULL}, + {"utc_media_webrtc_get_ice_connection_state_n",utc_media_webrtc_get_ice_connection_state_n,NULL,NULL}, + {"utc_media_webrtc_set_state_changed_cb_p",utc_media_webrtc_set_state_changed_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_state_changed_cb_n",utc_media_webrtc_set_state_changed_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_state_changed_cb_p",utc_media_webrtc_unset_state_changed_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_state_changed_cb_n",utc_media_webrtc_unset_state_changed_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_error_cb_p",utc_media_webrtc_set_error_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_error_cb_n",utc_media_webrtc_set_error_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_error_cb_p",utc_media_webrtc_unset_error_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_error_cb_n",utc_media_webrtc_unset_error_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_ice_candidate_cb_p",utc_media_webrtc_set_ice_candidate_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_ice_candidate_cb_n",utc_media_webrtc_set_ice_candidate_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_ice_candidate_cb_p",utc_media_webrtc_unset_ice_candidate_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_ice_candidate_cb_n",utc_media_webrtc_unset_ice_candidate_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_negotiation_needed_cb_p",utc_media_webrtc_set_negotiation_needed_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_negotiation_needed_cb_n",utc_media_webrtc_set_negotiation_needed_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_negotiation_needed_cb_p",utc_media_webrtc_unset_negotiation_needed_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_negotiation_needed_cb_n",utc_media_webrtc_unset_negotiation_needed_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_peer_connection_state_change_cb_p",utc_media_webrtc_set_peer_connection_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_peer_connection_state_change_cb_n",utc_media_webrtc_set_peer_connection_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_peer_connection_state_change_cb_p",utc_media_webrtc_unset_peer_connection_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_peer_connection_state_change_cb_n",utc_media_webrtc_unset_peer_connection_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_signaling_state_change_cb_p",utc_media_webrtc_set_signaling_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_signaling_state_change_cb_n",utc_media_webrtc_set_signaling_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_signaling_state_change_cb_p",utc_media_webrtc_unset_signaling_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_signaling_state_change_cb_n",utc_media_webrtc_unset_signaling_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_ice_gathering_state_change_cb_p",utc_media_webrtc_set_ice_gathering_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_ice_gathering_state_change_cb_n",utc_media_webrtc_set_ice_gathering_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_ice_gathering_state_change_cb_p",utc_media_webrtc_unset_ice_gathering_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_ice_gathering_state_change_cb_n",utc_media_webrtc_unset_ice_gathering_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_set_ice_connection_state_change_cb_p",utc_media_webrtc_set_ice_connection_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_set_ice_connection_state_change_cb_n",utc_media_webrtc_set_ice_connection_state_change_cb_n,NULL,NULL}, + {"utc_media_webrtc_unset_ice_connection_state_change_cb_p",utc_media_webrtc_unset_ice_connection_state_change_cb_p,NULL,NULL}, + {"utc_media_webrtc_unset_ice_connection_state_change_cb_n",utc_media_webrtc_unset_ice_connection_state_change_cb_n,NULL,NULL}, + {NULL, NULL} +}; + +#endif // __TCT_WEBRTC-NATIVE_H__ diff --git a/src/utc/webrtc/utc-media-webrtc-callback.c b/src/utc/webrtc/utc-media-webrtc-callback.c new file mode 100644 index 000000000..26e2d0cab --- /dev/null +++ b/src/utc/webrtc/utc-media-webrtc-callback.c @@ -0,0 +1,710 @@ +/* + * Copyright (c) 2021 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "assert.h" +#include + +static void __webrtc_state_changed_cb(webrtc_h webrtc, webrtc_state_e previous, webrtc_state_e current, void *user_data) +{ +} + +static void __webrtc_error_cb(webrtc_h webrtc, webrtc_error_e error, webrtc_state_e state, void *user_data) +{ +} + +static void __webrtc_ice_candidate_cb(webrtc_h webrtc, const char *candidate, void *user_data) +{ +} + +static void __webrtc_negotiation_needed_cb(webrtc_h webrtc, void *user_data) +{ +} + +static void __webrtc_peer_connection_state_change_cb(webrtc_h webrtc, webrtc_peer_connection_state_e state, void *user_data) +{ +} + +static void __webrtc_signaling_state_change_cb(webrtc_h webrtc, webrtc_signaling_state_e state, void *user_data) +{ +} + +static void __webrtc_ice_gathering_state_change_cb(webrtc_h webrtc, webrtc_ice_gathering_state_e state, void *user_data) +{ +} + +static void __webrtc_ice_connection_state_change_cb(webrtc_h webrtc, webrtc_ice_connection_state_e state, void *user_data) +{ +} + +/** + * @testcase utc_media_webrtc_set_state_changed_cb_p + * @since_tizen 6.5 + * @description Sets a callback function to be invoked when the state is changed + */ +int utc_media_webrtc_set_state_changed_cb_p(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_state_changed_cb(webrtc, __webrtc_state_changed_cb, NULL); + assert_eq(ret, WEBRTC_ERROR_NONE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_set_state_changed_cb_n + * @since_tizen 6.5 + * @description Sets a callback function to be invoked when the state is changed + * - Sets the callback without callback function pointer to get negative result + */ +int utc_media_webrtc_set_state_changed_cb_n(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_state_changed_cb(webrtc, NULL, NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_unset_state_changed_cb_p + * @since_tizen 6.5 + * @description Unsets the state changed callback + */ +int utc_media_webrtc_unset_state_changed_cb_p(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_state_changed_cb(webrtc, __webrtc_state_changed_cb, NULL); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_unset_state_changed_cb(webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_unset_state_changed_cb_n + * @since_tizen 6.5 + * @description Unsets the state changed callback + * - Unsets the callback without handle to get negative result + */ +int utc_media_webrtc_unset_state_changed_cb_n(void) +{ + int ret = webrtc_unset_state_changed_cb(NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_media_webrtc_set_error_cb_p + * @since_tizen 6.5 + * @description Sets a callback function to be invoked when an error occurs + */ +int utc_media_webrtc_set_error_cb_p(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_error_cb(webrtc, __webrtc_error_cb, NULL); + assert_eq(ret, WEBRTC_ERROR_NONE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_set_error_cb_n + * @since_tizen 6.5 + * @description Sets a callback function to be invoked when an error occurs + * - Sets the callback without callback function pointer to get negative result + */ +int utc_media_webrtc_set_error_cb_n(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_error_cb(webrtc, NULL, NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_unset_error_cb_p + * @since_tizen 6.5 + * @description Unsets the error callback + */ +int utc_media_webrtc_unset_error_cb_p(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_error_cb(webrtc, __webrtc_error_cb, NULL); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_unset_error_cb(webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_unset_error_cb_n + * @since_tizen 6.5 + * @description Unsets the error callback + * - Unsets the callback without handle to get negative result + */ +int utc_media_webrtc_unset_error_cb_n(void) +{ + int ret = webrtc_unset_error_cb(NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_media_webrtc_set_ice_candidate_cb_p + * @since_tizen 6.5 + * @description Sets an ICE candidate callback function + */ +int utc_media_webrtc_set_ice_candidate_cb_p(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_ice_candidate_cb(webrtc, __webrtc_ice_candidate_cb, NULL); + assert_eq(ret, WEBRTC_ERROR_NONE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_set_ice_candidate_cb_n + * @since_tizen 6.5 + * @description Sets an ICE candidate callback function +* - Sets the callback without callback function pointer to get negative result + */ +int utc_media_webrtc_set_ice_candidate_cb_n(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_ice_candidate_cb(webrtc, NULL, NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_unset_ice_candidate_cb_p + * @since_tizen 6.5 + * @description Unsets the ice candidate callback + */ +int utc_media_webrtc_unset_ice_candidate_cb_p(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_ice_candidate_cb(webrtc, __webrtc_ice_candidate_cb, NULL); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_unset_ice_candidate_cb(webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_unset_ice_candidate_cb_n + * @since_tizen 6.5 + * @description Unsets the state changed callback + * - Unsets the callback without handle to get negative result + */ +int utc_media_webrtc_unset_ice_candidate_cb_n(void) +{ + int ret = webrtc_unset_ice_candidate_cb(NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_media_webrtc_set_negotiation_needed_cb_p + * @since_tizen 6.5 + * @description Sets a negotiation needed callback + */ +int utc_media_webrtc_set_negotiation_needed_cb_p(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_negotiation_needed_cb(webrtc, __webrtc_negotiation_needed_cb, NULL); + assert_eq(ret, WEBRTC_ERROR_NONE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_set_negotiation_needed_cb_n + * @since_tizen 6.5 + * @description Sets a negotiation needed callback + * - Sets the callback without callback function pointer to get negative result + */ +int utc_media_webrtc_set_negotiation_needed_cb_n(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_negotiation_needed_cb(webrtc, NULL, NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_unset_negotiation_needed_cb_p + * @since_tizen 6.5 + * @description Unsets the negotiation needed callback + */ +int utc_media_webrtc_unset_negotiation_needed_cb_p(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_negotiation_needed_cb(webrtc, __webrtc_negotiation_needed_cb, NULL); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_unset_negotiation_needed_cb(webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_unset_negotiation_needed_cb_n + * @since_tizen 6.5 + * @description Unsets the negotiation needed callback + * - Unsets the callback without handle to get negative result + */ +int utc_media_webrtc_unset_negotiation_needed_cb_n(void) +{ + int ret = webrtc_unset_negotiation_needed_cb(NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_media_webrtc_set_peer_connection_state_change_cb_p + * @since_tizen 6.5 + * @description Sets a peer connection state change callback + */ +int utc_media_webrtc_set_peer_connection_state_change_cb_p(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_peer_connection_state_change_cb(webrtc, __webrtc_peer_connection_state_change_cb, NULL); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_unset_peer_connection_state_change_cb(webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_set_peer_connection_state_change_cb_n + * @since_tizen 6.5 + * @description Sets a peer connection state change callback + * - Sets the callback without callback function pointer to get negative result + */ +int utc_media_webrtc_set_peer_connection_state_change_cb_n(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_peer_connection_state_change_cb(webrtc, NULL, NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_unset_peer_connection_state_change_cb_p + * @since_tizen 6.5 + * @description Unsets the peer connection state change callback + */ +int utc_media_webrtc_unset_peer_connection_state_change_cb_p(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_peer_connection_state_change_cb(webrtc, __webrtc_peer_connection_state_change_cb, NULL); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_unset_peer_connection_state_change_cb(webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_unset_peer_connection_state_change_cb_n + * @since_tizen 6.5 + * @description Unsets the peer connection state change callback + * - Unsets the callback without handle to get negative result + */ +int utc_media_webrtc_unset_peer_connection_state_change_cb_n(void) +{ + int ret = webrtc_unset_peer_connection_state_change_cb(NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_media_webrtc_set_signaling_state_change_cb_p + * @since_tizen 6.5 + * @description Sets a signaling state change callback + */ +int utc_media_webrtc_set_signaling_state_change_cb_p(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_signaling_state_change_cb(webrtc, __webrtc_signaling_state_change_cb, NULL); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_unset_signaling_state_change_cb(webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_set_signaling_state_change_cb_n + * @since_tizen 6.5 + * @description Sets a signaling state change callback + * - Sets the callback without callback function pointer to get negative result + */ +int utc_media_webrtc_set_signaling_state_change_cb_n(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_signaling_state_change_cb(webrtc, NULL, NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_unset_signaling_state_change_cb_p + * @since_tizen 6.5 + * @description Unsets the signaling state change callback + */ +int utc_media_webrtc_unset_signaling_state_change_cb_p(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_signaling_state_change_cb(webrtc, __webrtc_signaling_state_change_cb, NULL); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_unset_signaling_state_change_cb(webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_unset_signaling_state_change_cb_n + * @since_tizen 6.5 + * @description Unsets the signaling state change callback + * - Unsets the callback without handle to get negative result + */ +int utc_media_webrtc_unset_signaling_state_change_cb_n(void) +{ + int ret = webrtc_unset_signaling_state_change_cb(NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_media_webrtc_set_ice_gathering_state_change_cb_p + * @since_tizen 6.5 + * @description Sets a ice gathering state change callback + */ +int utc_media_webrtc_set_ice_gathering_state_change_cb_p(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_ice_gathering_state_change_cb(webrtc, __webrtc_ice_gathering_state_change_cb, NULL); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_unset_ice_gathering_state_change_cb(webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_set_ice_gathering_state_change_cb_n + * @since_tizen 6.5 + * @description Sets a ice gathering state change callback + * - Sets the callback without callback function pointer to get negative result + */ +int utc_media_webrtc_set_ice_gathering_state_change_cb_n(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_ice_gathering_state_change_cb(webrtc, NULL, NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_unset_ice_gathering_state_change_cb_p + * @since_tizen 6.5 + * @description Unsets the ice gathering state change callback + */ +int utc_media_webrtc_unset_ice_gathering_state_change_cb_p(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_ice_gathering_state_change_cb(webrtc, __webrtc_ice_gathering_state_change_cb, NULL); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_unset_ice_gathering_state_change_cb(webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_unset_ice_gathering_state_change_cb_n + * @since_tizen 6.5 + * @description Unsets the ice gathering state change callback + * - Unsets the callback without handle to get negative result + */ +int utc_media_webrtc_unset_ice_gathering_state_change_cb_n(void) +{ + int ret = webrtc_unset_ice_gathering_state_change_cb(NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_media_webrtc_set_ice_connection_state_change_cb_p + * @since_tizen 6.5 + * @description Sets a ice connection state change callback + */ +int utc_media_webrtc_set_ice_connection_state_change_cb_p(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_ice_connection_state_change_cb(webrtc, __webrtc_ice_connection_state_change_cb, NULL); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_unset_ice_connection_state_change_cb(webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_set_ice_connection_state_change_cb_n + * @since_tizen 6.5 + * @description Sets a ice connection state change callback + * - Sets the callback without callback function pointer to get negative result + */ +int utc_media_webrtc_set_ice_connection_state_change_cb_n(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_ice_connection_state_change_cb(webrtc, NULL, NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_unset_ice_connection_state_change_cb_p + * @since_tizen 6.5 + * @description Unsets the ice connection state change callback + */ +int utc_media_webrtc_unset_ice_connection_state_change_cb_p(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_ice_connection_state_change_cb(webrtc, __webrtc_ice_connection_state_change_cb, NULL); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_unset_ice_connection_state_change_cb(webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_unset_ice_connection_state_change_cb_n + * @since_tizen 6.5 + * @description Unsets the ice connection state change callback + * - Unsets the callback without handle to get negative result + */ +int utc_media_webrtc_unset_ice_connection_state_change_cb_n(void) +{ + int ret = webrtc_unset_ice_connection_state_change_cb(NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + return 0; +} diff --git a/src/utc/webrtc/utc-media-webrtc.c b/src/utc/webrtc/utc-media-webrtc.c new file mode 100644 index 000000000..3f24d3e2b --- /dev/null +++ b/src/utc/webrtc/utc-media-webrtc.c @@ -0,0 +1,678 @@ +/* + * Copyright (c) 2021 Samsung Electronics Co., Ltd All Rights Reserved + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "assert.h" +#include +#include +#include + +#define TIMEOUT_MS 1000 + +static GMainLoop *g_mainloop = NULL; +static int g_timeout_id = 0; + +static gboolean __timeout_func(gpointer data) +{ + dlog_print(DLOG_DEBUG, "NativeTCT", "[%s(%d)] g_main_loop_quit()", __FUNCTION__, __LINE__); + + g_main_loop_quit((GMainLoop *) data); + return FALSE; +} + +static void __quit_mainloop() +{ + dlog_print(DLOG_DEBUG, "NativeTCT", "[%s(%d)] g_main_loop_quit()", __FUNCTION__, __LINE__); + + if (g_timeout_id > 0) { + g_source_remove(g_timeout_id); + g_timeout_id = 0; + } + if (g_mainloop != NULL) + g_main_loop_quit(g_mainloop); +} + +static void __run_mainloop() +{ + g_mainloop = g_main_loop_new(NULL, FALSE); + g_timeout_id = g_timeout_add(TIMEOUT_MS, __timeout_func, g_mainloop); + + dlog_print(DLOG_DEBUG, "NativeTCT", "[%s(%d)] call g_main_loop_run()", __FUNCTION__, __LINE__); + + g_main_loop_run(g_mainloop); + + dlog_print(DLOG_DEBUG, "NativeTCT", "[%s(%d)] quit g_main_loop_run()", __FUNCTION__, __LINE__); + + g_main_loop_unref(g_mainloop); + g_mainloop = NULL; +} + +static void __webrtc_ice_candidate_cb(webrtc_h webrtc, const char *candidate, void *user_data) +{ +} + +static void __webrtc_state_changed_cb(webrtc_h webrtc, webrtc_state_e previous, webrtc_state_e current, void *user_data) +{ + dlog_print(DLOG_DEBUG, "NativeTCT", "[%s:%d] current state[%d]", __FUNCTION__, __LINE__, current); + + __quit_mainloop(); +} + +/** + * @testcase utc_media_webrtc_create_p + * @since_tizen 6.5 + * @description Creates a webrtc handle + */ +int utc_media_webrtc_create_p(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_create_n + * @since_tizen 6.5 + * @description Creates a webrtc handle\n + * - Pass invalid parameter to get negative result + */ +int utc_media_webrtc_create_n(void) +{ + int ret = webrtc_create(NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_media_webrtc_destroy_p + * @since_tizen 6.5 + * @description Destroys the webrtc handle\n + * - Create a webrtc handle\n + * - Pass the webrtc handle to destroy + */ +int utc_media_webrtc_destroy_p(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_destroy(webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + return 0; +} + +/** + * @testcase utc_media_webrtc_destroy_n + * @since_tizen 6.5 + * @description Destroys the webrtc handle\n + * - Pass invalid parameter to get negative result + */ +int utc_media_webrtc_destroy_n(void) +{ + int ret = webrtc_destroy(NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_media_webrtc_start_p + * @since_tizen 6.5 + * @description Starts the webrtc handle\n + * - Create a webrtc handle\n + * - Set ICE candidate callback\n + * - Start the handle + */ +int utc_media_webrtc_start_p(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_ice_candidate_cb(webrtc, __webrtc_ice_candidate_cb, NULL); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_start(webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_start_n1 + * @since_tizen 6.5 + * @description Starts the webrtc handle\n + * - Pass invalid parameter to get negative result + */ +int utc_media_webrtc_start_n1(void) +{ + int ret = webrtc_start(NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_media_webrtc_start_n2 + * @since_tizen 6.5 + * @description Starts the webrtc handle\n + * - Create a webrtc handle\n + * - Start the handle without setting ice candidate callback to get negative result + */ +int utc_media_webrtc_start_n2(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_start(webrtc); + assert_eq(ret, WEBRTC_ERROR_INVALID_OPERATION); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_stop_p + * @since_tizen 6.5 + * @description Stops the webrtc handle\n + * - Create a webrtc handle\n + * - Set ICE candidate callback\n + * - Start the handle\n + * - Stop the handle + */ +int utc_media_webrtc_stop_p(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_ice_candidate_cb(webrtc, __webrtc_ice_candidate_cb, NULL); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_set_state_changed_cb(webrtc, __webrtc_state_changed_cb, NULL); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_start(webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + __run_mainloop(); + + ret = webrtc_stop(webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_stop_n1 + * @since_tizen 6.5 + * @description Stops the webrtc handle\n + * - Pass invalid parameter to get negative result + */ +int utc_media_webrtc_stop_n1(void) +{ + int ret = webrtc_stop(NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_media_webrtc_stop_n2 + * @since_tizen 6.5 + * @description Stops the webrtc handle\n + * - Create a webrtc handle\n + * - Stop the handle without start to get negative result + */ +int utc_media_webrtc_stop_n2(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_stop(webrtc); + assert_eq(ret, WEBRTC_ERROR_INVALID_STATE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_get_state_p + * @since_tizen 6.5 + * @description Gets the webrtc state\n + * - Create a webrtc handle\n + * - Get state of the handle + */ +int utc_media_webrtc_get_state_p(void) +{ + int ret; + webrtc_h webrtc; + webrtc_state_e state; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_get_state(webrtc, &state); + assert_eq(ret, WEBRTC_ERROR_NONE); + assert_eq(state, WEBRTC_STATE_IDLE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_get_state_n1 + * @since_tizen 6.5 + * @description Gets the webrtc state\n + * - Create a webrtc handle\n + * - Pass invalid parameter to get negative result + */ +int utc_media_webrtc_get_state_n1(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_get_state(webrtc, NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_get_state_n2 + * @since_tizen 6.5 + * @description Gets the webrtc state\n + * - Pass invalid parameter to get negative result + */ +int utc_media_webrtc_get_state_n2(void) +{ + webrtc_state_e state; + int ret = webrtc_get_state(NULL, &state); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_media_webrtc_add_media_source_p + * @since_tizen 6.5 + * @description Adds a media source\n + * - Create a webrtc handle\n + * - Add a media source + */ +int utc_media_webrtc_add_media_source_p(void) +{ + int ret; + webrtc_h webrtc; + unsigned int id; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_add_media_source(webrtc, WEBRTC_MEDIA_SOURCE_TYPE_AUDIOTEST, &id); + assert_eq(ret, WEBRTC_ERROR_NONE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_add_media_source_n1 + * @since_tizen 6.5 + * @description Adds a media source\n + * - Create a webrtc handle\n + * - Pass invalid parameter to get negative result + */ +int utc_media_webrtc_add_media_source_n1(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_add_media_source(webrtc, WEBRTC_MEDIA_SOURCE_TYPE_VIDEOTEST, NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_add_media_source_n2 + * @since_tizen 6.5 + * @description Adds a media source\n + * - Create a webrtc handle\n + * - Pass invalid parameter to get negative result + */ +int utc_media_webrtc_add_media_source_n2(void) +{ + unsigned int id; + + int ret = webrtc_add_media_source(NULL, WEBRTC_MEDIA_SOURCE_TYPE_MIC, &id); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + return 0; +} + +/** + * @testcase utc_media_webrtc_remove_media_source_p + * @since_tizen 6.5 + * @description Removes the media source\n + * - Create a webrtc handle\n + * - Add a media source\n + * - Remove the media source + */ +int utc_media_webrtc_remove_media_source_p(void) +{ + int ret; + webrtc_h webrtc; + unsigned int id; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_add_media_source(webrtc, WEBRTC_MEDIA_SOURCE_TYPE_CAMERA, &id); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_remove_media_source(webrtc, id); + assert_eq(ret, WEBRTC_ERROR_NONE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_remove_media_source_n1 + * @since_tizen 6.5 + * @description Removes the media source\n + * - Create a webrtc handle\n + * - Add a media source\n + * - Pass invalid parameter to get negative result + */ +int utc_media_webrtc_remove_media_source_n1(void) +{ + int ret; + webrtc_h webrtc; + unsigned int id; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_add_media_source(webrtc, WEBRTC_MEDIA_SOURCE_TYPE_SCREEN, &id); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_remove_media_source(webrtc, id + 1); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_remove_media_source_n2 + * @since_tizen 6.5 + * @description Removes the media source\n + * - Create a webrtc handle\n + * - Add a media source\n + * - Pass invalid parameter to get negative result + */ +int utc_media_webrtc_remove_media_source_n2(void) +{ + int ret; + webrtc_h webrtc; + unsigned int id; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_add_media_source(webrtc, WEBRTC_MEDIA_SOURCE_TYPE_FILE, &id); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_remove_media_source(webrtc, id - 1); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_get_peer_connection_state_p + * @since_tizen 6.5 + * @description Gets the webrtc peer connection state\n + * - Create a webrtc handle\n + * - Get the state + */ +int utc_media_webrtc_get_peer_connection_state_p(void) +{ + int ret; + webrtc_h webrtc; + webrtc_peer_connection_state_e state; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_get_peer_connection_state(webrtc, &state); + assert_eq(ret, WEBRTC_ERROR_NONE); + assert_eq(state, WEBRTC_PEER_CONNECTION_STATE_NEW); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_get_peer_connection_state_n + * @since_tizen 6.5 + * @description Gets the webrtc peer connection state\n + * - Create a webrtc handle\n + * - Pass invalid parameter to get negative result + */ +int utc_media_webrtc_get_peer_connection_state_n(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_get_peer_connection_state(webrtc, NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_get_signaling_state_p + * @since_tizen 6.5 + * @description Gets the webrtc signaling state\n + * - Create a webrtc handle\n + * - Get the state + */ +int utc_media_webrtc_get_signaling_state_p(void) +{ + int ret; + webrtc_h webrtc; + webrtc_signaling_state_e state; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_get_signaling_state(webrtc, &state); + assert_eq(ret, WEBRTC_ERROR_NONE); + assert_eq(state, WEBRTC_SIGNALING_STATE_STABLE); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_get_signaling_state_n + * @since_tizen 6.5 + * @description Gets the webrtc signaling state\n + * - Create a webrtc handle\n + * - Pass invalid parameter to get negative result + */ +int utc_media_webrtc_get_signaling_state_n(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_get_signaling_state(webrtc, NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_get_ice_gathering_state_p + * @since_tizen 6.5 + * @description Gets the webrtc ice gathering state\n + * - Create a webrtc handle\n + * - Get the state + */ +int utc_media_webrtc_get_ice_gathering_state_p(void) +{ + int ret; + webrtc_h webrtc; + webrtc_ice_gathering_state_e state; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_get_ice_gathering_state(webrtc, &state); + assert_eq(ret, WEBRTC_ERROR_NONE); + assert_eq(state, WEBRTC_ICE_GATHERING_STATE_NEW); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_get_ice_gathering_state_n + * @since_tizen 6.5 + * @description Gets the webrtc ice gathering state\n + * - Create a webrtc handle\n + * - Pass invalid parameter to get negative result + */ +int utc_media_webrtc_get_ice_gathering_state_n(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_get_ice_gathering_state(webrtc, NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_get_ice_connection_state_p + * @since_tizen 6.5 + * @description Gets the webrtc ice connection state\n + * - Create a webrtc handle\n + * - Get the state + */ +int utc_media_webrtc_get_ice_connection_state_p(void) +{ + int ret; + webrtc_h webrtc; + webrtc_ice_connection_state_e state; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_get_ice_connection_state(webrtc, &state); + assert_eq(ret, WEBRTC_ERROR_NONE); + assert_eq(state, WEBRTC_ICE_CONNECTION_STATE_NEW); + + webrtc_destroy(webrtc); + + return 0; +} + +/** + * @testcase utc_media_webrtc_get_ice_connection_state_n + * @since_tizen 6.5 + * @description Gets the webrtc ice connection state\n + * - Create a webrtc handle\n + * - Pass invalid parameter to get negative result + */ +int utc_media_webrtc_get_ice_connection_state_n(void) +{ + int ret; + webrtc_h webrtc; + + ret = webrtc_create(&webrtc); + assert_eq(ret, WEBRTC_ERROR_NONE); + + ret = webrtc_get_ice_connection_state(webrtc, NULL); + assert_eq(ret, WEBRTC_ERROR_INVALID_PARAMETER); + + webrtc_destroy(webrtc); + + return 0; +}