| /* Copyright (c) 2013, 2016, The Linux Foundation. All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions are |
| * met: |
| * * Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * * Redistributions in binary form must reproduce the above |
| * copyright notice, this list of conditions and the following |
| * disclaimer in the documentation and/or other materials provided |
| * with the distribution. |
| * * Neither the name of The Linux Foundation nor the names of its |
| * contributors may be used to endorse or promote products derived |
| * from this software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED |
| * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT |
| * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS |
| * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
| * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
| * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR |
| * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
| * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE |
| * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN |
| * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| * |
| */ |
| |
| // Camera dependencies |
| #include "mm_qcamera_app.h" |
| #include "mm_qcamera_dbg.h" |
| |
| #define MM_QCAMERA_APP_UTEST_MAX_MAIN_LOOP 1 |
| #define MM_QCAMERA_APP_UTEST_OUTER_LOOP 1 |
| #define MM_QCAMERA_APP_UTEST_INNER_LOOP 1 |
| #define MM_QCAM_APP_TEST_NUM 128 |
| |
| static mm_app_tc_t mm_app_tc[MM_QCAM_APP_TEST_NUM]; |
| |
| int mm_app_tc_open_close(mm_camera_app_t *cam_app) |
| { |
| int rc = MM_CAMERA_OK; |
| int i; |
| mm_camera_test_obj_t test_obj; |
| |
| printf("\n Verifying open/close cameras...\n"); |
| for (i = 0; i < cam_app->num_cameras; i++) { |
| memset(&test_obj, 0, sizeof(mm_camera_test_obj_t)); |
| rc = mm_app_open(cam_app, i, &test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_open() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| sleep(1); |
| rc = mm_app_close(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_close() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| } |
| if (rc == MM_CAMERA_OK) { |
| printf("\nPassed\n"); |
| } else { |
| printf("\nFailed\n"); |
| } |
| LOGD("END, rc = %d\n", rc); |
| return rc; |
| } |
| |
| int mm_app_tc_start_stop_preview(mm_camera_app_t *cam_app) |
| { |
| int rc = MM_CAMERA_OK; |
| int i, j; |
| mm_camera_test_obj_t test_obj; |
| |
| printf("\n Verifying start/stop preview...\n"); |
| for (i = 0; i < cam_app->num_cameras; i++) { |
| memset(&test_obj, 0, sizeof(mm_camera_test_obj_t)); |
| rc = mm_app_open(cam_app, i, &test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_open() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| |
| for (j = 0; j < MM_QCAMERA_APP_UTEST_INNER_LOOP; j++) { |
| rc = mm_app_start_preview(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE(" mm_app_start_preview() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| sleep(1); |
| rc = mm_app_stop_preview(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE(" mm_app_stop_preview() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| } |
| |
| rc |= mm_app_close(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_close() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| } |
| if (rc == MM_CAMERA_OK) { |
| printf("\nPassed\n"); |
| } else { |
| printf("\nFailed\n"); |
| } |
| LOGD("END, rc = %d\n", rc); |
| return rc; |
| } |
| |
| int mm_app_tc_start_stop_zsl(mm_camera_app_t *cam_app) |
| { |
| int rc = MM_CAMERA_OK; |
| int i, j; |
| mm_camera_test_obj_t test_obj; |
| |
| printf("\n Verifying start/stop preview...\n"); |
| for (i = 0; i < cam_app->num_cameras; i++) { |
| memset(&test_obj, 0, sizeof(mm_camera_test_obj_t)); |
| rc = mm_app_open(cam_app, i, &test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_open() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| |
| for (j = 0; j < 1; j++) { |
| rc = mm_app_start_preview_zsl(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE(" mm_app_start_preview_zsl() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| sleep(1); |
| rc = mm_app_stop_preview_zsl(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE(" mm_app_stop_preview_zsl() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| } |
| |
| rc = mm_app_close(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_close() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| } |
| if (rc == MM_CAMERA_OK) { |
| printf("\nPassed\n"); |
| } else { |
| printf("\nFailed\n"); |
| } |
| LOGD("END, rc = %d\n", rc); |
| return rc; |
| } |
| |
| int mm_app_tc_start_stop_video_preview(mm_camera_app_t *cam_app) |
| { |
| int rc = MM_CAMERA_OK; |
| int i, j; |
| mm_camera_test_obj_t test_obj; |
| |
| printf("\n Verifying start/stop video preview...\n"); |
| for (i = 0; i < cam_app->num_cameras; i++) { |
| memset(&test_obj, 0, sizeof(mm_camera_test_obj_t)); |
| rc = mm_app_open(cam_app, i, &test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_open() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| |
| for (j = 0; j < MM_QCAMERA_APP_UTEST_INNER_LOOP; j++) { |
| rc = mm_app_start_record_preview(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_start_record_preview() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| sleep(1); |
| rc = mm_app_stop_record_preview(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_stop_record_preview() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| } |
| |
| rc = mm_app_close(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_close() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| } |
| if (rc == MM_CAMERA_OK) { |
| printf("\nPassed\n"); |
| } else { |
| printf("\nFailed\n"); |
| } |
| LOGD("END, rc = %d\n", rc); |
| return rc; |
| } |
| |
| int mm_app_tc_start_stop_video_record(mm_camera_app_t *cam_app) |
| { |
| int rc = MM_CAMERA_OK; |
| int i, j; |
| mm_camera_test_obj_t test_obj; |
| |
| printf("\n Verifying start/stop recording...\n"); |
| for (i = 0; i < cam_app->num_cameras; i++) { |
| memset(&test_obj, 0, sizeof(mm_camera_test_obj_t)); |
| rc = mm_app_open(cam_app, i, &test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_open() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| |
| rc = mm_app_start_record_preview(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_start_record_preview() cam_idx=%d, err=%d\n", |
| i, rc); |
| mm_app_close(&test_obj); |
| break; |
| } |
| |
| sleep(1); |
| |
| for (j = 0; j < MM_QCAMERA_APP_UTEST_INNER_LOOP; j++) { |
| rc = mm_app_start_record(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_start_record() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| |
| sleep(1); |
| |
| rc = mm_app_stop_record(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_stop_record() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| } |
| if (rc != MM_CAMERA_OK) { |
| LOGE("start/stop record cam_idx=%d, err=%d\n", |
| i, rc); |
| mm_app_stop_record_preview(&test_obj); |
| mm_app_close(&test_obj); |
| break; |
| } |
| |
| rc = mm_app_stop_record_preview(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_stop_record_preview() cam_idx=%d, err=%d\n", |
| i, rc); |
| mm_app_close(&test_obj); |
| break; |
| } |
| |
| rc = mm_app_close(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_close() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| } |
| if (rc == MM_CAMERA_OK) { |
| printf("\nPassed\n"); |
| } else { |
| printf("\nFailed\n"); |
| } |
| LOGD("END, rc = %d\n", rc); |
| return rc; |
| } |
| |
| int mm_app_tc_start_stop_live_snapshot(mm_camera_app_t *cam_app) |
| { |
| int rc = MM_CAMERA_OK; |
| int i, j; |
| mm_camera_test_obj_t test_obj; |
| |
| printf("\n Verifying start/stop live snapshot...\n"); |
| for (i = 0; i < cam_app->num_cameras; i++) { |
| memset(&test_obj, 0, sizeof(mm_camera_test_obj_t)); |
| rc = mm_app_open(cam_app, i, &test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_open() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| |
| rc = mm_app_start_record_preview(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_start_record_preview() cam_idx=%d, err=%d\n", |
| i, rc); |
| mm_app_close(&test_obj); |
| break; |
| } |
| |
| sleep(1); |
| |
| rc = mm_app_start_record(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_start_record() cam_idx=%d, err=%d\n", |
| i, rc); |
| mm_app_stop_record_preview(&test_obj); |
| mm_app_close(&test_obj); |
| break; |
| } |
| |
| sleep(1); |
| |
| for (j = 0; j < MM_QCAMERA_APP_UTEST_INNER_LOOP; j++) { |
| rc = mm_app_start_live_snapshot(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_start_live_snapshot() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| |
| /* wait for jpeg is done */ |
| mm_camera_app_wait(); |
| |
| rc = mm_app_stop_live_snapshot(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_stop_live_snapshot() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| } |
| if (rc != MM_CAMERA_OK) { |
| LOGE("start/stop live snapshot cam_idx=%d, err=%d\n", |
| i, rc); |
| mm_app_stop_record(&test_obj); |
| mm_app_stop_record_preview(&test_obj); |
| mm_app_close(&test_obj); |
| break; |
| } |
| |
| rc = mm_app_stop_record(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_stop_record() cam_idx=%d, err=%d\n", |
| i, rc); |
| mm_app_stop_record_preview(&test_obj); |
| mm_app_close(&test_obj); |
| break; |
| } |
| |
| sleep(1); |
| |
| rc = mm_app_stop_record_preview(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_stop_record_preview() cam_idx=%d, err=%d\n", |
| i, rc); |
| mm_app_close(&test_obj); |
| break; |
| } |
| |
| rc = mm_app_close(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_close() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| } |
| if (rc == MM_CAMERA_OK) { |
| printf("\nPassed\n"); |
| } else { |
| printf("\nFailed\n"); |
| } |
| LOGD("END, rc = %d\n", rc); |
| return rc; |
| } |
| |
| int mm_app_tc_capture_raw(mm_camera_app_t *cam_app) |
| { |
| int rc = MM_CAMERA_OK; |
| int i, j; |
| mm_camera_test_obj_t test_obj; |
| uint8_t num_snapshot = 1; |
| uint8_t num_rcvd_snapshot = 0; |
| |
| printf("\n Verifying raw capture...\n"); |
| for (i = 0; i < cam_app->num_cameras; i++) { |
| memset(&test_obj, 0, sizeof(mm_camera_test_obj_t)); |
| rc = mm_app_open(cam_app, i, &test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_open() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| |
| for (j = 0; j < MM_QCAMERA_APP_UTEST_INNER_LOOP; j++) { |
| rc = mm_app_start_capture_raw(&test_obj, num_snapshot); |
| if (rc != MM_CAMERA_OK) { |
| LOGE(" mm_app_start_capture() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| while (num_rcvd_snapshot < num_snapshot) { |
| mm_camera_app_wait(); |
| num_rcvd_snapshot++; |
| } |
| rc = mm_app_stop_capture_raw(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE(" mm_app_stop_capture() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| } |
| |
| rc |= mm_app_close(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_close() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| } |
| if (rc == MM_CAMERA_OK) { |
| printf("\nPassed\n"); |
| } else { |
| printf("\nFailed\n"); |
| } |
| LOGD("END, rc = %d\n", rc); |
| return rc; |
| } |
| |
| int mm_app_tc_capture_regular(mm_camera_app_t *cam_app) |
| { |
| int rc = MM_CAMERA_OK; |
| int i, j; |
| mm_camera_test_obj_t test_obj; |
| uint8_t num_snapshot = 1; |
| uint8_t num_rcvd_snapshot = 0; |
| |
| printf("\n Verifying capture...\n"); |
| for (i = 0; i < cam_app->num_cameras; i++) { |
| memset(&test_obj, 0, sizeof(mm_camera_test_obj_t)); |
| rc = mm_app_open(cam_app, i, &test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_open() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| |
| for (j = 0; j < MM_QCAMERA_APP_UTEST_INNER_LOOP; j++) { |
| rc = mm_app_start_capture(&test_obj, num_snapshot); |
| if (rc != MM_CAMERA_OK) { |
| LOGE(" mm_app_start_capture() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| while (num_rcvd_snapshot < num_snapshot) { |
| mm_camera_app_wait(); |
| num_rcvd_snapshot++; |
| } |
| rc = mm_app_stop_capture(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE(" mm_app_stop_capture() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| } |
| |
| rc = mm_app_close(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_close() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| } |
| if (rc == MM_CAMERA_OK) { |
| printf("\nPassed\n"); |
| } else { |
| printf("\nFailed\n"); |
| } |
| LOGD("END, rc = %d\n", rc); |
| return rc; |
| } |
| |
| int mm_app_tc_capture_burst(mm_camera_app_t *cam_app) |
| { |
| int rc = MM_CAMERA_OK; |
| int i, j; |
| mm_camera_test_obj_t test_obj; |
| uint8_t num_snapshot = 3; |
| uint8_t num_rcvd_snapshot = 0; |
| |
| printf("\n Verifying capture...\n"); |
| for (i = 0; i < cam_app->num_cameras; i++) { |
| memset(&test_obj, 0, sizeof(mm_camera_test_obj_t)); |
| rc = mm_app_open(cam_app, i, &test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_open() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| |
| for (j = 0; j < MM_QCAMERA_APP_UTEST_INNER_LOOP; j++) { |
| rc = mm_app_start_capture(&test_obj, num_snapshot); |
| if (rc != MM_CAMERA_OK) { |
| LOGE(" mm_app_start_capture() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| while (num_rcvd_snapshot < num_snapshot) { |
| mm_camera_app_wait(); |
| num_rcvd_snapshot++; |
| } |
| rc = mm_app_stop_capture(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE(" mm_app_stop_capture() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| } |
| |
| rc = mm_app_close(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_close() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| } |
| if (rc == MM_CAMERA_OK) { |
| printf("\nPassed\n"); |
| } else { |
| printf("\nFailed\n"); |
| } |
| LOGD("END, rc = %d\n", rc); |
| return rc; |
| } |
| |
| int mm_app_tc_rdi_burst(mm_camera_app_t *cam_app) |
| { |
| int rc = MM_CAMERA_OK, rc2 = MM_CAMERA_OK; |
| int i, j; |
| mm_camera_test_obj_t test_obj; |
| |
| printf("\n Verifying rdi burst (3) capture...\n"); |
| for (i = 0; i < cam_app->num_cameras; i++) { |
| memset(&test_obj, 0, sizeof(mm_camera_test_obj_t)); |
| rc = mm_app_open(cam_app, i, &test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_open() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| |
| for (j = 0; j < MM_QCAMERA_APP_UTEST_INNER_LOOP; j++) { |
| rc = mm_app_start_rdi(&test_obj, 3); |
| if (rc != MM_CAMERA_OK) { |
| LOGE(" mm_app_start_preview() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| sleep(1); |
| rc = mm_app_stop_rdi(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE(" mm_app_stop_preview() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| } |
| |
| rc2 = mm_app_close(&test_obj); |
| if (rc2 != MM_CAMERA_OK) { |
| LOGE("mm_app_close() cam_idx=%d, err=%d\n", |
| i, rc2); |
| if (rc == MM_CAMERA_OK) { |
| rc = rc2; |
| } |
| break; |
| } |
| } |
| if (rc == MM_CAMERA_OK) { |
| printf("\nPassed\n"); |
| } else { |
| printf("\nFailed\n"); |
| } |
| LOGD("END, rc = %d\n", rc); |
| return rc; |
| } |
| |
| int mm_app_tc_rdi_cont(mm_camera_app_t *cam_app) |
| { |
| int rc = MM_CAMERA_OK, rc2 = MM_CAMERA_OK; |
| int i, j; |
| mm_camera_test_obj_t test_obj; |
| |
| printf("\n Verifying rdi continuous capture...\n"); |
| for (i = 0; i < cam_app->num_cameras; i++) { |
| memset(&test_obj, 0, sizeof(mm_camera_test_obj_t)); |
| rc = mm_app_open(cam_app, i, &test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE("mm_app_open() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| |
| for (j = 0; j < MM_QCAMERA_APP_UTEST_INNER_LOOP; j++) { |
| rc = mm_app_start_rdi(&test_obj, 0); |
| if (rc != MM_CAMERA_OK) { |
| LOGE(" mm_app_start_preview() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| sleep(1); |
| rc = mm_app_stop_rdi(&test_obj); |
| if (rc != MM_CAMERA_OK) { |
| LOGE(" mm_app_stop_preview() cam_idx=%d, err=%d\n", |
| i, rc); |
| break; |
| } |
| } |
| |
| rc2 = mm_app_close(&test_obj); |
| if (rc2 != MM_CAMERA_OK) { |
| LOGE("mm_app_close() cam_idx=%d, err=%d\n", |
| i, rc2); |
| if (rc == MM_CAMERA_OK) { |
| rc = rc2; |
| } |
| break; |
| } |
| } |
| if (rc == MM_CAMERA_OK) { |
| printf("\nPassed\n"); |
| } else { |
| printf("\nFailed\n"); |
| } |
| LOGD("END, rc = %d\n", rc); |
| return rc; |
| } |
| |
| int mm_app_gen_test_cases() |
| { |
| int tc = 0; |
| memset(mm_app_tc, 0, sizeof(mm_app_tc)); |
| if (tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_tc_open_close; |
| if (tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_tc_start_stop_preview; |
| //if (tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_tc_start_stop_zsl; |
| //if (tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_tc_start_stop_video_preview; |
| //if (tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_tc_start_stop_video_record; |
| //if (tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_tc_start_stop_live_snapshot; |
| //if (tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_tc_capture_regular; |
| //if (tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_tc_capture_burst; |
| //if (tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_tc_rdi_cont; |
| //if (tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_tc_rdi_burst; |
| |
| return tc; |
| } |
| |
| int mm_app_unit_test_entry(mm_camera_app_t *cam_app) |
| { |
| int rc = MM_CAMERA_OK; |
| int i, j, tc = 0; |
| |
| tc = mm_app_gen_test_cases(); |
| LOGD("Running %d test cases\n",tc); |
| for (i = 0; i < tc; i++) { |
| for (j = 0; j < MM_QCAMERA_APP_UTEST_OUTER_LOOP; j++) { |
| mm_app_tc[i].r = mm_app_tc[i].f(cam_app); |
| if (mm_app_tc[i].r != MM_CAMERA_OK) { |
| printf(" test case %d (iteration %d) error = %d, abort unit testing engine!!!!\n", |
| i, j, mm_app_tc[i].r); |
| rc = mm_app_tc[i].r; |
| goto end; |
| } |
| } |
| } |
| end: |
| printf("nTOTAL_TSET_CASE = %d, NUM_TEST_RAN = %d, rc=%d\n", tc, i, rc); |
| return rc; |
| } |
| |
| |
| |
| |