• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2020-2021 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "ActsMediaCameraTest.h"
17 
18 #include <components/ui_surface_view.h>
19 #include <sys/stat.h>
20 #include <sys/time.h>
21 #include <sys/types.h>
22 #include <algorithm>
23 #include <cstdlib>
24 #include <fstream>
25 #include <iostream>
26 #include <memory>
27 #include <sstream>
28 #include <string>
29 #include "camera_kit.h"
30 
31 using namespace std;
32 using namespace OHOS;
33 using namespace OHOS::Media;
34 using namespace testing::ext;
35 
36 namespace OHOS {
37 /* *
38  * get current dir
39  * @return  string current file path of the test suits
40  */
GetCurDir()41 string GetCurDir()
42 {
43     string filePath = "";
44     char *buffer;
45     if ((buffer = getcwd(NULL, 0)) == NULL) {
46         perror("get file path error");
47     } else {
48         printf("Current Dir: %s\r\n", buffer);
49         filePath = buffer;
50         free(buffer);
51     }
52     return filePath + "/";
53 }
54 
55 // SetUpTestCase
SetUpTestCase(void)56 void CameraLiteTest::SetUpTestCase(void)
57 {
58     g_testPath = GetCurDir();
59     cout << "SetUpTestCase" << endl;
60 }
61 
62 // TearDownTestCase
TearDownTestCase(void)63 void CameraLiteTest::TearDownTestCase(void)
64 {
65     g_testPath = "";
66     cout << "TearDownTestCase" << endl;
67 }
68 
SetUp(void)69 void CameraLiteTest::SetUp(void)
70 {
71     // CameraSetUp
72     g_onGetCameraAbilityFlag = false;
73     g_onConfigureFlag = false;
74     g_onGetSupportedSizesFlag = false;
75 
76     // CameraDeviceCallBack
77     g_onCameraAvailableFlag = false;
78     g_onCameraUnavailableFlag = false;
79 
80     // CameraStateCallback
81     g_onCreatedFlag = false;
82     g_onCreateFailedFlag = false;
83     g_onConfiguredFlag = false;
84     g_onConfigureFailedFlag = false;
85     g_onReleasedFlag = false;
86 
87     // FrameStateCallback
88     g_onCaptureTriggerAbortedFlag = false;
89     g_onCaptureTriggerCompletedFlag = false;
90     g_onCaptureTriggerStartedFlag = false;
91     g_onFrameFinishedFlag = false;
92     g_onGetFrameConfigureType = false;
93     g_onFrameErrorFlag = false;
94     g_onFrameProgressedFlag = false;
95     g_onFrameStartedFlag = false;
96     g_onRecorderFlag = false;
97     cout << "SetUp" << endl;
98 }
99 
100 // Tear down
TearDown(void)101 void CameraLiteTest::TearDown(void) { cout << "TearDown." << endl; }
102 
SetupAudioSource(const Recorder & rec)103 int32_t SetupAudioSource(const Recorder &rec)
104 {
105     Recorder *recorder = (Recorder *)&rec;
106     int32_t ret = SUCCESS;
107     int32_t audioSourceId = 0;
108     AudioCodecFormat audioFormat = AAC_LC;
109     AudioSourceType inputSource = AUDIO_MIC;
110     int32_t sampleRate = 48000;
111     int32_t channelCount = 1;
112     int32_t audioEncodingBitRate = sampleRate;
113     if ((ret = recorder->SetAudioSource(inputSource, audioSourceId)) != SUCCESS) {
114         cout << "SetAudioSource failed." << ret << endl;
115         return FAIL;
116     }
117     if ((ret = recorder->SetAudioEncoder(audioSourceId, audioFormat)) != SUCCESS) {
118         cout << "SetAudioEncoder failed." << ret << endl;
119         return FAIL;
120     }
121     if ((ret = recorder->SetAudioSampleRate(audioSourceId, sampleRate)) != SUCCESS) {
122         cout << "SetAudioSampleRate failed." << ret << endl;
123         return FAIL;
124     }
125     if ((ret = recorder->SetAudioChannels(audioSourceId, channelCount)) != SUCCESS) {
126         cout << "SetAudioChannels failed." << ret << endl;
127         return FAIL;
128     }
129     if ((ret = recorder->SetAudioEncodingBitRate(audioSourceId, audioEncodingBitRate)) != SUCCESS) {
130         cout << "SetAudioEncodingBitRate failed." << ret << endl;
131         return FAIL;
132     }
133     return SUCCESS;
134 }
135 
136 /* *
137  * creat Recorder
138  */
SampleCreateRecorder()139 Recorder *SampleCreateRecorder()
140 {
141     int ret = 0;
142     VideoSourceType source = VIDEO_SOURCE_SURFACE_ES;
143     int32_t frameRate = 30;
144     double fps = 30;
145     int32_t rate = 4096;
146     int32_t sourceId = 0;
147     int32_t width = 1920;
148     int32_t height = 1080;
149     VideoCodecFormat encoder = HEVC;
150     Recorder *recorder = new Recorder();
151     if ((ret = recorder->SetVideoSource(source, sourceId)) != SUCCESS) {
152         cout << "SetVideoSource failed." << ret << endl;
153         return nullptr;
154     }
155     if ((ret = recorder->SetVideoEncoder(sourceId, encoder)) != SUCCESS) {
156         cout << "SetVideoEncoder failed." << ret << endl;
157         delete recorder;
158         return nullptr;
159     }
160     if ((ret = recorder->SetVideoSize(sourceId, width, height)) != SUCCESS) {
161         cout << "SetVideoSize failed." << ret << endl;
162         delete recorder;
163         return nullptr;
164     }
165     if ((ret = recorder->SetVideoFrameRate(sourceId, frameRate)) != SUCCESS) {
166         cout << "SetVideoFrameRate failed." << ret << endl;
167         delete recorder;
168         return nullptr;
169     }
170     if ((ret = recorder->SetVideoEncodingBitRate(sourceId, rate)) != SUCCESS) {
171         cout << "SetVideoEncodingBitRate failed." << ret << endl;
172         delete recorder;
173         return nullptr;
174     }
175     if ((ret = recorder->SetCaptureRate(sourceId, fps)) != SUCCESS) {
176         cout << "SetCaptureRate failed." << ret << endl;
177         delete recorder;
178         return nullptr;
179     }
180     if ((ret = SetupAudioSource(*recorder) != SUCCESS)) {
181         delete recorder;
182         return nullptr;
183     }
184     return recorder;
185 }
186 
187 /* *
188  * Create Frame StateCallback
189  */
190 class SampleFrameStateCallback : public FrameStateCallback {
191     /* *
192      * check file exist
193      *
194      * @param filename the filename
195      * @return  check result
196      */
FileCheck(const string & filename)197     int32_t FileCheck(const string &filename)
198     {
199         fstream fileTmp;
200         fileTmp.open(filename);
201         if (!fileTmp) {
202             cout << "file is not exist!" << endl;
203             return RET_ERR;
204         } else {
205             cout << "file is exist!" << endl;
206             fileTmp.close();
207             return RET_OK;
208         }
209     }
210 
211     /* *
212      * Save Capture
213      *
214      * @param testPath the file path
215      * @param buffer the buffer
216      * @param size the size
217      * @return save result
218      */
SampleSaveCapture(string testPath,char * buffer,uint32_t size)219     int32_t SampleSaveCapture(string testPath, char *buffer, uint32_t size)
220     {
221         cout << "Start saving picture" << endl;
222         string filePath = "";
223         struct timeval tv = {0};
224 
225         gettimeofday(&tv, NULL);
226         struct tm *ltm = localtime(&tv.tv_sec);
227         if (ltm != nullptr) {
228             ostringstream ss("Capture_");
229             ss << "Capture" << ltm->tm_hour << "_" << ltm->tm_min << "_" << ltm->tm_sec << ".jpg";
230             filePath = testPath + ss.str();
231             ofstream pic(testPath + ss.str(), ofstream::out | ofstream::trunc);
232             cout << "write " << size << " bytes" << endl;
233             pic.write(buffer, size);
234             cout << "Saving picture end" << endl;
235         }
236         const char *filename = filePath.data();
237         int32_t ret = FileCheck(string(filename));
238         return ret;
239     }
240 
OnFrameFinished(Camera & cam,FrameConfig & fc,FrameResult & res)241     void OnFrameFinished(Camera &cam, FrameConfig &fc, FrameResult &res) override
242     {
243         g_onFrameStartedFlag = true;
244         g_onFrameProgressedFlag = true;
245         cout << "Receive frame complete inform." << endl;
246         if (fc.GetFrameConfigType() == FRAME_CONFIG_CAPTURE) {
247             g_onGetFrameConfigureType = true;
248             cout << "Capture frame received." << endl;
249             list<Surface *> surfaceList = fc.GetSurfaces();
250             for (Surface *surface : surfaceList) {
251                 SurfaceBuffer *buffer = surface->AcquireBuffer();
252                 if (buffer != nullptr) {
253                     char *virtAddr = static_cast<char *>(buffer->GetVirAddr());
254                     if (virtAddr != nullptr) {
255                         SampleSaveCapture(g_testPath, virtAddr, buffer->GetSize());
256                     } else {
257                         g_onFrameErrorFlag = true;
258                     }
259                     surface->ReleaseBuffer(buffer);
260                 } else {
261                     g_onFrameErrorFlag = true;
262                 }
263                 delete surface;
264             }
265             delete &fc;
266         } else {
267             g_onFrameErrorFlag = true;
268         }
269         g_onFrameFinishedFlag = true;
270     }
271 };
272 
273 /* *
274  * create CameraStateCallback
275  */
276 class SampleCameraStateMng : public CameraStateCallback {
277 public:
278     SampleCameraStateMng() = delete;
279 
SampleCameraStateMng(EventHandler & eventHdlr)280     explicit SampleCameraStateMng(EventHandler &eventHdlr) : eventHandler_(eventHdlr) {}
281 
~SampleCameraStateMng()282     ~SampleCameraStateMng()
283     {
284         if (recorder_ != nullptr) {
285             recorder_->Release();
286         }
287         if (cam_ != nullptr) {
288             cam_->Release();
289         }
290     }
291 
OnCreated(Camera & c)292     void OnCreated(Camera &c) override
293     {
294         g_onCreatedFlag = true;
295         cout << "Sample recv OnCreate camera." << endl;
296         auto config = CameraConfig::CreateCameraConfig();
297         config->SetFrameStateCallback(&fsCb, &eventHandler_);
298         c.Configure(*config);
299         g_onConfigureFlag = true;
300         cam_ = &c;
301     }
302 
OnCreateFailed(const std::string cameraId,int32_t errorCode)303     void OnCreateFailed(const std::string cameraId, int32_t errorCode) override
304     {
305         g_onCreateFailedFlag = true;
306         cout << "Camera  ID: " << cameraId << endl;
307         cout << "Sample recv OnCreateFailed camera.: " << errorCode << endl;
308     }
309 
OnReleased(Camera & c)310     void OnReleased(Camera &c) override
311     {
312         g_onReleasedFlag = true;
313         cout << "Sample recv OnReleased camera." << endl;
314     }
315 
StartRecord()316     void StartRecord()
317     {
318         int ret;
319         if (isRecording_) {
320             cout << "Camera is already recording." << endl;
321             return;
322         }
323         if (recorder_ != nullptr) {
324             cout << "Recorder is not null" << endl;
325         }
326         recorder_ = SampleCreateRecorder();
327         if (recorder_ == nullptr) {
328             cout << "Recorder not available" << endl;
329             return;
330         }
331         string path = GetCurDir();
332         ret = recorder_->SetOutputPath(path);
333         if (ret != SUCCESS) {
334             cout << "SetOutputPath failed :" << ret << std::endl;
335             return;
336         }
337 
338         ret = recorder_->Prepare();
339         if (ret != SUCCESS) {
340             cout << "Prepare failed.=" << ret << endl;
341             return;
342         }
343         auto surface = recorder_->GetSurface(0);
344         surface->SetWidthAndHeight(WIDTH, HEIGHT);
345         surface->SetQueueSize(QUEUE_SIZE);
346         surface->SetSize(BUFFER_SIZE * BUFFER_SIZE);
347         FrameConfig *fc = new FrameConfig(FRAME_CONFIG_RECORD);
348         fc->AddSurface(*surface);
349         ret = recorder_->Start();
350         if (ret != SUCCESS) {
351             cout << "recorder start failed. ret=" << ret << endl;
352             delete fc;
353             return;
354         }
355         static int cnt = 3;
356         while (cam_ == nullptr) {
357             if (cnt-- < 0)
358                 break;
359             cout << "Wait camera created success" << endl;
360             sleep(1);
361         }
362 
363         ret = cam_->TriggerLoopingCapture(*fc);
364         if (ret != 0) {
365             cout << "camera start recording failed. ret=" << ret << endl;
366             return;
367         }
368         isRecording_ = true;
369         g_onRecorderFlag = true;
370         cout << "camera start recording succeed." << endl;
371     }
372 
StartPreview()373     void StartPreview()
374     {
375         if (isPreviewing_) {
376             cout << "Camera is already previewing." << endl;
377             return;
378         }
379         FrameConfig *fc = new FrameConfig(FRAME_CONFIG_PREVIEW);
380         UISurfaceView *surface = new UISurfaceView();
381         int width = 960;
382         int height = 480;
383         surface->SetPosition(0, 0, width, height);
384         surface->GetSurface()->SetWidthAndHeight(WIDTH, HEIGHT);
385         if (surface == nullptr) {
386             cout << "CreateSurface failed" << endl;
387             delete fc;
388             return;
389         }
390         fc->AddSurface(*(surface->GetSurface()));
391         static int cnt = 3;
392         while (cam_ == nullptr) {
393             if (cnt-- < 0)
394                 break;
395             cout << "Wait camera created success" << endl;
396             sleep(1);
397         }
398         int32_t ret = cam_->TriggerLoopingCapture(*fc);
399         if (ret != 0) {
400             cout << "camera start preview failed. ret=" << ret << endl;
401             delete fc;
402             return;
403         }
404         isPreviewing_ = true;
405         g_onPreviewFlag = true;
406         cout << "camera start preview succeed." << endl;
407     }
408 
Capture(void)409     void Capture(void)
410     {
411         FrameConfig *fc = new FrameConfig(FRAME_CONFIG_CAPTURE);
412         Surface *surface = Surface::CreateSurface();
413         if (surface == nullptr) {
414             cout << "CreateSurface failed" << endl;
415             delete fc;
416             return;
417         }
418         surface->SetWidthAndHeight(WIDTH, HEIGHT);
419         fc->AddSurface(*surface);
420         static int cnt = 3;
421         while (cam_ == nullptr) {
422             if (cnt-- < 0)
423                 break;
424             cout << "Wait camera created success" << endl;
425             sleep(1);
426         }
427         g_onCaptureTriggerStartedFlag = true;
428         cam_->TriggerSingleCapture(*fc);
429         g_onCaptureTriggerCompletedFlag = true;
430     }
431 
Stop()432     void Stop()
433     {
434         if (recorder_ != nullptr) {
435             int32_t ret = recorder_->Stop(true);
436             if (ret != 0) {
437                 cout << "recorder_ stop failed. ret=" << ret << endl;
438             }
439         }
440 
441         while (cam_ == nullptr) {
442             cout << "Camera is not ready." << endl;
443             return;
444         }
445         cam_->StopLoopingCapture(-1);
446         isPreviewing_ = false;
447         isRecording_ = false;
448         g_onRecorderFlag = false;
449         g_onPreviewFlag = false;
450     }
451 
452     bool isPreviewing_ = false;
453     bool isRecording_ = false;
454     EventHandler &eventHandler_;
455     Camera *cam_ = nullptr;
456     Recorder *recorder_ = nullptr;
457     SampleFrameStateCallback fsCb;
458 };
459 
460 /* *
461  * create CameraStateCallback for state test
462  */
463 class SampleCameraStateCallback : public CameraStateCallback {
464 public:
465     SampleCameraStateCallback() = delete;
466 
SampleCameraStateCallback(EventHandler & eventHdlr)467     explicit SampleCameraStateCallback(EventHandler &eventHdlr) : eventHandler_(eventHdlr) {}
468 
~SampleCameraStateCallback()469     ~SampleCameraStateCallback()
470     {
471         if (cam_ != nullptr) {
472             cam_->Release();
473         }
474     }
475 
OnCreated(Camera & c)476     void OnCreated(Camera &c) override
477     {
478         g_onCreatedFlag = true;
479         cout << "camera Create success." << endl;
480         auto config = CameraConfig::CreateCameraConfig();
481         config->SetFrameStateCallback(&fsCb, &eventHandler_);
482         c.Configure(*config);
483         cam_ = &c;
484     }
485 
OnCreateFailed(const std::string cameraId,int32_t errorCode)486     void OnCreateFailed(const std::string cameraId, int32_t errorCode) override
487     {
488         g_onCreateFailedFlag = true;
489         cout << "Camera  ID: " << cameraId << endl;
490         cout << "Camera Create Failed: " << errorCode << endl;
491     }
492 
OnReleased(Camera & c)493     void OnReleased(Camera &c) override
494     {
495         g_onReleasedFlag = true;
496         cout << "camera Releasedsuccess." << endl;
497     }
498 
OnConfigured(Camera & c)499     void OnConfigured(Camera &c) override
500     {
501         g_onConfiguredFlag = true;
502         cout << "Camera Configured success." << endl;
503     }
504 
OnConfigureFailed(const std::string cameraId,int32_t errorCode)505     void OnConfigureFailed(const std::string cameraId, int32_t errorCode) override
506     {
507         g_onConfigureFailedFlag = true;
508         cout << "Camera  ID: " << cameraId << endl;
509         cout << "Camera Configured failed: " << errorCode << endl;
510     }
511 
512     EventHandler &eventHandler_;
513     Camera *cam_ = nullptr;
514     SampleFrameStateCallback fsCb;
515 };
516 
517 /* *
518  * Creat camera device callback
519  */
520 class SampleCameraDeviceCallback : public CameraDeviceCallback {
521 public:
SampleCameraDeviceCallback()522     SampleCameraDeviceCallback() {}
523 
~SampleCameraDeviceCallback()524     ~SampleCameraDeviceCallback() {}
525 
526     // camera device status changed
OnCameraStatus(std::string cameraId,int32_t status)527     void OnCameraStatus(std::string cameraId, int32_t status) override
528     {
529         cout << "SampleCameraDeviceCallback OnCameraStatus cam Id: \n" << cameraId << endl;
530         if (status == CAMERA_DEVICE_STATE_AVAILABLE) {
531             g_onCameraAvailableFlag = true;
532             cout << "SampleCameraDeviceCallback onCameraAvailable\n" << endl;
533         } else if (status == CAMERA_DEVICE_STATE_UNAVAILABLE) {
534             g_onCameraUnavailableFlag = true;
535             cout << "SampleCameraDeviceCallback onCameraUnavailable\n" << endl;
536         }
537     }
538 };
539 
540 /* *
541  * Get camera Id
542  */
GetCameraId(CameraKit * cameraKit,list<string> & cameraList,string & cameraId)543 void GetCameraId(CameraKit *cameraKit, list<string> &cameraList, string &cameraId)
544 {
545     cameraKit = CameraKit::GetInstance();
546     cameraList = cameraKit->GetCameraIds();
547     for (auto &cam : cameraList) {
548         cout << "camera name:" << cam << endl;
549         const CameraAbility *ability = cameraKit->GetCameraAbility(cam);
550         g_onGetCameraAbilityFlag = true;
551         /* find camera which fits user's ability */
552         list<CameraPicSize> sizeList = ability->GetSupportedSizes(0);
553         if (sizeList.size() != 0) {
554             g_onGetSupportedSizesFlag = true;
555         }
556         for (auto &pic : sizeList) {
557             cout << "Pic size: " << pic.width << "x" << pic.height << endl;
558             if (pic.width == WIDTH && pic.height == HEIGHT) {
559                 /* 1920:width,1080:height */
560                 cameraId = cam;
561                 break;
562             }
563         }
564     }
565 
566     if (cameraId.empty()) {
567         cout << "No available camera.(1080p wanted)" << endl;
568         return;
569     }
570 }
571 
572 /* start camera kit interface test */
573 /* *
574  * @tc.number    : SUB_MEDIA_CAMERA_DEV_0100
575  * @tc.name      : Get Instance
576  * @tc.desc      : [C- SOFTWARE -0200]
577  */
HWTEST_F(CameraLiteTest,Test_GetInstance_001,Level1)578 HWTEST_F(CameraLiteTest, Test_GetInstance_001, Level1)
579 {
580     CameraKit *cameraKit = CameraKit::GetInstance();
581     EXPECT_NE(cameraKit, nullptr);
582 }
583 
584 
HWTEST_F(CameraLiteTest,PrfTest_GetInstance_001,Level1)585 HWTEST_F(CameraLiteTest, PrfTest_GetInstance_001, Level1)
586 {
587     CameraKit *cameraKit = nullptr;
588     struct timespec tv1 = {0};
589     struct timespec tv2 = {0};
590     int64_t performanceTestTimes = 10;
591     int64_t usecTimes = 1000000;
592     int64_t totalTime = 0;
593     for (int32_t i = 0; i < performanceTestTimes; i++) {
594         clock_gettime(CLOCK_REALTIME, &tv1);
595         cameraKit = CameraKit::GetInstance();
596         clock_gettime(CLOCK_REALTIME, &tv2);
597         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
598     }
599     int64_t expectTime = 1000000;
600     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
601 }
602 
603 /* *
604  * @tc.number    : SUB_MEDIA_CAMERA_DEV_0200
605  * @tc.name      : Get cameraIDs
606  * @tc.desc      : [C- SOFTWARE -0200]
607  */
HWTEST_F(CameraLiteTest,Test_GetCameraIds_001,Level1)608 HWTEST_F(CameraLiteTest, Test_GetCameraIds_001, Level1)
609 {
610     CameraKit *cameraKit = CameraKit::GetInstance();
611     list<string> cameraList = cameraKit->GetCameraIds();
612     EXPECT_TRUE(cameraList.size() > 0);
613 }
614 
HWTEST_F(CameraLiteTest,PrfTest_GetCameraIds_001,Level1)615 HWTEST_F(CameraLiteTest, PrfTest_GetCameraIds_001, Level1)
616 {
617     CameraKit *cameraKit = CameraKit::GetInstance();
618     list<string> cameraList;
619     struct timespec tv1 = {0};
620     struct timespec tv2 = {0};
621     int64_t performanceTestTimes = 10;
622     int64_t usecTimes = 1000000;
623     int64_t totalTime = 0;
624     for (int32_t i = 0; i < performanceTestTimes; i++) {
625         clock_gettime(CLOCK_REALTIME, &tv1);
626         cameraList = cameraKit->GetCameraIds();
627         clock_gettime(CLOCK_REALTIME, &tv2);
628         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
629     }
630     int64_t expectTime = 1000000;
631     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
632 }
633 
634 /* *
635  * @tc.number    : SUB_MEDIA_CAMERA_DEV_0300
636  * @tc.name      : Get cameraAbility
637  * @tc.desc      : [C- SOFTWARE -0200]
638  */
HWTEST_F(CameraLiteTest,Test_GetCameraAbility_001,Level1)639 HWTEST_F(CameraLiteTest, Test_GetCameraAbility_001, Level1)
640 {
641     CameraKit *cameraKit = CameraKit::GetInstance();
642     string cameraId = "0";
643     const CameraAbility *ability = cameraKit->GetCameraAbility(cameraId);
644     EXPECT_NE(ability, nullptr);
645 }
646 
HWTEST_F(CameraLiteTest,Test_GetCameraAbility_002,Level1)647 HWTEST_F(CameraLiteTest, Test_GetCameraAbility_002, Level1)
648 {
649     CameraKit *cameraKit = CameraKit::GetInstance();
650     string errorCameraId = "-1";
651     const CameraAbility *ability = cameraKit->GetCameraAbility(errorCameraId);
652     EXPECT_EQ(ability, nullptr);
653 }
654 
HWTEST_F(CameraLiteTest,Test_GetCameraAbility_003,Level1)655 HWTEST_F(CameraLiteTest, Test_GetCameraAbility_003, Level1)
656 {
657     CameraKit *cameraKit = CameraKit::GetInstance();
658     string errorCameraId = "main";
659     const CameraAbility *ability = cameraKit->GetCameraAbility(errorCameraId);
660     EXPECT_EQ(ability, nullptr);
661 }
662 
HWTEST_F(CameraLiteTest,PrfTest_GetCameraAbility_001,Level1)663 HWTEST_F(CameraLiteTest, PrfTest_GetCameraAbility_001, Level1)
664 {
665     CameraKit *cameraKit = CameraKit::GetInstance();
666     const CameraAbility *ability = nullptr;
667     string cameraId = "0";
668     struct timespec tv1 = {0};
669     struct timespec tv2 = {0};
670     int64_t performanceTestTimes = 10;
671     int64_t usecTimes = 1000000;
672     int64_t totalTime = 0;
673     for (int32_t i = 0; i < performanceTestTimes; i++) {
674         clock_gettime(CLOCK_REALTIME, &tv1);
675         ability = cameraKit->GetCameraAbility(cameraId);
676         clock_gettime(CLOCK_REALTIME, &tv2);
677         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
678     }
679     int64_t expectTime = 1000000;
680     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
681 }
682 
683 /* *
684  * @tc.number    : SUB_MEDIA_CAMERA_DEV_0400
685  * @tc.name      : CameraKit get Info
686  * @tc.desc      : [C- SOFTWARE -0200]
687  */
HWTEST_F(CameraLiteTest,Test_GetCameraInfo_001,Level1)688 HWTEST_F(CameraLiteTest, Test_GetCameraInfo_001, Level1)
689 {
690     CameraKit *cameraKit = CameraKit::GetInstance();
691     list<string> cameraList = cameraKit->GetCameraIds();
692     for (auto &cameraId : cameraList) {
693         const CameraInfo *cameraInfo = cameraKit->GetCameraInfo(cameraId);
694         EXPECT_NE(cameraInfo, nullptr);
695     }
696 }
697 
HWTEST_F(CameraLiteTest,Test_GetCameraInfo_002,Level1)698 HWTEST_F(CameraLiteTest, Test_GetCameraInfo_002, Level1)
699 {
700     CameraKit *cameraKit = CameraKit::GetInstance();
701     string errorCameraId = "-1";
702     const CameraInfo *cameraInfo = cameraKit->GetCameraInfo(errorCameraId);
703     EXPECT_EQ(cameraInfo, nullptr);
704 }
705 
HWTEST_F(CameraLiteTest,Test_GetCameraInfo_003,Level1)706 HWTEST_F(CameraLiteTest, Test_GetCameraInfo_003, Level1)
707 {
708     CameraKit *cameraKit = CameraKit::GetInstance();
709     string errorCameraId = "main";
710     const CameraInfo *cameraInfo = cameraKit->GetCameraInfo(errorCameraId);
711     EXPECT_EQ(cameraInfo, nullptr);
712 }
713 
HWTEST_F(CameraLiteTest,PrfTest_GetCameraInfo_001,Level1)714 HWTEST_F(CameraLiteTest, PrfTest_GetCameraInfo_001, Level1)
715 {
716     struct timespec tv1 = {0};
717     struct timespec tv2 = {0};
718     CameraKit *cameraKit = CameraKit::GetInstance();
719     string cameraId = "0";
720     int64_t performanceTestTimes = 10;
721     int64_t usecTimes = 1000000;
722     int64_t totalTime = 0;
723     for (int32_t i = 0; i < performanceTestTimes; i++) {
724         clock_gettime(CLOCK_REALTIME, &tv1);
725         cameraKit->GetCameraInfo(cameraId);
726         clock_gettime(CLOCK_REALTIME, &tv2);
727         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
728     }
729     int64_t expectTime = 1000000;
730     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
731 }
732 
733 /* *
734  * @tc.number    : SUB_MEDIA_CAMERA_DEV_0500
735  * @tc.name      : Register Camera device callback
736  * @tc.desc      : [C- SOFTWARE -0200]
737  */
HWTEST_F(CameraLiteTest,Test_RegisterCameraDeviceCallback_001,Level1)738 HWTEST_F(CameraLiteTest, Test_RegisterCameraDeviceCallback_001, Level1)
739 {
740     CameraKit *cameraKit = nullptr;
741     list<string> cameraList;
742     string cameraId;
743     EventHandler eventHdlr;
744     GetCameraId(cameraKit, cameraList, cameraId);
745     SampleCameraStateMng camStateMng(eventHdlr);
746     SampleCameraDeviceCallback deviceCallback = SampleCameraDeviceCallback();
747     g_onCameraAvailableFlag = false;
748     cameraKit->RegisterCameraDeviceCallback(deviceCallback, eventHdlr);
749     sleep(2);
750     EXPECT_TRUE(g_onCameraAvailableFlag);
751 }
752 
HWTEST_F(CameraLiteTest,PrfTest_RegisterCameraDeviceCallback_001,Level1)753 HWTEST_F(CameraLiteTest, PrfTest_RegisterCameraDeviceCallback_001, Level1)
754 {
755     CameraKit *cameraKit = nullptr;
756     list<string> cameraList;
757     string cameraId;
758     EventHandler eventHdlr;
759     GetCameraId(cameraKit, cameraList, cameraId);
760     SampleCameraStateMng camStateMng(eventHdlr);
761     SampleCameraDeviceCallback deviceCallback = SampleCameraDeviceCallback();
762     struct timespec tv1 = {0};
763     struct timespec tv2 = {0};
764     int64_t performanceTestTimes = 10;
765     int64_t usecTimes = 1000000;
766     int64_t totalTime = 0;
767     for (int32_t i = 0; i < performanceTestTimes; i++) {
768         clock_gettime(CLOCK_REALTIME, &tv1);
769         cameraKit->RegisterCameraDeviceCallback(deviceCallback, eventHdlr);
770         clock_gettime(CLOCK_REALTIME, &tv2);
771         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
772     }
773     int64_t expectTime = 1000000;
774     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
775 }
776 
777 /* *
778  * @tc.number    : SUB_MEDIA_CAMERA_DEV_0600
779  * @tc.name      : Unregister Camera Device Callback
780  * @tc.desc      : [C- SOFTWARE -0200]
781  */
HWTEST_F(CameraLiteTest,Test_UnregisterCameraDeviceCallback_001,Level1)782 HWTEST_F(CameraLiteTest, Test_UnregisterCameraDeviceCallback_001, Level1)
783 {
784     CameraKit *cameraKit = nullptr;
785     list<string> cameraList;
786     string cameraId;
787     EventHandler eventHdlr;
788     GetCameraId(cameraKit, cameraList, cameraId);
789     SampleCameraStateMng camStateMng(eventHdlr);
790     SampleCameraDeviceCallback deviceCallback = SampleCameraDeviceCallback();
791     g_onCameraAvailableFlag = false;
792     cameraKit->RegisterCameraDeviceCallback(deviceCallback, eventHdlr);
793     sleep(2);
794     g_onCameraAvailableFlag = false;
795     cameraKit->UnregisterCameraDeviceCallback(deviceCallback);
796     sleep(2);
797     EXPECT_EQ(g_onCameraAvailableFlag, false);
798 }
799 
HWTEST_F(CameraLiteTest,PrfTest_UnregisterCameraDeviceCallback_001,Level1)800 HWTEST_F(CameraLiteTest, PrfTest_UnregisterCameraDeviceCallback_001, Level1)
801 {
802     CameraKit *cameraKit = nullptr;
803     list<string> cameraList;
804     string cameraId;
805     EventHandler eventHdlr;
806     GetCameraId(cameraKit, cameraList, cameraId);
807     SampleCameraStateMng camStateMng(eventHdlr);
808     SampleCameraDeviceCallback deviceCallback = SampleCameraDeviceCallback();
809     struct timespec tv1 = {0};
810     struct timespec tv2 = {0};
811     int64_t performanceTestTimes = 10;
812     int64_t usecTimes = 1000000;
813     int64_t totalTime = 0;
814     for (int32_t i = 0; i < performanceTestTimes; i++) {
815         cameraKit->RegisterCameraDeviceCallback(deviceCallback, eventHdlr);
816         clock_gettime(CLOCK_REALTIME, &tv1);
817         cameraKit->UnregisterCameraDeviceCallback(deviceCallback);
818         clock_gettime(CLOCK_REALTIME, &tv2);
819         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
820     }
821     int64_t expectTime = 1000000;
822     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
823 }
824 
825 /* *
826  * @tc.number    : SUB_MEDIA_CAMERA_DEV_0700
827  * @tc.name      : Create Camera
828  * @tc.desc      : [C- SOFTWARE -0200]
829  */
HWTEST_F(CameraLiteTest,Test_CreateCamera_001,Level1)830 HWTEST_F(CameraLiteTest, Test_CreateCamera_001, Level1)
831 {
832     CameraKit *cameraKit = CameraKit::GetInstance();
833     string cameraId = "0";
834     EventHandler eventHdlr;
835     SampleCameraStateMng camStateMng(eventHdlr);
836     g_onCreatedFlag = false;
837     g_onCreateFailedFlag = false;
838     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
839     sleep(2);
840     EXPECT_EQ(g_onCreatedFlag, true);
841     EXPECT_EQ(g_onCreateFailedFlag, false);
842 }
843 
HWTEST_F(CameraLiteTest,Test_CreateCamera_002,Level1)844 HWTEST_F(CameraLiteTest, Test_CreateCamera_002, Level1)
845 {
846     CameraKit *cameraKit = CameraKit::GetInstance();
847     string cameraId = "main";
848     EventHandler eventHdlr;
849     SampleCameraStateMng camStateMng(eventHdlr);
850     g_onCreatedFlag = false;
851     g_onCreateFailedFlag = false;
852     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
853     sleep(2);
854     EXPECT_EQ(g_onCreatedFlag, false);
855     EXPECT_EQ(g_onCreateFailedFlag, true);
856 }
857 
HWTEST_F(CameraLiteTest,Test_CreateCamera_003,Level1)858 HWTEST_F(CameraLiteTest, Test_CreateCamera_003, Level1)
859 {
860     CameraKit *cameraKit = CameraKit::GetInstance();
861     list<string> cameraList;
862     string cameraId = "0";
863     EventHandler eventHdlr;
864     g_onCreatedFlag = false;
865     g_onCreateFailedFlag = false;
866     SampleCameraStateMng camStateMng(eventHdlr);
867     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
868     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
869     sleep(2);
870     EXPECT_EQ(g_onCreatedFlag, true);
871 }
872 
HWTEST_F(CameraLiteTest,Test_CreateCamera_004,Level1)873 HWTEST_F(CameraLiteTest, Test_CreateCamera_004, Level1)
874 {
875     CameraKit *cameraKit = CameraKit::GetInstance();
876     string cameraId = "0";
877     EventHandler eventHdlr;
878     g_onCreatedFlag = false;
879     g_onCreateFailedFlag = false;
880     SampleCameraStateMng camStateMng(eventHdlr);
881     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
882     sleep(2);
883     cameraId = "-1";
884     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
885     sleep(2);
886     EXPECT_EQ(g_onCreatedFlag, true);
887     EXPECT_EQ(g_onCreateFailedFlag, true);
888 }
889 
HWTEST_F(CameraLiteTest,PrfTest_CreateCamera_001,Level1)890 HWTEST_F(CameraLiteTest, PrfTest_CreateCamera_001, Level1)
891 {
892     CameraKit *cameraKit = CameraKit::GetInstance();
893     string cameraId = "0";
894     EventHandler eventHdlr;
895     SampleCameraStateMng camStateMng(eventHdlr);
896     struct timespec tv1 = {0};
897     struct timespec tv2 = {0};
898     int64_t performanceTestTimes = 10;
899     int64_t totalTime = 0;
900     int64_t usecTimes = 1000000;
901     for (int32_t i = 0; i < performanceTestTimes; i++) {
902         clock_gettime(CLOCK_REALTIME, &tv1);
903         cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
904         clock_gettime(CLOCK_REALTIME, &tv2);
905         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
906     }
907     int64_t expectTime = 500000000;
908     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
909 } /* end camera kit interface test */
910 
911 /* start camera ability interface test */
912 /* *
913  * @tc.number    : SUB_MEDIA_CAMERA_DEV_0800
914  * @tc.name      : Get cameraKit supported Size
915  * @tc.desc      : [C- SOFTWARE -0200]
916  */
HWTEST_F(CameraLiteTest,Test_GetSupportedSizes_001,Level1)917 HWTEST_F(CameraLiteTest, Test_GetSupportedSizes_001, Level1)
918 {
919     CameraKit *cameraKit = CameraKit::GetInstance();
920     list<string> cameraList = cameraKit->GetCameraIds();
921     for (auto &cameraId : cameraList) {
922         const CameraAbility *ability = cameraKit->GetCameraAbility(cameraId);
923         list<CameraPicSize> cameraPicSizes = ability->GetSupportedSizes(0);
924         EXPECT_TRUE(cameraPicSizes.size() > 0);
925     }
926 }
927 
HWTEST_F(CameraLiteTest,PrfTest_GetSupportedSizes_001,Level1)928 HWTEST_F(CameraLiteTest, PrfTest_GetSupportedSizes_001, Level1)
929 {
930     CameraKit *cameraKit = CameraKit::GetInstance();
931     string cameraId = "0";
932     const CameraAbility *ability = cameraKit->GetCameraAbility(cameraId);
933     struct timespec tv1 = {0};
934     struct timespec tv2 = {0};
935     int64_t performanceTestTimes = 10;
936     int64_t usecTimes = 1000000;
937     int64_t totalTime = 0;
938     for (int32_t i = 0; i < performanceTestTimes; i++) {
939         clock_gettime(CLOCK_REALTIME, &tv1);
940         ability->GetSupportedSizes(0);
941         clock_gettime(CLOCK_REALTIME, &tv2);
942         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
943     }
944     int64_t expectTime = 1000000;
945     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
946 }
947 
948 /* *
949  * @tc.number    : SUB_MEDIA_CAMERA_DEV_0900
950  * @tc.name      : Get supported AfModes
951  * @tc.desc      : [C- SOFTWARE -0200]
952  */
HWTEST_F(CameraLiteTest,Test_GetSupportedAfModes_001,Level1)953 HWTEST_F(CameraLiteTest, Test_GetSupportedAfModes_001, Level1)
954 {
955     CameraKit *cameraKit = CameraKit::GetInstance();
956     list<string> cameraList = cameraKit->GetCameraIds();
957     for (auto &cameraId : cameraList) {
958         const CameraAbility *ability = cameraKit->GetCameraAbility(cameraId);
959         list<int32_t> afModes = ability->GetSupportedAfModes();
960         EXPECT_TRUE(afModes.size() >= 0);
961     }
962 }
963 
HWTEST_F(CameraLiteTest,PrfTest_GetSupportedAfModes_001,Level1)964 HWTEST_F(CameraLiteTest, PrfTest_GetSupportedAfModes_001, Level1)
965 {
966     CameraKit *cameraKit = CameraKit::GetInstance();
967     string cameraId = "0";
968     const CameraAbility *ability = cameraKit->GetCameraAbility(cameraId);
969     struct timespec tv1 = {0};
970     struct timespec tv2 = {0};
971     int64_t performanceTestTimes = 10;
972     int64_t usecTimes = 1000000;
973     int64_t totalTime = 0;
974     for (int32_t i = 0; i < performanceTestTimes; i++) {
975         clock_gettime(CLOCK_REALTIME, &tv1);
976         ability->GetSupportedAfModes();
977         clock_gettime(CLOCK_REALTIME, &tv2);
978         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
979     }
980     int64_t expectTime = 1000000;
981     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
982 }
983 
984 /* *
985  * @tc.number    : SUB_MEDIA_CAMERA_DEV_1000
986  * @tc.name      : Get supported AeModes
987  * @tc.desc      : [C- SOFTWARE -0200]
988  */
HWTEST_F(CameraLiteTest,Test_GetSupportedAeModes_001,Level1)989 HWTEST_F(CameraLiteTest, Test_GetSupportedAeModes_001, Level1)
990 {
991     CameraKit *cameraKit = CameraKit::GetInstance();
992     list<string> cameraList = cameraKit->GetCameraIds();
993     for (auto &cameraId : cameraList) {
994         const CameraAbility *ability = cameraKit->GetCameraAbility(cameraId);
995         list<int32_t> aeModes = ability->GetSupportedAeModes();
996         EXPECT_TRUE(aeModes.size() >= 0);
997     }
998 }
999 
HWTEST_F(CameraLiteTest,PrfTest_GetSupportedAeModes_001,Level1)1000 HWTEST_F(CameraLiteTest, PrfTest_GetSupportedAeModes_001, Level1)
1001 {
1002     CameraKit *cameraKit = CameraKit::GetInstance();
1003     string cameraId = "0";
1004     const CameraAbility *ability = cameraKit->GetCameraAbility(cameraId);
1005     struct timespec tv1 = {0};
1006     struct timespec tv2 = {0};
1007     int64_t performanceTestTimes = 10;
1008     int64_t totalTime = 0;
1009     int64_t usecTimes = 1000000;
1010     for (int32_t i = 0; i < performanceTestTimes; i++) {
1011         clock_gettime(CLOCK_REALTIME, &tv1);
1012         ability->GetSupportedAeModes();
1013         clock_gettime(CLOCK_REALTIME, &tv2);
1014         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
1015     }
1016     int64_t expectTime = 1000000;
1017     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
1018 } /* end camera ability interface test*/
1019 
1020 /* start camera state callback test */
1021 /* *
1022  * @tc.number    : SUB_MEDIA_CAMERA_DEV_1100
1023  * @tc.name      : On Create
1024  * @tc.desc      : [C- SOFTWARE -0200]
1025  */
HWTEST_F(CameraLiteTest,Test_OnCreate_001,Level1)1026 HWTEST_F(CameraLiteTest, Test_OnCreate_001, Level1)
1027 {
1028     CameraKit *cameraKit = CameraKit::GetInstance();
1029     string cameraId = "0";
1030     EventHandler eventHdlr;
1031     SampleCameraStateMng camStateMng(eventHdlr);
1032     g_onCreatedFlag = false;
1033     g_onCreateFailedFlag = false;
1034     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
1035     sleep(2);
1036     EXPECT_EQ(g_onCreatedFlag, true);
1037     EXPECT_EQ(g_onCreateFailedFlag, false);
1038 }
1039 
HWTEST_F(CameraLiteTest,Test_OnCreate_002,Level1)1040 HWTEST_F(CameraLiteTest, Test_OnCreate_002, Level1)
1041 {
1042     CameraKit *cameraKit = CameraKit::GetInstance();
1043     string cameraId = "0";
1044     EventHandler eventHdlr;
1045     SampleCameraStateMng camStateMng(eventHdlr);
1046     g_onCreatedFlag = false;
1047     g_onCreateFailedFlag = false;
1048     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
1049     sleep(2);
1050     camStateMng.Stop();
1051     EXPECT_EQ(g_onCreatedFlag, true);
1052     EXPECT_NE(g_onCreateFailedFlag, true);
1053 }
1054 
1055 /* *
1056  * @tc.number    : SUB_MEDIA_CAMERA_DEV_1200
1057  * @tc.name      : On Create Failed
1058  * @tc.desc      : [C- SOFTWARE -0200]
1059  */
HWTEST_F(CameraLiteTest,Test_OnCreateFailed_001,Level1)1060 HWTEST_F(CameraLiteTest, Test_OnCreateFailed_001, Level1)
1061 {
1062     CameraKit *cameraKit = CameraKit::GetInstance();
1063     string cameraId = "-1";
1064     EventHandler eventHdlr;
1065     SampleCameraStateMng camStateMng(eventHdlr);
1066     g_onCreateFailedFlag = false;
1067     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
1068     sleep(2);
1069     EXPECT_EQ(g_onCreateFailedFlag, true);
1070 }
1071 
HWTEST_F(CameraLiteTest,Test_OnCreateFailed_002,Level1)1072 HWTEST_F(CameraLiteTest, Test_OnCreateFailed_002, Level1)
1073 {
1074     CameraKit *cameraKit = CameraKit::GetInstance();
1075     string cameraId = "main";
1076     EventHandler eventHdlr;
1077     SampleCameraStateMng camStateMng(eventHdlr);
1078     g_onCreateFailedFlag = false;
1079     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
1080     sleep(2);
1081     EXPECT_EQ(g_onCreateFailedFlag, true);
1082 } /* end camera state callback test */
1083 
1084 /* start frame config & frame state call back interface test */
1085 /* *
1086  * @tc.number    : SUB_MEDIA_CAMERA_DEV_1300
1087  * @tc.name      : Frame Config
1088  * @tc.desc      : [C- SOFTWARE -0200]
1089  */
HWTEST_F(CameraLiteTest,Test_FrameConfig_001,Level1)1090 HWTEST_F(CameraLiteTest, Test_FrameConfig_001, Level1)
1091 {
1092     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW);
1093     EXPECT_NE(frameConfig.get(), nullptr);
1094 }
1095 
HWTEST_F(CameraLiteTest,Test_FrameConfig_002,Level1)1096 HWTEST_F(CameraLiteTest, Test_FrameConfig_002, Level1)
1097 {
1098     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_RECORD);
1099     EXPECT_NE(frameConfig.get(), nullptr);
1100 }
1101 
HWTEST_F(CameraLiteTest,Test_FrameConfig_003,Level1)1102 HWTEST_F(CameraLiteTest, Test_FrameConfig_003, Level1)
1103 {
1104     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CAPTURE);
1105     EXPECT_NE(frameConfig.get(), nullptr);
1106 }
1107 
HWTEST_F(CameraLiteTest,Test_FrameConfig_004,Level1)1108 HWTEST_F(CameraLiteTest, Test_FrameConfig_004, Level1)
1109 {
1110     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CALLBACK);
1111     EXPECT_NE(frameConfig.get(), nullptr);
1112 }
1113 
HWTEST_F(CameraLiteTest,PrfTest_Frameconfig_001,Level1)1114 HWTEST_F(CameraLiteTest, PrfTest_Frameconfig_001, Level1)
1115 {
1116     shared_ptr<FrameConfig> frameConfig = nullptr;
1117     struct timespec tv1 = {0};
1118     struct timespec tv2 = {0};
1119     int64_t performanceTestTimes = 10;
1120     int64_t usecTimes = 1000000;
1121     int64_t totalTime = 0;
1122     for (int32_t i = 0; i < performanceTestTimes; i++) {
1123         clock_gettime(CLOCK_REALTIME, &tv1);
1124         frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW);
1125         clock_gettime(CLOCK_REALTIME, &tv2);
1126         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
1127     }
1128     int64_t expectTime = 1000000;
1129     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
1130 }
1131 
HWTEST_F(CameraLiteTest,PrfTest_Frameconfig_002,Level1)1132 HWTEST_F(CameraLiteTest, PrfTest_Frameconfig_002, Level1)
1133 {
1134     shared_ptr<FrameConfig> frameConfig = nullptr;
1135     struct timespec tv1 = {0};
1136     struct timespec tv2 = {0};
1137     int64_t performanceTestTimes = 10;
1138     int64_t usecTimes = 1000000;
1139     int64_t totalTime = 0;
1140     for (int32_t i = 0; i < performanceTestTimes; i++) {
1141         clock_gettime(CLOCK_REALTIME, &tv1);
1142         frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_RECORD);
1143         clock_gettime(CLOCK_REALTIME, &tv2);
1144         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
1145     }
1146     int64_t expectTime = 1000000;
1147     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
1148 }
1149 
HWTEST_F(CameraLiteTest,PrfTest_Frameconfig_003,Level1)1150 HWTEST_F(CameraLiteTest, PrfTest_Frameconfig_003, Level1)
1151 {
1152     shared_ptr<FrameConfig> frameConfig = nullptr;
1153     struct timespec tv1 = {0};
1154     struct timespec tv2 = {0};
1155     int64_t performanceTestTimes = 10;
1156     int64_t usecTimes = 1000000;
1157     int64_t totalTime = 0;
1158     for (int32_t i = 0; i < performanceTestTimes; i++) {
1159         clock_gettime(CLOCK_REALTIME, &tv1);
1160         frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CAPTURE);
1161         clock_gettime(CLOCK_REALTIME, &tv2);
1162         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
1163     }
1164     int64_t expectTime = 1000000;
1165     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
1166 }
1167 
HWTEST_F(CameraLiteTest,PrfTest_Frameconfig_004,Level1)1168 HWTEST_F(CameraLiteTest, PrfTest_Frameconfig_004, Level1)
1169 {
1170     shared_ptr<FrameConfig> frameConfig = nullptr;
1171     struct timespec tv1 = {0};
1172     struct timespec tv2 = {0};
1173     int64_t performanceTestTimes = 10;
1174     int64_t usecTimes = 1000000;
1175     int64_t totalTime = 0;
1176     for (int32_t i = 0; i < performanceTestTimes; i++) {
1177         clock_gettime(CLOCK_REALTIME, &tv1);
1178         frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CALLBACK);
1179         clock_gettime(CLOCK_REALTIME, &tv2);
1180         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
1181     }
1182     int64_t expectTime = 1000000;
1183     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
1184 }
1185 
1186 /* *
1187  * @tc.number    : SUB_MEDIA_CAMERA_DEV_1400
1188  * @tc.name      : Get Frame Configure Type
1189  * @tc.desc      : [C- SOFTWARE -0200]
1190  */
HWTEST_F(CameraLiteTest,Test_GetFrameConfigureType_001,Level1)1191 HWTEST_F(CameraLiteTest, Test_GetFrameConfigureType_001, Level1)
1192 {
1193     CameraKit *cameraKit = CameraKit::GetInstance();
1194     string cameraId = "0";
1195     EventHandler eventHdlr;
1196     SampleCameraStateMng camStateMng(eventHdlr);
1197     g_onGetFrameConfigureType = false;
1198     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
1199     sleep(2);
1200     camStateMng.Capture();
1201     sleep(2);
1202     EXPECT_EQ(g_onGetFrameConfigureType, true);
1203 }
1204 
HWTEST_F(CameraLiteTest,Test_GetFrameConfigureType_002,Level1)1205 HWTEST_F(CameraLiteTest, Test_GetFrameConfigureType_002, Level1)
1206 {
1207     CameraKit *cameraKit = CameraKit::GetInstance();
1208     string cameraId = "0";
1209     EventHandler eventHdlr;
1210     SampleCameraStateMng camStateMng(eventHdlr);
1211     g_onGetFrameConfigureType = false;
1212     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
1213     sleep(2);
1214     camStateMng.Capture();
1215     sleep(2);
1216     camStateMng.Stop();
1217     EXPECT_EQ(g_onGetFrameConfigureType, true);
1218 }
1219 
HWTEST_F(CameraLiteTest,Test_GetFrameConfigureType_003,Level1)1220 HWTEST_F(CameraLiteTest, Test_GetFrameConfigureType_003, Level1)
1221 {
1222     CameraKit *cameraKit = CameraKit::GetInstance();
1223     string cameraId = "0";
1224     EventHandler eventHdlr;
1225     SampleCameraStateMng camStateMng(eventHdlr);
1226     g_onGetFrameConfigureType = false;
1227     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
1228     sleep(2);
1229     camStateMng.StartPreview();
1230     sleep(2);
1231     camStateMng.Stop();
1232     EXPECT_EQ(g_onGetFrameConfigureType, false);
1233 }
1234 
HWTEST_F(CameraLiteTest,Test_GetFrameConfigureType_004,Level1)1235 HWTEST_F(CameraLiteTest, Test_GetFrameConfigureType_004, Level1)
1236 {
1237     CameraKit *cameraKit = CameraKit::GetInstance();
1238     string cameraId = "0";
1239     EventHandler eventHdlr;
1240     SampleCameraStateMng camStateMng(eventHdlr);
1241     g_onGetFrameConfigureType = false;
1242     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
1243     sleep(2);
1244     camStateMng.Capture();
1245     sleep(2);
1246     camStateMng.StartPreview();
1247     sleep(2);
1248     camStateMng.Stop();
1249     EXPECT_EQ(g_onGetFrameConfigureType, true);
1250 }
1251 
HWTEST_F(CameraLiteTest,Test_GetFrameConfigureType_005,Level1)1252 HWTEST_F(CameraLiteTest, Test_GetFrameConfigureType_005, Level1)
1253 {
1254     CameraKit *cameraKit = CameraKit::GetInstance();
1255     string cameraId = "0";
1256     EventHandler eventHdlr;
1257     SampleCameraStateMng camStateMng(eventHdlr);
1258     g_onGetFrameConfigureType = false;
1259     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
1260     sleep(2);
1261     camStateMng.StartPreview();
1262     sleep(2);
1263     camStateMng.Capture();
1264     sleep(2);
1265     camStateMng.Stop();
1266     EXPECT_EQ(g_onGetFrameConfigureType, true);
1267 }
1268 
1269 /* *
1270  * @tc.number    : SUB_MEDIA_CAMERA_DEV_1500
1271  * @tc.name      : Set Vendor Parameter
1272  * @tc.desc      : [C- SOFTWARE -0200]
1273  */
HWTEST_F(CameraLiteTest,Test_SetVendorParameter_001,Level1)1274 HWTEST_F(CameraLiteTest, Test_SetVendorParameter_001, Level1)
1275 {
1276     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW);
1277     uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN];
1278     privateTag[4] = 5;
1279     frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN);
1280     uint8_t *privateTagTemp = new uint8_t[10];
1281     frameConfig->GetVendorParameter(privateTagTemp, 10);
1282     EXPECT_TRUE(privateTagTemp[4] == 5);
1283     delete[] privateTag;
1284     delete[] privateTagTemp;
1285 }
1286 
HWTEST_F(CameraLiteTest,Test_SetVendorParameter_002,Level1)1287 HWTEST_F(CameraLiteTest, Test_SetVendorParameter_002, Level1)
1288 {
1289     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CAPTURE);
1290     uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN];
1291     privateTag[10] = 10;
1292     frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN);
1293     uint8_t *privateTagTemp = new uint8_t[PRIVATE_TAG_LEN];
1294     frameConfig->GetVendorParameter(privateTagTemp, PRIVATE_TAG_LEN);
1295     EXPECT_TRUE(privateTagTemp[10] == 10);
1296     delete[] privateTag;
1297     delete[] privateTagTemp;
1298 }
1299 
HWTEST_F(CameraLiteTest,Test_SetVendorParameter_003,Level1)1300 HWTEST_F(CameraLiteTest, Test_SetVendorParameter_003, Level1)
1301 {
1302     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_RECORD);
1303     uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN];
1304     privateTag[0] = 1;
1305     frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN);
1306     uint8_t *privateTagTemp = new uint8_t[PRIVATE_TAG_LEN];
1307     frameConfig->GetVendorParameter(privateTagTemp, PRIVATE_TAG_LEN);
1308     EXPECT_TRUE(privateTagTemp[0] == 1);
1309     delete[] privateTag;
1310     delete[] privateTagTemp;
1311 }
1312 
HWTEST_F(CameraLiteTest,Test_SetVendorParameter_004,Level1)1313 HWTEST_F(CameraLiteTest, Test_SetVendorParameter_004, Level1)
1314 {
1315     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CALLBACK);
1316     uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN];
1317     privateTag[31] = 31;
1318     frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN);
1319     uint8_t *privateTagTemp = new uint8_t[PRIVATE_TAG_LEN];
1320     frameConfig->GetVendorParameter(privateTagTemp, PRIVATE_TAG_LEN);
1321     EXPECT_TRUE(privateTagTemp[31] == 31);
1322     delete[] privateTag;
1323     delete[] privateTagTemp;
1324 }
1325 
HWTEST_F(CameraLiteTest,PrfTest_SetVendorParameter_001,Level1)1326 HWTEST_F(CameraLiteTest, PrfTest_SetVendorParameter_001, Level1)
1327 {
1328     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW);
1329     uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN];
1330     privateTag[1] = 1;
1331     struct timespec tv1 = {0};
1332     struct timespec tv2 = {0};
1333     int64_t performanceTestTimes = 10;
1334     int64_t usecTimes = 1000000;
1335     int64_t totalTime = 0;
1336     for (int32_t i = 0; i < performanceTestTimes; i++) {
1337         clock_gettime(CLOCK_REALTIME, &tv1);
1338         frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN);
1339         clock_gettime(CLOCK_REALTIME, &tv2);
1340         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
1341     }
1342     int64_t expectTime = 1000000;
1343     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
1344     delete[] privateTag;
1345 }
1346 
HWTEST_F(CameraLiteTest,PrfTest_SetVendorParameter_002,Level1)1347 HWTEST_F(CameraLiteTest, PrfTest_SetVendorParameter_002, Level1)
1348 {
1349     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CAPTURE);
1350     uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN];
1351     privateTag[2] = 2;
1352     struct timespec tv1 = {0};
1353     struct timespec tv2 = {0};
1354     int64_t performanceTestTimes = 10;
1355     int64_t usecTimes = 1000000;
1356     int64_t totalTime = 0;
1357     for (int32_t i = 0; i < performanceTestTimes; i++) {
1358         clock_gettime(CLOCK_REALTIME, &tv1);
1359         frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN);
1360         clock_gettime(CLOCK_REALTIME, &tv2);
1361         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
1362     }
1363     int64_t expectTime = 1000000;
1364     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
1365     delete[] privateTag;
1366 }
1367 
HWTEST_F(CameraLiteTest,PrfTest_SetVendorParameter_003,Level1)1368 HWTEST_F(CameraLiteTest, PrfTest_SetVendorParameter_003, Level1)
1369 {
1370     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_RECORD);
1371     uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN];
1372     privateTag[3] = 3;
1373     struct timespec tv1 = {0};
1374     struct timespec tv2 = {0};
1375     int64_t performanceTestTimes = 10;
1376     int64_t usecTimes = 1000000;
1377     int64_t totalTime = 0;
1378     for (int32_t i = 0; i < performanceTestTimes; i++) {
1379         clock_gettime(CLOCK_REALTIME, &tv1);
1380         frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN);
1381         clock_gettime(CLOCK_REALTIME, &tv2);
1382         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
1383     }
1384     int64_t expectTime = 1000000;
1385     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
1386     delete[] privateTag;
1387 }
1388 
HWTEST_F(CameraLiteTest,PrfTest_SetVendorParameter_004,Level1)1389 HWTEST_F(CameraLiteTest, PrfTest_SetVendorParameter_004, Level1)
1390 {
1391     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CALLBACK);
1392     uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN];
1393     privateTag[4] = 4;
1394     struct timespec tv1 = {0};
1395     struct timespec tv2 = {0};
1396     int64_t performanceTestTimes = 10;
1397     int64_t usecTimes = 1000000;
1398     int64_t totalTime = 0;
1399     for (int32_t i = 0; i < performanceTestTimes; i++) {
1400         clock_gettime(CLOCK_REALTIME, &tv1);
1401         frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN);
1402         clock_gettime(CLOCK_REALTIME, &tv2);
1403         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
1404     }
1405     int64_t expectTime = 1000000;
1406     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
1407     delete[] privateTag;
1408 }
1409 
1410 /* *
1411  * @tc.number    : SUB_MEDIA_CAMERA_DEV_1600
1412  * @tc.name      : Get Vendor Parameter
1413  * @tc.desc      : [C- SOFTWARE -0200]
1414  */
HWTEST_F(CameraLiteTest,PrfTest_GetVendorParameter_001,Level1)1415 HWTEST_F(CameraLiteTest, PrfTest_GetVendorParameter_001, Level1)
1416 {
1417     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW);
1418     uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN];
1419     privateTag[1] = 1;
1420     frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN);
1421     struct timespec tv1 = {0};
1422     struct timespec tv2 = {0};
1423     int64_t performanceTestTimes = 10;
1424     int64_t usecTimes = 1000000;
1425     int64_t totalTime = 0;
1426     uint8_t *privateTagTemp = new uint8_t[PRIVATE_TAG_LEN];
1427     for (int32_t i = 0; i < performanceTestTimes; i++) {
1428         clock_gettime(CLOCK_REALTIME, &tv1);
1429         frameConfig->GetVendorParameter(privateTagTemp, PRIVATE_TAG_LEN);
1430         clock_gettime(CLOCK_REALTIME, &tv2);
1431         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
1432     }
1433     int64_t expectTime = 1000000;
1434     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
1435     delete[] privateTag;
1436     delete[] privateTagTemp;
1437 }
1438 
HWTEST_F(CameraLiteTest,PrfTest_GetVendorParameter_002,Level1)1439 HWTEST_F(CameraLiteTest, PrfTest_GetVendorParameter_002, Level1)
1440 {
1441     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CAPTURE);
1442     uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN];
1443     privateTag[2] = 2;
1444     frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN);
1445     struct timespec tv1 = {0};
1446     struct timespec tv2 = {0};
1447     int64_t performanceTestTimes = 10;
1448     int64_t usecTimes = 1000000;
1449     int64_t totalTime = 0;
1450     uint8_t *privateTagTemp = new uint8_t[PRIVATE_TAG_LEN];
1451     for (int32_t i = 0; i < performanceTestTimes; i++) {
1452         clock_gettime(CLOCK_REALTIME, &tv1);
1453         frameConfig->GetVendorParameter(privateTagTemp, PRIVATE_TAG_LEN);
1454         clock_gettime(CLOCK_REALTIME, &tv2);
1455         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
1456     }
1457     int64_t expectTime = 1000000;
1458     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
1459     delete[] privateTag;
1460     delete[] privateTagTemp;
1461 }
1462 
HWTEST_F(CameraLiteTest,PrfTest_GetVendorParameter_003,Level1)1463 HWTEST_F(CameraLiteTest, PrfTest_GetVendorParameter_003, Level1)
1464 {
1465     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_RECORD);
1466     uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN];
1467     privateTag[3] = 3;
1468     frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN);
1469     struct timespec tv1 = {0};
1470     struct timespec tv2 = {0};
1471     int64_t performanceTestTimes = 10;
1472     int64_t usecTimes = 1000000;
1473     int64_t totalTime = 0;
1474     uint8_t *privateTagTemp = new uint8_t[PRIVATE_TAG_LEN];
1475     for (int32_t i = 0; i < performanceTestTimes; i++) {
1476         clock_gettime(CLOCK_REALTIME, &tv1);
1477         frameConfig->GetVendorParameter(privateTagTemp, PRIVATE_TAG_LEN);
1478         clock_gettime(CLOCK_REALTIME, &tv2);
1479         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
1480     }
1481     int64_t expectTime = 1000000;
1482     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
1483     delete[] privateTag;
1484     delete[] privateTagTemp;
1485 }
1486 
HWTEST_F(CameraLiteTest,PrfTest_GetVendorParameter_004,Level1)1487 HWTEST_F(CameraLiteTest, PrfTest_GetVendorParameter_004, Level1)
1488 {
1489     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CALLBACK);
1490     uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN];
1491     privateTag[4] = 4;
1492     frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN);
1493     struct timespec tv1 = {0};
1494     struct timespec tv2 = {0};
1495     int64_t performanceTestTimes = 10;
1496     int64_t usecTimes = 1000000;
1497     int64_t totalTime = 0;
1498     uint8_t *privateTagTemp = new uint8_t[PRIVATE_TAG_LEN];
1499     for (int32_t i = 0; i < performanceTestTimes; i++) {
1500         clock_gettime(CLOCK_REALTIME, &tv1);
1501         frameConfig->GetVendorParameter(privateTagTemp, PRIVATE_TAG_LEN);
1502         clock_gettime(CLOCK_REALTIME, &tv2);
1503         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
1504     }
1505     int64_t expectTime = 1000000;
1506     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
1507     delete[] privateTag;
1508     delete[] privateTagTemp;
1509 }
1510 
1511 /* *
1512  * @tc.number    : SUB_MEDIA_CAMERA_DEV_1700
1513  * @tc.name      : Get Surface
1514  * @tc.desc      : [C- SOFTWARE -0200]
1515  */
HWTEST_F(CameraLiteTest,Test_GetSurface_001,Level1)1516 HWTEST_F(CameraLiteTest, Test_GetSurface_001, Level1)
1517 {
1518     CameraKit *cameraKit = nullptr;
1519     list<string> cameraList;
1520     string cameraId;
1521     EventHandler eventHdlr;
1522     GetCameraId(cameraKit, cameraList, cameraId);
1523     SampleCameraStateMng camStateMng(eventHdlr);
1524     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
1525     sleep(2);
1526     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CAPTURE);
1527     Surface *surface = Surface::CreateSurface();
1528     surface->SetWidthAndHeight(1920, 1080);
1529     EXPECT_EQ(1920, surface->GetWidth());
1530     EXPECT_EQ(1080, surface->GetHeight());
1531 }
1532 
HWTEST_F(CameraLiteTest,Test_GetSurface_002,Level1)1533 HWTEST_F(CameraLiteTest, Test_GetSurface_002, Level1)
1534 {
1535     CameraKit *cameraKit = nullptr;
1536     list<string> cameraList;
1537     string cameraId;
1538     EventHandler eventHdlr;
1539     GetCameraId(cameraKit, cameraList, cameraId);
1540     SampleCameraStateMng camStateMng(eventHdlr);
1541     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
1542     sleep(2);
1543     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CAPTURE);
1544     Surface *surface = Surface::CreateSurface();
1545     surface->SetWidthAndHeight(480, 360);
1546     EXPECT_EQ(480, surface->GetWidth());
1547     EXPECT_EQ(360, surface->GetHeight());
1548 }
1549 
HWTEST_F(CameraLiteTest,Test_GetSurface_003,Level1)1550 HWTEST_F(CameraLiteTest, Test_GetSurface_003, Level1)
1551 {
1552     CameraKit *cameraKit = nullptr;
1553     list<string> cameraList;
1554     string cameraId;
1555     EventHandler eventHdlr;
1556     GetCameraId(cameraKit, cameraList, cameraId);
1557     SampleCameraStateMng camStateMng(eventHdlr);
1558     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
1559     sleep(2);
1560     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CAPTURE);
1561     Surface *surface = Surface::CreateSurface();
1562     surface->SetWidthAndHeight(1920, 1080);
1563     frameConfig->AddSurface(*surface);
1564     EXPECT_FALSE(frameConfig->GetSurfaces().size() == 0);
1565 }
1566 
HWTEST_F(CameraLiteTest,Test_GetSurface_004,Level1)1567 HWTEST_F(CameraLiteTest, Test_GetSurface_004, Level1)
1568 {
1569     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW);
1570     Surface *surface = Surface::CreateSurface();
1571     frameConfig->AddSurface(*surface);
1572     frameConfig->RemoveSurface(*surface);
1573     list<Surface *> list = frameConfig->GetSurfaces();
1574     EXPECT_TRUE(list.size() == 0);
1575 }
1576 
HWTEST_F(CameraLiteTest,Test_GetSurface_005,Level1)1577 HWTEST_F(CameraLiteTest, Test_GetSurface_005, Level1)
1578 {
1579     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_RECORD);
1580     Surface *surface = Surface::CreateSurface();
1581     frameConfig->AddSurface(*surface);
1582     list<Surface *> list = frameConfig->GetSurfaces();
1583     EXPECT_TRUE(list.size() == 1);
1584 }
1585 
HWTEST_F(CameraLiteTest,Test_GetSurface_006,Level1)1586 HWTEST_F(CameraLiteTest, Test_GetSurface_006, Level1)
1587 {
1588     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CALLBACK);
1589     Surface *surface = Surface::CreateSurface();
1590     frameConfig->AddSurface(*surface);
1591     list<Surface *> list = frameConfig->GetSurfaces();
1592     EXPECT_TRUE(list.size() == 1);
1593 }
1594 
HWTEST_F(CameraLiteTest,PrfTest_GetSurfaces_001,Level1)1595 HWTEST_F(CameraLiteTest, PrfTest_GetSurfaces_001, Level1)
1596 {
1597     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW);
1598     Surface *surface = Surface::CreateSurface();
1599     frameConfig->AddSurface(*surface);
1600     struct timespec tv1 = {0};
1601     struct timespec tv2 = {0};
1602     int64_t performanceTestTimes = 10;
1603     int64_t usecTimes = 1000000;
1604     int64_t totalTime = 0;
1605     for (int32_t i = 0; i < performanceTestTimes; i++) {
1606         clock_gettime(CLOCK_REALTIME, &tv1);
1607         frameConfig->GetSurfaces();
1608         clock_gettime(CLOCK_REALTIME, &tv2);
1609         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
1610     }
1611     int64_t expectTime = 1000000;
1612     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
1613 }
1614 
HWTEST_F(CameraLiteTest,PrfTest_GetSurfaces_002,Level1)1615 HWTEST_F(CameraLiteTest, PrfTest_GetSurfaces_002, Level1)
1616 {
1617     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CAPTURE);
1618     Surface *surface = Surface::CreateSurface();
1619     frameConfig->AddSurface(*surface);
1620     struct timespec tv1 = {0};
1621     struct timespec tv2 = {0};
1622     int64_t performanceTestTimes = 10;
1623     int64_t usecTimes = 1000000;
1624     int64_t totalTime = 0;
1625     for (int32_t i = 0; i < performanceTestTimes; i++) {
1626         clock_gettime(CLOCK_REALTIME, &tv1);
1627         frameConfig->GetSurfaces();
1628         clock_gettime(CLOCK_REALTIME, &tv2);
1629         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
1630     }
1631     int64_t expectTime = 1000000;
1632     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
1633 }
1634 
HWTEST_F(CameraLiteTest,PrfTest_GetSurfaces_003,Level1)1635 HWTEST_F(CameraLiteTest, PrfTest_GetSurfaces_003, Level1)
1636 {
1637     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_RECORD);
1638     Surface *surface = Surface::CreateSurface();
1639     frameConfig->AddSurface(*surface);
1640     struct timespec tv1 = {0};
1641     struct timespec tv2 = {0};
1642     int64_t performanceTestTimes = 10;
1643     int64_t usecTimes = 1000000;
1644     int64_t totalTime = 0;
1645     for (int32_t i = 0; i < performanceTestTimes; i++) {
1646         clock_gettime(CLOCK_REALTIME, &tv1);
1647         frameConfig->GetSurfaces();
1648         clock_gettime(CLOCK_REALTIME, &tv2);
1649         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
1650     }
1651     int64_t expectTime = 1000000;
1652     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
1653 }
1654 
HWTEST_F(CameraLiteTest,PrfTest_GetSurfaces_004,Level1)1655 HWTEST_F(CameraLiteTest, PrfTest_GetSurfaces_004, Level1)
1656 {
1657     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CALLBACK);
1658     Surface *surface = Surface::CreateSurface();
1659     frameConfig->AddSurface(*surface);
1660     struct timespec tv1 = {0};
1661     struct timespec tv2 = {0};
1662     int64_t performanceTestTimes = 10;
1663     int64_t usecTimes = 1000000;
1664     int64_t totalTime = 0;
1665     for (int32_t i = 0; i < performanceTestTimes; i++) {
1666         clock_gettime(CLOCK_REALTIME, &tv1);
1667         frameConfig->GetSurfaces();
1668         clock_gettime(CLOCK_REALTIME, &tv2);
1669         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
1670     }
1671     int64_t expectTime = 1000000;
1672     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
1673 }
1674 
1675 /* *
1676  * @tc.number    : SUB_MEDIA_CAMERA_DEV_1800
1677  * @tc.name      : On Frame Progressed
1678  * @tc.desc      : [C- SOFTWARE -0200]
1679  */
HWTEST_F(CameraLiteTest,Test_OnFrameProgressed_001,Level1)1680 HWTEST_F(CameraLiteTest, Test_OnFrameProgressed_001, Level1)
1681 {
1682     CameraKit *cameraKit = nullptr;
1683     list<string> cameraList;
1684     string cameraId;
1685     EventHandler eventHdlr;
1686     GetCameraId(cameraKit, cameraList, cameraId);
1687     SampleCameraStateMng camStateMng(eventHdlr);
1688     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
1689     sleep(2);
1690     camStateMng.Capture();
1691     sleep(2);
1692     EXPECT_EQ(g_onFrameStartedFlag, true);
1693     EXPECT_EQ(g_onFrameProgressedFlag, true);
1694 }
1695 
1696 /* *
1697  * @tc.number    : SUB_MEDIA_CAMERA_DEV_1900
1698  * @tc.name      : On Frame Completed
1699  * @tc.desc      : [C- SOFTWARE -0200]
1700  */
HWTEST_F(CameraLiteTest,Test_OnFrameCompletedFlag_001,Level1)1701 HWTEST_F(CameraLiteTest, Test_OnFrameCompletedFlag_001, Level1)
1702 {
1703     CameraKit *cameraKit = nullptr;
1704     list<string> cameraList;
1705     string cameraId;
1706     EventHandler eventHdlr;
1707     GetCameraId(cameraKit, cameraList, cameraId);
1708     SampleCameraStateMng camStateMng(eventHdlr);
1709     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
1710     sleep(2);
1711     camStateMng.Capture();
1712     sleep(2);
1713     EXPECT_EQ(g_onFrameFinishedFlag, true);
1714 }
1715 
1716 /* *
1717  * @tc.number    : SUB_MEDIA_CAMERA_DEV_2000
1718  * @tc.name      : On Frame Error
1719  * @tc.desc      : [C- SOFTWARE -0200]
1720  */
HWTEST_F(CameraLiteTest,Test_OnFrameErrorFlag_001,Level1)1721 HWTEST_F(CameraLiteTest, Test_OnFrameErrorFlag_001, Level1)
1722 {
1723     CameraKit *cameraKit = nullptr;
1724     list<string> cameraList;
1725     string cameraId;
1726     EventHandler eventHdlr;
1727     GetCameraId(cameraKit, cameraList, cameraId);
1728     SampleCameraStateMng camStateMng(eventHdlr);
1729     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
1730     sleep(2);
1731     camStateMng.Capture();
1732     sleep(2);
1733     EXPECT_NE(g_onFrameErrorFlag, true);
1734 }
1735 
1736 /* *
1737  * @tc.number    : SUB_MEDIA_CAMERA_DEV_2100
1738  * @tc.name      : Add Surface
1739  * @tc.desc      : [C- SOFTWARE -0200]
1740  */
HWTEST_F(CameraLiteTest,Test_AddSurface_001,Level1)1741 HWTEST_F(CameraLiteTest, Test_AddSurface_001, Level1)
1742 {
1743     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW);
1744     Surface *surface = Surface::CreateSurface();
1745     frameConfig->AddSurface(*surface);
1746     list<Surface *> list = frameConfig->GetSurfaces();
1747     EXPECT_TRUE(list.size() == 1);
1748 }
1749 
HWTEST_F(CameraLiteTest,Test_AddSurface_002,Level1)1750 HWTEST_F(CameraLiteTest, Test_AddSurface_002, Level1)
1751 {
1752     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW);
1753     Surface *surface = Surface::CreateSurface();
1754     frameConfig->AddSurface(*surface);
1755     frameConfig->AddSurface(*surface);
1756     list<Surface *> list = frameConfig->GetSurfaces();
1757     EXPECT_TRUE(list.size() == 1);
1758 }
1759 
HWTEST_F(CameraLiteTest,Test_AddSurface_003,Level1)1760 HWTEST_F(CameraLiteTest, Test_AddSurface_003, Level1)
1761 {
1762     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW);
1763     Surface *surface = Surface::CreateSurface();
1764     frameConfig->AddSurface(*surface);
1765     frameConfig->AddSurface(*surface);
1766     frameConfig->AddSurface(*surface);
1767     list<Surface *> list = frameConfig->GetSurfaces();
1768     EXPECT_TRUE(list.size() == 1);
1769 }
1770 
HWTEST_F(CameraLiteTest,PrfTest_AddSurface_001,Level1)1771 HWTEST_F(CameraLiteTest, PrfTest_AddSurface_001, Level1)
1772 {
1773     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW);
1774     Surface *surface = Surface::CreateSurface();
1775     struct timespec tv1 = {0};
1776     struct timespec tv2 = {0};
1777     int64_t performanceTestTimes = 10;
1778     int64_t usecTimes = 1000000;
1779     int64_t totalTime = 0;
1780     for (int32_t i = 0; i < performanceTestTimes; i++) {
1781         clock_gettime(CLOCK_REALTIME, &tv1);
1782         frameConfig->AddSurface(*surface);
1783         clock_gettime(CLOCK_REALTIME, &tv2);
1784         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
1785     }
1786     int64_t expectTime = 1000000;
1787     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
1788 }
1789 
1790 /* *
1791  * @tc.number    : SUB_MEDIA_CAMERA_DEV_2200
1792  * @tc.name      : Remove Surface
1793  * @tc.desc      : [C- SOFTWARE -0200]
1794  */
HWTEST_F(CameraLiteTest,Test_RemoveSurface_001,Level1)1795 HWTEST_F(CameraLiteTest, Test_RemoveSurface_001, Level1)
1796 {
1797     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW);
1798     Surface *surface = Surface::CreateSurface();
1799     frameConfig->AddSurface(*surface);
1800     frameConfig->RemoveSurface(*surface);
1801     list<Surface *> list = frameConfig->GetSurfaces();
1802     EXPECT_TRUE(list.size() == 0);
1803 }
1804 
HWTEST_F(CameraLiteTest,Test_RemoveSurface_002,Level1)1805 HWTEST_F(CameraLiteTest, Test_RemoveSurface_002, Level1)
1806 {
1807     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW);
1808     Surface *surface = Surface::CreateSurface();
1809     Surface *surface1 = Surface::CreateSurface();
1810     frameConfig->AddSurface(*surface);
1811     frameConfig->AddSurface(*surface1);
1812     frameConfig->RemoveSurface(*surface1);
1813     list<Surface *> list = frameConfig->GetSurfaces();
1814     EXPECT_TRUE(list.size() == 1);
1815 }
1816 
HWTEST_F(CameraLiteTest,Test_RemoveSurface_003,Level1)1817 HWTEST_F(CameraLiteTest, Test_RemoveSurface_003, Level1)
1818 {
1819     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW);
1820     Surface *surface = Surface::CreateSurface();
1821     Surface *surface1 = Surface::CreateSurface();
1822     frameConfig->AddSurface(*surface);
1823     frameConfig->AddSurface(*surface1);
1824     frameConfig->RemoveSurface(*surface);
1825     frameConfig->RemoveSurface(*surface1);
1826     list<Surface *> list = frameConfig->GetSurfaces();
1827     EXPECT_TRUE(list.size() == 0);
1828 }
1829 
HWTEST_F(CameraLiteTest,PrfTest_RemoveSurface_001,Level1)1830 HWTEST_F(CameraLiteTest, PrfTest_RemoveSurface_001, Level1)
1831 {
1832     shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW);
1833     Surface *surface = Surface::CreateSurface();
1834     struct timespec tv1 = {0};
1835     struct timespec tv2 = {0};
1836     int64_t performanceTestTimes = 10;
1837     int64_t usecTimes = 1000000;
1838     int64_t totalTime = 0;
1839     for (int32_t i = 0; i < performanceTestTimes; i++) {
1840         frameConfig->AddSurface(*surface);
1841         clock_gettime(CLOCK_REALTIME, &tv1);
1842         frameConfig->RemoveSurface(*surface);
1843         clock_gettime(CLOCK_REALTIME, &tv2);
1844         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
1845     }
1846     int64_t expectTime = 1000000;
1847     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
1848 }
1849 
1850 /* *
1851  * @tc.number    : SUB_MEDIA_CAMERA_DEV_2300
1852  * @tc.name      : Capture
1853  * @tc.desc      : [C- SOFTWARE -0200]
1854  */
HWTEST_F(CameraLiteTest,Test_Capture_001,Level1)1855 HWTEST_F(CameraLiteTest, Test_Capture_001, Level1)
1856 {
1857     CameraKit *cameraKit = nullptr;
1858     list<string> cameraList;
1859     string cameraId;
1860     EventHandler eventHdlr;
1861     GetCameraId(cameraKit, cameraList, cameraId);
1862     SampleCameraStateMng camStateMng(eventHdlr);
1863     g_onCaptureTriggerStartedFlag = false;
1864     g_onCaptureTriggerCompletedFlag = false;
1865     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
1866     sleep(2);
1867     camStateMng.Capture();
1868     sleep(2);
1869     EXPECT_EQ(g_onCaptureTriggerStartedFlag, true);
1870     EXPECT_EQ(g_onCaptureTriggerCompletedFlag, true);
1871 }
1872 
HWTEST_F(CameraLiteTest,Test_Capture_002,Level1)1873 HWTEST_F(CameraLiteTest, Test_Capture_002, Level1)
1874 {
1875     CameraKit *cameraKit = CameraKit::GetInstance();
1876     string cameraId = "0";
1877     EventHandler eventHdlr;
1878     SampleCameraStateMng camStateMng(eventHdlr);
1879     g_onCaptureTriggerStartedFlag = false;
1880     g_onCaptureTriggerCompletedFlag = false;
1881     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
1882     sleep(2);
1883     camStateMng.StartPreview();
1884     sleep(2);
1885     camStateMng.Capture();
1886     sleep(2);
1887     camStateMng.Stop();
1888     sleep(2);
1889     EXPECT_EQ(g_onCaptureTriggerStartedFlag, true);
1890     EXPECT_EQ(g_onCaptureTriggerCompletedFlag, true);
1891 }
1892 
HWTEST_F(CameraLiteTest,Test_Capture_003,Level1)1893 HWTEST_F(CameraLiteTest, Test_Capture_003, Level1)
1894 {
1895     CameraKit *cameraKit = CameraKit::GetInstance();
1896     string cameraId = "0";
1897     EventHandler eventHdlr;
1898     SampleCameraStateMng camStateMng(eventHdlr);
1899     g_onCaptureTriggerStartedFlag = false;
1900     g_onCaptureTriggerCompletedFlag = false;
1901     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
1902     sleep(2);
1903     camStateMng.StartPreview();
1904     sleep(2);
1905     camStateMng.Stop();
1906     sleep(2);
1907     EXPECT_EQ(g_onCaptureTriggerStartedFlag, false);
1908     EXPECT_EQ(g_onCaptureTriggerCompletedFlag, false);
1909 }
1910 
HWTEST_F(CameraLiteTest,Test_Capture_004,Level1)1911 HWTEST_F(CameraLiteTest, Test_Capture_004, Level1)
1912 {
1913     CameraKit *cameraKit = nullptr;
1914     list<string> cameraList;
1915     string cameraId;
1916     EventHandler eventHdlr;
1917     GetCameraId(cameraKit, cameraList, cameraId);
1918     SampleCameraStateMng camStateMng(eventHdlr);
1919     g_onCaptureTriggerStartedFlag = false;
1920     g_onCaptureTriggerCompletedFlag = false;
1921     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
1922     sleep(2);
1923     camStateMng.Capture();
1924     sleep(2);
1925     camStateMng.Stop();
1926     sleep(2);
1927     EXPECT_EQ(g_onCaptureTriggerStartedFlag, true);
1928     EXPECT_EQ(g_onCaptureTriggerCompletedFlag, true);
1929 }
1930 
HWTEST_F(CameraLiteTest,Test_Capture_005,Level1)1931 HWTEST_F(CameraLiteTest, Test_Capture_005, Level1)
1932 {
1933     CameraKit *cameraKit = nullptr;
1934     list<string> cameraList;
1935     string cameraId;
1936     EventHandler eventHdlr;
1937     GetCameraId(cameraKit, cameraList, cameraId);
1938     SampleCameraStateMng camStateMng(eventHdlr);
1939     g_onCaptureTriggerStartedFlag = false;
1940     g_onCaptureTriggerCompletedFlag = false;
1941     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
1942     sleep(2);
1943     camStateMng.Capture();
1944     sleep(2);
1945     camStateMng.Capture();
1946     sleep(2);
1947     EXPECT_EQ(g_onCaptureTriggerStartedFlag, true);
1948     EXPECT_EQ(g_onCaptureTriggerCompletedFlag, true);
1949 }
1950 
HWTEST_F(CameraLiteTest,Test_Capture_006,Level1)1951 HWTEST_F(CameraLiteTest, Test_Capture_006, Level1)
1952 {
1953     CameraKit *cameraKit = nullptr;
1954     list<string> cameraList;
1955     string cameraId;
1956     EventHandler eventHdlr;
1957     GetCameraId(cameraKit, cameraList, cameraId);
1958     SampleCameraStateMng camStateMng(eventHdlr);
1959     g_onCaptureTriggerStartedFlag = false;
1960     g_onCaptureTriggerCompletedFlag = false;
1961     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
1962     sleep(2);
1963     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
1964     sleep(2);
1965     camStateMng.Capture();
1966     sleep(2);
1967     EXPECT_TRUE(g_onCaptureTriggerStartedFlag);
1968     EXPECT_TRUE(g_onCaptureTriggerCompletedFlag);
1969 }
1970 
HWTEST_F(CameraLiteTest,Test_Capture_007,Level1)1971 HWTEST_F(CameraLiteTest, Test_Capture_007, Level1)
1972 {
1973     CameraKit *cameraKit = nullptr;
1974     list<string> cameraList;
1975     string cameraId;
1976     EventHandler eventHdlr;
1977     GetCameraId(cameraKit, cameraList, cameraId);
1978     SampleCameraStateMng camStateMng(eventHdlr);
1979     g_onCaptureTriggerStartedFlag = false;
1980     g_onCaptureTriggerCompletedFlag = false;
1981     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
1982     sleep(2);
1983     camStateMng.Stop();
1984     sleep(2);
1985     camStateMng.Capture();
1986     sleep(2);
1987     EXPECT_TRUE(g_onCaptureTriggerStartedFlag);
1988     EXPECT_TRUE(g_onCaptureTriggerCompletedFlag);
1989 }
1990 
HWTEST_F(CameraLiteTest,Test_Capture_008,Level1)1991 HWTEST_F(CameraLiteTest, Test_Capture_008, Level1)
1992 {
1993     CameraKit *cameraKit = nullptr;
1994     list<string> cameraList;
1995     string cameraId;
1996     EventHandler eventHdlr;
1997     GetCameraId(cameraKit, cameraList, cameraId);
1998     SampleCameraStateMng camStateMng(eventHdlr);
1999     g_onCaptureTriggerStartedFlag = false;
2000     g_onCaptureTriggerCompletedFlag = false;
2001     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
2002     sleep(2);
2003     camStateMng.StartPreview();
2004     sleep(2);
2005     camStateMng.Stop();
2006     sleep(2);
2007     camStateMng.Capture();
2008     sleep(2);
2009     EXPECT_EQ(g_onCaptureTriggerStartedFlag, true);
2010     EXPECT_EQ(g_onCaptureTriggerCompletedFlag, true);
2011 }
2012 
2013 /* *
2014  * @tc.number    : SUB_MEDIA_CAMERA_DEV_2400
2015  * @tc.name      : Preview
2016  * @tc.desc      : [C- SOFTWARE -0200]
2017  */
HWTEST_F(CameraLiteTest,Test_Preview_001,Level1)2018 HWTEST_F(CameraLiteTest, Test_Preview_001, Level1)
2019 {
2020     CameraKit *cameraKit = nullptr;
2021     list<string> cameraList;
2022     string cameraId;
2023     EventHandler eventHdlr;
2024     GetCameraId(cameraKit, cameraList, cameraId);
2025     SampleCameraStateMng camStateMng(eventHdlr);
2026     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
2027     g_onPreviewFlag = false;
2028     camStateMng.StartPreview();
2029     sleep(2);
2030     EXPECT_TRUE(g_onPreviewFlag);
2031     camStateMng.Stop();
2032 }
2033 
HWTEST_F(CameraLiteTest,Test_Preview_002,Level1)2034 HWTEST_F(CameraLiteTest, Test_Preview_002, Level1)
2035 {
2036     CameraKit *cameraKit = nullptr;
2037     list<string> cameraList;
2038     string cameraId;
2039     EventHandler eventHdlr;
2040     GetCameraId(cameraKit, cameraList, cameraId);
2041     SampleCameraStateMng camStateMng(eventHdlr);
2042     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
2043     g_onPreviewFlag = false;
2044     camStateMng.StartPreview();
2045     sleep(2);
2046     camStateMng.Stop();
2047     EXPECT_FALSE(g_onPreviewFlag);
2048 }
2049 
HWTEST_F(CameraLiteTest,Test_Preview_003,Level1)2050 HWTEST_F(CameraLiteTest, Test_Preview_003, Level1)
2051 {
2052     CameraKit *cameraKit = nullptr;
2053     list<string> cameraList;
2054     string cameraId;
2055     EventHandler eventHdlr;
2056     GetCameraId(cameraKit, cameraList, cameraId);
2057     SampleCameraStateMng camStateMng(eventHdlr);
2058     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
2059     g_onPreviewFlag = false;
2060     camStateMng.StartPreview();
2061     sleep(2);
2062     camStateMng.Stop();
2063     camStateMng.StartPreview();
2064     sleep(2);
2065     EXPECT_TRUE(g_onPreviewFlag);
2066 }
2067 
HWTEST_F(CameraLiteTest,Test_Preview_004,Level1)2068 HWTEST_F(CameraLiteTest, Test_Preview_004, Level1)
2069 {
2070     CameraKit *cameraKit = nullptr;
2071     list<string> cameraList;
2072     string cameraId;
2073     EventHandler eventHdlr;
2074     GetCameraId(cameraKit, cameraList, cameraId);
2075     SampleCameraStateMng camStateMng(eventHdlr);
2076     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
2077     g_onPreviewFlag = false;
2078     camStateMng.StartPreview();
2079     sleep(2);
2080     camStateMng.Stop();
2081     camStateMng.StartPreview();
2082     sleep(2);
2083     camStateMng.Stop();
2084     EXPECT_FALSE(g_onPreviewFlag);
2085 }
2086 
HWTEST_F(CameraLiteTest,Test_Preview_005,Level1)2087 HWTEST_F(CameraLiteTest, Test_Preview_005, Level1)
2088 {
2089     CameraKit *cameraKit = nullptr;
2090     list<string> cameraList;
2091     string cameraId;
2092     EventHandler eventHdlr;
2093     GetCameraId(cameraKit, cameraList, cameraId);
2094     SampleCameraStateMng camStateMng(eventHdlr);
2095     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
2096     g_onPreviewFlag = false;
2097     camStateMng.Capture();
2098     sleep(2);
2099     camStateMng.Stop();
2100     sleep(2);
2101     camStateMng.StartPreview();
2102     sleep(2);
2103     EXPECT_TRUE(g_onPreviewFlag);
2104     camStateMng.Stop();
2105 }
2106 
HWTEST_F(CameraLiteTest,Test_Preview_006,Level1)2107 HWTEST_F(CameraLiteTest, Test_Preview_006, Level1)
2108 {
2109     CameraKit *cameraKit = nullptr;
2110     list<string> cameraList;
2111     string cameraId;
2112     EventHandler eventHdlr;
2113     GetCameraId(cameraKit, cameraList, cameraId);
2114     SampleCameraStateMng camStateMng(eventHdlr);
2115     cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr);
2116     g_onPreviewFlag = false;
2117     camStateMng.Capture();
2118     sleep(2);
2119     camStateMng.StartPreview();
2120     sleep(2);
2121     camStateMng.Stop();
2122     EXPECT_FALSE(g_onPreviewFlag);
2123 } /* end frame config & frame state call back interface test */
2124 
2125 /* start camera info interface test */
2126 /* *
2127  * @tc.number    : SUB_MEDIA_CAMERA_DEV_2500
2128  * @tc.name      : Get Camera Type
2129  * @tc.desc      : [C- SOFTWARE -0200]
2130  */
HWTEST_F(CameraLiteTest,Test_GetCameraType_001,Level1)2131 HWTEST_F(CameraLiteTest, Test_GetCameraType_001, Level1)
2132 {
2133     CameraKit *cameraKit = CameraKit::GetInstance();
2134     string cameraId = "0";
2135     const CameraInfo *cameraInfo = cameraKit->GetCameraInfo(cameraId);
2136     int32_t cameraType = cameraInfo->GetCameraType();
2137     EXPECT_TRUE(cameraType <= 3);
2138     EXPECT_TRUE(cameraType >= 0);
2139 }
2140 
HWTEST_F(CameraLiteTest,PrfTest_GetCameraType_001,Level1)2141 HWTEST_F(CameraLiteTest, PrfTest_GetCameraType_001, Level1)
2142 {
2143     CameraKit *cameraKit = CameraKit::GetInstance();
2144     string cameraId = "0";
2145     const CameraInfo *cameraInfo = cameraKit->GetCameraInfo(cameraId);
2146     struct timespec tv1 = {0};
2147     struct timespec tv2 = {0};
2148     int64_t performanceTestTimes = 10;
2149     int64_t usecTimes = 1000000;
2150     int64_t totalTime = 0;
2151     for (int32_t i = 0; i < performanceTestTimes; i++) {
2152         clock_gettime(CLOCK_REALTIME, &tv1);
2153         cameraInfo->GetCameraType();
2154         clock_gettime(CLOCK_REALTIME, &tv2);
2155         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
2156     }
2157     int64_t expectTime = 1000000;
2158     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
2159 }
2160 
2161 /* *
2162  * @tc.number    : SUB_MEDIA_CAMERA_DEV_2600
2163  * @tc.name      : Get Camera Facing Type
2164  * @tc.desc      : [C- SOFTWARE -0200]
2165  */
HWTEST_F(CameraLiteTest,Test_GetCameraFacingType_001,Level1)2166 HWTEST_F(CameraLiteTest, Test_GetCameraFacingType_001, Level1)
2167 {
2168     CameraKit *cameraKit = CameraKit::GetInstance();
2169     string cameraId = "0";
2170     const CameraInfo *cameraInfo = cameraKit->GetCameraInfo(cameraId);
2171     int32_t cameraFacingType = cameraInfo->GetCameraFacingType();
2172     EXPECT_TRUE(cameraFacingType <= 2);
2173     EXPECT_TRUE(cameraFacingType >= 0);
2174 }
2175 
HWTEST_F(CameraLiteTest,PrfTest_GetCameraFacingType_001,Level1)2176 HWTEST_F(CameraLiteTest, PrfTest_GetCameraFacingType_001, Level1)
2177 {
2178     CameraKit *cameraKit = CameraKit::GetInstance();
2179     string cameraId = "0";
2180     const CameraInfo *cameraInfo = cameraKit->GetCameraInfo(cameraId);
2181     struct timespec tv1 = {0};
2182     struct timespec tv2 = {0};
2183     int64_t performanceTestTimes = 10;
2184     int64_t usecTimes = 1000000;
2185     int64_t totalTime = 0;
2186     for (int32_t i = 0; i < performanceTestTimes; i++) {
2187         clock_gettime(CLOCK_REALTIME, &tv1);
2188         cameraInfo->GetCameraFacingType();
2189         clock_gettime(CLOCK_REALTIME, &tv2);
2190         totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec);
2191     }
2192     int64_t expectTime = 1000000;
2193     EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes);
2194 } /* end camera info interface test */
2195 }  // namespace OHOS
2196