1/* 2Copyright (c) 2012, 2016, The Linux Foundation. All rights reserved. 3 4Redistribution and use in source and binary forms, with or without 5modification, are permitted provided that the following conditions are 6met: 7 * Redistributions of source code must retain the above copyright 8 notice, this list of conditions and the following disclaimer. 9 * Redistributions in binary form must reproduce the above 10 copyright notice, this list of conditions and the following 11 disclaimer in the documentation and/or other materials provided 12 with the distribution. 13 * Neither the name of The Linux Foundation nor the names of its 14 contributors may be used to endorse or promote products derived 15 from this software without specific prior written permission. 16 17THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED 18WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT 20ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS 21BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 24BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 25WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 26OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 27IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28*/ 29 30// System dependencies 31#include <pthread.h> 32 33// Camera dependencies 34#include "mm_qcamera_unit_test.h" 35#include "mm_camera_dbg.h" 36 37#define MM_QCAMERA_APP_UTEST_MAX_MAIN_LOOP 4 38#define MM_QCAM_APP_TEST_NUM 128 39 40#define MM_QCAMERA_APP_WAIT_TIME 1000000000 41 42extern int system_dimension_set(int cam_id); 43extern int stopPreview(int cam_id); 44extern int takePicture_yuv(int cam_id); 45extern int takePicture_rdi(int cam_id); 46extern int startRdi(int cam_id); 47extern int stopRdi(int cam_id); 48extern int startStats(int cam_id); 49extern int stopStats(int cam_id); 50 51 52/* 53* 1. open back 54* 2. open front 55* 3. start back 56* 4. start front 57* 5. stop back 58* 6. stop front 59* 7. close back 60* 8. close front 61* 9. take picture 62* a. start recording 63* b. stop recording 64* c. take picture rdi 65*/ 66static mm_app_tc_t mm_app_tc[MM_QCAM_APP_TEST_NUM]; 67static int num_test_cases = 0; 68struct test_case_params { 69 uint16_t launch; 70 uint16_t preview; 71 uint16_t recording; 72 uint16_t snapshot; 73}; 74 75/* Test case 12436857 :*/ 76 77int mm_app_dtc_0(mm_camera_app_t *cam_apps) 78{ 79 int rc = MM_CAMERA_OK; 80 int i,j; 81 int result = 0; 82 int front_camera = 1; 83 int back_camera = 0; 84 85 printf("\n Verifying Preview on back Camera and RDI on Front camera 0...\n"); 86 LOGE("DUAL open back camera \n"); 87 if(mm_app_open(back_camera) != MM_CAMERA_OK) { 88 LOGE("mm_app_open() back camera err=%d\n", rc); 89 rc = -1; 90 goto end; 91 } 92 if(system_dimension_set(back_camera) != MM_CAMERA_OK){ 93 LOGE("system_dimension_set() err=%d\n", rc); 94 rc = -1; 95 goto end; 96 } 97 98 LOGE("DUAL open front camera \n"); 99 if(mm_app_open(front_camera) != MM_CAMERA_OK) { 100 LOGE("mm_app_open() front camera err=%d\n", rc); 101 rc = -1; 102 goto end; 103 } 104 105 if(system_dimension_set(front_camera) != MM_CAMERA_OK){ 106 LOGE("system_dimension_set() err=%d\n", rc); 107 rc = -1; 108 goto end; 109 } 110 111 LOGE("DUAL start camera Rdi for front \n"); 112 if( MM_CAMERA_OK != (rc = startRdi(front_camera))) { 113 LOGE(" back camera startPreview() err=%d\n", rc); 114 goto end; 115 } 116 mm_camera_app_wait(); 117 sleep(1); 118 119 LOGE("DUAL start camera Preview for back \n"); 120 if( MM_CAMERA_OK != (rc = startPreview(back_camera))) { 121 LOGE(" startPreview() backcamera err=%d\n", rc); 122 goto end; 123 } 124 mm_camera_app_wait(); 125 sleep(1); 126 127 LOGE("DUAL stop camera Rdi for front \n"); 128 if( MM_CAMERA_OK != (rc = stopRdi(front_camera))) { 129 LOGE(" startPreview() backcamera err=%d\n", rc); 130 goto end; 131 } 132 usleep(10*1000); 133 134 LOGE("DUAL close front camera\n"); 135 if( mm_app_close(front_camera) != MM_CAMERA_OK) { 136 LOGE("mm_app_close() err=%d\n", rc); 137 rc = -1; 138 goto end; 139 } 140 sleep(1); 141 LOGE("DUAL stop camera Preview for back \n"); 142 if( MM_CAMERA_OK != (rc = stopPreview(back_camera))) { 143 LOGD(" startPreview() err=%d\n", rc); 144 goto end; 145 } 146 usleep(10*1000); 147 LOGE("DUAL close back camera \n"); 148 if( mm_app_close(back_camera) != MM_CAMERA_OK) { 149 LOGE("mm_app_close() err=%d\n", rc); 150 rc = -1; 151 goto end; 152 } 153 LOGE("DUAL end \n"); 154 155end: 156 if(rc == 0) { 157 printf("\nPassed\n"); 158 }else{ 159 printf("\nFailed\n"); 160 } 161 LOGD("END, rc = %d\n", rc); 162 return rc; 163} 164 165/* Test case 12436587 :*/ 166 167int mm_app_dtc_1(mm_camera_app_t *cam_apps) 168{ 169 int rc = MM_CAMERA_OK; 170 int i,j; 171 int result = 0; 172 int front_camera = 1; 173 int back_camera = 0; 174 175 printf("\n Verifying Preview on back Camera and RDI on Front camera 1...\n"); 176 LOGE("DUAL open back camera \n"); 177 if(mm_app_open(back_camera) != MM_CAMERA_OK) { 178 LOGE("mm_app_open() back camera err=%d\n", rc); 179 rc = -1; 180 goto end; 181 } 182 if(system_dimension_set(back_camera) != MM_CAMERA_OK){ 183 LOGE("system_dimension_set() err=%d\n", rc); 184 rc = -1; 185 goto end; 186 } 187 188 LOGE("DUAL open front camera \n"); 189 if(mm_app_open(front_camera) != MM_CAMERA_OK) { 190 LOGE("mm_app_open() front camera err=%d\n", rc); 191 rc = -1; 192 goto end; 193 } 194 195 if(system_dimension_set(front_camera) != MM_CAMERA_OK){ 196 LOGE("system_dimension_set() err=%d\n", rc); 197 rc = -1; 198 goto end; 199 } 200 201 LOGE("DUAL start camera Rdi for front \n"); 202 if( MM_CAMERA_OK != (rc = startRdi(front_camera))) { 203 LOGE(" back camera startPreview() err=%d\n", rc); 204 goto end; 205 } 206 mm_camera_app_wait(); 207 sleep(1); 208 209 LOGE("DUAL start camera Preview for back \n"); 210 211 if( MM_CAMERA_OK != (rc = startPreview(back_camera))) { 212 LOGE(" startPreview() backcamera err=%d\n", rc); 213 goto end; 214 } 215 mm_camera_app_wait(); 216 sleep(1); 217 LOGE("DUAL end \n"); 218 219 LOGE("DUAL stop camera Preview for front \n"); 220 if( MM_CAMERA_OK != (rc = stopRdi(front_camera))) { 221 LOGE(" startPreview() backcamera err=%d\n", rc); 222 goto end; 223 } 224 usleep(10*1000); 225 LOGE("DUAL stop camera Preview for back \n"); 226 if( MM_CAMERA_OK != (rc = stopPreview(back_camera))) { 227 LOGD(" startPreview() err=%d\n", rc); 228 goto end; 229 } 230 usleep(10*1000); 231 LOGE("DUAL close front camera\n"); 232 if( mm_app_close(front_camera) != MM_CAMERA_OK) { 233 LOGE("mm_app_close() err=%d\n", rc); 234 rc = -1; 235 goto end; 236 } 237 LOGE("DUAL close back camera \n"); 238 if( mm_app_close(back_camera) != MM_CAMERA_OK) { 239 LOGE("mm_app_close() err=%d\n", rc); 240 rc = -1; 241 goto end; 242 } 243 244end: 245 if(rc == 0) { 246 printf("\nPassed\n"); 247 }else{ 248 printf("\nFailed\n"); 249 } 250 LOGD("END, rc = %d\n", rc); 251 return rc; 252} 253 254/* Test case 12436578 :*/ 255 256int mm_app_dtc_2(mm_camera_app_t *cam_apps) 257{ 258 int rc = MM_CAMERA_OK; 259 int i,j; 260 int result = 0; 261 int front_camera = 1; 262 int back_camera = 0; 263 264 printf("\n Verifying Preview on back Camera and RDI on Front camera 2...\n"); 265 LOGE("DUAL open back camera \n"); 266 if(mm_app_open(back_camera) != MM_CAMERA_OK) { 267 LOGE("mm_app_open() back camera err=%d\n", rc); 268 rc = -1; 269 goto end; 270 } 271 if(system_dimension_set(back_camera) != MM_CAMERA_OK){ 272 LOGE("system_dimension_set() err=%d\n", rc); 273 rc = -1; 274 goto end; 275 } 276 277 LOGE("DUAL open front camera \n"); 278 if(mm_app_open(front_camera) != MM_CAMERA_OK) { 279 LOGE("mm_app_open() front camera err=%d\n", rc); 280 rc = -1; 281 goto end; 282 } 283 284 if(system_dimension_set(front_camera) != MM_CAMERA_OK){ 285 LOGE("system_dimension_set() err=%d\n", rc); 286 rc = -1; 287 goto end; 288 } 289 290 LOGE("DUAL start camera Rdi for front \n"); 291 if( MM_CAMERA_OK != (rc = startRdi(front_camera))) { 292 LOGE(" back camera startPreview() err=%d\n", rc); 293 goto end; 294 } 295 mm_camera_app_wait(); 296 sleep(1); 297 298 LOGE("DUAL start camera Preview for back \n"); 299 300 if( MM_CAMERA_OK != (rc = startPreview(back_camera))) { 301 LOGE(" startPreview() backcamera err=%d\n", rc); 302 goto end; 303 } 304 mm_camera_app_wait(); 305 sleep(1); 306 LOGE("DUAL end \n"); 307 308 LOGE("DUAL stop camera Preview for front \n"); 309 if( MM_CAMERA_OK != (rc = stopRdi(front_camera))) { 310 LOGE(" startPreview() backcamera err=%d\n", rc); 311 goto end; 312 } 313 usleep(10*1000); 314 LOGE("DUAL stop camera Preview for back \n"); 315 if( MM_CAMERA_OK != (rc = stopPreview(back_camera))) { 316 LOGD(" startPreview() err=%d\n", rc); 317 goto end; 318 } 319 usleep(10*1000); 320 LOGE("DUAL close back camera \n"); 321 if( mm_app_close(back_camera) != MM_CAMERA_OK) { 322 LOGE("mm_app_close() err=%d\n", rc); 323 rc = -1; 324 goto end; 325 } 326 LOGE("DUAL close front camera\n"); 327 if( mm_app_close(front_camera) != MM_CAMERA_OK) { 328 LOGE("mm_app_close() err=%d\n", rc); 329 rc = -1; 330 goto end; 331 } 332 333end: 334 if(rc == 0) { 335 printf("\nPassed\n"); 336 }else{ 337 printf("\nFailed\n"); 338 } 339 LOGD("END, rc = %d\n", rc); 340 return rc; 341} 342 343/* Test case 241395768 : 1357 * 3, This is performed three times 344* And for each iteration 9 is performed thrice */ 345 346int mm_app_dtc_3(mm_camera_app_t *cam_apps) 347{ 348 int rc = MM_CAMERA_OK; 349 int i,j,k; 350 int result = 0; 351 int front_camera = 1; 352 int back_camera = 0; 353 354 printf("\n Verifying Preview and snapshot on back Camera and RDI on Front camera 3...\n"); 355 LOGE("DUAL open front camera \n"); 356 if(mm_app_open(front_camera) != MM_CAMERA_OK) { 357 LOGE("mm_app_open() front camera err=%d\n", rc); 358 rc = -1; 359 goto end; 360 } 361 if(system_dimension_set(front_camera) != MM_CAMERA_OK){ 362 LOGE("system_dimension_set() err=%d\n", rc); 363 rc = -1; 364 goto end; 365 } 366 367 LOGE("DUAL start camera Preview for front \n"); 368 369 if( MM_CAMERA_OK != (rc = startRdi(front_camera))) { 370 LOGE(" startPreview() frontcamera err=%d\n", rc); 371 goto end; 372 } 373 mm_camera_app_wait(); 374 usleep(10*1000); 375 376 for (k = 0; k < MM_QCAMERA_APP_INTERATION ; k++) { 377 LOGE("DUAL open back camera %d \n",k); 378 if(mm_app_open(back_camera) != MM_CAMERA_OK) { 379 LOGE("mm_app_open() back camera err=%d\n", rc); 380 rc = -1; 381 goto end; 382 } 383 384 if(system_dimension_set(back_camera) != MM_CAMERA_OK){ 385 LOGE("system_dimension_set() err=%d\n", rc); 386 rc = -1; 387 goto end; 388 } 389 390 LOGE("DUAL start camera Preview for back \n"); 391 if( MM_CAMERA_OK != (rc = startPreview(back_camera))) { 392 LOGE(" back camera startPreview() err=%d\n", rc); 393 goto end; 394 } 395 396 for (j = 0; j < MM_QCAMERA_APP_INTERATION; j++) { 397 LOGE("DUAL take picture for back \n"); 398 if ( MM_CAMERA_OK != (rc = takePicture_yuv(back_camera))) { 399 LOGE(" TakePicture() err=%d\n", rc); 400 break; 401 } 402 mm_camera_app_wait(); 403 404 } 405 usleep(10*1000); 406 LOGE("DUAL stop camera Preview for back \n"); 407 if( MM_CAMERA_OK != (rc = stopPreview(back_camera))) { 408 LOGE(" stopPreview() backcamera err=%d\n", rc); 409 goto end; 410 } 411 usleep(10*1000); 412 413 LOGE("DUAL close back camera\n"); 414 if( mm_app_close(back_camera) != MM_CAMERA_OK) { 415 LOGE("mm_app_close() err=%d\n", rc); 416 rc = -1; 417 goto end; 418 } 419 usleep(20*1000); 420 } 421 LOGE("DUAL stop camera Preview for Rdi \n"); 422 if( MM_CAMERA_OK != (rc = stopRdi(front_camera))) { 423 LOGD(" stopRdi() err=%d\n", rc); 424 goto end; 425 } 426 usleep(10*1000); 427 LOGE("DUAL close front camera \n"); 428 if( mm_app_close(front_camera) != MM_CAMERA_OK) { 429 LOGE("mm_app_close() err=%d\n", rc); 430 rc = -1; 431 goto end; 432 } 433 LOGE("DUAL end \n"); 434 435end: 436 if(rc == 0) { 437 printf("\nPassed\n"); 438 }else{ 439 printf("\nFailed\n"); 440 } 441 LOGD("END, rc = %d\n", rc); 442 return rc; 443} 444 445/* Test case 2413ab5768 : 1357 * 3, This is performed three times 446* And for each iteration ab is performed thrice */ 447 448int mm_app_dtc_4(mm_camera_app_t *cam_apps) 449{ 450 int rc = MM_CAMERA_OK; 451 int i,j,k; 452 int result = 0; 453 int front_camera = 1; 454 int back_camera = 0; 455 456 printf("\n Verifying Preview on back Camera and RDI on Front camera 4...\n"); 457 LOGE("DUAL open front camera \n"); 458 if(mm_app_open(front_camera) != MM_CAMERA_OK) { 459 LOGE("mm_app_open() front camera err=%d\n", rc); 460 rc = -1; 461 goto end; 462 } 463 if(system_dimension_set(front_camera) != MM_CAMERA_OK){ 464 LOGE("system_dimension_set() err=%d\n", rc); 465 rc = -1; 466 goto end; 467 } 468 469 LOGE("DUAL start camera Preview for front \n"); 470 471 if( MM_CAMERA_OK != (rc = startRdi(front_camera))) { 472 LOGE(" startPreview() frontcamera err=%d\n", rc); 473 goto end; 474 } 475 mm_camera_app_wait(); 476 usleep(20*1000); 477 478 for (k = 0; k < MM_QCAMERA_APP_INTERATION ; k++){ 479 LOGE("DUAL open back camera %d \n",k); 480 if(mm_app_open(back_camera) != MM_CAMERA_OK) { 481 LOGE("mm_app_open() back camera err=%d\n", rc); 482 rc = -1; 483 goto end; 484 } 485 486 if(system_dimension_set(back_camera) != MM_CAMERA_OK){ 487 LOGE("system_dimension_set() err=%d\n", rc); 488 rc = -1; 489 goto end; 490 } 491 492 LOGE("DUAL start camera Preview for back \n"); 493 if( MM_CAMERA_OK != (rc = startPreview(back_camera))) { 494 LOGE(" back camera startPreview() err=%d\n", rc); 495 goto end; 496 } 497 usleep(30*1000); 498 499 for (j = 0; j < MM_QCAMERA_APP_INTERATION; j++) { 500 LOGE("DUAL start camera record for back \n"); 501 if ( MM_CAMERA_OK != (rc = startRecording(back_camera))) { 502 LOGE(" StartVideorecording() err=%d\n", rc); 503 break; 504 } 505 506 mm_camera_app_wait(); 507 usleep(15*1000); 508 LOGE("DUAL stop camera record for back \n"); 509 if ( MM_CAMERA_OK != (rc = stopRecording(back_camera))) { 510 LOGE(" Stopvideorecording() err=%d\n", rc); 511 break; 512 } 513 } 514 usleep(10*1000); 515 516 LOGE("DUAL stop camera Preview for back \n"); 517 if( MM_CAMERA_OK != (rc = stopPreview(back_camera))) { 518 LOGE(" stopPreview() backcamera err=%d\n", rc); 519 goto end; 520 } 521 usleep(10*1000); 522 523 LOGE("DUAL close back camera\n"); 524 if( mm_app_close(back_camera) != MM_CAMERA_OK) { 525 LOGE("mm_app_close() err=%d\n", rc); 526 rc = -1; 527 goto end; 528 } 529 usleep(20*1000); 530 } 531 LOGE("DUAL stop camera Preview for Rdi \n"); 532 if( MM_CAMERA_OK != (rc = stopRdi(front_camera))) { 533 LOGD(" stopRdi() err=%d\n", rc); 534 goto end; 535 } 536 usleep(10*1000); 537 LOGE("DUAL close front camera \n"); 538 if( mm_app_close(front_camera) != MM_CAMERA_OK) { 539 LOGE("mm_app_close() err=%d\n", rc); 540 rc = -1; 541 goto end; 542 } 543 LOGE("DUAL end \n"); 544 545end: 546 if(rc == 0) { 547 printf("\nPassed\n"); 548 }else{ 549 printf("\nFailed\n"); 550 } 551 LOGD("END, rc = %d\n", rc); 552 return rc; 553} 554 555/* Test case 24135768 : 1357 * 3, This is performed three times*/ 556 557int mm_app_dtc_5(mm_camera_app_t *cam_apps) 558{ 559 int rc = MM_CAMERA_OK; 560 int i,j,k; 561 int result = 0; 562 int front_camera = 1; 563 int back_camera = 0; 564 565 printf("\n Verifying Preview on back Camera and RDI on Front camera 5...\n"); 566 LOGE("DUAL open front camera \n"); 567 if(mm_app_open(front_camera) != MM_CAMERA_OK) { 568 LOGE("mm_app_open() front camera err=%d\n", rc); 569 rc = -1; 570 goto end; 571 } 572 if(system_dimension_set(front_camera) != MM_CAMERA_OK){ 573 LOGE("system_dimension_set() err=%d\n", rc); 574 rc = -1; 575 goto end; 576 } 577 578 LOGE("DUAL start camera Preview for front \n"); 579 580 if( MM_CAMERA_OK != (rc = startRdi(front_camera))) { 581 LOGE(" startPreview() frontcamera err=%d\n", rc); 582 goto end; 583 } 584 mm_camera_app_wait(); 585 sleep(1); 586 587 for (k = 0; k < 4 ; k++) { 588 LOGE("DUAL open back camera %d \n",k); 589 if(mm_app_open(back_camera) != MM_CAMERA_OK) { 590 LOGE("mm_app_open() back camera err=%d\n", rc); 591 rc = -1; 592 goto end; 593 } 594 595 if(system_dimension_set(back_camera) != MM_CAMERA_OK){ 596 LOGE("system_dimension_set() err=%d\n", rc); 597 rc = -1; 598 goto end; 599 } 600 601 LOGE("DUAL start camera Preview for back \n"); 602 if( MM_CAMERA_OK != (rc = startPreview(back_camera))) { 603 LOGE(" back camera startPreview() err=%d\n", rc); 604 goto end; 605 } 606 mm_camera_app_wait(); 607 sleep(1); 608 609 LOGE("DUAL stop camera Preview for back \n"); 610 if( MM_CAMERA_OK != (rc = stopPreview(back_camera))) { 611 LOGE(" stopPreview() backcamera err=%d\n", rc); 612 goto end; 613 } 614 usleep(10*1000); 615 616 LOGE("DUAL close back camera\n"); 617 if( mm_app_close(back_camera) != MM_CAMERA_OK) { 618 LOGE("mm_app_close() err=%d\n", rc); 619 rc = -1; 620 goto end; 621 } 622 sleep(1); 623 } 624 LOGE("DUAL stop camera Preview for Rdi \n"); 625 if( MM_CAMERA_OK != (rc = stopRdi(front_camera))) { 626 LOGD(" stopRdi() err=%d\n", rc); 627 goto end; 628 } 629 usleep(10*1000); 630 LOGE("DUAL close front camera \n"); 631 if( mm_app_close(front_camera) != MM_CAMERA_OK) { 632 LOGE("mm_app_close() err=%d\n", rc); 633 rc = -1; 634 goto end; 635 } 636 LOGE("DUAL end \n"); 637 638end: 639 if(rc == 0) { 640 printf("\nPassed\n"); 641 }else{ 642 printf("\nFailed\n"); 643 } 644 LOGD("END, rc = %d\n", rc); 645 return rc; 646} 647 648/* Test case 13246857 : 2468 * 3, This is performed three times*/ 649 650int mm_app_dtc_6(mm_camera_app_t *cam_apps) 651{ 652 int rc = MM_CAMERA_OK; 653 int i,j,k; 654 int result = 0; 655 int front_camera = 1; 656 int back_camera = 0; 657 658 printf("\n Verifying Preview on back Camera and RDI on Front camera 6...\n"); 659 LOGE("DUAL open back camera \n"); 660 if(mm_app_open(back_camera) != MM_CAMERA_OK) { 661 LOGE("mm_app_open() back camera err=%d\n", rc); 662 rc = -1; 663 goto end; 664 } 665 if(system_dimension_set(back_camera) != MM_CAMERA_OK){ 666 LOGE("system_dimension_set() err=%d\n", rc); 667 rc = -1; 668 goto end; 669 } 670 671 LOGE("DUAL start camera Preview for back \n"); 672 673 if( MM_CAMERA_OK != (rc = startPreview(back_camera))) { 674 LOGE(" startPreview() backcamera err=%d\n", rc); 675 goto end; 676 } 677 mm_camera_app_wait(); 678 sleep(1); 679 680 for (k = 0; k < 4 ; k++) { 681 LOGE("DUAL open front camera %d \n",k); 682 if(mm_app_open(front_camera) != MM_CAMERA_OK) { 683 LOGE("mm_app_open() front camera err=%d\n", rc); 684 rc = -1; 685 goto end; 686 } 687 688 if(system_dimension_set(front_camera) != MM_CAMERA_OK){ 689 LOGE("system_dimension_set() err=%d\n", rc); 690 rc = -1; 691 goto end; 692 } 693 694 LOGE("DUAL start camera Rdi for front \n"); 695 if( MM_CAMERA_OK != (rc = startRdi(front_camera))) { 696 LOGE(" back camera startPreview() err=%d\n", rc); 697 goto end; 698 } 699 mm_camera_app_wait(); 700 sleep(1); 701 702 LOGE("DUAL stop camera Preview for front \n"); 703 if( MM_CAMERA_OK != (rc = stopRdi(front_camera))) { 704 LOGE(" startPreview() backcamera err=%d\n", rc); 705 goto end; 706 } 707 usleep(10*1000); 708 709 LOGE("DUAL close front camera\n"); 710 if( mm_app_close(front_camera) != MM_CAMERA_OK) { 711 LOGE("mm_app_close() err=%d\n", rc); 712 rc = -1; 713 goto end; 714 } 715 sleep(1); 716 } 717 LOGE("DUAL stop camera Preview for back \n"); 718 if( MM_CAMERA_OK != (rc = stopPreview(back_camera))) { 719 LOGD(" startPreview() err=%d\n", rc); 720 goto end; 721 } 722 usleep(10*1000); 723 LOGE("DUAL close back camera \n"); 724 if( mm_app_close(back_camera) != MM_CAMERA_OK) { 725 LOGE("mm_app_close() err=%d\n", rc); 726 rc = -1; 727 goto end; 728 } 729 LOGE("DUAL end \n"); 730 731end: 732 if(rc == 0) { 733 printf("\nPassed\n"); 734 }else{ 735 printf("\nFailed\n"); 736 } 737 LOGD("END, rc = %d\n", rc); 738 return rc; 739} 740 741/*Multi Threaded Test Cases*/ 742static void *front_thread(void *data) 743{ 744 int front_camera = 1; 745 int rc = MM_CAMERA_OK; 746 int i,j,k,m; 747 struct test_case_params params 748 = *((struct test_case_params *)data); 749 for (i = 0; i < params.launch; i++) { 750 LOGE("DUAL open front camera %d\n",i); 751 if(mm_app_open(front_camera) != MM_CAMERA_OK) { 752 LOGE("mm_app_open() front camera err=%d\n", rc); 753 rc = -1; 754 goto end; 755 } 756 757 if(system_dimension_set(front_camera) != MM_CAMERA_OK){ 758 LOGE("system_dimension_set() err=%d\n", rc); 759 rc = -1; 760 goto end; 761 } 762 763 for (j = 0; j < params.preview; j++) { 764 LOGE("DUAL start camera Rdi for front %d ,%d \n",i,j); 765 if( MM_CAMERA_OK != (rc = startRdi(front_camera))) { 766 LOGE(" back camera startPreview() err=%d\n", rc); 767 goto end; 768 } 769 mm_camera_app_wait(); 770 usleep(20*1000); 771 for (k = 0; k < params.snapshot; k++) { 772 LOGE("DUAL take picture for front %d,%d,%d \n",i,j,k); 773 if ( MM_CAMERA_OK != (rc = takePicture_rdi(front_camera))) { 774 LOGE(" TakePicture() err=%d\n", rc); 775 goto end; 776 } 777 mm_camera_app_wait(); 778 usleep(30*1000); 779 } 780 LOGE("DUAL stop camera Rdi for front %d,%d\n",i,j); 781 if( MM_CAMERA_OK != (rc = stopRdi(front_camera))) { 782 LOGE(" startPreview() backcamera err=%d\n", rc); 783 goto end; 784 } 785 usleep(10*1000); 786 } 787 788 LOGE("DUAL close front camera %d\n",i); 789 if( mm_app_close(front_camera) != MM_CAMERA_OK) { 790 LOGE("mm_app_close() err=%d\n", rc); 791 rc = -1; 792 goto end; 793 } 794 } 795end: 796 LOGE("DUAL front thread close %d",rc); 797 return NULL; 798} 799 800static void *back_thread(void *data) 801{ 802 int rc = MM_CAMERA_OK; 803 int back_camera = 0; 804 int i,j,k,m; 805 struct test_case_params params 806 = *((struct test_case_params *)data); 807 for (i = 0; i < params.launch; i++) { 808 LOGE("DUAL open back camera %d\n",i); 809 if(mm_app_open(back_camera) != MM_CAMERA_OK) { 810 LOGE("mm_app_open() back camera err=%d\n", rc); 811 rc = -1; 812 goto end; 813 } 814 if(system_dimension_set(back_camera) != MM_CAMERA_OK){ 815 LOGE("system_dimension_set() err=%d\n", rc); 816 rc = -1; 817 goto end; 818 } 819 820 for (j = 0; j < params.preview; j++) { 821 LOGE("DUAL start camera Preview for back %d, %d\n",i,j); 822 if( MM_CAMERA_OK != (rc = startPreview(back_camera))) { 823 LOGE(" startPreview() backcamera err=%d\n", rc); 824 goto end; 825 } 826 mm_camera_app_wait(); 827 usleep(20*1000); 828 for (k = 0; k < params.snapshot; k++) { 829 LOGE("DUAL take picture for back %d, %d, %d\n",i,j,k); 830 if ( MM_CAMERA_OK != (rc = takePicture_yuv(back_camera))) { 831 LOGE(" TakePicture() err=%d\n", rc); 832 goto end; 833 } 834 mm_camera_app_wait(); 835 usleep(30*1000); 836 } 837 838 for (m = 0; m < params.recording; m++) { 839 LOGE("DUAL start record for back %d, %d, %d\n",i,j,m); 840 if ( MM_CAMERA_OK != (rc = startRecording(back_camera))) { 841 LOGE(" StartVideorecording() err=%d\n", rc); 842 break; 843 } 844 845 mm_camera_app_wait(); 846 usleep(10*1000); 847 LOGE("DUAL stop camera record for back \n"); 848 if ( MM_CAMERA_OK != (rc = stopRecording(back_camera))) { 849 LOGE(" Stopvideorecording() err=%d\n", rc); 850 break; 851 } 852 usleep(10*1000); 853 } 854 LOGE("DUAL stop camera Preview for back %d, %d\n",i,j); 855 if( MM_CAMERA_OK != (rc = stopPreview(back_camera))) { 856 LOGD(" startPreview() err=%d\n", rc); 857 goto end; 858 } 859 usleep(10*1000); 860 } 861 862 LOGE("DUAL close back camera %d\n",i); 863 if( mm_app_close(back_camera) != MM_CAMERA_OK) { 864 LOGE("mm_app_close() err=%d\n", rc); 865 rc = -1; 866 goto end; 867 } 868 } 869end: 870 LOGE("DUAL back thread close %d",rc); 871 return NULL; 872} 873 874/* Test case m13572468 : Open & start in 2 concurrent pthread*/ 875int mm_app_dtc_7(mm_camera_app_t *cam_apps) 876{ 877 int rc = MM_CAMERA_OK; 878 int result = 0; 879 pthread_t back_thread_id, front_thread_id; 880 struct test_case_params params; 881 memset(¶ms, 0, sizeof(struct test_case_params)); 882 params.launch = 5; 883 params.preview = 5; 884 printf("\n Verifying Preview on back Camera and RDI on Front camera 7...\n"); 885 886 LOGE("start back DUAL "); 887 rc = pthread_create(&back_thread_id, NULL, back_thread, ¶ms); 888 LOGE("start front DUAL "); 889 rc = pthread_create(&front_thread_id, NULL, front_thread, ¶ms); 890 sleep(1); 891 LOGE("stop back DUAL "); 892 rc = pthread_join(back_thread_id, NULL); 893 LOGE("stop front DUAL "); 894 rc = pthread_join(front_thread_id, NULL); 895 LOGE("DUAL end \n"); 896 897end: 898 if(rc == 0) { 899 printf("\nPassed\n"); 900 }else{ 901 printf("\nFailed\n"); 902 } 903 LOGD("END, rc = %d\n", rc); 904 return rc; 905} 906 907/* Test case m139572468 : Open & start in 2 concurrent pthread*/ 908int mm_app_dtc_8(mm_camera_app_t *cam_apps) 909{ 910 int rc = MM_CAMERA_OK; 911 int result = 0; 912 913 pthread_t back_thread_id, front_thread_id; 914 struct test_case_params bparams, fparams; 915 memset(&bparams, 0, sizeof(struct test_case_params)); 916 memset(&fparams, 0, sizeof(struct test_case_params)); 917 bparams.launch = 5; 918 bparams.preview = 5; 919 bparams.snapshot= 5; 920 fparams.launch = 5; 921 fparams.preview = 5; 922 printf("\n Verifying Preview on back Camera and RDI on Front camera 8...\n"); 923 924 LOGE("start back DUAL "); 925 rc = pthread_create(&back_thread_id, NULL, back_thread, &bparams); 926 LOGE("start front DUAL "); 927 rc = pthread_create(&front_thread_id, NULL, front_thread, &fparams); 928 sleep(1); 929 LOGE("stop back DUAL "); 930 rc = pthread_join(back_thread_id, NULL); 931 LOGE("stop front DUAL "); 932 rc = pthread_join(front_thread_id, NULL); 933 LOGE("DUAL end \n"); 934 935end: 936 if(rc == 0) 937 printf("\nPassed\n"); 938 else 939 printf("\nFailed\n"); 940 LOGD("END, rc = %d\n", rc); 941 return rc; 942} 943 944/* Test case m1395724c68 : Open & start in 2 concurrent pthread*/ 945int mm_app_dtc_9(mm_camera_app_t *cam_apps) 946{ 947 int rc = MM_CAMERA_OK; 948 int result = 0; 949 950 pthread_t back_thread_id, front_thread_id; 951 struct test_case_params bparams, fparams; 952 memset(&bparams, 0, sizeof(struct test_case_params)); 953 memset(&fparams, 0, sizeof(struct test_case_params)); 954 bparams.launch = 5; 955 bparams.preview = 5; 956 bparams.snapshot= 5; 957 fparams.launch = 5; 958 fparams.preview = 5; 959 fparams.snapshot = 5; 960 printf("\n Verifying Preview on back Camera and RDI on Front camera 9...\n"); 961 962 LOGE("start back DUAL "); 963 rc = pthread_create(&back_thread_id, NULL, back_thread, &bparams); 964 LOGE("start front DUAL "); 965 rc = pthread_create(&front_thread_id, NULL, front_thread, &fparams); 966 sleep(1); 967 LOGE("stop back DUAL "); 968 rc = pthread_join(back_thread_id, NULL); 969 LOGE("stop front DUAL "); 970 rc = pthread_join(front_thread_id, NULL); 971 LOGE("DUAL end \n"); 972 973end: 974 if(rc == 0) { 975 printf("\nPassed\n"); 976 }else{ 977 printf("\nFailed\n"); 978 } 979 LOGD("END, rc = %d\n", rc); 980 return rc; 981} 982 983/* Test case m13ab572468 : Open & start in 2 concurrent pthread*/ 984int mm_app_dtc_10(mm_camera_app_t *cam_apps) 985{ 986 int rc = MM_CAMERA_OK; 987 int result = 0; 988 989 pthread_t back_thread_id, front_thread_id; 990 struct test_case_params bparams, fparams; 991 memset(&bparams, 0, sizeof(struct test_case_params)); 992 memset(&fparams, 0, sizeof(struct test_case_params)); 993 bparams.launch = 5; 994 bparams.preview = 5; 995 bparams.recording= 5; 996 fparams.launch = 5; 997 fparams.preview = 5; 998 printf("\n Verifying Preview on back Camera and RDI on Front camera 10...\n"); 999 1000 LOGE("start back DUAL "); 1001 rc = pthread_create(&back_thread_id, NULL, back_thread, &bparams); 1002 LOGE("start front DUAL "); 1003 rc = pthread_create(&front_thread_id, NULL, front_thread, &fparams); 1004 sleep(1); 1005 LOGE("stop back DUAL "); 1006 rc = pthread_join(back_thread_id, NULL); 1007 LOGE("stop front DUAL "); 1008 rc = pthread_join(front_thread_id, NULL); 1009 LOGE("DUAL end \n"); 1010end: 1011 if(rc == 0) { 1012 printf("\nPassed\n"); 1013 }else{ 1014 printf("\nFailed\n"); 1015 } 1016 LOGD("END, rc = %d\n", rc); 1017 return rc; 1018} 1019 1020/* Test case m13ab5724c68 : Open & start in 2 concurrent pthread*/ 1021int mm_app_dtc_11(mm_camera_app_t *cam_apps) 1022{ 1023 int rc = MM_CAMERA_OK; 1024 int result = 0; 1025 1026 pthread_t back_thread_id, front_thread_id; 1027 struct test_case_params bparams, fparams; 1028 memset(&bparams, 0, sizeof(struct test_case_params)); 1029 memset(&fparams, 0, sizeof(struct test_case_params)); 1030 bparams.launch = 5; 1031 bparams.preview = 5; 1032 bparams.recording= 5; 1033 fparams.launch = 5; 1034 fparams.preview = 5; 1035 fparams.snapshot = 5; 1036 printf("\n Verifying Preview on back Camera and RDI on Front camera 11...\n"); 1037 1038 LOGE("start back DUAL "); 1039 rc = pthread_create(&back_thread_id, NULL, back_thread, &bparams); 1040 LOGE("start front DUAL "); 1041 rc = pthread_create(&front_thread_id, NULL, front_thread, &fparams); 1042 sleep(1); 1043 LOGE("stop back DUAL "); 1044 rc = pthread_join(back_thread_id, NULL); 1045 LOGE("stop front DUAL "); 1046 rc = pthread_join(front_thread_id, NULL); 1047 LOGE("DUAL end \n"); 1048 1049end: 1050 if(rc == 0) { 1051 printf("\nPassed\n"); 1052 }else{ 1053 printf("\nFailed\n"); 1054 } 1055 LOGD("END, rc = %d\n", rc); 1056 return rc; 1057} 1058 1059/* Test case m1728 : Open & start in 2 concurrent pthread*/ 1060int mm_app_dtc_12(mm_camera_app_t *cam_apps) 1061{ 1062 int rc = MM_CAMERA_OK; 1063 int result = 0; 1064 1065 pthread_t back_thread_id, front_thread_id; 1066 struct test_case_params bparams, fparams; 1067 memset(&bparams, 0, sizeof(struct test_case_params)); 1068 memset(&fparams, 0, sizeof(struct test_case_params)); 1069 bparams.launch = 15; 1070 fparams.launch = 15; 1071 printf("\n Verifying Preview on back Camera and RDI on Front camera 12...\n"); 1072 1073 LOGE("start back DUAL "); 1074 rc = pthread_create(&back_thread_id, NULL, back_thread, &bparams); 1075 LOGE("start front DUAL "); 1076 rc = pthread_create(&front_thread_id, NULL, front_thread, &fparams); 1077 sleep(1); 1078 LOGE("stop back DUAL "); 1079 rc = pthread_join(back_thread_id, NULL); 1080 LOGE("stop front DUAL "); 1081 rc = pthread_join(front_thread_id, NULL); 1082 LOGE("DUAL end \n"); 1083 1084end: 1085 if(rc == 0) { 1086 printf("\nPassed\n"); 1087 }else{ 1088 printf("\nFailed\n"); 1089 } 1090 LOGD("END, rc = %d\n", rc); 1091 return rc; 1092} 1093 1094/* Test case 2413(ab)5768 1095 * Test the dual camera usecase. We startPreview on front camera, 1096 * but backend will allocate RDI buffers and start front camera in 1097 * RDI streaming mode. It then diverts RDI frames, converts them into YUV 420 1098 * through C2D and generate preview data in the buffers allocated here. 1099 * Back camera will use the pixel interface as usual. 1100 */ 1101 1102int mm_app_dtc_13(mm_camera_app_t *cam_apps) 1103{ 1104 int rc = MM_CAMERA_OK; 1105 int i,j,k; 1106 int result = 0; 1107 int front_camera = 1; 1108 int back_camera = 0; 1109 1110 printf("\n 13. Verifying Preview + Recording on back Camera and Preview(through RDI) on Front camera\n"); 1111 LOGE("DUAL open front camera \n"); 1112 if(mm_app_open(front_camera) != MM_CAMERA_OK) { 1113 LOGE("mm_app_open() front camera err=%d\n", rc); 1114 rc = -1; 1115 goto end; 1116 } 1117 if(system_dimension_set(front_camera) != MM_CAMERA_OK){ 1118 LOGE("system_dimension_set() err=%d\n", rc); 1119 rc = -1; 1120 goto end; 1121 } 1122 1123 LOGE("DUAL start camera Preview for front \n"); 1124 if( MM_CAMERA_OK != (rc = startPreview(front_camera))) { 1125 LOGE(" front camera startPreview() err=%d\n", rc); 1126 goto end; 1127 } 1128 mm_camera_app_wait(); 1129 usleep(20*1000); 1130 1131 for (k = 0; k < MM_QCAMERA_APP_INTERATION ; k++){ 1132 LOGE("DUAL open back camera %d \n",k); 1133 if(mm_app_open(back_camera) != MM_CAMERA_OK) { 1134 LOGE("mm_app_open() back camera err=%d\n", rc); 1135 rc = -1; 1136 goto end; 1137 } 1138 1139 if(system_dimension_set(back_camera) != MM_CAMERA_OK){ 1140 LOGE("system_dimension_set() err=%d\n", rc); 1141 rc = -1; 1142 goto end; 1143 } 1144 1145 LOGE("DUAL start camera Preview for back \n"); 1146 if( MM_CAMERA_OK != (rc = startPreview(back_camera))) { 1147 LOGE(" back camera startPreview() err=%d\n", rc); 1148 goto end; 1149 } 1150 usleep(30*1000); 1151 1152 for (j = 0; j < MM_QCAMERA_APP_INTERATION; j++) { 1153 LOGE("DUAL start camera record for back Iteration %d \n", j); 1154 if ( MM_CAMERA_OK != (rc = startRecording(back_camera))) { 1155 LOGE(" StartVideorecording() err=%d\n", rc); 1156 break; 1157 } 1158 1159 mm_camera_app_wait(); 1160 usleep(10*1000*1000); 1161 LOGE("DUAL stop camera record for back Iteration %d\n", j); 1162 if ( MM_CAMERA_OK != (rc = stopRecording(back_camera))) { 1163 LOGE(" Stopvideorecording() err=%d\n", rc); 1164 break; 1165 } 1166 } 1167 usleep(10*1000); 1168 1169 LOGE("DUAL stop camera Preview for back \n"); 1170 if( MM_CAMERA_OK != (rc = stopPreview(back_camera))) { 1171 LOGE(" stopPreview() backcamera err=%d\n", rc); 1172 goto end; 1173 } 1174 usleep(10*1000); 1175 1176 LOGE("DUAL close back camera\n"); 1177 if( mm_app_close(back_camera) != MM_CAMERA_OK) { 1178 LOGE("mm_app_close() err=%d\n", rc); 1179 rc = -1; 1180 goto end; 1181 } 1182 usleep(20*1000); 1183 } 1184 LOGE("DUAL stop camera Preview for Rdi \n"); 1185 if( MM_CAMERA_OK != (rc = stopPreview(front_camera))) { 1186 LOGE(" stopPreview() frontcamera err=%d\n", rc); 1187 goto end; 1188 } 1189 usleep(10*1000); 1190 LOGE("DUAL close front camera \n"); 1191 if( mm_app_close(front_camera) != MM_CAMERA_OK) { 1192 LOGE("mm_app_close() err=%d\n", rc); 1193 rc = -1; 1194 goto end; 1195 } 1196 LOGE("DUAL end \n"); 1197 1198end: 1199 if(rc == 0) { 1200 printf("\nPassed\n"); 1201 }else{ 1202 printf("\nFailed\n"); 1203 } 1204 LOGD("END, rc = %d\n", rc); 1205 return rc; 1206} 1207 1208/*Below 6 are reference test cases just to test the open path for dual camera*/ 1209int mm_app_dtc_1243(mm_camera_app_t *cam_apps) 1210{ 1211 int rc = MM_CAMERA_OK; 1212 int i,j; 1213 int result = 0; 1214 int front_camera = 1; 1215 int back_camera = 0; 1216 1217 printf("\n Verifying Preview on back Camera and RDI on Front camera...\n"); 1218 LOGE("DUAL open back camera \n"); 1219 if(mm_app_open(back_camera) != MM_CAMERA_OK) { 1220 LOGE("mm_app_open() back camera err=%d\n", rc); 1221 rc = -1; 1222 goto end; 1223 } 1224 if(system_dimension_set(back_camera) != MM_CAMERA_OK){ 1225 LOGE("system_dimension_set() err=%d\n", rc); 1226 rc = -1; 1227 goto end; 1228 } 1229 1230 LOGE("DUAL open front camera \n"); 1231 if(mm_app_open(front_camera) != MM_CAMERA_OK) { 1232 LOGE("mm_app_open() front camera err=%d\n", rc); 1233 rc = -1; 1234 goto end; 1235 } 1236 1237 if(system_dimension_set(front_camera) != MM_CAMERA_OK){ 1238 LOGE("system_dimension_set() err=%d\n", rc); 1239 rc = -1; 1240 goto end; 1241 } 1242 1243 LOGE("DUAL start camera Rdi for front \n"); 1244 if( MM_CAMERA_OK != (rc = startRdi(front_camera))) { 1245 LOGE(" back camera startPreview() err=%d\n", rc); 1246 goto end; 1247 } 1248 mm_camera_app_wait(); 1249 sleep(1); 1250 1251 LOGE("DUAL start camera Preview for back \n"); 1252 1253 if( MM_CAMERA_OK != (rc = startPreview(back_camera))) { 1254 LOGE(" startPreview() backcamera err=%d\n", rc); 1255 goto end; 1256 } 1257 mm_camera_app_wait(); 1258 sleep(1); 1259 LOGE("DUAL end \n"); 1260 1261end: 1262 if(rc == 0) { 1263 printf("\nPassed\n"); 1264 }else{ 1265 printf("\nFailed\n"); 1266 } 1267 LOGD("END, rc = %d\n", rc); 1268 return rc; 1269} 1270 1271int mm_app_dtc_2134(mm_camera_app_t *cam_apps) 1272{ 1273 int rc = MM_CAMERA_OK; 1274 int i,j; 1275 int result = 0; 1276 int front_camera = 1; 1277 int back_camera = 0; 1278 1279 printf("\n Verifying Preview on back Camera and RDI on Front camera...\n"); 1280 LOGE("DUAL open front camera \n"); 1281 if(mm_app_open(front_camera) != MM_CAMERA_OK) { 1282 LOGE("mm_app_open() back camera err=%d\n", rc); 1283 rc = -1; 1284 goto end; 1285 } 1286 if(system_dimension_set(front_camera) != MM_CAMERA_OK){ 1287 LOGE("system_dimension_set() err=%d\n", rc); 1288 rc = -1; 1289 goto end; 1290 } 1291 1292 LOGE("DUAL open back camera \n"); 1293 if(mm_app_open(back_camera) != MM_CAMERA_OK) { 1294 LOGE("mm_app_open() front camera err=%d\n", rc); 1295 rc = -1; 1296 goto end; 1297 } 1298 1299 if(system_dimension_set(back_camera) != MM_CAMERA_OK){ 1300 LOGE("system_dimension_set() err=%d\n", rc); 1301 rc = -1; 1302 goto end; 1303 } 1304 1305 LOGE("DUAL start camera Preview for front \n"); 1306 if( MM_CAMERA_OK != (rc = startPreview(back_camera))) { 1307 LOGE(" back camera startPreview() err=%d\n", rc); 1308 goto end; 1309 } 1310 mm_camera_app_wait(); 1311 sleep(1); 1312 1313 LOGE("DUAL start camera Rdi for back \n"); 1314 1315 if( MM_CAMERA_OK != (rc = startRdi(front_camera))) { 1316 LOGE(" startPreview() backcamera err=%d\n", rc); 1317 goto end; 1318 } 1319 mm_camera_app_wait(); 1320 sleep(1); 1321 LOGE("DUAL end \n"); 1322 1323end: 1324 if(rc == 0) { 1325 printf("\nPassed\n"); 1326 }else{ 1327 printf("\nFailed\n"); 1328 } 1329 LOGD("END, rc = %d\n", rc); 1330 return rc; 1331} 1332int mm_app_dtc_2143(mm_camera_app_t *cam_apps) 1333{ 1334 int rc = MM_CAMERA_OK; 1335 int i,j; 1336 int result = 0; 1337 int front_camera = 1; 1338 int back_camera = 0; 1339 1340 printf("\n Verifying Preview on back Camera and RDI on Front camera...\n"); 1341 LOGE("DUAL open front camera \n"); 1342 if(mm_app_open(front_camera) != MM_CAMERA_OK) { 1343 LOGE("mm_app_open() back camera err=%d\n", rc); 1344 rc = -1; 1345 goto end; 1346 } 1347 if(system_dimension_set(front_camera) != MM_CAMERA_OK){ 1348 LOGE("system_dimension_set() err=%d\n", rc); 1349 rc = -1; 1350 goto end; 1351 } 1352 1353 LOGE("DUAL open back camera \n"); 1354 if(mm_app_open(back_camera) != MM_CAMERA_OK) { 1355 LOGE("mm_app_open() front camera err=%d\n", rc); 1356 rc = -1; 1357 goto end; 1358 } 1359 1360 if(system_dimension_set(back_camera) != MM_CAMERA_OK){ 1361 LOGE("system_dimension_set() err=%d\n", rc); 1362 rc = -1; 1363 goto end; 1364 } 1365 1366 LOGE("DUAL start camera rdi for front \n"); 1367 if( MM_CAMERA_OK != (rc = startRdi(front_camera))) { 1368 LOGE(" back camera startPreview() err=%d\n", rc); 1369 goto end; 1370 } 1371 mm_camera_app_wait(); 1372 sleep(1); 1373 1374 LOGE("DUAL start camera preview for back \n"); 1375 1376 if( MM_CAMERA_OK != (rc = startPreview(back_camera))) { 1377 LOGE(" startPreview() backcamera err=%d\n", rc); 1378 goto end; 1379 } 1380 mm_camera_app_wait(); 1381 sleep(1); 1382 LOGE("DUAL end \n"); 1383 1384end: 1385 if(rc == 0) { 1386 printf("\nPassed\n"); 1387 }else{ 1388 printf("\nFailed\n"); 1389 } 1390 LOGD("END, rc = %d\n", rc); 1391 return rc; 1392} 1393 1394int mm_app_dtc_2413(mm_camera_app_t *cam_apps) 1395{ 1396 int rc = MM_CAMERA_OK; 1397 int i,j; 1398 int result = 0; 1399 int front_camera = 1; 1400 int back_camera = 0; 1401 1402 printf("\n Verifying Preview on back Camera and RDI on Front camera...\n"); 1403 LOGE("DUAL open front camera \n"); 1404 if(mm_app_open(front_camera) != MM_CAMERA_OK) { 1405 LOGE("mm_app_open() back camera err=%d\n", rc); 1406 rc = -1; 1407 goto end; 1408 } 1409 if(system_dimension_set(front_camera) != MM_CAMERA_OK){ 1410 LOGE("system_dimension_set() err=%d\n", rc); 1411 rc = -1; 1412 goto end; 1413 } 1414 1415 LOGE("DUAL start camera rdi for front \n"); 1416 if( MM_CAMERA_OK != (rc = startRdi(front_camera))) { 1417 LOGE(" back camera startPreview() err=%d\n", rc); 1418 goto end; 1419 } 1420 mm_camera_app_wait(); 1421 sleep(1); 1422 1423 LOGE("DUAL open back camera \n"); 1424 if(mm_app_open(back_camera) != MM_CAMERA_OK) { 1425 LOGE("mm_app_open() front camera err=%d\n", rc); 1426 rc = -1; 1427 goto end; 1428 } 1429 1430 if(system_dimension_set(back_camera) != MM_CAMERA_OK){ 1431 LOGE("system_dimension_set() err=%d\n", rc); 1432 rc = -1; 1433 goto end; 1434 } 1435 1436 LOGE("DUAL start camera preview for back \n"); 1437 1438 if( MM_CAMERA_OK != (rc = startPreview(back_camera))) { 1439 LOGE(" startPreview() backcamera err=%d\n", rc); 1440 goto end; 1441 } 1442 mm_camera_app_wait(); 1443 sleep(1); 1444 LOGE("DUAL end \n"); 1445 1446end: 1447 if(rc == 0) { 1448 printf("\nPassed\n"); 1449 }else{ 1450 printf("\nFailed\n"); 1451 } 1452 LOGD("END, rc = %d\n", rc); 1453 return rc; 1454} 1455 1456int mm_app_dtc_1234(mm_camera_app_t *cam_apps) 1457{ 1458 int rc = MM_CAMERA_OK; 1459 int i,j; 1460 int result = 0; 1461 int front_camera = 1; 1462 int back_camera = 0; 1463 1464 printf("\n Verifying Preview on back Camera and RDI on Front camera...\n"); 1465 LOGE("DUAL open back camera \n"); 1466 if(mm_app_open(back_camera) != MM_CAMERA_OK) { 1467 LOGE("mm_app_open() back camera err=%d\n", rc); 1468 rc = -1; 1469 goto end; 1470 } 1471 if(system_dimension_set(back_camera) != MM_CAMERA_OK){ 1472 LOGE("system_dimension_set() err=%d\n", rc); 1473 rc = -1; 1474 goto end; 1475 } 1476 LOGE("DUAL open front camera \n"); 1477 if(mm_app_open(front_camera) != MM_CAMERA_OK) { 1478 LOGE("mm_app_open() front camera err=%d\n", rc); 1479 rc = -1; 1480 goto end; 1481 } 1482 1483 if(system_dimension_set(front_camera) != MM_CAMERA_OK){ 1484 LOGE("system_dimension_set() err=%d\n", rc); 1485 rc = -1; 1486 goto end; 1487 } 1488 1489 LOGE("DUAL start camera preview for back \n"); 1490 if( MM_CAMERA_OK != (rc = startPreview(back_camera))) { 1491 LOGE(" back camera startPreview() err=%d\n", rc); 1492 goto end; 1493 } 1494 mm_camera_app_wait(); 1495 sleep(1); 1496 1497 LOGE("DUAL start camera rdi for front \n"); 1498 1499 if( MM_CAMERA_OK != (rc = startRdi(front_camera))) { 1500 LOGE(" startPreview() backcamera err=%d\n", rc); 1501 goto end; 1502 } 1503 mm_camera_app_wait(); 1504 sleep(1); 1505 LOGE("DUAL end \n"); 1506 1507end: 1508 if(rc == 0) { 1509 printf("\nPassed\n"); 1510 }else{ 1511 printf("\nFailed\n"); 1512 } 1513 LOGD("END, rc = %d\n", rc); 1514 return rc; 1515} 1516 1517int mm_app_dtc_1324(mm_camera_app_t *cam_apps) 1518{ 1519 int rc = MM_CAMERA_OK; 1520 int i,j; 1521 int result = 0; 1522 int front_camera = 1; 1523 int back_camera = 0; 1524 1525 printf("\n Verifying Preview on back Camera and RDI on Front camera...\n"); 1526 LOGE("DUAL start back camera \n"); 1527 if(mm_app_open(back_camera) != MM_CAMERA_OK) { 1528 LOGE("mm_app_open() back camera err=%d\n", rc); 1529 rc = -1; 1530 goto end; 1531 } 1532 if(system_dimension_set(back_camera) != MM_CAMERA_OK){ 1533 LOGE("system_dimension_set() err=%d\n", rc); 1534 rc = -1; 1535 goto end; 1536 } 1537 LOGE("DUAL start camera preview for back \n"); 1538 if( MM_CAMERA_OK != (rc = startPreview(back_camera))) { 1539 LOGE(" back camera startPreview() err=%d\n", rc); 1540 goto end; 1541 } 1542 //mm_camera_app_wait(); 1543 sleep(1); 1544 LOGE("DUAL start front camera \n"); 1545 if(mm_app_open(front_camera) != MM_CAMERA_OK) { 1546 LOGE("mm_app_open() front camera err=%d\n", rc); 1547 rc = -1; 1548 goto end; 1549 } 1550 1551 if(system_dimension_set(front_camera) != MM_CAMERA_OK){ 1552 LOGE("system_dimension_set() err=%d\n", rc); 1553 rc = -1; 1554 goto end; 1555 } 1556 LOGE("DUAL start rdi preview \n"); 1557 1558 if( MM_CAMERA_OK != (rc = startRdi(front_camera))) { 1559 LOGE(" startPreview() backcamera err=%d\n", rc); 1560 goto end; 1561 } 1562 mm_camera_app_wait(); 1563 sleep(1); 1564 LOGE("DUAL end \n"); 1565 1566end: 1567 if(rc == 0) { 1568 printf("\nPassed\n"); 1569 }else{ 1570 printf("\nFailed\n"); 1571 } 1572 LOGD("END, rc = %d\n", rc); 1573 return rc; 1574} 1575 1576/* single camera test cases*/ 1577int mm_app_dtc_s_0(mm_camera_app_t *cam_apps) 1578{ 1579 int rc = MM_CAMERA_OK; 1580 int i,j; 1581 int result = 0; 1582 int front_camera = 1; 1583 int back_camera = 0; 1584 1585 printf("\n Verifying Preview on back Camera and RDI on Front camera...\n"); 1586 1587 if(mm_app_open(back_camera) != MM_CAMERA_OK) { 1588 LOGE("mm_app_open() back camera err=%d\n", rc); 1589 rc = -1; 1590 goto end; 1591 } 1592 if(system_dimension_set(back_camera) != MM_CAMERA_OK){ 1593 LOGE("system_dimension_set() err=%d\n", rc); 1594 rc = -1; 1595 goto end; 1596 } 1597 1598 if( MM_CAMERA_OK != (rc = startPreview(back_camera))) { 1599 LOGE(" back camera startPreview() err=%d\n", rc); 1600 goto end; 1601 } 1602 1603 mm_camera_app_wait(); 1604 if(mm_app_open(front_camera) != MM_CAMERA_OK) { 1605 LOGE("mm_app_open() front camera err=%d\n", rc); 1606 rc = -1; 1607 goto end; 1608 } 1609 if(system_dimension_set(front_camera) != MM_CAMERA_OK){ 1610 LOGE("system_dimension_set() err=%d\n", rc); 1611 rc = -1; 1612 goto end; 1613 } 1614 1615 if( MM_CAMERA_OK != (rc = startRdi(front_camera))) { 1616 LOGE(" startPreview() backcamera err=%d\n", rc); 1617 goto end; 1618 } 1619 mm_camera_app_wait(); 1620 1621 if( MM_CAMERA_OK != (rc = stopRdi(front_camera))) { 1622 LOGE(" startPreview() backcamera err=%d\n", rc); 1623 goto end; 1624 } 1625 1626 if( MM_CAMERA_OK != (rc = stopPreview(my_cam_app.cam_open))) { 1627 LOGD(" startPreview() err=%d\n", rc); 1628 goto end; 1629 } 1630 1631 if( mm_app_close(my_cam_app.cam_open) != MM_CAMERA_OK) { 1632 LOGE("mm_app_close() err=%d\n", rc); 1633 rc = -1; 1634 goto end; 1635 } 1636end: 1637 if(rc == 0) { 1638 printf("\nPassed\n"); 1639 }else{ 1640 printf("\nFailed\n"); 1641 } 1642 LOGD("END, rc = %d\n", rc); 1643 return rc; 1644} 1645 1646int mm_app_dtc_s_1(mm_camera_app_t *cam_apps) 1647{ 1648 int rc = MM_CAMERA_OK; 1649 int i,j; 1650 int result = 0; 1651 1652 printf("\n Verifying Snapshot on front and back camera...\n"); 1653 for(i = 0; i < cam_apps->num_cameras; i++) { 1654 if( mm_app_open(i) != MM_CAMERA_OK) { 1655 LOGE("mm_app_open() err=%d\n", rc); 1656 rc = -1; 1657 goto end; 1658 } 1659 if(system_dimension_set(my_cam_app.cam_open) != MM_CAMERA_OK){ 1660 LOGE("system_dimension_set() err=%d\n", rc); 1661 rc = -1; 1662 goto end; 1663 } 1664 1665 if( MM_CAMERA_OK != (rc = startPreview(my_cam_app.cam_open))) { 1666 LOGE(" startPreview() err=%d\n", rc); 1667 break; 1668 } 1669 for(j = 0; j < MM_QCAMERA_APP_INTERATION; j++) { 1670 if( MM_CAMERA_OK != (rc = takePicture_yuv(my_cam_app.cam_open))) { 1671 LOGE(" TakePicture() err=%d\n", rc); 1672 break; 1673 } 1674 /*if(mm_camera_app_timedwait() == ETIMEDOUT) { 1675 LOGE(" Snapshot/Preview Callback not received in time or qbuf Faile\n"); 1676 break; 1677 }*/ 1678 mm_camera_app_wait(); 1679 result++; 1680 } 1681 if( MM_CAMERA_OK != (rc = stopPreview(my_cam_app.cam_open))) { 1682 LOGD(" startPreview() err=%d\n", rc); 1683 break; 1684 } 1685 if( mm_app_close(my_cam_app.cam_open) != MM_CAMERA_OK) { 1686 LOGE("mm_app_close() err=%d\n", rc); 1687 rc = -1; 1688 goto end; 1689 } 1690 if(result != MM_QCAMERA_APP_INTERATION) { 1691 printf(" Snapshot Start/Stop Fails for Camera %d in %d iteration", i,j); 1692 rc = -1; 1693 break; 1694 } 1695 1696 result = 0; 1697 } 1698end: 1699 if(rc == 0) { 1700 printf("\t***Passed***\n"); 1701 }else{ 1702 printf("\t***Failed***\n"); 1703 } 1704 LOGD("END, rc = %d\n", rc); 1705 return rc; 1706} 1707 1708int mm_app_dtc_s_2(mm_camera_app_t *cam_apps) 1709{ 1710 int rc = MM_CAMERA_OK; 1711 int i,j; 1712 int result = 0; 1713 1714 printf("\n Verifying Video on front and back camera...\n"); 1715 for(i = 0; i < cam_apps->num_cameras; i++) { 1716 if( mm_app_open(i) != MM_CAMERA_OK) { 1717 LOGE("mm_app_open() err=%d\n", rc); 1718 rc = -1; 1719 goto end; 1720 } 1721 if(system_dimension_set(my_cam_app.cam_open) != MM_CAMERA_OK){ 1722 LOGE("system_dimension_set() err=%d\n", rc); 1723 rc = -1; 1724 goto end; 1725 } 1726 1727 if( MM_CAMERA_OK != (rc = startPreview(my_cam_app.cam_open))) { 1728 LOGE(" startPreview() err=%d\n", rc); 1729 break; 1730 } 1731 for(j = 0; j < MM_QCAMERA_APP_INTERATION; j++) { 1732 if( MM_CAMERA_OK != (rc = startRecording(my_cam_app.cam_open))) { 1733 LOGE(" StartVideorecording() err=%d\n", rc); 1734 break; 1735 } 1736 1737 /*if(mm_camera_app_timedwait() == ETIMEDOUT) { 1738 LOGE(" Video Callback not received in time\n"); 1739 break; 1740 }*/ 1741 mm_camera_app_wait(); 1742 if( MM_CAMERA_OK != (rc = stopRecording(my_cam_app.cam_open))) { 1743 LOGE(" Stopvideorecording() err=%d\n", rc); 1744 break; 1745 } 1746 result++; 1747 } 1748 if( MM_CAMERA_OK != (rc = stopPreview(my_cam_app.cam_open))) { 1749 LOGD(" startPreview() err=%d\n", rc); 1750 break; 1751 } 1752 if( mm_app_close(my_cam_app.cam_open) != MM_CAMERA_OK) { 1753 LOGE("mm_app_close() err=%d\n", rc); 1754 rc = -1; 1755 goto end; 1756 } 1757 if(result != MM_QCAMERA_APP_INTERATION) { 1758 printf(" Video Start/Stop Fails for Camera %d in %d iteration", i,j); 1759 rc = -1; 1760 break; 1761 } 1762 1763 result = 0; 1764 } 1765end: 1766 if(rc == 0) { 1767 printf("\nPassed\n"); 1768 }else{ 1769 printf("\nFailed\n"); 1770 } 1771 LOGD("END, rc = %d\n", rc); 1772 return rc; 1773} 1774 1775int mm_app_dtc_s_3(mm_camera_app_t *cam_apps) 1776{ 1777 int rc = MM_CAMERA_OK; 1778 int i,j; 1779 int result = 0; 1780 1781 printf("\n Verifying RDI Stream on front and back camera...\n"); 1782 if(cam_apps->num_cameras == 0) { 1783 LOGE("Query Failed: Num of cameras = %d\n", cam_apps->num_cameras); 1784 rc = -1; 1785 goto end; 1786 } 1787 for(i = 0; i < cam_apps->num_cameras; i++) { 1788 if( mm_app_open(i) != MM_CAMERA_OK) { 1789 LOGE("mm_app_open() err=%d\n", rc); 1790 rc = -1; 1791 goto end; 1792 } 1793 if(system_dimension_set(my_cam_app.cam_open) != MM_CAMERA_OK){ 1794 LOGE("system_dimension_set() err=%d\n", rc); 1795 rc = -1; 1796 goto end; 1797 } 1798 for(j = 0; j < MM_QCAMERA_APP_INTERATION; j++) { 1799 if( MM_CAMERA_OK != (rc = startRdi(my_cam_app.cam_open))) { 1800 LOGE(" StartVideorecording() err=%d\n", rc); 1801 break; 1802 } 1803 1804 /*if(mm_camera_app_timedwait() == ETIMEDOUT) { 1805 LOGE(" Video Callback not received in time\n"); 1806 break; 1807 }*/ 1808 mm_camera_app_wait(); 1809 if( MM_CAMERA_OK != (rc = stopRdi(my_cam_app.cam_open))) { 1810 LOGE(" Stopvideorecording() err=%d\n", rc); 1811 break; 1812 } 1813 result++; 1814 } 1815 if( mm_app_close(my_cam_app.cam_open) != MM_CAMERA_OK) { 1816 LOGE("mm_app_close() err=%d\n", rc); 1817 rc = -1; 1818 goto end; 1819 } 1820 if(result != MM_QCAMERA_APP_INTERATION) { 1821 printf(" Video Start/Stop Fails for Camera %d in %d iteration", i,j); 1822 rc = -1; 1823 break; 1824 } 1825 1826 result = 0; 1827 } 1828end: 1829 if(rc == 0) { 1830 printf("\nPassed\n"); 1831 }else{ 1832 printf("\nFailed\n"); 1833 } 1834 LOGD("END, rc = %d\n", rc); 1835 return rc; 1836} 1837 1838/*Stats Test Case*/ 1839int mm_app_dtc_s_5(mm_camera_app_t *cam_apps) 1840{ 1841 int rc = MM_CAMERA_OK; 1842 int i,j; 1843 int result = 0; 1844 int front_camera = 1; 1845 int back_camera = 0; 1846 1847 printf("\n Verifying Preview on back Camera and RDI on Front camera...\n"); 1848 1849 if(mm_app_open(back_camera) != MM_CAMERA_OK) { 1850 LOGE("mm_app_open() back camera err=%d\n", rc); 1851 rc = -1; 1852 goto end; 1853 } 1854 if(system_dimension_set(back_camera) != MM_CAMERA_OK){ 1855 LOGE("system_dimension_set() err=%d\n", rc); 1856 rc = -1; 1857 goto end; 1858 } 1859 1860 if( MM_CAMERA_OK != (rc = startStats(back_camera))) { 1861 LOGE(" back camera startPreview() err=%d\n", rc); 1862 goto end; 1863 } 1864 1865 mm_camera_app_wait(); 1866 1867 if( MM_CAMERA_OK != (rc = stopStats(my_cam_app.cam_open))) { 1868 LOGD(" startPreview() err=%d\n", rc); 1869 goto end; 1870 } 1871 1872 if( mm_app_close(my_cam_app.cam_open) != MM_CAMERA_OK) { 1873 LOGE("mm_app_close() err=%d\n", rc); 1874 rc = -1; 1875 goto end; 1876 } 1877end: 1878 if(rc == 0) { 1879 printf("\nPassed\n"); 1880 }else{ 1881 printf("\nFailed\n"); 1882 } 1883 LOGD("END, rc = %d\n", rc); 1884 return rc; 1885} 1886 1887int mm_app_gen_dual_test_cases() 1888{ 1889 int tc = 0; 1890 memset(mm_app_tc, 0, sizeof(mm_app_tc)); 1891 if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_0; 1892 if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_1; 1893 if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_2; 1894 if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_3; 1895 if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_4; 1896 if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_5; 1897 if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_6; 1898 if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_7; 1899 if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_8; 1900 if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_9; 1901 if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_10; 1902 if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_11; 1903 if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_12; 1904 if(tc < MM_QCAM_APP_TEST_NUM) mm_app_tc[tc++].f = mm_app_dtc_13; 1905 1906 return tc; 1907} 1908 1909int mm_app_dual_test_entry(mm_camera_app_t *cam_app) 1910{ 1911 int rc = MM_CAMERA_OK; 1912 int i, tc = 0; 1913 int cam_id = 0; 1914 1915 tc = mm_app_gen_dual_test_cases(); 1916 LOGD("Running %d test cases\n",tc); 1917 for(i = 0; i < tc; i++) { 1918 mm_app_tc[i].r = mm_app_tc[i].f(cam_app); 1919 if(mm_app_tc[i].r != MM_CAMERA_OK) { 1920 printf(" test case %d error = %d, abort unit testing engine!!!!\n", 1921 i, mm_app_tc[i].r); 1922 rc = mm_app_tc[i].r; 1923 goto end; 1924 } 1925 } 1926end: 1927 printf("nTOTAL_TSET_CASE = %d, NUM_TEST_RAN = %d, rc=%d\n", tc, i, rc); 1928 return rc; 1929} 1930 1931 1932 1933 1934