## Sample application ##
ADD_SUBDIRECTORY(test)
+
+## Test
+IF(NOT DEFINED MINIMUM_BUILD)
+ENABLE_TESTING()
+SET(UNITTEST_TTS tts_unittests)
+ADD_TEST(NAME ${UNITTEST_TTS} COMMAND ${UNITTEST_TTS}
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tests)
+
+ADD_SUBDIRECTORY(tests)
+ENDIF(NOT DEFINED MINIMUM_BUILD)
int __tts_cb_error(int uid, tts_error_e reason, int utt_id, char* err_msg);
int __tts_recheck_screen_reader();
-const char* tts_tag()
+static const char* tts_tag()
{
return "ttsc";
}
data = iter->data;
if (NULL != data->default_voice_changed_cb) {
SLOG(LOG_DEBUG, TAG_TTSC, "Call default voice changed callback : uid(%d)", data->uid);
- data->default_voice_changed_cb(data->tts, before_lang, before_voice_type,
+ data->default_voice_changed_cb(data->tts, before_lang, before_voice_type,
language, voice_type, data->default_voice_changed_user_data);
}
BuildRequires: pkgconfig(pkgmgr-installer)
BuildRequires: pkgconfig(vconf)
BuildRequires: pkgconfig(bundle)
+BuildRequires: pkgconfig(gmock)
BuildRequires: cmake
+%if 0%{?gcov:1}
+BuildRequires: lcov
+BuildRequires: zip
+%endif
+
%description
Text To Speech client library and daemon.
Text To Speech gcov objects
%endif
+%package unittests
+Summary: TTS tests
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description unittests
+GTest for TTS
+
%prep
%setup -q -n %{name}-%{version}
install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj
%endif
-%post
+%check
+ctest -V --output-on-failure %{?_smp_mflags}
+%if 0%{?gcov:1}
+lcov -c --ignore-errors graph --no-external -q -d . -o gcov.info
+genhtml gcov.info
+%endif
+
+%post
/sbin/ldconfig
mkdir -p %{_libdir}/voice
%files gcov
%{_datadir}/gcov/obj/*
%endif
+
+%files unittests
+%{_bindir}/*
--- /dev/null
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(gtest-tts CXX)
+
+# Find Packages
+INCLUDE(FindPkgConfig)
+pkg_check_modules(pkgs REQUIRED
+ dlog
+ capi-base-common
+ gmock
+ aul
+ capi-media-audio-io
+ capi-appfw-app-manager
+ capi-system-info
+ dbus-1
+ dlog
+ ecore
+ glib-2.0
+ libgum
+ libtzplatform-config
+ libxml-2.0
+ libsystemd-login
+ vconf
+ bundle
+ buxton2
+ pkgmgr
+)
+
+FOREACH(flag ${pkgs_CFLAGS})
+ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fvisibility=hidden -Wall -Werror")
+SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -fPIE")
+SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Werror")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+
+SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -std=c++11")
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS}")
+
+SET(SOURCES "")
+
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../include)
+
+AUX_SOURCE_DIRECTORY(src SOURCES)
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/../client TTS_CLIENT_SOURCES)
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/../common TTS_COMMON_SOURCES)
+
+ADD_DEFINITIONS("-DFULLVER=\"${FULLVER}\"")
+
+ADD_EXECUTABLE(${UNITTEST_TTS}
+ ${TTS_COMMON_SOURCES}
+ ${TTS_CLIENT_SOURCES}
+ ${SOURCES}
+ )
+TARGET_LINK_LIBRARIES(${UNITTEST_TTS} ${GTEST_LIBRARIES} ${pkgs_LDFLAGS} ${EXTRA_LDFLAGS})
+SET_TARGET_PROPERTIES(${UNITTEST_TTS} PROPERTIES
+ COMPILE_FLAGS "-fPIE"
+ #Never add any space for LINKFLAGS
+ LINK_FLAGS "-Wl,\
+--wrap=system_info_get_platform_bool")
+INSTALL(TARGETS ${UNITTEST_TTS} DESTINATION /usr/bin)
--- /dev/null
+#include <gtest/gtest.h>
+#include <gmock/gmock.h>
+
+int main(int argc, char** argv) {
+ testing::InitGoogleTest(&argc, argv);
+ return RUN_ALL_TESTS();
+}
--- /dev/null
+#include "system_info_mock.h"
+#include <stdio.h>
+#include <tizen.h>
+
+EXPORT_API int __wrap_system_info_get_platform_bool (const char *key, bool *value)
+{
+ if (value)
+ *value = true;
+
+ return 0;
+}
--- /dev/null
+#ifndef MOCK_SYSTEM_INFO_H_
+#define MOCK_SYSTEM_INFO_H_
+
+#include <sys/types.h>
+#include <unistd.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int __wrap_system_info_get_platform_bool (const char *key, bool *value);
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* MOCK_SYSTEM_INFO_H_ */
--- /dev/null
+/*
+ * Copyright (c) 2020 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 <gtest/gtest.h>
+
+#include <tts.h>
+#include "system_info_mock.h"
+
+namespace {
+
+class TTSTest : public testing::Test {
+ public:
+ virtual void SetUp() {
+ }
+ virtual void TearDown() {
+ }
+};
+
+TEST_F(TTSTest, utc_tts_create_n)
+{
+ int ret = tts_create(NULL);
+ EXPECT_EQ(ret, TTS_ERROR_INVALID_PARAMETER);
+}
+
+TEST_F(TTSTest, utc_tts_destroy_n)
+{
+ int ret = tts_destroy(NULL);
+ EXPECT_EQ(ret, TTS_ERROR_INVALID_PARAMETER);
+}
+
+TEST_F(TTSTest, utc_tts_set_mode_n)
+{
+ int ret = tts_set_mode(NULL, TTS_MODE_DEFAULT);
+ EXPECT_EQ(ret, TTS_ERROR_INVALID_PARAMETER);
+}
+
+TEST_F(TTSTest, utc_tts_get_mode_n)
+{
+ tts_mode_e mode;
+ int ret = tts_get_mode(NULL, &mode);
+ EXPECT_EQ(ret, TTS_ERROR_INVALID_PARAMETER);
+}
+
+TEST_F(TTSTest, utc_tts_set_credential_n)
+{
+ int ret = tts_set_credential(NULL, "credential");
+ EXPECT_EQ(ret, TTS_ERROR_INVALID_PARAMETER);
+}
+
+TEST_F(TTSTest, utc_tts_prepare_n)
+{
+ int ret = tts_prepare(NULL);
+ EXPECT_EQ(ret, TTS_ERROR_INVALID_PARAMETER);
+}
+
+TEST_F(TTSTest, utc_tts_unprepare_n)
+{
+ int ret = tts_unprepare(NULL);
+ EXPECT_EQ(ret, TTS_ERROR_INVALID_PARAMETER);
+}
+
+} // namespace