[camera/haltests] Update 49/178849/2
authorJeongmo Yang <jm80.yang@samsung.com>
Mon, 14 May 2018 08:37:58 +0000 (17:37 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Tue, 15 May 2018 01:27:08 +0000 (10:27 +0900)
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>
configure.ac
packaging/mm-hal-interface.spec
testcase/camera/Makefile.am
testcase/camera/camera_hal_tc.cpp

index 711a40f..c476c63 100644 (file)
@@ -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
index a85e862..4a2abf0 100644 (file)
@@ -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
index e24d817..8449971 100644 (file)
@@ -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)
 
index 3d3c149..9e8eae9 100644 (file)
@@ -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);