Add unit test 78/193978/2 accepted/tizen/unified/20181130.064932 submit/tizen/20181129.024814
authorJeongmo Yang <jm80.yang@samsung.com>
Wed, 28 Nov 2018 04:58:21 +0000 (13:58 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Wed, 28 Nov 2018 05:35:25 +0000 (14:35 +0900)
- Precondition to run gtests-*
 : The executable label should be changed to "User" after install
 : The user should be "owner"

[Version] 0.3.14
[Profile] Common
[Issue Type] Update
[Dependency module] N/A
[Test] [M(T) - Boot=(OK), sdb=(OK), Home=(OK), Touch=(OK), Version=tizen-unified_20181126.2]

Change-Id: Ibda709aa9058674ea7ea780e60618661249bf0e6
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
12 files changed:
CMakeLists.txt
legacy/CMakeLists.txt
muse/CMakeLists.txt
muse/include/muse_recorder.h
packaging/mmsvc-recorder.spec
unittest/CMakeLists.txt [new file with mode: 0644]
unittest/legacy/CMakeLists.txt [new file with mode: 0644]
unittest/legacy/gtests_legacy_recorder.cpp [new file with mode: 0644]
unittest/legacy/gtests_legacy_recorder.h [new file with mode: 0644]
unittest/muse/CMakeLists.txt [new file with mode: 0644]
unittest/muse/gtests_muse_recorder.cpp [new file with mode: 0644]
unittest/muse/gtests_muse_recorder.h [new file with mode: 0644]

index c7497df..0daa83f 100644 (file)
@@ -24,6 +24,9 @@ INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${fw_name}.pc DESTINATION ${LIB_INSTAL
 
 ADD_SUBDIRECTORY(legacy)
 ADD_SUBDIRECTORY(muse)
+IF(ENABLE_GTESTS)
+ADD_SUBDIRECTORY(unittest)
+ENDIF(ENABLE_GTESTS)
 
 IF(UNIX)
 
index ea00465..9ebd81f 100644 (file)
@@ -1,14 +1,12 @@
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
-
 SET(service "legacy")
 SET(submodule "recorder")
 
-# for package file
 SET(dependents "dlog mm-camcorder legacy-camera")
 
-SET(fw_name "${service}-${submodule}")
+SET(LEGACY "${service}-${submodule}")
 
-PROJECT(${fw_name})
+PROJECT(${LEGACY})
 
 SET(CMAKE_INSTALL_PREFIX /usr)
 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
@@ -17,8 +15,8 @@ SET(INC_DIR include)
 INCLUDE_DIRECTORIES(${INC_DIR})
 
 INCLUDE(FindPkgConfig)
-pkg_check_modules(${fw_name} REQUIRED ${dependents})
-FOREACH(flag ${${fw_name}_CFLAGS})
+pkg_check_modules(${LEGACY} REQUIRED ${dependents})
+FOREACH(flag ${${LEGACY}_CFLAGS})
     SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
 ENDFOREACH(flag)
 
@@ -35,14 +33,14 @@ ADD_DEFINITIONS("-DTIZEN_DEBUG")
 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=${LIB_INSTALL_DIR}")
 
 aux_source_directory(src LEGACY_SOURCES)
-ADD_LIBRARY(${fw_name} SHARED ${LEGACY_SOURCES})
+ADD_LIBRARY(${LEGACY} SHARED ${LEGACY_SOURCES})
 
-TARGET_LINK_LIBRARIES(${fw_name} ${${fw_name}_LDFLAGS})
+TARGET_LINK_LIBRARIES(${LEGACY} ${${LEGACY}_LDFLAGS})
 
-SET_TARGET_PROPERTIES(${fw_name}
+SET_TARGET_PROPERTIES(${LEGACY}
      PROPERTIES
      CLEAN_DIRECT_OUTPUT 1
 )
 
-INSTALL(TARGETS ${fw_name} DESTINATION ${LIB_INSTALL_DIR})
+INSTALL(TARGETS ${LEGACY} DESTINATION ${LIB_INSTALL_DIR})
 
index c7f5cec..d63cfec 100644 (file)
@@ -3,9 +3,9 @@ SET(service "muse")
 SET(submodule "recorder")
 
 SET(dependents "dlog muse-server mm-common glib-2.0 gstreamer-1.0")
-SET(fw_name "${service}-${submodule}")
+SET(MUSE_MODULE "${service}-${submodule}")
 
-PROJECT(${fw_name})
+PROJECT(${MUSE_MODULE})
 
 SET(CMAKE_INSTALL_PREFIX /usr)
 SET(PREFIX ${CMAKE_INSTALL_PREFIX})
@@ -14,8 +14,8 @@ SET(INC_DIR include)
 INCLUDE_DIRECTORIES(${INC_DIR})
 
 INCLUDE(FindPkgConfig)
-pkg_check_modules(${fw_name} REQUIRED ${dependents})
-FOREACH(flag ${${fw_name}_CFLAGS})
+pkg_check_modules(${MUSE_MODULE} REQUIRED ${dependents})
+FOREACH(flag ${${MUSE_MODULE}_CFLAGS})
     SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
 ENDFOREACH(flag)
 
@@ -33,16 +33,16 @@ ADD_DEFINITIONS("-DLIBDIR=\"${LIBDIR}\"")
 SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -Wl,--rpath=${LIB_INSTALL_DIR}")
 
 aux_source_directory(src MUSED_SOURCES)
-ADD_LIBRARY(${fw_name} SHARED ${MUSED_SOURCES})
+ADD_LIBRARY(${MUSE_MODULE} SHARED ${MUSED_SOURCES})
 
-TARGET_LINK_LIBRARIES(${fw_name} legacy-recorder ${${fw_name}_LDFLAGS})
+TARGET_LINK_LIBRARIES(${MUSE_MODULE} legacy-recorder ${${MUSE_MODULE}_LDFLAGS})
 
-SET_TARGET_PROPERTIES(${fw_name}
+SET_TARGET_PROPERTIES(${MUSE_MODULE}
      PROPERTIES
      CLEAN_DIRECT_OUTPUT 1
 )
 
-INSTALL(TARGETS ${fw_name} DESTINATION ${LIB_INSTALL_DIR})
+INSTALL(TARGETS ${MUSE_MODULE} DESTINATION ${LIB_INSTALL_DIR})
 INSTALL(
         DIRECTORY ${INC_DIR}/ DESTINATION include/media
         FILES_MATCHING
index 7920111..5c69c88 100644 (file)
@@ -17,9 +17,9 @@
 #ifndef __MUSE_RECORDER_H__
 #define __MUSE_RECORDER_H__
 
-#ifdef _cplusplus
+#ifdef __cplusplus
 extern "C" {
-#endif /* _cplusplus */
+#endif /* __cplusplus */
 
 /**
   * @file muse_recorder.h
@@ -188,6 +188,6 @@ typedef enum {
 
 #ifdef __cplusplus
 }
-#endif /* _cplusplus */
+#endif /* __cplusplus */
 
 #endif /* __MUSE_RECORDER_H__ */
index 24c4793..6c38fb7 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mmsvc-recorder
 Summary:    A Recorder module for muse server
-Version:    0.3.13
+Version:    0.3.14
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
@@ -15,6 +15,9 @@ BuildRequires:  pkgconfig(legacy-camera)
 BuildRequires:  pkgconfig(mm-common)
 BuildRequires:  pkgconfig(glib-2.0)
 BuildRequires:  pkgconfig(muse-server)
+%if "%{gtests}" == "1"
+BuildRequires:  pkgconfig(gmock)
+%endif
 
 
 %description
@@ -36,7 +39,16 @@ Development related files of a recorder module for muse server.
 
 %build
 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
-%cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DLIBDIR=%{_libdir}
+%cmake . \
+%if "%{gtests}" == "1"
+       -DENABLE_GTESTS=On\
+%else
+       -DENABLE_GTESTS=Off\
+%endif
+       -DCMAKE_INSTALL_PREFIX=%{_prefix}\
+       -DFULLVER=%{version}\
+       -DMAJORVER=${MAJORVER}\
+       -DLIBDIR=%{_libdir}
 make %{?jobs:-j%jobs}
 
 
@@ -56,6 +68,9 @@ rm -rf %{buildroot}
 %license LICENSE.APLv2
 %{_libdir}/liblegacy-recorder.so
 %{_libdir}/libmuse-recorder.so
+%if "%{gtests}" == "1"
+%{_bindir}/gtests-*
+%endif
 
 %files devel
 %{_includedir}/media/*.h
diff --git a/unittest/CMakeLists.txt b/unittest/CMakeLists.txt
new file mode 100644 (file)
index 0000000..332ef66
--- /dev/null
@@ -0,0 +1,3 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+ADD_SUBDIRECTORY(legacy)
+ADD_SUBDIRECTORY(muse)
diff --git a/unittest/legacy/CMakeLists.txt b/unittest/legacy/CMakeLists.txt
new file mode 100644 (file)
index 0000000..4312c74
--- /dev/null
@@ -0,0 +1,22 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+SET(LEGACY "legacy-recorder")
+SET(fw_test "gtests-${LEGACY}")
+
+PROJECT(${fw_test} C CXX)
+
+INCLUDE(FindPkgConfig)
+PKG_CHECK_MODULES(REQUIRED_PKGS REQUIRED glib-2.0 gmock mm-camcorder capi-base-common legacy-camera)
+FOREACH(flag ${${fw_test}_CFLAGS})
+    SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+    MESSAGE(${flag})
+ENDFOREACH()
+
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -fPIE -Wall")
+
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/legacy/include)
+INCLUDE_DIRECTORIES(${REQUIRED_PKGS_INCLUDE_DIRS})
+LINK_DIRECTORIES(${REQUIRED_PKGS_LIBRARY_DIRS})
+
+ADD_EXECUTABLE(${fw_test} gtests_legacy_recorder.cpp)
+TARGET_LINK_LIBRARIES(${fw_test} ${LEGACY} ${LEGACY_LDFLAGS} ${REQUIRED_PKGS_LDFLAGS})
+INSTALL(TARGETS ${fw_test} DESTINATION bin)
diff --git a/unittest/legacy/gtests_legacy_recorder.cpp b/unittest/legacy/gtests_legacy_recorder.cpp
new file mode 100644 (file)
index 0000000..bbd228e
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2018 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 "gtests_legacy_recorder.h"
+
+using namespace std;
+using ::testing::InitGoogleTest;
+using ::testing::Test;
+using ::testing::TestCase;
+
+
+class LegacyRecorderTestF : public ::testing::Test {
+       protected:
+               recorder_h handle;
+
+               void SetUp() {
+                       int ret = RECORDER_ERROR_NONE;
+
+                       cout << "[SetUp]" << endl;
+
+                       ret = legacy_recorder_create_audiorecorder(&handle);
+                       ASSERT_EQ(ret, RECORDER_ERROR_NONE);
+
+                       return;
+               }
+
+               void TearDown() {
+                       cout << "[TearDown]" << endl << endl;
+
+                       if (handle) {
+                               legacy_recorder_destroy(handle);
+                               handle = NULL;
+                       }
+
+                       return;
+               }
+};
+
+TEST(LegacyRecorderTest, CreateP)
+{
+       int ret = RECORDER_ERROR_NONE;
+       recorder_h new_handle = NULL;
+
+       ret = legacy_recorder_create_audiorecorder(&new_handle);
+       ASSERT_EQ(ret, RECORDER_ERROR_NONE);
+
+       legacy_recorder_destroy(new_handle);
+}
+
+TEST(LegacyRecorderTest, DestroyP)
+{
+       int ret = RECORDER_ERROR_NONE;
+       recorder_h new_handle = NULL;
+
+       ret = legacy_recorder_create_audiorecorder(&new_handle);
+       ASSERT_EQ(ret, RECORDER_ERROR_NONE);
+
+       ret = legacy_recorder_destroy(new_handle);
+       ASSERT_EQ(ret, RECORDER_ERROR_NONE);
+}
+
+
+int main(int argc, char **argv)
+{
+       InitGoogleTest(&argc, argv);
+
+       return RUN_ALL_TESTS();
+}
diff --git a/unittest/legacy/gtests_legacy_recorder.h b/unittest/legacy/gtests_legacy_recorder.h
new file mode 100644 (file)
index 0000000..ead95e4
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2018 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 __LEGACY_RECORDER_UNITTEST_H__
+#define __LEGACY_RECORDER_UNITTEST_H__
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include <legacy_recorder.h>
+
+#undef LOG_TAG
+#define LOG_TAG                "GTEST_LEGACY_RECORDER"
+
+#endif /*__LEGACY_RECORDER_UNITTEST_H__*/
diff --git a/unittest/muse/CMakeLists.txt b/unittest/muse/CMakeLists.txt
new file mode 100644 (file)
index 0000000..ef54506
--- /dev/null
@@ -0,0 +1,22 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+SET(MUSE_MODULE "muse-recorder")
+SET(fw_test "gtests-${MUSE_MODULE}")
+
+PROJECT(${fw_test} C CXX)
+
+INCLUDE(FindPkgConfig)
+PKG_CHECK_MODULES(REQUIRED_PKGS REQUIRED glib-2.0 gmock)
+FOREACH(flag ${${fw_test}_CFLAGS})
+    SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+    MESSAGE(${flag})
+ENDFOREACH()
+
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -fPIE -Wall")
+
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/muse/include)
+INCLUDE_DIRECTORIES(${REQUIRED_PKGS_INCLUDE_DIRS})
+LINK_DIRECTORIES(${REQUIRED_PKGS_LIBRARY_DIRS})
+
+ADD_EXECUTABLE(${fw_test} gtests_muse_recorder.cpp)
+TARGET_LINK_LIBRARIES(${fw_test} ${MUSE_MODULE} ${MUSE_MODULE_LDFLAGS} ${REQUIRED_PKGS_LDFLAGS})
+INSTALL(TARGETS ${fw_test} DESTINATION bin)
diff --git a/unittest/muse/gtests_muse_recorder.cpp b/unittest/muse/gtests_muse_recorder.cpp
new file mode 100644 (file)
index 0000000..7acb347
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2018 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 "gtests_muse_recorder.h"
+
+using namespace std;
+using ::testing::InitGoogleTest;
+using ::testing::Test;
+using ::testing::TestCase;
+
+
+class MuseRecorderTestF : public ::testing::Test {
+       protected:
+               void SetUp() {
+                       cout << "[SetUp]" << endl;
+                       return;
+               }
+
+               void TearDown() {
+                       cout << "[TearDown]" << endl << endl;
+                       return;
+               }
+};
+
+TEST_F(MuseRecorderTestF, CreateP)
+{
+       int ret = 0;
+
+       EXPECT_EQ(ret, 0);
+}
+
+
+int main(int argc, char **argv)
+{
+       InitGoogleTest(&argc, argv);
+
+       return RUN_ALL_TESTS();
+}
diff --git a/unittest/muse/gtests_muse_recorder.h b/unittest/muse/gtests_muse_recorder.h
new file mode 100644 (file)
index 0000000..2edb2d4
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2018 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 __MUSE_RECORDER_UNITTEST_H__
+#define __MUSE_RECORDER_UNITTEST_H__
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+#include <muse_recorder.h>
+
+#undef LOG_TAG
+#define LOG_TAG                "GTEST_MUSE_RECORDER"
+
+#endif /*__MUSE_RECORDER_UNITTEST_H__*/