summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeongmo Yang <jm80.yang@samsung.com>2018-05-14 17:37:58 +0900
committerJeongmo Yang <jm80.yang@samsung.com>2018-05-15 10:27:08 +0900
commitad067e178f59ad1100d1f612f3874cab2cd0c7db (patch)
tree6f621f9e86a770e824c4a78f9e796d1522ccd7fa
parent1f6083af622f7390ed9ce543dc27834d54ac46ea (diff)
downloadmm-hal-interface-ad067e178f59ad1100d1f612f3874cab2cd0c7db.tar.gz
mm-hal-interface-ad067e178f59ad1100d1f612f3874cab2cd0c7db.tar.bz2
mm-hal-interface-ad067e178f59ad1100d1f612f3874cab2cd0c7db.zip
[camera/haltests] Update
1. Add camera feature check 2. Test all devices in device list [Version] 0.0.8 [Profile] Common [Issue Type] Update [Dependency module] N/A Change-Id: If6b5fc39b897016c5128b16385423cc7f04cfb45 Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
-rw-r--r--configure.ac4
-rw-r--r--packaging/mm-hal-interface.spec5
-rw-r--r--testcase/camera/Makefile.am4
-rw-r--r--testcase/camera/camera_hal_tc.cpp126
4 files changed, 112 insertions, 27 deletions
diff --git a/configure.ac b/configure.ac
index 711a40f..c476c63 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,6 +26,10 @@ PKG_CHECK_MODULES(DLOG, dlog)
AC_SUBST(DLOG_CFLAGS)
AC_SUBST(DLOG_LIBS)
+PKG_CHECK_MODULES(SYSTEM_INFO, capi-system-info)
+AC_SUBST(SYSTEM_INFO_CFLAGS)
+AC_SUBST(SYSTEM_INFO_LIBS)
+
# Checks for library functions.
AC_CONFIG_FILES([
Makefile
diff --git a/packaging/mm-hal-interface.spec b/packaging/mm-hal-interface.spec
index a85e862..4a2abf0 100644
--- a/packaging/mm-hal-interface.spec
+++ b/packaging/mm-hal-interface.spec
@@ -1,7 +1,7 @@
Name: mm-hal-interface
Summary: Multimedia HAL Interface
-Version: 0.0.7
-Release: 2
+Version: 0.0.8
+Release: 0
Group: Multimedia/Development
License: Apache-2.0
Source0: %{name}-%{version}.tar.gz
@@ -9,6 +9,7 @@ Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(dlog)
+BuildRequires: pkgconfig(capi-system-info)
BuildRequires: gtest-devel
%description
diff --git a/testcase/camera/Makefile.am b/testcase/camera/Makefile.am
index e24d817..8449971 100644
--- a/testcase/camera/Makefile.am
+++ b/testcase/camera/Makefile.am
@@ -7,6 +7,7 @@ camera_haltests_SOURCES = \
camera_haltests_CPPFLAGS = \
$(GLIB_CFLAGS)\
$(DLOG_CFLAGS)\
+ $(SYSTEM_INFO_CFLAGS)\
-I$(srcdir)/../../include/camera
camera_haltests_LDADD = \
@@ -14,5 +15,6 @@ camera_haltests_LDADD = \
-lgtest\
$(top_builddir)/src/camera/libcamera_hal_interface.la\
$(GLIB_LIBS)\
- $(DLOG_LIBS)
+ $(DLOG_LIBS)\
+ $(SYSTEM_INFO_LIBS)
diff --git a/testcase/camera/camera_hal_tc.cpp b/testcase/camera/camera_hal_tc.cpp
index 3d3c149..9e8eae9 100644
--- a/testcase/camera/camera_hal_tc.cpp
+++ b/testcase/camera/camera_hal_tc.cpp
@@ -22,6 +22,7 @@
#include <unistd.h>
#include <iostream>
#include <camera_hal_interface.h>
+#include <system_info.h>
using namespace std;
@@ -36,6 +37,17 @@ camera_format_t video_format;
GMutex msg_cb_lock;
GCond msg_cb_cond;
+bool camera_supported;
+
+#define CAMERA_SUPPORT_CHECK \
+ do {\
+ if (!camera_supported) {\
+ cout << "CAMERA NOT SUPPORTED" << endl;\
+ EXPECT_EQ(ret, CAMERA_ERROR_DEVICE_NOT_SUPPORTED);\
+ return;\
+ }\
+ } while (0)
+
/*
* callback
*/
@@ -148,6 +160,10 @@ class CameraHalTest : public testing::Test
public:
virtual void SetUp()
{
+ camera_supported = false;
+
+ system_info_get_platform_bool("http://tizen.org/feature/camera", &camera_supported);
+
ret = camera_hal_interface_init(&h);
if (ret != CAMERA_ERROR_NONE) {
cout << "camera hal init failed " << ret << endl;
@@ -160,7 +176,7 @@ class CameraHalTest : public testing::Test
return;
}
- ret = GetSupportedFormat();
+ ret = GetSupportedFormat(0);
return;
}
@@ -175,7 +191,7 @@ class CameraHalTest : public testing::Test
return;
}
- int GetSupportedFormat()
+ int GetSupportedFormat(int index)
{
if (device_info_list.count < 1) {
cout << "no available camera device" << endl;
@@ -183,25 +199,25 @@ class CameraHalTest : public testing::Test
}
/* set preview format */
- preview_format.stream_format = device_info_list.device_info[0].format_list.formats[0];
- preview_format.stream_resolution.width = device_info_list.device_info[0].preview_list.resolutions[0].width;
- preview_format.stream_resolution.height = device_info_list.device_info[0].preview_list.resolutions[0].height;
+ preview_format.stream_format = device_info_list.device_info[index].format_list.formats[0];
+ preview_format.stream_resolution.width = device_info_list.device_info[index].preview_list.resolutions[0].width;
+ preview_format.stream_resolution.height = device_info_list.device_info[index].preview_list.resolutions[0].height;
preview_format.stream_fps = 15;
preview_format.stream_rotation = CAMERA_ROTATION_0;
preview_format.capture_format = CAMERA_PIXEL_FORMAT_JPEG;
- preview_format.capture_resolution.width = device_info_list.device_info[0].capture_list.resolutions[0].width;
- preview_format.capture_resolution.height = device_info_list.device_info[0].capture_list.resolutions[0].height;
+ preview_format.capture_resolution.width = device_info_list.device_info[index].capture_list.resolutions[0].width;
+ preview_format.capture_resolution.height = device_info_list.device_info[index].capture_list.resolutions[0].height;
preview_format.capture_quality = 95;
/* set video format */
- video_format.stream_format = device_info_list.device_info[0].format_list.formats[0];
- video_format.stream_resolution.width = device_info_list.device_info[0].video_list.resolutions[0].width;
- video_format.stream_resolution.height = device_info_list.device_info[0].video_list.resolutions[0].height;
+ video_format.stream_format = device_info_list.device_info[index].format_list.formats[0];
+ video_format.stream_resolution.width = device_info_list.device_info[index].video_list.resolutions[0].width;
+ video_format.stream_resolution.height = device_info_list.device_info[index].video_list.resolutions[0].height;
video_format.stream_fps = 15;
video_format.stream_rotation = CAMERA_ROTATION_0;
video_format.capture_format = CAMERA_PIXEL_FORMAT_JPEG;
- video_format.capture_resolution.width = device_info_list.device_info[0].capture_list.resolutions[0].width;
- video_format.capture_resolution.height = device_info_list.device_info[0].capture_list.resolutions[0].height;
+ video_format.capture_resolution.width = device_info_list.device_info[index].capture_list.resolutions[0].width;
+ video_format.capture_resolution.height = device_info_list.device_info[index].capture_list.resolutions[0].height;
video_format.capture_quality = 95;
return CAMERA_ERROR_NONE;
@@ -214,6 +230,8 @@ class CameraHalTest : public testing::Test
*/
TEST_F(CameraHalTest, InitP)
{
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
}
@@ -221,6 +239,8 @@ TEST_F(CameraHalTest, DeinitP)
{
camera_hal_interface *hal_handle = nullptr;
+ CAMERA_SUPPORT_CHECK;
+
ret = camera_hal_interface_init(&hal_handle);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
@@ -235,12 +255,16 @@ TEST_F(CameraHalTest, DeinitP)
TEST_F(CameraHalTest, GetDeviceInfoListP)
{
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
}
TEST_F(CameraHalTest, GetDeviceInfoListN)
{
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
ret = camera_hal_interface_get_device_info_list(h, nullptr);
@@ -249,6 +273,8 @@ TEST_F(CameraHalTest, GetDeviceInfoListN)
TEST_F(CameraHalTest, OpenDeviceP)
{
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
@@ -264,6 +290,8 @@ TEST_F(CameraHalTest, OpenDeviceP)
TEST_F(CameraHalTest, OpenDeviceN)
{
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
@@ -279,6 +307,8 @@ TEST_F(CameraHalTest, OpenDeviceN)
TEST_F(CameraHalTest, CloseDeviceP)
{
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
@@ -295,6 +325,8 @@ TEST_F(CameraHalTest, CloseDeviceP)
TEST_F(CameraHalTest, SetPreviewStreamFormatP)
{
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
@@ -309,6 +341,8 @@ TEST_F(CameraHalTest, SetPreviewStreamFormatP)
TEST_F(CameraHalTest, SetPreviewStreamFormatN)
{
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
@@ -325,6 +359,8 @@ TEST_F(CameraHalTest, GetPreviewStreamFormatP)
{
camera_format_t get_format;
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
@@ -347,6 +383,8 @@ TEST_F(CameraHalTest, GetPreviewStreamFormatP)
TEST_F(CameraHalTest, GetPreviewStreamFormatN)
{
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
@@ -361,31 +399,43 @@ TEST_F(CameraHalTest, GetPreviewStreamFormatN)
TEST_F(CameraHalTest, StartPreviewP)
{
+ unsigned int i = 0;
+
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
- ret = camera_hal_interface_open_device(h, device_info_list.device_info[0].index);
- EXPECT_EQ(ret, CAMERA_ERROR_NONE);
+ for (i = 0 ; i < device_info_list.count ; i++) {
+ cout << "Device Index " << i << endl;
- ret = camera_hal_interface_set_preview_stream_format(h, &preview_format);
- EXPECT_EQ(ret, CAMERA_ERROR_NONE);
+ ret = camera_hal_interface_open_device(h, device_info_list.device_info[i].index);
+ EXPECT_EQ(ret, CAMERA_ERROR_NONE);
- preview_check = 0;
+ GetSupportedFormat(i);
- ret = camera_hal_interface_start_preview(h, _PreviewCb, (void *)h);
- EXPECT_EQ(ret, CAMERA_ERROR_NONE);
+ ret = camera_hal_interface_set_preview_stream_format(h, &preview_format);
+ EXPECT_EQ(ret, CAMERA_ERROR_NONE);
- /* wait for preview frame */
- sleep(1);
+ preview_check = 0;
- EXPECT_TRUE(preview_check);
+ ret = camera_hal_interface_start_preview(h, _PreviewCb, (void *)h);
+ EXPECT_EQ(ret, CAMERA_ERROR_NONE);
- camera_hal_interface_stop_preview(h);
- camera_hal_interface_close_device(h);
+ /* wait for preview frame */
+ sleep(1);
+
+ EXPECT_TRUE(preview_check);
+
+ camera_hal_interface_stop_preview(h);
+ camera_hal_interface_close_device(h);
+ }
}
TEST_F(CameraHalTest, StartPreviewN)
{
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
@@ -403,6 +453,8 @@ TEST_F(CameraHalTest, StartPreviewN)
TEST_F(CameraHalTest, StopPreviewP)
{
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
@@ -423,6 +475,8 @@ TEST_F(CameraHalTest, StopPreviewP)
TEST_F(CameraHalTest, StartCaptureP)
{
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
@@ -456,6 +510,8 @@ TEST_F(CameraHalTest, StartCaptureP)
TEST_F(CameraHalTest, StartCaptureN)
{
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
@@ -477,6 +533,8 @@ TEST_F(CameraHalTest, StartCaptureN)
TEST_F(CameraHalTest, StartRecordP)
{
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
@@ -513,6 +571,8 @@ TEST_F(CameraHalTest, StartRecordP)
TEST_F(CameraHalTest, StartRecordN)
{
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
@@ -540,6 +600,8 @@ TEST_F(CameraHalTest, StartRecordN)
TEST_F(CameraHalTest, SetVideoStreamFormatP)
{
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
@@ -556,6 +618,8 @@ TEST_F(CameraHalTest, SetVideoStreamFormatP)
TEST_F(CameraHalTest, SetVideoStreamFormatN)
{
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
@@ -572,6 +636,8 @@ TEST_F(CameraHalTest, GetVideoStreamFormatP)
{
camera_format_t get_format;
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
@@ -597,6 +663,8 @@ TEST_F(CameraHalTest, GetVideoStreamFormatP)
TEST_F(CameraHalTest, GetVideoStreamFormatN)
{
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
@@ -613,6 +681,8 @@ TEST_F(CameraHalTest, AddMessageCallbackP)
{
uint32_t cb_id = 0;
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
@@ -633,6 +703,8 @@ TEST_F(CameraHalTest, AddMessageCallbackN1)
{
uint32_t cb_id = 0;
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
@@ -647,6 +719,8 @@ TEST_F(CameraHalTest, AddMessageCallbackN1)
TEST_F(CameraHalTest, AddMessageCallbackN2)
{
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
@@ -663,6 +737,8 @@ TEST_F(CameraHalTest, RemoveMessageCallbackP)
{
uint32_t cb_id = 0;
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);
@@ -685,6 +761,8 @@ TEST_F(CameraHalTest, StartAutoFocusP)
uint32_t cb_id = 0;
gint64 end_time = 0;
+ CAMERA_SUPPORT_CHECK;
+
EXPECT_NE(h, nullptr);
EXPECT_EQ(ret, CAMERA_ERROR_NONE);