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