summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--[-rwxr-xr-x]CMakeLists.txt3
-rw-r--r--packaging/libmedia-thumbnail.spec8
-rw-r--r--unittest/CMakeLists.txt39
-rwxr-xr-xunittest/libmedia_thumbnail_unittest.cpp67
-rw-r--r--unittest/libmedia_thumbnail_unittest.h26
5 files changed, 142 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 81ab873..c27e6ec 100755..100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -77,3 +77,6 @@ INSTALL(TARGETS ${MEDIAHASH-LIB} LIBRARY DESTINATION ${LIB_INSTALL_DIR})
ADD_SUBDIRECTORY(server)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/media-thumbnail.h DESTINATION include/${MEDIATHUMB-LIB})
+IF(BUILD_GTESTS)
+ ADD_SUBDIRECTORY(unittest)
+ENDIF(BUILD_GTESTS) \ No newline at end of file
diff --git a/packaging/libmedia-thumbnail.spec b/packaging/libmedia-thumbnail.spec
index 542655a..44ee87d 100644
--- a/packaging/libmedia-thumbnail.spec
+++ b/packaging/libmedia-thumbnail.spec
@@ -19,6 +19,9 @@ BuildRequires: pkgconfig(libtzplatform-config)
BuildRequires: pkgconfig(sqlite3)
BuildRequires: pkgconfig(db-util)
BuildRequires: pkgconfig(mmutil-magick)
+%if 0%{?gtests:1}
+BuildRequires: pkgconfig(gmock)
+%endif
%description
Description: Media thumbnail service library for multimedia applications
@@ -47,7 +50,7 @@ cp %{SOURCE1001} %{SOURCE1002} %{SOURCE1003} .
%build
-%cmake .
+%cmake . -DBUILD_GTESTS=%{?gtests:1}%{!?gtests:0}
make %{?_smp_mflags}
%install
@@ -60,6 +63,9 @@ make %{?_smp_mflags}
%manifest %{name}.manifest
%defattr(-,root,root,-)
%{_libdir}/*.so.*
+%if 0%{?gtests:1}
+%{_bindir}/gtest*
+%endif
#License
%license LICENSE.APLv2.0
diff --git a/unittest/CMakeLists.txt b/unittest/CMakeLists.txt
new file mode 100644
index 0000000..fa13bc6
--- /dev/null
+++ b/unittest/CMakeLists.txt
@@ -0,0 +1,39 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(gtest-libmedia-thumbnail C CXX)
+
+SET(GTEST_TEST "gtest-libmedia-thumbnail")
+ADD_DEFINITIONS("-DUSE_DLOG")
+
+SET(REQUIRES_LIST ${REQUIRES_LIST}
+ glib-2.0
+ gio-2.0
+ gmock
+ dlog
+ libmedia-utils
+ libtzplatform-config
+)
+
+SET(PKG_LIBRARIES ${PKG_LIBRARIES}
+ "media-thumbnail"
+ "media-hash"
+)
+
+INCLUDE(FindPkgConfig)
+PKG_CHECK_MODULES(GTEST_TEST_PKG REQUIRED ${REQUIRES_LIST})
+
+FOREACH(flag ${GTEST_TEST_PKG_CFLAGS})
+ SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Wall -fPIE")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS}")
+SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed -pie")
+
+FILE(GLOB GTEST_TEST_SRCS *.cpp)
+SET(GTEST_TEST_SRCS ${GTEST_TEST_SRCS})
+
+ADD_EXECUTABLE(${GTEST_TEST} ${GTEST_TEST_SRCS})
+TARGET_LINK_LIBRARIES(${GTEST_TEST} ${PKG_LIBRARIES} ${pkg_LIBRARIES} ${GTEST_TEST_LDFLAGS} ${GTEST_TEST_PKG_LDFLAGS} -ldl)
+
+INSTALL(TARGETS ${GTEST_TEST} RUNTIME DESTINATION bin)
diff --git a/unittest/libmedia_thumbnail_unittest.cpp b/unittest/libmedia_thumbnail_unittest.cpp
new file mode 100755
index 0000000..5e5077c
--- /dev/null
+++ b/unittest/libmedia_thumbnail_unittest.cpp
@@ -0,0 +1,67 @@
+/*
+ * 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 <tzplatform_config.h>
+
+#include "libmedia_thumbnail_unittest.h"
+#include "media-util.h"
+#include "media-thumbnail.h"
+
+#define GTEST_IMAGE_FILE_PATH tzplatform_mkpath(TZ_SYS_BIN, "libmedia-thumbnail-unittest.jpg")
+
+#define THUMBNAIL_WIDTH 512
+#define THUMBNAIL_HEIGHT 288
+
+using ::testing::InitGoogleTest;
+using ::testing::Test;
+using ::testing::TestCase;
+
+class libmedia_thumbnail_Test : public ::testing::Test {
+ protected:
+ void SetUp() {
+ std::cout << "SetUp()" << std::endl;
+ }
+
+ void TearDown() {
+ std::cout << "TearDown()" << std::endl;
+ }
+};
+
+TEST(libmedia_thumbnail_Test, thumbnail_request_from_db_async_n)
+{
+ int ret = MS_MEDIA_ERR_NONE;
+
+ ret = thumbnail_request_from_db_async(0, NULL, NULL, NULL, 5001);
+ EXPECT_EQ(ret, MS_MEDIA_ERR_INVALID_PARAMETER);
+
+ ret = thumbnail_request_from_db_async(0, GTEST_IMAGE_FILE_PATH, NULL, NULL, 5001);
+ EXPECT_EQ(ret, MS_MEDIA_ERR_INVALID_PARAMETER);
+}
+
+TEST(libmedia_thumbnail_Test, thumbnail_request_cancel_media_n)
+{
+ int ret = MS_MEDIA_ERR_NONE;
+
+ ret = thumbnail_request_cancel_media(0);
+ EXPECT_EQ(ret, MS_MEDIA_ERR_INTERNAL);
+}
+
+int main(int argc, char **argv)
+{
+ InitGoogleTest(&argc, argv);
+
+ return RUN_ALL_TESTS();
+}
diff --git a/unittest/libmedia_thumbnail_unittest.h b/unittest/libmedia_thumbnail_unittest.h
new file mode 100644
index 0000000..6edb74d
--- /dev/null
+++ b/unittest/libmedia_thumbnail_unittest.h
@@ -0,0 +1,26 @@
+/*
+ * 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 __LIB_MEDIA_THUMBNAIL_UNITTEST_H__
+#define __LIB_MEDIA_THUMBNAIL_UNITTEST_H__
+
+#include <gmock/gmock.h>
+#include <gtest/gtest.h>
+
+#undef LOG_TAG
+#define LOG_TAG "GTEST_LIBMEDIA_THUMBNAIL"
+
+#endif /*__LIB_MEDIA_THUMBNAIL_UNITTEST_H__*/