summaryrefslogtreecommitdiff
path: root/testcase/camera/camera_hal_tc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'testcase/camera/camera_hal_tc.cpp')
-rw-r--r--testcase/camera/camera_hal_tc.cpp126
1 files changed, 102 insertions, 24 deletions
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);