%description -n native-wifi-itc
Native API Integration TC for wifi
+%package -n native-multi-assistant-itc
+Summary: Native API Integration TC for multi-assistant
+Group: Development/Tools
+
+%description -n native-multi-assistant-itc
+Native API Integration TC for multi-assistant
#************End Adding ITC******************************
%package -n core-accounts-svc-tests
cp src/itc/wifi/cert.crt %{buildroot}/opt/usr/apps/native-wifi-itc/data/cert.crt
cp src/itc/wifi/testing.pem %{buildroot}/opt/usr/apps/native-wifi-itc/data/testing.pem
+#native-multi-assistant-itc
+cp LICENSE %{buildroot}/opt/usr/share/license/native-multi-assistant-itc
+cp packaging/itc/native-multi-assistant-itc.xml %{buildroot}/opt/share/packages/
+mkdir -p %{buildroot}/opt/usr/apps/native-multi-assistant-itc/bin
+#cp templates/external_wrapper.sh %{buildroot}/opt/usr/apps/native-multi-assistant-itc/bin
+
#*********End Adding ITC*********
#core-accounts-svc-tests
/opt/share/packages/native-wifi-itc.xml
/opt/usr/share/license/native-wifi-itc
+%files -n native-multi-assistant-itc
+/opt/usr/apps/native-multi-assistant-itc/*
+/opt/share/packages/native-multi-assistant-itc.xml
+/opt/usr/share/license/native-multi-assistant-itc
#******************End Adding ITC******************
--- /dev/null
+%define MODULE_NAME multi-assistant
+%define MODULE_LIBNAME multi-assistant
+Name: native-%{MODULE_NAME}-tests
+Summary: Native API Integration 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
+%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}/usr/apps/%{name}/bin
+#cp templates/external_wrapper.sh %{buildroot}/usr/apps/%{name}/bin
+%post
+
+%postun
+
+
+%files
+%{APP_PATH}%{name}/*
+/usr/share/packages/native-%{MODULE_NAME}-itc.xml
+/usr/share/license/%{name}
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" package="native-multi-assistant-itc" version="0.1.0" api-version="3.0">
+ <label>nativeMultiAssistantTest</label>
+ <author email="test@tizen.org" href="www.tizen.org">test</author>
+ <description>native API test Application</description>
+ <ui-application appid="native.multi-assistant-tests" exec="/usr/apps/core-multi-assistant-tests/bin/tct-multi-assistant-native" nodisplay="false" multiple="false" type="capp" taskmanage="true">
+ <background-category value="background-network"/>
+ <background-category value="download"/>
+ <background-category value="iot-communication"/>
+ <background-category value="location"/>
+ <background-category value="media"/>
+ <background-category value="sensor"/>
+ </ui-application>
+ <privileges>
+ <privilege>http://tizen.org/privilege/recorder</privilege>
+ </privileges>
+</manifest>
ADD_SUBDIRECTORY(itc/wifi-direct)
MESSAGE(STATUS "Building: ${CMAKE_CURRENT_SOURCE_DIR}/itc/wifi")
ADD_SUBDIRECTORY(itc/wifi)
+ MESSAGE(STATUS "Building: ${CMAKE_CURRENT_SOURCE_DIR}/itc/multi-assistant")
+ ADD_SUBDIRECTORY(itc/multi-assistant)
MESSAGE(STATUS "Building: ${CMAKE_CURRENT_SOURCE_DIR}/ctc/audio-io")
ADD_SUBDIRECTORY(ctc/audio-io)
MESSAGE(STATUS "Building: ${CMAKE_CURRENT_SOURCE_DIR}/ctc/camera")
--- /dev/null
+SET(PKG_NAME "multi-assistant")
+
+SET(EXEC_NAME "tct-${PKG_NAME}-native")
+SET(RPM_NAME "native-${PKG_NAME}-itc")
+
+SET(CAPI_LIB "multi-assistant")
+SET(TC_SOURCES
+ ITs-multi-assistant-common.c
+ ITs-multi-assistant.c
+)
+
+PKG_CHECK_MODULES(${CAPI_LIB} REQUIRED
+ ${CAPI_LIB}
+)
+
+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()
--- /dev/null
+//
+// Copyright (c) 2018 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 <stdio.h>
+#include <string.h>
+#include "tct_common.h"
+#include <bundle.h>
+
+#include <malloc.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
+#include <glib.h>
+#include <stdbool.h>
+#include <app.h>
+#include <dlog.h>
+
+#include "ITs-multi-assistant-common.h"
+
+/** @addtogroup itc-multi-assistant
+* @ingroup itc
+* @{
+*/
+
+//Add helper function definitions here
+
+/**
+* @function MaGetError
+* @description Maps error enumerators to string values
+* @parameter nRet : error code returned
+* @return error string
+*/
+char *MaGetError(int nRet)
+{
+ char *szErrorVal = NULL;
+
+ switch ( nRet )
+ {
+ case MA_ERROR_NONE: szErrorVal = "MA_ERROR_NONE"; break;
+ case MA_ERROR_OUT_OF_MEMORY: szErrorVal = "MA_ERROR_OUT_OF_MEMORY"; break;
+ case MA_ERROR_IO_ERROR: szErrorVal = "MA_ERROR_IO_ERROR"; break;
+ case MA_ERROR_INVALID_PARAMETER: szErrorVal = "MA_ERROR_INVALID_PARAMETER"; break;
+ case MA_ERROR_TIMED_OUT: szErrorVal = "MA_ERROR_TIMED_OUT"; break;
+ case MA_ERROR_RECORDER_BUSY: szErrorVal = "MA_ERROR_RECORDER_BUSY"; break;
+ case MA_ERROR_PERMISSION_DENIED: szErrorVal = "MA_ERROR_PERMISSION_DENIED"; break;
+ case MA_ERROR_NOT_SUPPORTED: szErrorVal = "MA_ERROR_NOT_SUPPORTED"; break;
+ case MA_ERROR_INVALID_STATE: szErrorVal = "MA_ERROR_INVALID_STATE"; break;
+ case MA_ERROR_INVALID_LANGUAGE: szErrorVal = "MA_ERROR_INVALID_LANGUAGE"; break;
+ case MA_ERROR_ENGINE_NOT_FOUND: szErrorVal = "MA_ERROR_ENGINE_NOT_FOUND"; break;
+ case MA_ERROR_OPERATION_FAILED: szErrorVal = "MA_ERROR_OPERATION_FAILED"; break;
+ case MA_ERROR_SERVICE_RESET: szErrorVal = "MA_ERROR_SERVICE_RESET"; break;
+ case MA_ERROR_NOT_SUPPORTED_FEATURE: szErrorVal = "MA_ERROR_NOT_SUPPORTED_FEATURE"; break;
+ default: szErrorVal = "Unknown Error"; break;
+ }
+ return szErrorVal;
+}
+
+/** @} */
--- /dev/null
+//
+// 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 _MULTI_ASSISTANT_COMMON_H_
+#define _MULTI_ASSISTANT_H_
+
+#include <stdio.h>
+#include <string.h>
+#include "tct_common.h"
+#include <bundle.h>
+#include <multi_assistant.h>
+#include <multi_assistant_common.h>
+
+/** @addtogroup itc-dlog
+* @ingroup itc
+* @{
+*/
+
+#define API_NAMESPACE "MULTI_ASSISTANT_ITC"
+#define FEATURE_MULTI_ASSISTANT "http://tizen.org/feature/multi_assistant"
+#define FEATURE_MICROPHONE "http://tizen.org/feature/microphone"
+#define TIME_LIMIT 20
+
+static bool g_CallBackHit = false;
+static bool g_bMultiAssistant = false;
+static bool g_bMicrophone = false;
+static bool g_bIsFeatureMismatched = false;
+static bool g_bFeatureNotSupported = false;
+static bool g_bMAInit = false;
+static ma_state_e g_nCurrentState = MA_STATE_NONE;
+
+void MaLanguageChangedCb(const char* previous, const char* current, void* user_data);
+void MaAudioStreamingCb(ma_audio_streaming_event_e event, char* buffer, int len, void* user_data);
+void MaStateChangedCb(ma_state_e previous, ma_state_e current, void* user_data);
+void MaErrorCb(ma_error_e reason, void* user_data);
+char *MaGetError(int error);
+
+#define START_TEST {\
+ if(g_bFeatureNotSupported)\
+ {\
+ FPRINTF("[Line:%d][%s] Feature Multi-Assistant not supported\\n", __LINE__, API_NAMESPACE);\
+ return 0;\
+ }\
+\
+ if( g_bIsFeatureMismatched )\
+ {\
+ FPRINTF("[Line:%d][%s] Feature Mismatch Error\\n", __LINE__, API_NAMESPACE);\
+ return 1;\
+ }\
+\
+ if ( !g_bMAInit )\
+ {\
+ FPRINTF("[Line : %d] [API_NAMESPACE] Precondition of multi-assistant failed\\n", __LINE__);\
+ return 1;\
+ }\
+}
+
+#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 WAIT_FOR_CALLBACK(state) {\
+ time_t time1 = time(NULL);\
+ while(state != g_nCurrentState)\
+ {\
+ time_t time2 = time(NULL);\
+ int diff = (int)difftime(time2, time1);\
+ if ( diff > TIME_LIMIT )\
+ {\
+ break;\
+ }\
+ ecore_main_loop_iterate();\
+ }\
+}\
+
+/** @} */
+#endif //_ITS_MULTI_ASSISTANT_COMMON_H_
--- /dev/null
+//
+// 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 "assert.h"
+#include <stdlib.h>
+#include <system_info.h>
+#include <Ecore.h>
+#include <multi_assistant.h>
+
+#include "ITs-multi-assistant-common.h"
+
+/** @addtogroup itc-multi-assistant
+* @ingroup itc
+* @{
+*/
+
+//& set: multi-assistant
+
+
+/****************************************************Callback Start****************************************************/
+
+/**
+* @function MaLanguageChangedCb
+* @description Callback Function
+* @parameters const char* previous, const char* current, void* user_data
+* @return NA
+*/
+void MaLanguageChangedCb(const char* previous, const char* current, void* user_data)
+{
+ FPRINTF("[Line : %d][%s] %s Callback Invoked\\n", __LINE__, API_NAMESPACE, "MaLanguageChangedCb");
+ g_CallBackHit = true;
+ return;
+}
+
+/**
+* @function MaAudioStreamingCb
+* @description Callback Function
+* @parameters ma_audio_streaming_event_e event, char* buffer, int len, void* user_data
+* @return NA
+*/
+void MaAudioStreamingCb(ma_audio_streaming_event_e event, char* buffer, int len, void* user_data)
+{
+ FPRINTF("[Line : %d][%s] %s Callback Invoked\\n", __LINE__, API_NAMESPACE, "MaAudioStreamingCb");
+ g_CallBackHit = true;
+ return;
+}
+
+/**
+* @function MaStateChangedCb
+* @description Callback Function
+* @parameters ma_state_e previous, ma_state_e current, void* user_data
+* @return NA
+*/
+void MaStateChangedCb(ma_state_e previous, ma_state_e current, void* user_data)
+{
+ FPRINTF("[Line : %d][%s] %s Callback Invoked\\n", __LINE__, API_NAMESPACE, "MaStateChangedCb");
+ g_CallBackHit = true;
+ g_nCurrentState = current;
+ return;
+}
+
+/**
+* @function MaErrorCb
+* @description Callback Function
+* @parameters ma_error_e reason, void* user_data
+* @return NA
+*/
+void MaErrorCb(ma_error_e reason, void* user_data)
+{
+ FPRINTF("[Line : %d][%s] %s Callback Invoked\\n", __LINE__, API_NAMESPACE, "MaErrorCb");
+ g_CallBackHit = true;
+ return;
+}
+
+/*****************************************************Callback End*****************************************************/
+
+/**
+* @testcase ITs_ma_startup
+* @author SRID(priya.kohli)
+* @reviewer SRID(awadhesh1.s)
+* @type auto
+* @since_tizen 5.0
+* @description NA
+* @scenario Called before each test, creates connection to push service
+* @apicovered NA
+* @passcase NA
+* @failcase NA
+* @precondition NA
+* @postcondition NA
+*/
+void ITs_ma_startup(void)
+{
+ int nRet = -1;
+ g_bMAInit = true;
+ g_bFeatureNotSupported = false;
+ g_bIsFeatureMismatched = false;
+ struct stat stBuff;
+ if ( stat(ERR_LOG, &stBuff) == 0 )
+ {
+ remove(ERR_LOG);
+ }
+
+#if DEBUG
+ FPRINTF("[Line : %d][%s] TEST SUIT start-up: ITs_Multi_Assistant_p\\n", __LINE__, API_NAMESPACE);
+#endif
+
+ g_bMultiAssistant = TCTCheckSystemInfoFeatureSupported(FEATURE_MULTI_ASSISTANT, API_NAMESPACE);
+ g_bMicrophone = TCTCheckSystemInfoFeatureSupported(FEATURE_MICROPHONE, API_NAMESPACE);
+
+ nRet = ma_initialize();
+ if(!g_bMultiAssistant || !g_bMicrophone)
+ {
+ if(nRet != MA_ERROR_NOT_SUPPORTED)
+ {
+ FPRINTF("[Line : %d][%s] Feature mismatch.\\n", __LINE__, API_NAMESPACE);
+ g_bIsFeatureMismatched = true;
+ return;
+ }
+ else
+ {
+ g_bFeatureNotSupported = true;
+ return;
+ }
+ }
+ if (nRet != MA_ERROR_NONE)
+ g_bMAInit = false;
+
+ return;
+}
+
+/**
+* @testcase ITs_ma_cleanup
+* @author SRID(priya.kohli)
+* @reviewer SRID(awadhesh1.s)
+* @type auto
+* @since_tizen 5.0
+* @description NA
+* @scenario Called after each test, Closes the connection and releases all its resources
+* @apicovered NA
+* @passcase NA
+* @failcase NA
+* @precondition NA
+* @postcondition NA
+*/
+void ITs_ma_cleanup(void)
+{
+#if DEBUG
+ FPRINTF("[Line : %d][%s] TEST SUIT clean-up: ITs_Multi_Assistant_p\\n", __LINE__, API_NAMESPACE);
+#endif
+
+ int nRet = -1;
+ if(g_bMAInit)
+ {
+ nRet = ma_deinitialize();
+ PRINT_RESULT_NORETURN(nRet, MA_ERROR_NONE, "ma_deinitialize", MaGetError(nRet));
+ }
+}
+
+/**
+* @testcase ITc_ma_initialize_deinitialize_p
+* @since_tizen 5.0
+* @author SRID(priya.kohli)
+* @reviewer SRID(awadhesh1.s)
+* @type auto
+* @description Initializes and deinitializes multi-assistant client.
+* @scenario Initializes and deinitializes multi-assistant client.
+* @apicovered ma_initialize, ma_deinitialize
+* @passcase ma_initialize, ma_deinitialize returns 0
+* @failcase ma_initialize, ma_deinitialize returns 1
+* @precondition N/A
+* @postcondition If this function is called, the state will be #MA_STATE_INITIALIZED.
+* */
+int ITc_ma_initialize_deinitialize_p(void)
+{
+ START_TEST;
+ int nRet = -1;
+
+ nRet = ma_deinitialize();
+ PRINT_RESULT(nRet, MA_ERROR_NONE, "ma_deinitialize", MaGetError(nRet));
+
+ nRet = ma_initialize();
+ PRINT_RESULT(nRet, MA_ERROR_NONE, "ma_initialize", MaGetError(nRet));
+
+ return 0;
+}
+
+/**
+* @testcase ITc_ma_get_state_p
+* @since_tizen 5.0
+* @author SRID(priya.kohli)
+* @reviewer SRID(awadhesh1.s)
+* @type auto
+* @description Gets the current state of the multi-assistant client.
+* @scenario Gets the current state of the multi-assistant client.
+* @apicovered ma_get_state
+* @passcase ma_get_state returns 0
+* @failcase ma_get_state returns 1
+* @precondition N/A
+* @postcondition N/A
+* */
+int ITc_ma_get_state_p(void)
+{
+ START_TEST;
+ int nRet = -1;
+ ma_state_e eState = -1;
+
+ nRet = ma_get_state(&eState);
+ PRINT_RESULT(nRet, MA_ERROR_NONE, "ma_get_state", MaGetError(nRet));
+ if( eState < MA_STATE_NONE || eState > MA_STATE_READY )
+ {
+ FPRINTF("[Line : %d][%s] %s failed. eState = %d\\n", __LINE__, API_NAMESPACE, "ma_get_state", eState);
+ return 1;
+ }
+
+ return 0;
+}
+
+/**
+* @testcase ITc_ma_get_current_language_p
+* @since_tizen 5.0
+* @author SRID(priya.kohli)
+* @reviewer SRID(awadhesh1.s)
+* @type auto
+* @description Gets the current language of multi-assistant client.
+* @scenario Gets the current language of multi-assistant client.
+* @apicovered ma_get_current_language
+* @passcase ma_get_current_language returns 0
+* @failcase ma_get_current_language returns 1
+* @precondition N/A
+* @postcondition N/A
+* */
+int ITc_ma_get_current_language_p(void)
+{
+ START_TEST;
+ char *pszGetCurrentLanguage = NULL;
+ int nRet = -1;
+
+ nRet = ma_get_current_language(&pszGetCurrentLanguage);
+ PRINT_RESULT(nRet, MA_ERROR_NONE, "ma_get_current_language", MaGetError(nRet));
+ CHECK_HANDLE(pszGetCurrentLanguage, "ma_get_current_language");
+
+ FREE_MEMORY(pszGetCurrentLanguage);
+
+ return 0;
+}
+
+/**
+* @testcase ITc_ma_get_recording_audio_format_p
+* @since_tizen 5.0
+* @author SRID(priya.kohli)
+* @reviewer SRID(awadhesh1.s)
+* @type auto
+* @description Gets the recording audio format.
+* @scenario Gets the recording audio format.
+* @apicovered ma_get_recording_audio_format
+* @passcase ma_get_recording_audio_format returns 0
+* @failcase ma_get_recording_audio_format returns 1
+* @precondition N/A
+* @postcondition N/A
+* */
+int ITc_ma_get_recording_audio_format_p(void)
+{
+ START_TEST;
+
+ int nRate = -1;
+ int nRet = -1;
+ ma_audio_channel_e eChannel = -1;
+ ma_audio_type_e eAudioType = -1;
+ void* user_data = NULL;
+ g_CallBackHit = false;
+
+ nRet = ma_set_state_changed_cb(MaStateChangedCb, user_data);
+ PRINT_RESULT(nRet, MA_ERROR_NONE, "ma_set_state_changed_cb", MaGetError(nRet));
+
+ nRet = ma_prepare();
+ PRINT_RESULT_CLEANUP(nRet, MA_ERROR_NONE, "ma_prepare", MaGetError(nRet), ma_unset_state_changed_cb());
+ WAIT_FOR_CALLBACK(MA_STATE_READY);
+ PRINT_RESULT_CLEANUP(g_CallBackHit, true, "MaStateChangedCb", "Callback not invoked", ma_unprepare(); ma_unset_state_changed_cb());
+
+ nRet = ma_get_recording_audio_format(&nRate, &eChannel, &eAudioType);
+ PRINT_RESULT_CLEANUP(nRet, MA_ERROR_NONE, "ma_get_recording_audio_format", MaGetError(nRet), ma_unprepare(); ma_unset_state_changed_cb());
+ if( nRate < 0 )
+ {
+ FPRINTF("[Line : %d][%s] %s failed. nRate = %d\\n", __LINE__, API_NAMESPACE, "ma_get_recording_audio_format", nRate);
+ ma_unprepare();
+ ma_unset_state_changed_cb();
+ return 1;
+ }
+ if( eChannel < MA_AUDIO_CHANNEL_MONO || eChannel > MA_AUDIO_CHANNEL_STEREO )
+ {
+ FPRINTF("[Line : %d][%s] %s failed. eChannel = %d\\n", __LINE__, API_NAMESPACE, "ma_get_recording_audio_format", eChannel);
+ ma_unprepare();
+ ma_unset_state_changed_cb();
+ return 1;
+ }
+ if( eAudioType < MA_AUDIO_TYPE_PCM_S16_LE || eAudioType > MA_AUDIO_TYPE_PCM_U8 )
+ {
+ FPRINTF("[Line : %d][%s] %s failed. eAudioType = %d\\n", __LINE__, API_NAMESPACE, "ma_get_recording_audio_format", eAudioType);
+ ma_unprepare();
+ ma_unset_state_changed_cb();
+ return 1;
+ }
+
+ nRet = ma_unprepare();
+ PRINT_RESULT_NORETURN(nRet, MA_ERROR_NONE, "ma_unprepare", MaGetError(nRet));
+
+ nRet = ma_unset_state_changed_cb();
+ PRINT_RESULT_NORETURN(nRet, MA_ERROR_NONE, "ma_unset_state_changed_cb", MaGetError(nRet));
+
+ return 0;
+}
+
+/**
+* @testcase ITc_ma_prepare_unprepare_set_unset_state_changed_cb_p
+* @since_tizen 5.0
+* @author SRID(priya.kohli)
+* @reviewer SRID(awadhesh1.s)
+* @type auto
+* @description Prepares/unprepares multi-assistant client and sets and unsets a state changed callback.
+* @scenario Prepares/unprepares multi-assistant client and sets and unsets a state changed callback.
+* @apicovered ma_set_state_changed_cb, ma_unset_state_changed_cb, ma_prepare, ma_unprepare
+* @passcase ma_set_state_changed_cb, ma_unset_state_changed_cb returns, ma_prepare, ma_unprepare 0
+* @failcase either of ma_set_state_changed_cb, ma_unset_state_changed_cb, ma_prepare, ma_unprepare returns 1
+* @precondition N/A
+* @postcondition N/A
+* */
+int ITc_ma_prepare_unprepare_set_unset_state_changed_cb_p(void)
+{
+ START_TEST;
+
+ int nRet = -1;
+ void* user_data = NULL;
+ g_CallBackHit = false;
+
+ nRet = ma_set_state_changed_cb(MaStateChangedCb, user_data);
+ PRINT_RESULT(nRet, MA_ERROR_NONE, "ma_set_state_changed_cb", MaGetError(nRet));
+
+ nRet = ma_prepare();
+ PRINT_RESULT_CLEANUP(nRet, MA_ERROR_NONE, "ma_prepare", MaGetError(nRet), ma_unset_state_changed_cb());
+ WAIT_FOR_CALLBACK(MA_STATE_READY);
+ PRINT_RESULT_CLEANUP(g_CallBackHit, true, "MaStateChangedCb", "Callback not invoked", ma_unprepare();ma_unset_state_changed_cb());
+
+ nRet = ma_unprepare();
+ PRINT_RESULT_CLEANUP(nRet, MA_ERROR_NONE, "ma_unprepare", MaGetError(nRet), ma_unset_state_changed_cb());
+
+ nRet = ma_unset_state_changed_cb();
+ PRINT_RESULT(nRet, MA_ERROR_NONE, "ma_unset_state_changed_cb", MaGetError(nRet));
+
+ return 0;
+}
+
+/**
+* @testcase ITc_ma_set_unset_error_cb_p
+* @since_tizen 5.0
+* @author SRID(priya.kohli)
+* @reviewer SRID(awadhesh1.s)
+* @type auto
+* @description Sets and unsets an error callback.
+* @scenario Sets and unsets an error callback.
+* @apicovered ma_set_error_cb, ma_unset_error_cb
+* @passcase ma_set_error_cb, ma_unset_error_cb returns 0
+* @failcase ma_set_error_cb, ma_unset_error_cb returns 1
+* @precondition The state should be #MA_STATE_INITIALIZED.
+* @postcondition N/A
+* */
+int ITc_ma_set_unset_error_cb_p(void)
+{
+ START_TEST;
+
+ int nRet = -1;
+ void* user_data = NULL;
+
+ nRet = ma_set_error_cb(MaErrorCb, user_data);
+ PRINT_RESULT(nRet, MA_ERROR_NONE, "ma_set_error_cb", MaGetError(nRet));
+
+ nRet = ma_unset_error_cb();
+ PRINT_RESULT(nRet, MA_ERROR_NONE, "ma_unset_error_cb", MaGetError(nRet));
+
+ return 0;
+}
+
+/**
+* @testcase ITc_ma_set_unset_language_changed_cb_p
+* @since_tizen 5.0
+* @author SRID(priya.kohli)
+* @reviewer SRID(awadhesh1.s)
+* @type auto
+* @description Sets and unsets a language changed callback.
+* @scenario Sets and unsets a language changed callback.
+* @apicovered ma_set_language_changed_cb, ma_unset_language_changed_cb
+* @passcase ma_set_language_changed_cb, ma_unset_language_changed_cb returns 0
+* @failcase ma_set_language_changed_cb, ma_unset_language_changed_cb returns 1
+* @precondition The state should be #MA_STATE_INITIALIZED.
+* @postcondition N/A
+* */
+int ITc_ma_set_unset_language_changed_cb_p(void)
+{
+ START_TEST;
+
+ int nRet = -1;
+ void* user_data = NULL;
+
+ nRet = ma_set_language_changed_cb(MaLanguageChangedCb, user_data);
+ PRINT_RESULT(nRet, MA_ERROR_NONE, "ma_set_language_changed_cb", MaGetError(nRet));
+
+ nRet = ma_unset_language_changed_cb();
+ PRINT_RESULT(nRet, MA_ERROR_NONE, "ma_unset_language_changed_cb", MaGetError(nRet));
+
+ return 0;
+}
+
+/**
+* @testcase ITc_ma_set_unset_audio_streaming_cb_p
+* @since_tizen 5.0
+* @author SRID(priya.kohli)
+* @reviewer SRID(awadhesh1.s)
+* @type auto
+* @description Sets and unsets an audio streaming callback.
+* @scenario Sets and unsets an audio streaming callback.
+* @apicovered ma_set_audio_streaming_cb, ma_unset_audio_streaming_cb
+* @passcase ma_set_audio_streaming_cb, ma_unset_audio_streaming_cb returns 0
+* @failcase ma_set_audio_streaming_cb, ma_unset_audio_streaming_cb returns 1
+* @precondition The state should be #MA_STATE_INITIALIZED.
+* @postcondition N/A
+* */
+int ITc_ma_set_unset_audio_streaming_cb_p(void)
+{
+ START_TEST;
+
+ int nRet = -1;
+ void* user_data = NULL;
+
+ nRet = ma_set_audio_streaming_cb(MaAudioStreamingCb, user_data);
+ PRINT_RESULT(nRet, MA_ERROR_NONE, "ma_set_audio_streaming_cb", MaGetError(nRet));
+
+ nRet = ma_unset_audio_streaming_cb();
+ PRINT_RESULT(nRet, MA_ERROR_NONE, "ma_unset_audio_streaming_cb", MaGetError(nRet));
+
+ return 0;
+}
+
+/**
+* @testcase ITc_ma_send_asr_result_p
+* @since_tizen 5.0
+* @author SRID(priya.kohli)
+* @reviewer SRID(awadhesh1.s)
+* @type auto
+* @description Sends ASR(auto speech recognition) results to the multi-assistant service.
+* @scenario Sends ASR(auto speech recognition) results to the multi-assistant service.
+* @apicovered ma_send_asr_result
+* @passcase ma_send_asr_result returns 0
+* @failcase ma_send_asr_result returns 1
+* @precondition N/A
+* @postcondition N/A
+* */
+int ITc_ma_send_asr_result_p(void)
+{
+ START_TEST;
+
+ char *pszAsrResult = "Hello";
+ int nRet = -1;
+ void* user_data = NULL;
+ g_CallBackHit = false;
+
+ ma_asr_result_event_e eEvent[] = {
+ MA_ASR_RESULT_EVENT_PARTIAL_RESULT,
+ MA_ASR_RESULT_EVENT_FINAL_RESULT,
+ MA_ASR_RESULT_EVENT_ERROR,
+ };
+
+ nRet = ma_set_state_changed_cb(MaStateChangedCb, user_data);
+ PRINT_RESULT(nRet, MA_ERROR_NONE, "ma_set_state_changed_cb", MaGetError(nRet));
+
+ nRet = ma_prepare();
+ PRINT_RESULT_CLEANUP(nRet, MA_ERROR_NONE, "ma_prepare", MaGetError(nRet), ma_unset_state_changed_cb());
+ WAIT_FOR_CALLBACK(MA_STATE_READY);
+ PRINT_RESULT_CLEANUP(g_CallBackHit, true, "MaStateChangedCb", "Callback not invoked", ma_unprepare(); ma_unset_state_changed_cb());
+
+ int nEventSize = sizeof(eEvent)/sizeof(eEvent[0]);
+ for(int nEvent = 0; nEvent<nEventSize; nEvent++)
+ {
+ nRet = ma_send_asr_result(eEvent[nEvent], pszAsrResult);
+ PRINT_RESULT_CLEANUP(nRet, MA_ERROR_NONE, "ma_send_asr_result", MaGetError(nRet), ma_unprepare(); ma_unset_state_changed_cb());
+ }
+
+ nRet = ma_unprepare();
+ PRINT_RESULT_NORETURN(nRet, MA_ERROR_NONE, "ma_unprepare", MaGetError(nRet));
+
+ nRet = ma_unset_state_changed_cb();
+ PRINT_RESULT_NORETURN(nRet, MA_ERROR_NONE, "ma_unset_state_changed_cb", MaGetError(nRet));
+
+ return 0;
+}
+
+/**
+* @testcase ITc_ma_send_result_p
+* @since_tizen 5.0
+* @author SRID(priya.kohli)
+* @reviewer SRID(awadhesh1.s)
+* @type auto
+* @description Sends results to the multi-assistant service.
+* @scenario Sends results to the multi-assistant service.
+* @apicovered ma_send_result
+* @passcase ma_send_result returns 0
+* @failcase ma_send_result returns 1
+* @precondition N/A
+* @postcondition N/A
+* */
+int ITc_ma_send_result_p(void)
+{
+ START_TEST;
+
+ char *pszDisplayText = "display text";
+ char *pszUtteranceText = "utterance text";
+ char *pszResultJson = "json result";
+ int nRet = -1;
+ void* user_data = NULL;
+ g_CallBackHit = false;
+
+ nRet = ma_set_state_changed_cb(MaStateChangedCb, user_data);
+ PRINT_RESULT(nRet, MA_ERROR_NONE, "ma_set_state_changed_cb", MaGetError(nRet));
+
+ nRet = ma_prepare();
+ PRINT_RESULT_CLEANUP(nRet, MA_ERROR_NONE, "ma_prepare", MaGetError(nRet), ma_unset_state_changed_cb());
+ WAIT_FOR_CALLBACK(MA_STATE_READY);
+ PRINT_RESULT_CLEANUP(g_CallBackHit, true, "MaStateChangedCbf", "Callback not invoked", ma_unprepare(); ma_unset_state_changed_cb());
+
+ nRet = ma_send_result(pszDisplayText, pszUtteranceText, pszResultJson);
+ PRINT_RESULT_CLEANUP(nRet, MA_ERROR_NONE, "ma_send_result", MaGetError(nRet), ma_unprepare(); ma_unset_state_changed_cb());
+
+ nRet = ma_unprepare();
+ PRINT_RESULT_NORETURN(nRet, MA_ERROR_NONE, "ma_unprepare", MaGetError(nRet));
+
+ nRet = ma_unset_state_changed_cb();
+ PRINT_RESULT_NORETURN(nRet, MA_ERROR_NONE, "ma_unset_state_changed_cb", MaGetError(nRet));
+
+ return 0;
+}
--- /dev/null
+//
+// Copyright (c) 2018 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 <stdio.h>
+#include <string.h>
+#include "tct_common.h"
+#include <bundle.h>
+
+#ifdef MOBILE
+#include "tct-multi-assistant-native_mobile.h"
+#endif
+
+#ifdef WEARABLE
+#include "tct-multi-assistant-native_wearable.h"
+#endif
+
+#ifdef TV
+#include "tct-multi-assistant-native_tv.h"
+#endif
+
+#ifdef TIZENIOT
+#include "tct-multi-assistant-native_tizeniot.h"
+#endif //TIZENIOT
+
+#include <malloc.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
+#include <glib.h>
+#include <stdbool.h>
+#include <app.h>
+#include <dlog.h>
+
+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;
+}
--- /dev/null
+//
+// 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_MULTI-ASSISTANT-NATIVE_H__
+#define __TCT_MULTI-ASSISTANT-NATIVE_H__
+
+#include "testcase.h"
+#include "tct_common.h"
+
+extern void ITs_ma_startup(void);
+extern void ITs_ma_cleanup(void);
+
+extern int ITc_ma_initialize_deinitialize_p(void);
+extern int ITc_ma_get_state_p(void);
+extern int ITc_ma_get_current_language_p(void);
+extern int ITc_ma_get_recording_audio_format_p(void);
+extern int ITc_ma_prepare_unprepare_set_unset_state_changed_cb_p(void);
+extern int ITc_ma_set_unset_error_cb_p(void);
+extern int ITc_ma_set_unset_language_changed_cb_p(void);
+extern int ITc_ma_set_unset_audio_streaming_cb_p(void);
+extern int ITc_ma_send_asr_result_p(void);
+extern int ITc_ma_send_result_p(void);
+
+testcase tc_array[] = {
+ {"ITc_ma_initialize_deinitialize_p",ITc_ma_initialize_deinitialize_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_get_state_p",ITc_ma_get_state_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_get_current_language_p",ITc_ma_get_current_language_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_get_recording_audio_format_p",ITc_ma_get_recording_audio_format_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_prepare_unprepare_set_unset_state_changed_cb_p",ITc_ma_prepare_unprepare_set_unset_state_changed_cb_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_set_unset_error_cb_p",ITc_ma_set_unset_error_cb_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_set_unset_language_changed_cb_p",ITc_ma_set_unset_language_changed_cb_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_set_unset_audio_streaming_cb_p",ITc_ma_set_unset_audio_streaming_cb_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_send_asr_result_p",ITc_ma_send_asr_result_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_send_result_p",ITc_ma_send_result_p,ITs_ma_startup,ITs_ma_cleanup},
+ {NULL, NULL}
+};
+
+#endif // __TCT_MULTI-ASSISTANT-NATIVE_H__
--- /dev/null
+//
+// 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_MULTI-ASSISTANT-NATIVE_H__
+#define __TCT_MULTI-ASSISTANT-NATIVE_H__
+
+#include "testcase.h"
+#include "tct_common.h"
+
+extern void ITs_ma_startup(void);
+extern void ITs_ma_cleanup(void);
+
+extern int ITc_ma_initialize_deinitialize_p(void);
+extern int ITc_ma_get_state_p(void);
+extern int ITc_ma_get_current_language_p(void);
+extern int ITc_ma_get_recording_audio_format_p(void);
+extern int ITc_ma_prepare_unprepare_set_unset_state_changed_cb_p(void);
+extern int ITc_ma_set_unset_error_cb_p(void);
+extern int ITc_ma_set_unset_language_changed_cb_p(void);
+extern int ITc_ma_set_unset_audio_streaming_cb_p(void);
+extern int ITc_ma_send_asr_result_p(void);
+extern int ITc_ma_send_result_p(void);
+
+testcase tc_array[] = {
+ {"ITc_ma_initialize_deinitialize_p",ITc_ma_initialize_deinitialize_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_get_state_p",ITc_ma_get_state_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_get_current_language_p",ITc_ma_get_current_language_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_get_recording_audio_format_p",ITc_ma_get_recording_audio_format_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_prepare_unprepare_set_unset_state_changed_cb_p",ITc_ma_prepare_unprepare_set_unset_state_changed_cb_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_set_unset_error_cb_p",ITc_ma_set_unset_error_cb_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_set_unset_language_changed_cb_p",ITc_ma_set_unset_language_changed_cb_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_set_unset_audio_streaming_cb_p",ITc_ma_set_unset_audio_streaming_cb_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_send_asr_result_p",ITc_ma_send_asr_result_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_send_result_p",ITc_ma_send_result_p,ITs_ma_startup,ITs_ma_cleanup},
+ {NULL, NULL}
+};
+
+#endif // __TCT_MULTI-ASSISTANT-NATIVE_H__
--- /dev/null
+//
+// 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_MULTI-ASSISTANT-NATIVE_H__
+#define __TCT_MULTI-ASSISTANT-NATIVE_H__
+
+#include "testcase.h"
+#include "tct_common.h"
+
+extern void ITs_ma_startup(void);
+extern void ITs_ma_cleanup(void);
+
+extern int ITc_ma_initialize_deinitialize_p(void);
+extern int ITc_ma_get_state_p(void);
+extern int ITc_ma_get_current_language_p(void);
+extern int ITc_ma_get_recording_audio_format_p(void);
+extern int ITc_ma_prepare_unprepare_set_unset_state_changed_cb_p(void);
+extern int ITc_ma_set_unset_error_cb_p(void);
+extern int ITc_ma_set_unset_language_changed_cb_p(void);
+extern int ITc_ma_set_unset_audio_streaming_cb_p(void);
+extern int ITc_ma_send_asr_result_p(void);
+extern int ITc_ma_send_result_p(void);
+
+testcase tc_array[] = {
+ {"ITc_ma_initialize_deinitialize_p",ITc_ma_initialize_deinitialize_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_get_state_p",ITc_ma_get_state_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_get_current_language_p",ITc_ma_get_current_language_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_get_recording_audio_format_p",ITc_ma_get_recording_audio_format_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_prepare_unprepare_set_unset_state_changed_cb_p",ITc_ma_prepare_unprepare_set_unset_state_changed_cb_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_set_unset_error_cb_p",ITc_ma_set_unset_error_cb_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_set_unset_language_changed_cb_p",ITc_ma_set_unset_language_changed_cb_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_set_unset_audio_streaming_cb_p",ITc_ma_set_unset_audio_streaming_cb_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_send_asr_result_p",ITc_ma_send_asr_result_p,ITs_ma_startup,ITs_ma_cleanup},
+ {"ITc_ma_send_result_p",ITc_ma_send_result_p,ITs_ma_startup,ITs_ma_cleanup},
+ {NULL, NULL}
+};
+
+#endif // __TCT_MULTI-ASSISTANT-NATIVE_H__