1 /*
2 Copyright (c) 2012, 2016, The Linux Foundation. All rights reserved.
3
4 Redistribution and use in source and binary forms, with or without
5 modification, are permitted provided that the following conditions are
6 met:
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
17 THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
18 WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
20 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
21 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
24 BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
26 OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
27 IF 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
42 extern int system_dimension_set(int cam_id);
43 extern int stopPreview(int cam_id);
44 extern int takePicture_yuv(int cam_id);
45 extern int takePicture_rdi(int cam_id);
46 extern int startRdi(int cam_id);
47 extern int stopRdi(int cam_id);
48 extern int startStats(int cam_id);
49 extern 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 */
66 static mm_app_tc_t mm_app_tc[MM_QCAM_APP_TEST_NUM];
67 static int num_test_cases = 0;
68 struct 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
mm_app_dtc_0(mm_camera_app_t * cam_apps)77 int 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
155 end:
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
mm_app_dtc_1(mm_camera_app_t * cam_apps)167 int 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
244 end:
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
mm_app_dtc_2(mm_camera_app_t * cam_apps)256 int 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
333 end:
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
mm_app_dtc_3(mm_camera_app_t * cam_apps)346 int 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
435 end:
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
mm_app_dtc_4(mm_camera_app_t * cam_apps)448 int 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
545 end:
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
mm_app_dtc_5(mm_camera_app_t * cam_apps)557 int 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
638 end:
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
mm_app_dtc_6(mm_camera_app_t * cam_apps)650 int 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
731 end:
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*/
front_thread(void * data)742 static 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 }
795 end:
796 LOGE("DUAL front thread close %d",rc);
797 return NULL;
798 }
799
back_thread(void * data)800 static 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 }
869 end:
870 LOGE("DUAL back thread close %d",rc);
871 return NULL;
872 }
873
874 /* Test case m13572468 : Open & start in 2 concurrent pthread*/
mm_app_dtc_7(mm_camera_app_t * cam_apps)875 int 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
897 end:
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*/
mm_app_dtc_8(mm_camera_app_t * cam_apps)908 int 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
935 end:
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*/
mm_app_dtc_9(mm_camera_app_t * cam_apps)945 int 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
973 end:
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*/
mm_app_dtc_10(mm_camera_app_t * cam_apps)984 int 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");
1010 end:
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*/
mm_app_dtc_11(mm_camera_app_t * cam_apps)1021 int 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
1049 end:
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*/
mm_app_dtc_12(mm_camera_app_t * cam_apps)1060 int 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
1084 end:
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
mm_app_dtc_13(mm_camera_app_t * cam_apps)1102 int 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
1198 end:
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*/
mm_app_dtc_1243(mm_camera_app_t * cam_apps)1209 int 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
1261 end:
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
mm_app_dtc_2134(mm_camera_app_t * cam_apps)1271 int 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
1323 end:
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 }
mm_app_dtc_2143(mm_camera_app_t * cam_apps)1332 int 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
1384 end:
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
mm_app_dtc_2413(mm_camera_app_t * cam_apps)1394 int 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
1446 end:
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
mm_app_dtc_1234(mm_camera_app_t * cam_apps)1456 int 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
1507 end:
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
mm_app_dtc_1324(mm_camera_app_t * cam_apps)1517 int 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
1566 end:
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*/
mm_app_dtc_s_0(mm_camera_app_t * cam_apps)1577 int 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 }
1636 end:
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
mm_app_dtc_s_1(mm_camera_app_t * cam_apps)1646 int 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 }
1698 end:
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
mm_app_dtc_s_2(mm_camera_app_t * cam_apps)1708 int 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 }
1765 end:
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
mm_app_dtc_s_3(mm_camera_app_t * cam_apps)1775 int 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 }
1828 end:
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*/
mm_app_dtc_s_5(mm_camera_app_t * cam_apps)1839 int 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 }
1877 end:
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
mm_app_gen_dual_test_cases()1887 int 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
mm_app_dual_test_entry(mm_camera_app_t * cam_app)1909 int 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 }
1926 end:
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