10a5c7a17Sopenharmony_ci/* 20a5c7a17Sopenharmony_ci * Copyright (C) 2020-2022 Huawei Device Co., Ltd. 30a5c7a17Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 40a5c7a17Sopenharmony_ci * you may not use this file except in compliance with the License. 50a5c7a17Sopenharmony_ci * You may obtain a copy of the License at 60a5c7a17Sopenharmony_ci * 70a5c7a17Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 80a5c7a17Sopenharmony_ci * 90a5c7a17Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 100a5c7a17Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 110a5c7a17Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 120a5c7a17Sopenharmony_ci * See the License for the specific language governing permissions and 130a5c7a17Sopenharmony_ci * limitations under the License. 140a5c7a17Sopenharmony_ci */ 150a5c7a17Sopenharmony_ci 160a5c7a17Sopenharmony_ci#include "camera_lite_test.h" 170a5c7a17Sopenharmony_ci 180a5c7a17Sopenharmony_ci#include <components/ui_surface_view.h> 190a5c7a17Sopenharmony_ci#include <sys/stat.h> 200a5c7a17Sopenharmony_ci#include <sys/time.h> 210a5c7a17Sopenharmony_ci#include <sys/types.h> 220a5c7a17Sopenharmony_ci 230a5c7a17Sopenharmony_ci#include <algorithm> 240a5c7a17Sopenharmony_ci#include <cstdlib> 250a5c7a17Sopenharmony_ci#include <fstream> 260a5c7a17Sopenharmony_ci#include <iostream> 270a5c7a17Sopenharmony_ci#include <memory> 280a5c7a17Sopenharmony_ci#include <sstream> 290a5c7a17Sopenharmony_ci#include <string> 300a5c7a17Sopenharmony_ci 310a5c7a17Sopenharmony_ci#include "camera_kit.h" 320a5c7a17Sopenharmony_ci 330a5c7a17Sopenharmony_ciusing namespace std; 340a5c7a17Sopenharmony_ciusing namespace OHOS; 350a5c7a17Sopenharmony_ciusing namespace OHOS::Media; 360a5c7a17Sopenharmony_ciusing namespace testing::ext; 370a5c7a17Sopenharmony_ci 380a5c7a17Sopenharmony_cinamespace OHOS { 390a5c7a17Sopenharmony_ci/* * 400a5c7a17Sopenharmony_ci * get current dir 410a5c7a17Sopenharmony_ci * @return string current file path of the test suites 420a5c7a17Sopenharmony_ci */ 430a5c7a17Sopenharmony_cistring GetCurDir() 440a5c7a17Sopenharmony_ci{ 450a5c7a17Sopenharmony_ci string filePath = ""; 460a5c7a17Sopenharmony_ci char *buffer; 470a5c7a17Sopenharmony_ci if ((buffer = getcwd(NULL, 0)) == NULL) { 480a5c7a17Sopenharmony_ci perror("get file path error"); 490a5c7a17Sopenharmony_ci } else { 500a5c7a17Sopenharmony_ci printf("Current Dir: %s\r\n", buffer); 510a5c7a17Sopenharmony_ci filePath = buffer; 520a5c7a17Sopenharmony_ci free(buffer); 530a5c7a17Sopenharmony_ci } 540a5c7a17Sopenharmony_ci return filePath + "/"; 550a5c7a17Sopenharmony_ci} 560a5c7a17Sopenharmony_ci 570a5c7a17Sopenharmony_ci// SetUpTestCase 580a5c7a17Sopenharmony_civoid CameraLiteTest::SetUpTestCase(void) 590a5c7a17Sopenharmony_ci{ 600a5c7a17Sopenharmony_ci g_testPath = GetCurDir(); 610a5c7a17Sopenharmony_ci cout << "SetUpTestCase" << endl; 620a5c7a17Sopenharmony_ci} 630a5c7a17Sopenharmony_ci 640a5c7a17Sopenharmony_ci// TearDownTestCase 650a5c7a17Sopenharmony_civoid CameraLiteTest::TearDownTestCase(void) 660a5c7a17Sopenharmony_ci{ 670a5c7a17Sopenharmony_ci g_testPath = ""; 680a5c7a17Sopenharmony_ci cout << "TearDownTestCase" << endl; 690a5c7a17Sopenharmony_ci} 700a5c7a17Sopenharmony_ci 710a5c7a17Sopenharmony_civoid CameraLiteTest::SetUp(void) 720a5c7a17Sopenharmony_ci{ 730a5c7a17Sopenharmony_ci // CameraSetUp 740a5c7a17Sopenharmony_ci g_onGetCameraAbilityFlag = false; 750a5c7a17Sopenharmony_ci g_onConfigureFlag = false; 760a5c7a17Sopenharmony_ci g_onGetSupportedSizesFlag = false; 770a5c7a17Sopenharmony_ci 780a5c7a17Sopenharmony_ci // CameraDeviceCallBack 790a5c7a17Sopenharmony_ci g_onCameraAvailableFlag = false; 800a5c7a17Sopenharmony_ci g_onCameraUnavailableFlag = false; 810a5c7a17Sopenharmony_ci 820a5c7a17Sopenharmony_ci // CameraStateCallback 830a5c7a17Sopenharmony_ci g_onCreatedFlag = false; 840a5c7a17Sopenharmony_ci g_onCreateFailedFlag = false; 850a5c7a17Sopenharmony_ci g_onConfiguredFlag = false; 860a5c7a17Sopenharmony_ci g_onConfigureFailedFlag = false; 870a5c7a17Sopenharmony_ci g_onReleasedFlag = false; 880a5c7a17Sopenharmony_ci 890a5c7a17Sopenharmony_ci // FrameStateCallback 900a5c7a17Sopenharmony_ci g_onCaptureTriggerAbortedFlag = false; 910a5c7a17Sopenharmony_ci g_onCaptureTriggerCompletedFlag = false; 920a5c7a17Sopenharmony_ci g_onCaptureTriggerStartedFlag = false; 930a5c7a17Sopenharmony_ci g_onFrameFinishedFlag = false; 940a5c7a17Sopenharmony_ci g_onGetFrameConfigureType = false; 950a5c7a17Sopenharmony_ci g_onFrameErrorFlag = false; 960a5c7a17Sopenharmony_ci g_onFrameProgressedFlag = false; 970a5c7a17Sopenharmony_ci g_onFrameStartedFlag = false; 980a5c7a17Sopenharmony_ci g_onRecorderFlag = false; 990a5c7a17Sopenharmony_ci cout << "SetUp" << endl; 1000a5c7a17Sopenharmony_ci} 1010a5c7a17Sopenharmony_ci 1020a5c7a17Sopenharmony_ci// Tear down 1030a5c7a17Sopenharmony_civoid CameraLiteTest::TearDown(void) 1040a5c7a17Sopenharmony_ci{ 1050a5c7a17Sopenharmony_ci cout << "TearDown." << endl; 1060a5c7a17Sopenharmony_ci} 1070a5c7a17Sopenharmony_ci 1080a5c7a17Sopenharmony_ciint32_t SetupAudioSource(const Recorder &rec) 1090a5c7a17Sopenharmony_ci{ 1100a5c7a17Sopenharmony_ci Recorder *recorder = (Recorder *)&rec; 1110a5c7a17Sopenharmony_ci int32_t ret = SUCCESS; 1120a5c7a17Sopenharmony_ci int32_t audioSourceId = 0; 1130a5c7a17Sopenharmony_ci AudioCodecFormat audioFormat = AAC_LC; 1140a5c7a17Sopenharmony_ci AudioSourceType inputSource = AUDIO_MIC; 1150a5c7a17Sopenharmony_ci int32_t sampleRate = 48000; 1160a5c7a17Sopenharmony_ci int32_t channelCount = 1; 1170a5c7a17Sopenharmony_ci int32_t audioEncodingBitRate = sampleRate; 1180a5c7a17Sopenharmony_ci if ((ret = recorder->SetAudioSource(inputSource, audioSourceId)) != SUCCESS) { 1190a5c7a17Sopenharmony_ci cout << "SetAudioSource failed." << ret << endl; 1200a5c7a17Sopenharmony_ci return FAIL; 1210a5c7a17Sopenharmony_ci } 1220a5c7a17Sopenharmony_ci if ((ret = recorder->SetAudioEncoder(audioSourceId, audioFormat)) != SUCCESS) { 1230a5c7a17Sopenharmony_ci cout << "SetAudioEncoder failed." << ret << endl; 1240a5c7a17Sopenharmony_ci return FAIL; 1250a5c7a17Sopenharmony_ci } 1260a5c7a17Sopenharmony_ci if ((ret = recorder->SetAudioSampleRate(audioSourceId, sampleRate)) != SUCCESS) { 1270a5c7a17Sopenharmony_ci cout << "SetAudioSampleRate failed." << ret << endl; 1280a5c7a17Sopenharmony_ci return FAIL; 1290a5c7a17Sopenharmony_ci } 1300a5c7a17Sopenharmony_ci if ((ret = recorder->SetAudioChannels(audioSourceId, channelCount)) != SUCCESS) { 1310a5c7a17Sopenharmony_ci cout << "SetAudioChannels failed." << ret << endl; 1320a5c7a17Sopenharmony_ci return FAIL; 1330a5c7a17Sopenharmony_ci } 1340a5c7a17Sopenharmony_ci if ((ret = recorder->SetAudioEncodingBitRate(audioSourceId, audioEncodingBitRate)) != SUCCESS) { 1350a5c7a17Sopenharmony_ci cout << "SetAudioEncodingBitRate failed." << ret << endl; 1360a5c7a17Sopenharmony_ci return FAIL; 1370a5c7a17Sopenharmony_ci } 1380a5c7a17Sopenharmony_ci return SUCCESS; 1390a5c7a17Sopenharmony_ci} 1400a5c7a17Sopenharmony_ci 1410a5c7a17Sopenharmony_ci/* * 1420a5c7a17Sopenharmony_ci * create Recorder 1430a5c7a17Sopenharmony_ci */ 1440a5c7a17Sopenharmony_ciRecorder *SampleCreateRecorder() 1450a5c7a17Sopenharmony_ci{ 1460a5c7a17Sopenharmony_ci int ret = 0; 1470a5c7a17Sopenharmony_ci VideoSourceType source = VIDEO_SOURCE_SURFACE_ES; 1480a5c7a17Sopenharmony_ci int32_t frameRate = 30; 1490a5c7a17Sopenharmony_ci double fps = 30; 1500a5c7a17Sopenharmony_ci int32_t rate = 4096; 1510a5c7a17Sopenharmony_ci int32_t sourceId = 0; 1520a5c7a17Sopenharmony_ci int32_t width = 1920; 1530a5c7a17Sopenharmony_ci int32_t height = 1080; 1540a5c7a17Sopenharmony_ci VideoCodecFormat encoder = HEVC; 1550a5c7a17Sopenharmony_ci Recorder *recorder = new Recorder(); 1560a5c7a17Sopenharmony_ci if ((ret = recorder->SetVideoSource(source, sourceId)) != SUCCESS) { 1570a5c7a17Sopenharmony_ci cout << "SetVideoSource failed." << ret << endl; 1580a5c7a17Sopenharmony_ci delete recorder; 1590a5c7a17Sopenharmony_ci return nullptr; 1600a5c7a17Sopenharmony_ci } 1610a5c7a17Sopenharmony_ci if ((ret = recorder->SetVideoEncoder(sourceId, encoder)) != SUCCESS) { 1620a5c7a17Sopenharmony_ci cout << "SetVideoEncoder failed." << ret << endl; 1630a5c7a17Sopenharmony_ci delete recorder; 1640a5c7a17Sopenharmony_ci return nullptr; 1650a5c7a17Sopenharmony_ci } 1660a5c7a17Sopenharmony_ci if ((ret = recorder->SetVideoSize(sourceId, width, height)) != SUCCESS) { 1670a5c7a17Sopenharmony_ci cout << "SetVideoSize failed." << ret << endl; 1680a5c7a17Sopenharmony_ci delete recorder; 1690a5c7a17Sopenharmony_ci return nullptr; 1700a5c7a17Sopenharmony_ci } 1710a5c7a17Sopenharmony_ci if ((ret = recorder->SetVideoFrameRate(sourceId, frameRate)) != SUCCESS) { 1720a5c7a17Sopenharmony_ci cout << "SetVideoFrameRate failed." << ret << endl; 1730a5c7a17Sopenharmony_ci delete recorder; 1740a5c7a17Sopenharmony_ci return nullptr; 1750a5c7a17Sopenharmony_ci } 1760a5c7a17Sopenharmony_ci if ((ret = recorder->SetVideoEncodingBitRate(sourceId, rate)) != SUCCESS) { 1770a5c7a17Sopenharmony_ci cout << "SetVideoEncodingBitRate failed." << ret << endl; 1780a5c7a17Sopenharmony_ci delete recorder; 1790a5c7a17Sopenharmony_ci return nullptr; 1800a5c7a17Sopenharmony_ci } 1810a5c7a17Sopenharmony_ci if ((ret = recorder->SetCaptureRate(sourceId, fps)) != SUCCESS) { 1820a5c7a17Sopenharmony_ci cout << "SetCaptureRate failed." << ret << endl; 1830a5c7a17Sopenharmony_ci delete recorder; 1840a5c7a17Sopenharmony_ci return nullptr; 1850a5c7a17Sopenharmony_ci } 1860a5c7a17Sopenharmony_ci if ((ret = SetupAudioSource(*recorder) != SUCCESS)) { 1870a5c7a17Sopenharmony_ci delete recorder; 1880a5c7a17Sopenharmony_ci return nullptr; 1890a5c7a17Sopenharmony_ci } 1900a5c7a17Sopenharmony_ci return recorder; 1910a5c7a17Sopenharmony_ci} 1920a5c7a17Sopenharmony_ci 1930a5c7a17Sopenharmony_ci/* * 1940a5c7a17Sopenharmony_ci * Create Frame StateCallback 1950a5c7a17Sopenharmony_ci */ 1960a5c7a17Sopenharmony_ciclass SampleFrameStateCallback : public FrameStateCallback { 1970a5c7a17Sopenharmony_ci /* * 1980a5c7a17Sopenharmony_ci * check file exist 1990a5c7a17Sopenharmony_ci * 2000a5c7a17Sopenharmony_ci * @param filename the filename 2010a5c7a17Sopenharmony_ci * @return check result 2020a5c7a17Sopenharmony_ci */ 2030a5c7a17Sopenharmony_ci int32_t FileCheck(const string &filename) 2040a5c7a17Sopenharmony_ci { 2050a5c7a17Sopenharmony_ci fstream fileTmp; 2060a5c7a17Sopenharmony_ci fileTmp.open(filename); 2070a5c7a17Sopenharmony_ci if (!fileTmp) { 2080a5c7a17Sopenharmony_ci cout << "file is not exist!" << endl; 2090a5c7a17Sopenharmony_ci return RET_ERR; 2100a5c7a17Sopenharmony_ci } else { 2110a5c7a17Sopenharmony_ci cout << "file is exist!" << endl; 2120a5c7a17Sopenharmony_ci fileTmp.close(); 2130a5c7a17Sopenharmony_ci return RET_OK; 2140a5c7a17Sopenharmony_ci } 2150a5c7a17Sopenharmony_ci } 2160a5c7a17Sopenharmony_ci 2170a5c7a17Sopenharmony_ci /* * 2180a5c7a17Sopenharmony_ci * Save Capture 2190a5c7a17Sopenharmony_ci * 2200a5c7a17Sopenharmony_ci * @param testPath the file path 2210a5c7a17Sopenharmony_ci * @param buffer the buffer 2220a5c7a17Sopenharmony_ci * @param size the size 2230a5c7a17Sopenharmony_ci * @return save result 2240a5c7a17Sopenharmony_ci */ 2250a5c7a17Sopenharmony_ci int32_t SampleSaveCapture(string testPath, const char *buffer, uint32_t size) 2260a5c7a17Sopenharmony_ci { 2270a5c7a17Sopenharmony_ci cout << "Start saving picture" << endl; 2280a5c7a17Sopenharmony_ci string filePath = ""; 2290a5c7a17Sopenharmony_ci struct timeval tv = {0}; 2300a5c7a17Sopenharmony_ci 2310a5c7a17Sopenharmony_ci gettimeofday(&tv, NULL); 2320a5c7a17Sopenharmony_ci struct tm *ltm = localtime(&tv.tv_sec); 2330a5c7a17Sopenharmony_ci if (ltm != nullptr) { 2340a5c7a17Sopenharmony_ci ostringstream ss("Capture_"); 2350a5c7a17Sopenharmony_ci ss << "Capture" << ltm->tm_hour << "_" << ltm->tm_min << "_" << ltm->tm_sec << ".jpg"; 2360a5c7a17Sopenharmony_ci filePath = testPath + ss.str(); 2370a5c7a17Sopenharmony_ci ofstream pic(testPath + ss.str(), ofstream::out | ofstream::trunc); 2380a5c7a17Sopenharmony_ci cout << "write " << size << " bytes" << endl; 2390a5c7a17Sopenharmony_ci pic.write(buffer, size); 2400a5c7a17Sopenharmony_ci cout << "Saving picture end" << endl; 2410a5c7a17Sopenharmony_ci } 2420a5c7a17Sopenharmony_ci const char *filename = filePath.data(); 2430a5c7a17Sopenharmony_ci int32_t ret = FileCheck(string(filename)); 2440a5c7a17Sopenharmony_ci return ret; 2450a5c7a17Sopenharmony_ci } 2460a5c7a17Sopenharmony_ci 2470a5c7a17Sopenharmony_ci void OnFrameFinished(Camera &cam, FrameConfig &fc, FrameResult &res) override 2480a5c7a17Sopenharmony_ci { 2490a5c7a17Sopenharmony_ci g_onFrameStartedFlag = true; 2500a5c7a17Sopenharmony_ci g_onFrameProgressedFlag = true; 2510a5c7a17Sopenharmony_ci cout << "Receive frame complete inform." << endl; 2520a5c7a17Sopenharmony_ci if (fc.GetFrameConfigType() == FRAME_CONFIG_CAPTURE) { 2530a5c7a17Sopenharmony_ci g_onGetFrameConfigureType = true; 2540a5c7a17Sopenharmony_ci cout << "Capture frame received." << endl; 2550a5c7a17Sopenharmony_ci list<Surface *> surfaceList = fc.GetSurfaces(); 2560a5c7a17Sopenharmony_ci for (Surface *surface : surfaceList) { 2570a5c7a17Sopenharmony_ci SurfaceBuffer *buffer = surface->AcquireBuffer(); 2580a5c7a17Sopenharmony_ci if (buffer != nullptr) { 2590a5c7a17Sopenharmony_ci char *virtAddr = static_cast<char *>(buffer->GetVirAddr()); 2600a5c7a17Sopenharmony_ci if (virtAddr != nullptr) { 2610a5c7a17Sopenharmony_ci SampleSaveCapture(g_testPath, virtAddr, buffer->GetSize()); 2620a5c7a17Sopenharmony_ci } else { 2630a5c7a17Sopenharmony_ci g_onFrameErrorFlag = true; 2640a5c7a17Sopenharmony_ci } 2650a5c7a17Sopenharmony_ci surface->ReleaseBuffer(buffer); 2660a5c7a17Sopenharmony_ci } else { 2670a5c7a17Sopenharmony_ci g_onFrameErrorFlag = true; 2680a5c7a17Sopenharmony_ci } 2690a5c7a17Sopenharmony_ci delete surface; 2700a5c7a17Sopenharmony_ci } 2710a5c7a17Sopenharmony_ci delete &fc; 2720a5c7a17Sopenharmony_ci } else { 2730a5c7a17Sopenharmony_ci g_onFrameErrorFlag = true; 2740a5c7a17Sopenharmony_ci } 2750a5c7a17Sopenharmony_ci g_onFrameFinishedFlag = true; 2760a5c7a17Sopenharmony_ci } 2770a5c7a17Sopenharmony_ci}; 2780a5c7a17Sopenharmony_ci 2790a5c7a17Sopenharmony_ci/* * 2800a5c7a17Sopenharmony_ci * create CameraStateCallback 2810a5c7a17Sopenharmony_ci */ 2820a5c7a17Sopenharmony_ciclass SampleCameraStateMng : public CameraStateCallback { 2830a5c7a17Sopenharmony_cipublic: 2840a5c7a17Sopenharmony_ci SampleCameraStateMng() = delete; 2850a5c7a17Sopenharmony_ci 2860a5c7a17Sopenharmony_ci explicit SampleCameraStateMng(EventHandler &eventHdlr) : eventHandler_(eventHdlr) {} 2870a5c7a17Sopenharmony_ci 2880a5c7a17Sopenharmony_ci ~SampleCameraStateMng() 2890a5c7a17Sopenharmony_ci { 2900a5c7a17Sopenharmony_ci if (recorder_ != nullptr) { 2910a5c7a17Sopenharmony_ci recorder_->Release(); 2920a5c7a17Sopenharmony_ci } 2930a5c7a17Sopenharmony_ci if (cam_ != nullptr) { 2940a5c7a17Sopenharmony_ci cam_->Release(); 2950a5c7a17Sopenharmony_ci } 2960a5c7a17Sopenharmony_ci } 2970a5c7a17Sopenharmony_ci 2980a5c7a17Sopenharmony_ci void OnCreated(Camera &c) override 2990a5c7a17Sopenharmony_ci { 3000a5c7a17Sopenharmony_ci g_onCreatedFlag = true; 3010a5c7a17Sopenharmony_ci cout << "Sample recv OnCreate camera." << endl; 3020a5c7a17Sopenharmony_ci auto config = CameraConfig::CreateCameraConfig(); 3030a5c7a17Sopenharmony_ci config->SetFrameStateCallback(&fsCb, &eventHandler_); 3040a5c7a17Sopenharmony_ci c.Configure(*config); 3050a5c7a17Sopenharmony_ci g_onConfigureFlag = true; 3060a5c7a17Sopenharmony_ci cam_ = &c; 3070a5c7a17Sopenharmony_ci } 3080a5c7a17Sopenharmony_ci 3090a5c7a17Sopenharmony_ci void OnCreateFailed(const std::string cameraId, int32_t errorCode) override 3100a5c7a17Sopenharmony_ci { 3110a5c7a17Sopenharmony_ci g_onCreateFailedFlag = true; 3120a5c7a17Sopenharmony_ci cout << "Camera ID: " << cameraId << endl; 3130a5c7a17Sopenharmony_ci cout << "Sample recv OnCreateFailed camera.: " << errorCode << endl; 3140a5c7a17Sopenharmony_ci } 3150a5c7a17Sopenharmony_ci 3160a5c7a17Sopenharmony_ci void OnReleased(Camera &c) override 3170a5c7a17Sopenharmony_ci { 3180a5c7a17Sopenharmony_ci g_onReleasedFlag = true; 3190a5c7a17Sopenharmony_ci cout << "Sample recv OnReleased camera." << endl; 3200a5c7a17Sopenharmony_ci } 3210a5c7a17Sopenharmony_ci 3220a5c7a17Sopenharmony_ci void StartRecord() 3230a5c7a17Sopenharmony_ci { 3240a5c7a17Sopenharmony_ci int ret; 3250a5c7a17Sopenharmony_ci if (isRecording_) { 3260a5c7a17Sopenharmony_ci cout << "Camera is already recording." << endl; 3270a5c7a17Sopenharmony_ci return; 3280a5c7a17Sopenharmony_ci } 3290a5c7a17Sopenharmony_ci if (recorder_ != nullptr) { 3300a5c7a17Sopenharmony_ci cout << "Recorder is not null" << endl; 3310a5c7a17Sopenharmony_ci } 3320a5c7a17Sopenharmony_ci recorder_ = SampleCreateRecorder(); 3330a5c7a17Sopenharmony_ci if (recorder_ == nullptr) { 3340a5c7a17Sopenharmony_ci cout << "Recorder not available" << endl; 3350a5c7a17Sopenharmony_ci return; 3360a5c7a17Sopenharmony_ci } 3370a5c7a17Sopenharmony_ci string path = GetCurDir(); 3380a5c7a17Sopenharmony_ci ret = recorder_->SetOutputPath(path); 3390a5c7a17Sopenharmony_ci if (ret != SUCCESS) { 3400a5c7a17Sopenharmony_ci cout << "SetOutputPath failed :" << ret << std::endl; 3410a5c7a17Sopenharmony_ci return; 3420a5c7a17Sopenharmony_ci } 3430a5c7a17Sopenharmony_ci 3440a5c7a17Sopenharmony_ci ret = recorder_->Prepare(); 3450a5c7a17Sopenharmony_ci if (ret != SUCCESS) { 3460a5c7a17Sopenharmony_ci cout << "Prepare failed.=" << ret << endl; 3470a5c7a17Sopenharmony_ci return; 3480a5c7a17Sopenharmony_ci } 3490a5c7a17Sopenharmony_ci auto surface = recorder_->GetSurface(0); 3500a5c7a17Sopenharmony_ci surface->SetWidthAndHeight(WIDTH, HEIGHT); 3510a5c7a17Sopenharmony_ci surface->SetQueueSize(QUEUE_SIZE); 3520a5c7a17Sopenharmony_ci surface->SetSize(BUFFER_SIZE * BUFFER_SIZE); 3530a5c7a17Sopenharmony_ci FrameConfig *fc = new FrameConfig(FRAME_CONFIG_RECORD); 3540a5c7a17Sopenharmony_ci fc->AddSurface(*surface); 3550a5c7a17Sopenharmony_ci ret = recorder_->Start(); 3560a5c7a17Sopenharmony_ci if (ret != SUCCESS) { 3570a5c7a17Sopenharmony_ci cout << "recorder start failed. ret=" << ret << endl; 3580a5c7a17Sopenharmony_ci delete fc; 3590a5c7a17Sopenharmony_ci return; 3600a5c7a17Sopenharmony_ci } 3610a5c7a17Sopenharmony_ci static int cnt = 3; 3620a5c7a17Sopenharmony_ci while (cam_ == nullptr) { 3630a5c7a17Sopenharmony_ci if (cnt-- < 0) 3640a5c7a17Sopenharmony_ci break; 3650a5c7a17Sopenharmony_ci cout << "Wait camera created success" << endl; 3660a5c7a17Sopenharmony_ci sleep(1); 3670a5c7a17Sopenharmony_ci } 3680a5c7a17Sopenharmony_ci if (cam_ ==nullptr) { 3690a5c7a17Sopenharmony_ci cout << "StartRecord camera created failed is cam_ is nullptr" << endl; 3700a5c7a17Sopenharmony_ci return; 3710a5c7a17Sopenharmony_ci } 3720a5c7a17Sopenharmony_ci ret = cam_->TriggerLoopingCapture(*fc); 3730a5c7a17Sopenharmony_ci if (ret != 0) { 3740a5c7a17Sopenharmony_ci cout << "camera start recording failed. ret=" << ret << endl; 3750a5c7a17Sopenharmony_ci return; 3760a5c7a17Sopenharmony_ci } 3770a5c7a17Sopenharmony_ci isRecording_ = true; 3780a5c7a17Sopenharmony_ci g_onRecorderFlag = true; 3790a5c7a17Sopenharmony_ci cout << "camera start recording succeed." << endl; 3800a5c7a17Sopenharmony_ci } 3810a5c7a17Sopenharmony_ci 3820a5c7a17Sopenharmony_ci void StartPreview() 3830a5c7a17Sopenharmony_ci { 3840a5c7a17Sopenharmony_ci if (isPreviewing_) { 3850a5c7a17Sopenharmony_ci cout << "Camera is already previewing." << endl; 3860a5c7a17Sopenharmony_ci return; 3870a5c7a17Sopenharmony_ci } 3880a5c7a17Sopenharmony_ci FrameConfig *fc = new FrameConfig(FRAME_CONFIG_PREVIEW); 3890a5c7a17Sopenharmony_ci UISurfaceView *surface = new UISurfaceView(); 3900a5c7a17Sopenharmony_ci int width = 960; 3910a5c7a17Sopenharmony_ci int height = 480; 3920a5c7a17Sopenharmony_ci if (surface == nullptr) { 3930a5c7a17Sopenharmony_ci cout << "CreateSurface failed" << endl; 3940a5c7a17Sopenharmony_ci delete fc; 3950a5c7a17Sopenharmony_ci return; 3960a5c7a17Sopenharmony_ci } 3970a5c7a17Sopenharmony_ci surface->SetPosition(0, 0, width, height); 3980a5c7a17Sopenharmony_ci surface->GetSurface()->SetWidthAndHeight(WIDTH, HEIGHT); 3990a5c7a17Sopenharmony_ci fc->AddSurface(*(surface->GetSurface())); 4000a5c7a17Sopenharmony_ci static int cnt = 3; 4010a5c7a17Sopenharmony_ci while (cam_ == nullptr) { 4020a5c7a17Sopenharmony_ci if (cnt-- < 0) 4030a5c7a17Sopenharmony_ci break; 4040a5c7a17Sopenharmony_ci cout << "Wait camera created success" << endl; 4050a5c7a17Sopenharmony_ci sleep(1); 4060a5c7a17Sopenharmony_ci } 4070a5c7a17Sopenharmony_ci if (cam_ ==nullptr) { 4080a5c7a17Sopenharmony_ci cout << "StartPreview camera created failed is cam_ is nullptr" << endl; 4090a5c7a17Sopenharmony_ci return; 4100a5c7a17Sopenharmony_ci } 4110a5c7a17Sopenharmony_ci int32_t ret = cam_->TriggerLoopingCapture(*fc); 4120a5c7a17Sopenharmony_ci if (ret != 0) { 4130a5c7a17Sopenharmony_ci cout << "camera start preview failed. ret=" << ret << endl; 4140a5c7a17Sopenharmony_ci delete fc; 4150a5c7a17Sopenharmony_ci return; 4160a5c7a17Sopenharmony_ci } 4170a5c7a17Sopenharmony_ci delete surface; 4180a5c7a17Sopenharmony_ci isPreviewing_ = true; 4190a5c7a17Sopenharmony_ci g_onPreviewFlag = true; 4200a5c7a17Sopenharmony_ci cout << "camera start preview succeed." << endl; 4210a5c7a17Sopenharmony_ci } 4220a5c7a17Sopenharmony_ci 4230a5c7a17Sopenharmony_ci void Capture(void) 4240a5c7a17Sopenharmony_ci { 4250a5c7a17Sopenharmony_ci FrameConfig *fc = new FrameConfig(FRAME_CONFIG_CAPTURE); 4260a5c7a17Sopenharmony_ci Surface *surface = Surface::CreateSurface(); 4270a5c7a17Sopenharmony_ci if (surface == nullptr) { 4280a5c7a17Sopenharmony_ci cout << "CreateSurface failed" << endl; 4290a5c7a17Sopenharmony_ci delete fc; 4300a5c7a17Sopenharmony_ci return; 4310a5c7a17Sopenharmony_ci } 4320a5c7a17Sopenharmony_ci surface->SetWidthAndHeight(WIDTH, HEIGHT); 4330a5c7a17Sopenharmony_ci fc->AddSurface(*surface); 4340a5c7a17Sopenharmony_ci static int cnt = 3; 4350a5c7a17Sopenharmony_ci while (cam_ == nullptr) { 4360a5c7a17Sopenharmony_ci if (cnt-- < 0) 4370a5c7a17Sopenharmony_ci break; 4380a5c7a17Sopenharmony_ci cout << "Wait camera created success" << endl; 4390a5c7a17Sopenharmony_ci sleep(1); 4400a5c7a17Sopenharmony_ci } 4410a5c7a17Sopenharmony_ci if (cam_ ==nullptr) { 4420a5c7a17Sopenharmony_ci cout << "Capture camera created failed is cam_ is nullptr" << endl; 4430a5c7a17Sopenharmony_ci return; 4440a5c7a17Sopenharmony_ci } 4450a5c7a17Sopenharmony_ci g_onCaptureTriggerStartedFlag = true; 4460a5c7a17Sopenharmony_ci cam_->TriggerSingleCapture(*fc); 4470a5c7a17Sopenharmony_ci g_onCaptureTriggerCompletedFlag = true; 4480a5c7a17Sopenharmony_ci } 4490a5c7a17Sopenharmony_ci 4500a5c7a17Sopenharmony_ci void Stop() 4510a5c7a17Sopenharmony_ci { 4520a5c7a17Sopenharmony_ci if (recorder_ != nullptr) { 4530a5c7a17Sopenharmony_ci int32_t ret = recorder_->Stop(true); 4540a5c7a17Sopenharmony_ci if (ret != 0) { 4550a5c7a17Sopenharmony_ci cout << "recorder_ stop failed. ret=" << ret << endl; 4560a5c7a17Sopenharmony_ci } 4570a5c7a17Sopenharmony_ci } 4580a5c7a17Sopenharmony_ci 4590a5c7a17Sopenharmony_ci if (cam_ == nullptr) { 4600a5c7a17Sopenharmony_ci cout << "Camera is not ready." << endl; 4610a5c7a17Sopenharmony_ci return; 4620a5c7a17Sopenharmony_ci } 4630a5c7a17Sopenharmony_ci cam_->StopLoopingCapture(-1); 4640a5c7a17Sopenharmony_ci isPreviewing_ = false; 4650a5c7a17Sopenharmony_ci isRecording_ = false; 4660a5c7a17Sopenharmony_ci g_onRecorderFlag = false; 4670a5c7a17Sopenharmony_ci g_onPreviewFlag = false; 4680a5c7a17Sopenharmony_ci } 4690a5c7a17Sopenharmony_ci 4700a5c7a17Sopenharmony_ci bool isPreviewing_ = false; 4710a5c7a17Sopenharmony_ci bool isRecording_ = false; 4720a5c7a17Sopenharmony_ci EventHandler &eventHandler_; 4730a5c7a17Sopenharmony_ci Camera *cam_ = nullptr; 4740a5c7a17Sopenharmony_ci Recorder *recorder_ = nullptr; 4750a5c7a17Sopenharmony_ci SampleFrameStateCallback fsCb; 4760a5c7a17Sopenharmony_ci}; 4770a5c7a17Sopenharmony_ci 4780a5c7a17Sopenharmony_ci/* * 4790a5c7a17Sopenharmony_ci * create CameraStateCallback for state test 4800a5c7a17Sopenharmony_ci */ 4810a5c7a17Sopenharmony_ciclass SampleCameraStateCallback : public CameraStateCallback { 4820a5c7a17Sopenharmony_cipublic: 4830a5c7a17Sopenharmony_ci SampleCameraStateCallback() = delete; 4840a5c7a17Sopenharmony_ci 4850a5c7a17Sopenharmony_ci explicit SampleCameraStateCallback(EventHandler &eventHdlr) : eventHandler_(eventHdlr) {} 4860a5c7a17Sopenharmony_ci 4870a5c7a17Sopenharmony_ci ~SampleCameraStateCallback() 4880a5c7a17Sopenharmony_ci { 4890a5c7a17Sopenharmony_ci if (cam_ != nullptr) { 4900a5c7a17Sopenharmony_ci cam_->Release(); 4910a5c7a17Sopenharmony_ci } 4920a5c7a17Sopenharmony_ci } 4930a5c7a17Sopenharmony_ci 4940a5c7a17Sopenharmony_ci void OnCreated(Camera &c) override 4950a5c7a17Sopenharmony_ci { 4960a5c7a17Sopenharmony_ci g_onCreatedFlag = true; 4970a5c7a17Sopenharmony_ci cout << "camera Create success." << endl; 4980a5c7a17Sopenharmony_ci auto config = CameraConfig::CreateCameraConfig(); 4990a5c7a17Sopenharmony_ci config->SetFrameStateCallback(&fsCb, &eventHandler_); 5000a5c7a17Sopenharmony_ci c.Configure(*config); 5010a5c7a17Sopenharmony_ci cam_ = &c; 5020a5c7a17Sopenharmony_ci } 5030a5c7a17Sopenharmony_ci 5040a5c7a17Sopenharmony_ci void OnCreateFailed(const std::string cameraId, int32_t errorCode) override 5050a5c7a17Sopenharmony_ci { 5060a5c7a17Sopenharmony_ci g_onCreateFailedFlag = true; 5070a5c7a17Sopenharmony_ci cout << "Camera ID: " << cameraId << endl; 5080a5c7a17Sopenharmony_ci cout << "Camera Create Failed: " << errorCode << endl; 5090a5c7a17Sopenharmony_ci } 5100a5c7a17Sopenharmony_ci 5110a5c7a17Sopenharmony_ci void OnReleased(Camera &c) override 5120a5c7a17Sopenharmony_ci { 5130a5c7a17Sopenharmony_ci g_onReleasedFlag = true; 5140a5c7a17Sopenharmony_ci cout << "camera Releasedsuccess." << endl; 5150a5c7a17Sopenharmony_ci } 5160a5c7a17Sopenharmony_ci 5170a5c7a17Sopenharmony_ci void OnConfigured(Camera &c) override 5180a5c7a17Sopenharmony_ci { 5190a5c7a17Sopenharmony_ci g_onConfiguredFlag = true; 5200a5c7a17Sopenharmony_ci cout << "Camera Configured success." << endl; 5210a5c7a17Sopenharmony_ci } 5220a5c7a17Sopenharmony_ci 5230a5c7a17Sopenharmony_ci void OnConfigureFailed(const std::string cameraId, int32_t errorCode) override 5240a5c7a17Sopenharmony_ci { 5250a5c7a17Sopenharmony_ci g_onConfigureFailedFlag = true; 5260a5c7a17Sopenharmony_ci cout << "Camera ID: " << cameraId << endl; 5270a5c7a17Sopenharmony_ci cout << "Camera Configured failed: " << errorCode << endl; 5280a5c7a17Sopenharmony_ci } 5290a5c7a17Sopenharmony_ci 5300a5c7a17Sopenharmony_ci EventHandler &eventHandler_; 5310a5c7a17Sopenharmony_ci Camera *cam_ = nullptr; 5320a5c7a17Sopenharmony_ci SampleFrameStateCallback fsCb; 5330a5c7a17Sopenharmony_ci}; 5340a5c7a17Sopenharmony_ci 5350a5c7a17Sopenharmony_ci/* * 5360a5c7a17Sopenharmony_ci * Create camera device callback 5370a5c7a17Sopenharmony_ci */ 5380a5c7a17Sopenharmony_ciclass SampleCameraDeviceCallback : public CameraDeviceCallback { 5390a5c7a17Sopenharmony_cipublic: 5400a5c7a17Sopenharmony_ci SampleCameraDeviceCallback() {} 5410a5c7a17Sopenharmony_ci 5420a5c7a17Sopenharmony_ci ~SampleCameraDeviceCallback() {} 5430a5c7a17Sopenharmony_ci 5440a5c7a17Sopenharmony_ci void OnCameraStatus(std::string cameraId, int32_t status) override 5450a5c7a17Sopenharmony_ci { 5460a5c7a17Sopenharmony_ci cout << "SampleCameraDeviceCallback OnCameraStatus cam Id: \n" << cameraId << endl; 5470a5c7a17Sopenharmony_ci if (status == CAMERA_DEVICE_STATE_AVAILABLE) { 5480a5c7a17Sopenharmony_ci g_onCameraAvailableFlag = true; 5490a5c7a17Sopenharmony_ci cout << "SampleCameraDeviceCallback onCameraAvailable\n" << endl; 5500a5c7a17Sopenharmony_ci } else if (status == CAMERA_DEVICE_STATE_UNAVAILABLE) { 5510a5c7a17Sopenharmony_ci g_onCameraUnavailableFlag = true; 5520a5c7a17Sopenharmony_ci cout << "SampleCameraDeviceCallback onCameraUnavailable\n" << endl; 5530a5c7a17Sopenharmony_ci } 5540a5c7a17Sopenharmony_ci } 5550a5c7a17Sopenharmony_ci}; 5560a5c7a17Sopenharmony_ci 5570a5c7a17Sopenharmony_ci/* * 5580a5c7a17Sopenharmony_ci * Get camera Id 5590a5c7a17Sopenharmony_ci */ 5600a5c7a17Sopenharmony_cibool GetCameraId(CameraKit *cameraKit, list<string> &cameraList, string &cameraId) 5610a5c7a17Sopenharmony_ci{ 5620a5c7a17Sopenharmony_ci cameraKit = CameraKit::GetInstance(); 5630a5c7a17Sopenharmony_ci cameraList = cameraKit->GetCameraIds(); 5640a5c7a17Sopenharmony_ci for (auto &cam : cameraList) { 5650a5c7a17Sopenharmony_ci cout << "camera name:" << cam << endl; 5660a5c7a17Sopenharmony_ci const CameraAbility *ability = cameraKit->GetCameraAbility(cam); 5670a5c7a17Sopenharmony_ci g_onGetCameraAbilityFlag = true; 5680a5c7a17Sopenharmony_ci /* find camera which fits user's ability */ 5690a5c7a17Sopenharmony_ci list<CameraPicSize> sizeList = ability->GetSupportedSizes(0); 5700a5c7a17Sopenharmony_ci if (sizeList.size() != 0) { 5710a5c7a17Sopenharmony_ci g_onGetSupportedSizesFlag = true; 5720a5c7a17Sopenharmony_ci } 5730a5c7a17Sopenharmony_ci for (auto &pic : sizeList) { 5740a5c7a17Sopenharmony_ci cout << "Pic size: " << pic.width << "x" << pic.height << endl; 5750a5c7a17Sopenharmony_ci if (pic.width == WIDTH && pic.height == HEIGHT) { 5760a5c7a17Sopenharmony_ci /* 1920:width,1080:height */ 5770a5c7a17Sopenharmony_ci cameraId = cam; 5780a5c7a17Sopenharmony_ci break; 5790a5c7a17Sopenharmony_ci } 5800a5c7a17Sopenharmony_ci } 5810a5c7a17Sopenharmony_ci } 5820a5c7a17Sopenharmony_ci 5830a5c7a17Sopenharmony_ci if (cameraId.empty()) { 5840a5c7a17Sopenharmony_ci cout << "No available camera.(1080p wanted)" << endl; 5850a5c7a17Sopenharmony_ci return false; 5860a5c7a17Sopenharmony_ci } else 5870a5c7a17Sopenharmony_ci return true; 5880a5c7a17Sopenharmony_ci} 5890a5c7a17Sopenharmony_ci 5900a5c7a17Sopenharmony_ci/* start camera kit interface test */ 5910a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetInstance_001, Level1) 5920a5c7a17Sopenharmony_ci{ 5930a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 5940a5c7a17Sopenharmony_ci EXPECT_NE(cameraKit, nullptr); 5950a5c7a17Sopenharmony_ci} 5960a5c7a17Sopenharmony_ci 5970a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_GetInstance_001, Level1) 5980a5c7a17Sopenharmony_ci{ 5990a5c7a17Sopenharmony_ci CameraKit *cameraKit = nullptr; 6000a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 6010a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 6020a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 6030a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 6040a5c7a17Sopenharmony_ci int64_t totalTime = 0; 6050a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 6060a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 6070a5c7a17Sopenharmony_ci cameraKit = CameraKit::GetInstance(); 6080a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 6090a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 6100a5c7a17Sopenharmony_ci } 6110a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 6120a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 6130a5c7a17Sopenharmony_ci} 6140a5c7a17Sopenharmony_ci 6150a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetCameraIds_001, Level1) 6160a5c7a17Sopenharmony_ci{ 6170a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 6180a5c7a17Sopenharmony_ci list<string> cameraList = cameraKit->GetCameraIds(); 6190a5c7a17Sopenharmony_ci EXPECT_TRUE(cameraList.size() > 0); 6200a5c7a17Sopenharmony_ci} 6210a5c7a17Sopenharmony_ci 6220a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_GetCameraIds_001, Level1) 6230a5c7a17Sopenharmony_ci{ 6240a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 6250a5c7a17Sopenharmony_ci list<string> cameraList; 6260a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 6270a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 6280a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 6290a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 6300a5c7a17Sopenharmony_ci int64_t totalTime = 0; 6310a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 6320a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 6330a5c7a17Sopenharmony_ci cameraList = cameraKit->GetCameraIds(); 6340a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 6350a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 6360a5c7a17Sopenharmony_ci } 6370a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 6380a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 6390a5c7a17Sopenharmony_ci} 6400a5c7a17Sopenharmony_ci 6410a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetCameraAbility_001, Level1) 6420a5c7a17Sopenharmony_ci{ 6430a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 6440a5c7a17Sopenharmony_ci string cameraId = "0"; 6450a5c7a17Sopenharmony_ci const CameraAbility *ability = cameraKit->GetCameraAbility(cameraId); 6460a5c7a17Sopenharmony_ci EXPECT_NE(ability, nullptr); 6470a5c7a17Sopenharmony_ci} 6480a5c7a17Sopenharmony_ci 6490a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetCameraAbility_002, Level1) 6500a5c7a17Sopenharmony_ci{ 6510a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 6520a5c7a17Sopenharmony_ci string errorCameraId = "-1"; 6530a5c7a17Sopenharmony_ci const CameraAbility *ability = cameraKit->GetCameraAbility(errorCameraId); 6540a5c7a17Sopenharmony_ci EXPECT_EQ(ability, nullptr); 6550a5c7a17Sopenharmony_ci} 6560a5c7a17Sopenharmony_ci 6570a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetCameraAbility_003, Level1) 6580a5c7a17Sopenharmony_ci{ 6590a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 6600a5c7a17Sopenharmony_ci string errorCameraId = "main"; 6610a5c7a17Sopenharmony_ci const CameraAbility *ability = cameraKit->GetCameraAbility(errorCameraId); 6620a5c7a17Sopenharmony_ci EXPECT_EQ(ability, nullptr); 6630a5c7a17Sopenharmony_ci} 6640a5c7a17Sopenharmony_ci 6650a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_GetCameraAbility_001, Level1) 6660a5c7a17Sopenharmony_ci{ 6670a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 6680a5c7a17Sopenharmony_ci const CameraAbility *ability = nullptr; 6690a5c7a17Sopenharmony_ci string cameraId = "0"; 6700a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 6710a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 6720a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 6730a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 6740a5c7a17Sopenharmony_ci int64_t totalTime = 0; 6750a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 6760a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 6770a5c7a17Sopenharmony_ci ability = cameraKit->GetCameraAbility(cameraId); 6780a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 6790a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 6800a5c7a17Sopenharmony_ci } 6810a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 6820a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 6830a5c7a17Sopenharmony_ci} 6840a5c7a17Sopenharmony_ci 6850a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetCameraInfo_001, Level1) 6860a5c7a17Sopenharmony_ci{ 6870a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 6880a5c7a17Sopenharmony_ci list<string> cameraList = cameraKit->GetCameraIds(); 6890a5c7a17Sopenharmony_ci for (auto &cameraId : cameraList) { 6900a5c7a17Sopenharmony_ci const CameraInfo *cameraInfo = cameraKit->GetCameraInfo(cameraId); 6910a5c7a17Sopenharmony_ci EXPECT_NE(cameraInfo, nullptr); 6920a5c7a17Sopenharmony_ci } 6930a5c7a17Sopenharmony_ci} 6940a5c7a17Sopenharmony_ci 6950a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetCameraInfo_002, Level1) 6960a5c7a17Sopenharmony_ci{ 6970a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 6980a5c7a17Sopenharmony_ci string errorCameraId = "-1"; 6990a5c7a17Sopenharmony_ci const CameraInfo *cameraInfo = cameraKit->GetCameraInfo(errorCameraId); 7000a5c7a17Sopenharmony_ci EXPECT_EQ(cameraInfo, nullptr); 7010a5c7a17Sopenharmony_ci} 7020a5c7a17Sopenharmony_ci 7030a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetCameraInfo_003, Level1) 7040a5c7a17Sopenharmony_ci{ 7050a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 7060a5c7a17Sopenharmony_ci string errorCameraId = "main"; 7070a5c7a17Sopenharmony_ci const CameraInfo *cameraInfo = cameraKit->GetCameraInfo(errorCameraId); 7080a5c7a17Sopenharmony_ci EXPECT_EQ(cameraInfo, nullptr); 7090a5c7a17Sopenharmony_ci} 7100a5c7a17Sopenharmony_ci 7110a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_GetCameraInfo_001, Level1) 7120a5c7a17Sopenharmony_ci{ 7130a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 7140a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 7150a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 7160a5c7a17Sopenharmony_ci string cameraId = "0"; 7170a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 7180a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 7190a5c7a17Sopenharmony_ci int64_t totalTime = 0; 7200a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 7210a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 7220a5c7a17Sopenharmony_ci cameraKit->GetCameraInfo(cameraId); 7230a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 7240a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 7250a5c7a17Sopenharmony_ci } 7260a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 7270a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 7280a5c7a17Sopenharmony_ci} 7290a5c7a17Sopenharmony_ci 7300a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_RegisterCameraDeviceCallback_001, Level1) 7310a5c7a17Sopenharmony_ci{ 7320a5c7a17Sopenharmony_ci CameraKit *cameraKit = nullptr; 7330a5c7a17Sopenharmony_ci list<string> cameraList; 7340a5c7a17Sopenharmony_ci string cameraId; 7350a5c7a17Sopenharmony_ci EventHandler eventHdlr; 7360a5c7a17Sopenharmony_ci ASSERT_TRUE(GetCameraId(cameraKit, cameraList, cameraId)); 7370a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 7380a5c7a17Sopenharmony_ci SampleCameraDeviceCallback deviceCallback = SampleCameraDeviceCallback(); 7390a5c7a17Sopenharmony_ci g_onCameraAvailableFlag = false; 7400a5c7a17Sopenharmony_ci cameraKit->RegisterCameraDeviceCallback(deviceCallback, eventHdlr); 7410a5c7a17Sopenharmony_ci sleep(2); 7420a5c7a17Sopenharmony_ci EXPECT_TRUE(g_onCameraAvailableFlag); 7430a5c7a17Sopenharmony_ci} 7440a5c7a17Sopenharmony_ci 7450a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_RegisterCameraDeviceCallback_001, Level1) 7460a5c7a17Sopenharmony_ci{ 7470a5c7a17Sopenharmony_ci CameraKit *cameraKit = nullptr; 7480a5c7a17Sopenharmony_ci list<string> cameraList; 7490a5c7a17Sopenharmony_ci string cameraId; 7500a5c7a17Sopenharmony_ci EventHandler eventHdlr; 7510a5c7a17Sopenharmony_ci ASSERT_TRUE(GetCameraId(cameraKit, cameraList, cameraId)); 7520a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 7530a5c7a17Sopenharmony_ci SampleCameraDeviceCallback deviceCallback = SampleCameraDeviceCallback(); 7540a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 7550a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 7560a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 7570a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 7580a5c7a17Sopenharmony_ci int64_t totalTime = 0; 7590a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 7600a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 7610a5c7a17Sopenharmony_ci cameraKit->RegisterCameraDeviceCallback(deviceCallback, eventHdlr); 7620a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 7630a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 7640a5c7a17Sopenharmony_ci } 7650a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 7660a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 7670a5c7a17Sopenharmony_ci} 7680a5c7a17Sopenharmony_ci 7690a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_UnregisterCameraDeviceCallback_001, Level1) 7700a5c7a17Sopenharmony_ci{ 7710a5c7a17Sopenharmony_ci CameraKit *cameraKit = nullptr; 7720a5c7a17Sopenharmony_ci list<string> cameraList; 7730a5c7a17Sopenharmony_ci string cameraId; 7740a5c7a17Sopenharmony_ci EventHandler eventHdlr; 7750a5c7a17Sopenharmony_ci ASSERT_TRUE(GetCameraId(cameraKit, cameraList, cameraId)); 7760a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 7770a5c7a17Sopenharmony_ci SampleCameraDeviceCallback deviceCallback = SampleCameraDeviceCallback(); 7780a5c7a17Sopenharmony_ci g_onCameraAvailableFlag = false; 7790a5c7a17Sopenharmony_ci cameraKit->RegisterCameraDeviceCallback(deviceCallback, eventHdlr); 7800a5c7a17Sopenharmony_ci sleep(2); 7810a5c7a17Sopenharmony_ci g_onCameraAvailableFlag = false; 7820a5c7a17Sopenharmony_ci cameraKit->UnregisterCameraDeviceCallback(deviceCallback); 7830a5c7a17Sopenharmony_ci sleep(2); 7840a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCameraAvailableFlag, false); 7850a5c7a17Sopenharmony_ci} 7860a5c7a17Sopenharmony_ci 7870a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_UnregisterCameraDeviceCallback_001, Level1) 7880a5c7a17Sopenharmony_ci{ 7890a5c7a17Sopenharmony_ci CameraKit *cameraKit = nullptr; 7900a5c7a17Sopenharmony_ci list<string> cameraList; 7910a5c7a17Sopenharmony_ci string cameraId; 7920a5c7a17Sopenharmony_ci EventHandler eventHdlr; 7930a5c7a17Sopenharmony_ci ASSERT_TRUE(GetCameraId(cameraKit, cameraList, cameraId)); 7940a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 7950a5c7a17Sopenharmony_ci SampleCameraDeviceCallback deviceCallback = SampleCameraDeviceCallback(); 7960a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 7970a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 7980a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 7990a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 8000a5c7a17Sopenharmony_ci int64_t totalTime = 0; 8010a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 8020a5c7a17Sopenharmony_ci cameraKit->RegisterCameraDeviceCallback(deviceCallback, eventHdlr); 8030a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 8040a5c7a17Sopenharmony_ci cameraKit->UnregisterCameraDeviceCallback(deviceCallback); 8050a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 8060a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 8070a5c7a17Sopenharmony_ci } 8080a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 8090a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 8100a5c7a17Sopenharmony_ci} 8110a5c7a17Sopenharmony_ci 8120a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_CreateCamera_001, Level1) 8130a5c7a17Sopenharmony_ci{ 8140a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 8150a5c7a17Sopenharmony_ci string cameraId = "0"; 8160a5c7a17Sopenharmony_ci EventHandler eventHdlr; 8170a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 8180a5c7a17Sopenharmony_ci g_onCreatedFlag = false; 8190a5c7a17Sopenharmony_ci g_onCreateFailedFlag = false; 8200a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 8210a5c7a17Sopenharmony_ci sleep(2); 8220a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCreatedFlag, true); 8230a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCreateFailedFlag, false); 8240a5c7a17Sopenharmony_ci} 8250a5c7a17Sopenharmony_ci 8260a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_CreateCamera_002, Level1) 8270a5c7a17Sopenharmony_ci{ 8280a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 8290a5c7a17Sopenharmony_ci string cameraId = "main"; 8300a5c7a17Sopenharmony_ci EventHandler eventHdlr; 8310a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 8320a5c7a17Sopenharmony_ci g_onCreatedFlag = false; 8330a5c7a17Sopenharmony_ci g_onCreateFailedFlag = false; 8340a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 8350a5c7a17Sopenharmony_ci sleep(2); 8360a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCreatedFlag, false); 8370a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCreateFailedFlag, true); 8380a5c7a17Sopenharmony_ci} 8390a5c7a17Sopenharmony_ci 8400a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_CreateCamera_003, Level1) 8410a5c7a17Sopenharmony_ci{ 8420a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 8430a5c7a17Sopenharmony_ci list<string> cameraList; 8440a5c7a17Sopenharmony_ci string cameraId = "0"; 8450a5c7a17Sopenharmony_ci EventHandler eventHdlr; 8460a5c7a17Sopenharmony_ci g_onCreatedFlag = false; 8470a5c7a17Sopenharmony_ci g_onCreateFailedFlag = false; 8480a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 8490a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 8500a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 8510a5c7a17Sopenharmony_ci sleep(2); 8520a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCreatedFlag, true); 8530a5c7a17Sopenharmony_ci} 8540a5c7a17Sopenharmony_ci 8550a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_CreateCamera_004, Level1) 8560a5c7a17Sopenharmony_ci{ 8570a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 8580a5c7a17Sopenharmony_ci string cameraId = "0"; 8590a5c7a17Sopenharmony_ci EventHandler eventHdlr; 8600a5c7a17Sopenharmony_ci g_onCreatedFlag = false; 8610a5c7a17Sopenharmony_ci g_onCreateFailedFlag = false; 8620a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 8630a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 8640a5c7a17Sopenharmony_ci sleep(2); 8650a5c7a17Sopenharmony_ci cameraId = "-1"; 8660a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 8670a5c7a17Sopenharmony_ci sleep(2); 8680a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCreatedFlag, true); 8690a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCreateFailedFlag, true); 8700a5c7a17Sopenharmony_ci} 8710a5c7a17Sopenharmony_ci 8720a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_CreateCamera_001, Level1) 8730a5c7a17Sopenharmony_ci{ 8740a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 8750a5c7a17Sopenharmony_ci string cameraId = "0"; 8760a5c7a17Sopenharmony_ci EventHandler eventHdlr; 8770a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 8780a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 8790a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 8800a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 8810a5c7a17Sopenharmony_ci int64_t totalTime = 0; 8820a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 8830a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 8840a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 8850a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 8860a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 8870a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 8880a5c7a17Sopenharmony_ci } 8890a5c7a17Sopenharmony_ci int64_t expectTime = 500000000; 8900a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 8910a5c7a17Sopenharmony_ci} /* end camera kit interface test */ 8920a5c7a17Sopenharmony_ci 8930a5c7a17Sopenharmony_ci/* start camera ability interface test */ 8940a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetSupportedSizes_001, Level1) 8950a5c7a17Sopenharmony_ci{ 8960a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 8970a5c7a17Sopenharmony_ci list<string> cameraList = cameraKit->GetCameraIds(); 8980a5c7a17Sopenharmony_ci for (auto &cameraId : cameraList) { 8990a5c7a17Sopenharmony_ci const CameraAbility *ability = cameraKit->GetCameraAbility(cameraId); 9000a5c7a17Sopenharmony_ci list<CameraPicSize> cameraPicSizes = ability->GetSupportedSizes(0); 9010a5c7a17Sopenharmony_ci EXPECT_TRUE(cameraPicSizes.size() > 0); 9020a5c7a17Sopenharmony_ci } 9030a5c7a17Sopenharmony_ci} 9040a5c7a17Sopenharmony_ci 9050a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_GetSupportedSizes_001, Level1) 9060a5c7a17Sopenharmony_ci{ 9070a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 9080a5c7a17Sopenharmony_ci string cameraId = "0"; 9090a5c7a17Sopenharmony_ci const CameraAbility *ability = cameraKit->GetCameraAbility(cameraId); 9100a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 9110a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 9120a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 9130a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 9140a5c7a17Sopenharmony_ci int64_t totalTime = 0; 9150a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 9160a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 9170a5c7a17Sopenharmony_ci ability->GetSupportedSizes(0); 9180a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 9190a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 9200a5c7a17Sopenharmony_ci } 9210a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 9220a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 9230a5c7a17Sopenharmony_ci} 9240a5c7a17Sopenharmony_ci 9250a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetSupportedAfModes_001, Level1) 9260a5c7a17Sopenharmony_ci{ 9270a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 9280a5c7a17Sopenharmony_ci list<string> cameraList = cameraKit->GetCameraIds(); 9290a5c7a17Sopenharmony_ci for (auto &cameraId : cameraList) { 9300a5c7a17Sopenharmony_ci const CameraAbility *ability = cameraKit->GetCameraAbility(cameraId); 9310a5c7a17Sopenharmony_ci list<int32_t> afModes = ability->GetSupportedAfModes(); 9320a5c7a17Sopenharmony_ci EXPECT_TRUE(afModes.size() >= 0); 9330a5c7a17Sopenharmony_ci } 9340a5c7a17Sopenharmony_ci} 9350a5c7a17Sopenharmony_ci 9360a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_GetSupportedAfModes_001, Level1) 9370a5c7a17Sopenharmony_ci{ 9380a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 9390a5c7a17Sopenharmony_ci string cameraId = "0"; 9400a5c7a17Sopenharmony_ci const CameraAbility *ability = cameraKit->GetCameraAbility(cameraId); 9410a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 9420a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 9430a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 9440a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 9450a5c7a17Sopenharmony_ci int64_t totalTime = 0; 9460a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 9470a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 9480a5c7a17Sopenharmony_ci ability->GetSupportedAfModes(); 9490a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 9500a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 9510a5c7a17Sopenharmony_ci } 9520a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 9530a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 9540a5c7a17Sopenharmony_ci} 9550a5c7a17Sopenharmony_ci 9560a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetSupportedAeModes_001, Level1) 9570a5c7a17Sopenharmony_ci{ 9580a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 9590a5c7a17Sopenharmony_ci list<string> cameraList = cameraKit->GetCameraIds(); 9600a5c7a17Sopenharmony_ci for (auto &cameraId : cameraList) { 9610a5c7a17Sopenharmony_ci const CameraAbility *ability = cameraKit->GetCameraAbility(cameraId); 9620a5c7a17Sopenharmony_ci list<int32_t> aeModes = ability->GetSupportedAeModes(); 9630a5c7a17Sopenharmony_ci EXPECT_TRUE(aeModes.size() >= 0); 9640a5c7a17Sopenharmony_ci } 9650a5c7a17Sopenharmony_ci} 9660a5c7a17Sopenharmony_ci 9670a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_GetSupportedAeModes_001, Level1) 9680a5c7a17Sopenharmony_ci{ 9690a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 9700a5c7a17Sopenharmony_ci string cameraId = "0"; 9710a5c7a17Sopenharmony_ci const CameraAbility *ability = cameraKit->GetCameraAbility(cameraId); 9720a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 9730a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 9740a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 9750a5c7a17Sopenharmony_ci int64_t totalTime = 0; 9760a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 9770a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 9780a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 9790a5c7a17Sopenharmony_ci ability->GetSupportedAeModes(); 9800a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 9810a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 9820a5c7a17Sopenharmony_ci } 9830a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 9840a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 9850a5c7a17Sopenharmony_ci} /* end camera ability interface test*/ 9860a5c7a17Sopenharmony_ci 9870a5c7a17Sopenharmony_ci/* start camera state callback test */ 9880a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_OnCreate_001, Level1) 9890a5c7a17Sopenharmony_ci{ 9900a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 9910a5c7a17Sopenharmony_ci string cameraId = "0"; 9920a5c7a17Sopenharmony_ci EventHandler eventHdlr; 9930a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 9940a5c7a17Sopenharmony_ci g_onCreatedFlag = false; 9950a5c7a17Sopenharmony_ci g_onCreateFailedFlag = false; 9960a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 9970a5c7a17Sopenharmony_ci sleep(2); 9980a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCreatedFlag, true); 9990a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCreateFailedFlag, false); 10000a5c7a17Sopenharmony_ci} 10010a5c7a17Sopenharmony_ci 10020a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_OnCreate_002, Level1) 10030a5c7a17Sopenharmony_ci{ 10040a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 10050a5c7a17Sopenharmony_ci string cameraId = "0"; 10060a5c7a17Sopenharmony_ci EventHandler eventHdlr; 10070a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 10080a5c7a17Sopenharmony_ci g_onCreatedFlag = false; 10090a5c7a17Sopenharmony_ci g_onCreateFailedFlag = false; 10100a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 10110a5c7a17Sopenharmony_ci sleep(2); 10120a5c7a17Sopenharmony_ci camStateMng.Stop(); 10130a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCreatedFlag, true); 10140a5c7a17Sopenharmony_ci EXPECT_NE(g_onCreateFailedFlag, true); 10150a5c7a17Sopenharmony_ci} 10160a5c7a17Sopenharmony_ci 10170a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_OnCreateFailed_001, Level1) 10180a5c7a17Sopenharmony_ci{ 10190a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 10200a5c7a17Sopenharmony_ci string cameraId = "-1"; 10210a5c7a17Sopenharmony_ci EventHandler eventHdlr; 10220a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 10230a5c7a17Sopenharmony_ci g_onCreateFailedFlag = false; 10240a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 10250a5c7a17Sopenharmony_ci sleep(2); 10260a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCreateFailedFlag, true); 10270a5c7a17Sopenharmony_ci} 10280a5c7a17Sopenharmony_ci 10290a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_OnCreateFailed_002, Level1) 10300a5c7a17Sopenharmony_ci{ 10310a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 10320a5c7a17Sopenharmony_ci string cameraId = "main"; 10330a5c7a17Sopenharmony_ci EventHandler eventHdlr; 10340a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 10350a5c7a17Sopenharmony_ci g_onCreateFailedFlag = false; 10360a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 10370a5c7a17Sopenharmony_ci sleep(2); 10380a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCreateFailedFlag, true); 10390a5c7a17Sopenharmony_ci} /* end camera state callback test */ 10400a5c7a17Sopenharmony_ci 10410a5c7a17Sopenharmony_ci/* start frame config & frame state call back interface test */ 10420a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_FrameConfig_001, Level1) 10430a5c7a17Sopenharmony_ci{ 10440a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW); 10450a5c7a17Sopenharmony_ci EXPECT_NE(frameConfig.get(), nullptr); 10460a5c7a17Sopenharmony_ci} 10470a5c7a17Sopenharmony_ci 10480a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_FrameConfig_002, Level1) 10490a5c7a17Sopenharmony_ci{ 10500a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_RECORD); 10510a5c7a17Sopenharmony_ci EXPECT_NE(frameConfig.get(), nullptr); 10520a5c7a17Sopenharmony_ci} 10530a5c7a17Sopenharmony_ci 10540a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_FrameConfig_003, Level1) 10550a5c7a17Sopenharmony_ci{ 10560a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CAPTURE); 10570a5c7a17Sopenharmony_ci EXPECT_NE(frameConfig.get(), nullptr); 10580a5c7a17Sopenharmony_ci} 10590a5c7a17Sopenharmony_ci 10600a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_FrameConfig_004, Level1) 10610a5c7a17Sopenharmony_ci{ 10620a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CALLBACK); 10630a5c7a17Sopenharmony_ci EXPECT_NE(frameConfig.get(), nullptr); 10640a5c7a17Sopenharmony_ci} 10650a5c7a17Sopenharmony_ci 10660a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_Frameconfig_001, Level1) 10670a5c7a17Sopenharmony_ci{ 10680a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = nullptr; 10690a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 10700a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 10710a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 10720a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 10730a5c7a17Sopenharmony_ci int64_t totalTime = 0; 10740a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 10750a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 10760a5c7a17Sopenharmony_ci frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW); 10770a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 10780a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 10790a5c7a17Sopenharmony_ci } 10800a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 10810a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 10820a5c7a17Sopenharmony_ci} 10830a5c7a17Sopenharmony_ci 10840a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_Frameconfig_002, Level1) 10850a5c7a17Sopenharmony_ci{ 10860a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = nullptr; 10870a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 10880a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 10890a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 10900a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 10910a5c7a17Sopenharmony_ci int64_t totalTime = 0; 10920a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 10930a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 10940a5c7a17Sopenharmony_ci frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_RECORD); 10950a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 10960a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 10970a5c7a17Sopenharmony_ci } 10980a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 10990a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 11000a5c7a17Sopenharmony_ci} 11010a5c7a17Sopenharmony_ci 11020a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_Frameconfig_003, Level1) 11030a5c7a17Sopenharmony_ci{ 11040a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = nullptr; 11050a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 11060a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 11070a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 11080a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 11090a5c7a17Sopenharmony_ci int64_t totalTime = 0; 11100a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 11110a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 11120a5c7a17Sopenharmony_ci frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CAPTURE); 11130a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 11140a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 11150a5c7a17Sopenharmony_ci } 11160a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 11170a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 11180a5c7a17Sopenharmony_ci} 11190a5c7a17Sopenharmony_ci 11200a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_Frameconfig_004, Level1) 11210a5c7a17Sopenharmony_ci{ 11220a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = nullptr; 11230a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 11240a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 11250a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 11260a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 11270a5c7a17Sopenharmony_ci int64_t totalTime = 0; 11280a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 11290a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 11300a5c7a17Sopenharmony_ci frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CALLBACK); 11310a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 11320a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 11330a5c7a17Sopenharmony_ci } 11340a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 11350a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 11360a5c7a17Sopenharmony_ci} 11370a5c7a17Sopenharmony_ci 11380a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetFrameConfigureType_001, Level1) 11390a5c7a17Sopenharmony_ci{ 11400a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 11410a5c7a17Sopenharmony_ci string cameraId = "0"; 11420a5c7a17Sopenharmony_ci EventHandler eventHdlr; 11430a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 11440a5c7a17Sopenharmony_ci g_onGetFrameConfigureType = false; 11450a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 11460a5c7a17Sopenharmony_ci sleep(2); 11470a5c7a17Sopenharmony_ci camStateMng.Capture(); 11480a5c7a17Sopenharmony_ci sleep(2); 11490a5c7a17Sopenharmony_ci EXPECT_EQ(g_onGetFrameConfigureType, true); 11500a5c7a17Sopenharmony_ci} 11510a5c7a17Sopenharmony_ci 11520a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetFrameConfigureType_002, Level1) 11530a5c7a17Sopenharmony_ci{ 11540a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 11550a5c7a17Sopenharmony_ci string cameraId = "0"; 11560a5c7a17Sopenharmony_ci EventHandler eventHdlr; 11570a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 11580a5c7a17Sopenharmony_ci g_onGetFrameConfigureType = false; 11590a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 11600a5c7a17Sopenharmony_ci sleep(2); 11610a5c7a17Sopenharmony_ci camStateMng.Capture(); 11620a5c7a17Sopenharmony_ci sleep(2); 11630a5c7a17Sopenharmony_ci camStateMng.Stop(); 11640a5c7a17Sopenharmony_ci EXPECT_EQ(g_onGetFrameConfigureType, true); 11650a5c7a17Sopenharmony_ci} 11660a5c7a17Sopenharmony_ci 11670a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetFrameConfigureType_003, Level1) 11680a5c7a17Sopenharmony_ci{ 11690a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 11700a5c7a17Sopenharmony_ci string cameraId = "0"; 11710a5c7a17Sopenharmony_ci EventHandler eventHdlr; 11720a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 11730a5c7a17Sopenharmony_ci g_onGetFrameConfigureType = false; 11740a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 11750a5c7a17Sopenharmony_ci sleep(2); 11760a5c7a17Sopenharmony_ci camStateMng.StartPreview(); 11770a5c7a17Sopenharmony_ci sleep(2); 11780a5c7a17Sopenharmony_ci camStateMng.Stop(); 11790a5c7a17Sopenharmony_ci EXPECT_EQ(g_onGetFrameConfigureType, false); 11800a5c7a17Sopenharmony_ci} 11810a5c7a17Sopenharmony_ci 11820a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetFrameConfigureType_004, Level1) 11830a5c7a17Sopenharmony_ci{ 11840a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 11850a5c7a17Sopenharmony_ci string cameraId = "0"; 11860a5c7a17Sopenharmony_ci EventHandler eventHdlr; 11870a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 11880a5c7a17Sopenharmony_ci g_onGetFrameConfigureType = false; 11890a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 11900a5c7a17Sopenharmony_ci sleep(2); 11910a5c7a17Sopenharmony_ci camStateMng.Capture(); 11920a5c7a17Sopenharmony_ci sleep(2); 11930a5c7a17Sopenharmony_ci camStateMng.StartPreview(); 11940a5c7a17Sopenharmony_ci sleep(2); 11950a5c7a17Sopenharmony_ci camStateMng.Stop(); 11960a5c7a17Sopenharmony_ci EXPECT_EQ(g_onGetFrameConfigureType, true); 11970a5c7a17Sopenharmony_ci} 11980a5c7a17Sopenharmony_ci 11990a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetFrameConfigureType_005, Level1) 12000a5c7a17Sopenharmony_ci{ 12010a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 12020a5c7a17Sopenharmony_ci string cameraId = "0"; 12030a5c7a17Sopenharmony_ci EventHandler eventHdlr; 12040a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 12050a5c7a17Sopenharmony_ci g_onGetFrameConfigureType = false; 12060a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 12070a5c7a17Sopenharmony_ci sleep(2); 12080a5c7a17Sopenharmony_ci camStateMng.StartPreview(); 12090a5c7a17Sopenharmony_ci sleep(2); 12100a5c7a17Sopenharmony_ci camStateMng.Capture(); 12110a5c7a17Sopenharmony_ci sleep(2); 12120a5c7a17Sopenharmony_ci camStateMng.Stop(); 12130a5c7a17Sopenharmony_ci EXPECT_EQ(g_onGetFrameConfigureType, true); 12140a5c7a17Sopenharmony_ci} 12150a5c7a17Sopenharmony_ci 12160a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_SetVendorParameter_001, Level1) 12170a5c7a17Sopenharmony_ci{ 12180a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW); 12190a5c7a17Sopenharmony_ci uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN]; 12200a5c7a17Sopenharmony_ci privateTag[4] = 5; 12210a5c7a17Sopenharmony_ci frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN); 12220a5c7a17Sopenharmony_ci uint8_t *privateTagTemp = new uint8_t[10]; 12230a5c7a17Sopenharmony_ci frameConfig->GetVendorParameter(privateTagTemp, 10); 12240a5c7a17Sopenharmony_ci EXPECT_TRUE(privateTagTemp[4] == 5); 12250a5c7a17Sopenharmony_ci delete[] privateTag; 12260a5c7a17Sopenharmony_ci delete[] privateTagTemp; 12270a5c7a17Sopenharmony_ci} 12280a5c7a17Sopenharmony_ci 12290a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_SetVendorParameter_002, Level1) 12300a5c7a17Sopenharmony_ci{ 12310a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CAPTURE); 12320a5c7a17Sopenharmony_ci uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN]; 12330a5c7a17Sopenharmony_ci privateTag[10] = 10; 12340a5c7a17Sopenharmony_ci frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN); 12350a5c7a17Sopenharmony_ci uint8_t *privateTagTemp = new uint8_t[PRIVATE_TAG_LEN]; 12360a5c7a17Sopenharmony_ci frameConfig->GetVendorParameter(privateTagTemp, PRIVATE_TAG_LEN); 12370a5c7a17Sopenharmony_ci EXPECT_TRUE(privateTagTemp[10] == 10); 12380a5c7a17Sopenharmony_ci delete[] privateTag; 12390a5c7a17Sopenharmony_ci delete[] privateTagTemp; 12400a5c7a17Sopenharmony_ci} 12410a5c7a17Sopenharmony_ci 12420a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_SetVendorParameter_003, Level1) 12430a5c7a17Sopenharmony_ci{ 12440a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_RECORD); 12450a5c7a17Sopenharmony_ci uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN]; 12460a5c7a17Sopenharmony_ci privateTag[0] = 1; 12470a5c7a17Sopenharmony_ci frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN); 12480a5c7a17Sopenharmony_ci uint8_t *privateTagTemp = new uint8_t[PRIVATE_TAG_LEN]; 12490a5c7a17Sopenharmony_ci frameConfig->GetVendorParameter(privateTagTemp, PRIVATE_TAG_LEN); 12500a5c7a17Sopenharmony_ci EXPECT_TRUE(privateTagTemp[0] == 1); 12510a5c7a17Sopenharmony_ci delete[] privateTag; 12520a5c7a17Sopenharmony_ci delete[] privateTagTemp; 12530a5c7a17Sopenharmony_ci} 12540a5c7a17Sopenharmony_ci 12550a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_SetVendorParameter_004, Level1) 12560a5c7a17Sopenharmony_ci{ 12570a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CALLBACK); 12580a5c7a17Sopenharmony_ci uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN]; 12590a5c7a17Sopenharmony_ci privateTag[31] = 31; 12600a5c7a17Sopenharmony_ci frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN); 12610a5c7a17Sopenharmony_ci uint8_t *privateTagTemp = new uint8_t[PRIVATE_TAG_LEN]; 12620a5c7a17Sopenharmony_ci frameConfig->GetVendorParameter(privateTagTemp, PRIVATE_TAG_LEN); 12630a5c7a17Sopenharmony_ci EXPECT_TRUE(privateTagTemp[31] == 31); 12640a5c7a17Sopenharmony_ci delete[] privateTag; 12650a5c7a17Sopenharmony_ci delete[] privateTagTemp; 12660a5c7a17Sopenharmony_ci} 12670a5c7a17Sopenharmony_ci 12680a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_SetVendorParameter_001, Level1) 12690a5c7a17Sopenharmony_ci{ 12700a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW); 12710a5c7a17Sopenharmony_ci uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN]; 12720a5c7a17Sopenharmony_ci privateTag[1] = 1; 12730a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 12740a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 12750a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 12760a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 12770a5c7a17Sopenharmony_ci int64_t totalTime = 0; 12780a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 12790a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 12800a5c7a17Sopenharmony_ci frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN); 12810a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 12820a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 12830a5c7a17Sopenharmony_ci } 12840a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 12850a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 12860a5c7a17Sopenharmony_ci delete[] privateTag; 12870a5c7a17Sopenharmony_ci} 12880a5c7a17Sopenharmony_ci 12890a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_SetVendorParameter_002, Level1) 12900a5c7a17Sopenharmony_ci{ 12910a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CAPTURE); 12920a5c7a17Sopenharmony_ci uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN]; 12930a5c7a17Sopenharmony_ci privateTag[2] = 2; 12940a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 12950a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 12960a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 12970a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 12980a5c7a17Sopenharmony_ci int64_t totalTime = 0; 12990a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 13000a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 13010a5c7a17Sopenharmony_ci frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN); 13020a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 13030a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 13040a5c7a17Sopenharmony_ci } 13050a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 13060a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 13070a5c7a17Sopenharmony_ci delete[] privateTag; 13080a5c7a17Sopenharmony_ci} 13090a5c7a17Sopenharmony_ci 13100a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_SetVendorParameter_003, Level1) 13110a5c7a17Sopenharmony_ci{ 13120a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_RECORD); 13130a5c7a17Sopenharmony_ci uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN]; 13140a5c7a17Sopenharmony_ci privateTag[3] = 3; 13150a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 13160a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 13170a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 13180a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 13190a5c7a17Sopenharmony_ci int64_t totalTime = 0; 13200a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 13210a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 13220a5c7a17Sopenharmony_ci frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN); 13230a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 13240a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 13250a5c7a17Sopenharmony_ci } 13260a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 13270a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 13280a5c7a17Sopenharmony_ci delete[] privateTag; 13290a5c7a17Sopenharmony_ci} 13300a5c7a17Sopenharmony_ci 13310a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_SetVendorParameter_004, Level1) 13320a5c7a17Sopenharmony_ci{ 13330a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CALLBACK); 13340a5c7a17Sopenharmony_ci uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN]; 13350a5c7a17Sopenharmony_ci privateTag[4] = 4; 13360a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 13370a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 13380a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 13390a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 13400a5c7a17Sopenharmony_ci int64_t totalTime = 0; 13410a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 13420a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 13430a5c7a17Sopenharmony_ci frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN); 13440a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 13450a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 13460a5c7a17Sopenharmony_ci } 13470a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 13480a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 13490a5c7a17Sopenharmony_ci delete[] privateTag; 13500a5c7a17Sopenharmony_ci} 13510a5c7a17Sopenharmony_ci 13520a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_GetVendorParameter_001, Level1) 13530a5c7a17Sopenharmony_ci{ 13540a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW); 13550a5c7a17Sopenharmony_ci uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN]; 13560a5c7a17Sopenharmony_ci privateTag[1] = 1; 13570a5c7a17Sopenharmony_ci frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN); 13580a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 13590a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 13600a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 13610a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 13620a5c7a17Sopenharmony_ci int64_t totalTime = 0; 13630a5c7a17Sopenharmony_ci uint8_t *privateTagTemp = new uint8_t[PRIVATE_TAG_LEN]; 13640a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 13650a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 13660a5c7a17Sopenharmony_ci frameConfig->GetVendorParameter(privateTagTemp, PRIVATE_TAG_LEN); 13670a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 13680a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 13690a5c7a17Sopenharmony_ci } 13700a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 13710a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 13720a5c7a17Sopenharmony_ci delete[] privateTag; 13730a5c7a17Sopenharmony_ci delete[] privateTagTemp; 13740a5c7a17Sopenharmony_ci} 13750a5c7a17Sopenharmony_ci 13760a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_GetVendorParameter_002, Level1) 13770a5c7a17Sopenharmony_ci{ 13780a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CAPTURE); 13790a5c7a17Sopenharmony_ci uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN]; 13800a5c7a17Sopenharmony_ci privateTag[2] = 2; 13810a5c7a17Sopenharmony_ci frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN); 13820a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 13830a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 13840a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 13850a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 13860a5c7a17Sopenharmony_ci int64_t totalTime = 0; 13870a5c7a17Sopenharmony_ci uint8_t *privateTagTemp = new uint8_t[PRIVATE_TAG_LEN]; 13880a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 13890a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 13900a5c7a17Sopenharmony_ci frameConfig->GetVendorParameter(privateTagTemp, PRIVATE_TAG_LEN); 13910a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 13920a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 13930a5c7a17Sopenharmony_ci } 13940a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 13950a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 13960a5c7a17Sopenharmony_ci delete[] privateTag; 13970a5c7a17Sopenharmony_ci delete[] privateTagTemp; 13980a5c7a17Sopenharmony_ci} 13990a5c7a17Sopenharmony_ci 14000a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_GetVendorParameter_003, Level1) 14010a5c7a17Sopenharmony_ci{ 14020a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_RECORD); 14030a5c7a17Sopenharmony_ci uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN]; 14040a5c7a17Sopenharmony_ci privateTag[3] = 3; 14050a5c7a17Sopenharmony_ci frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN); 14060a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 14070a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 14080a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 14090a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 14100a5c7a17Sopenharmony_ci int64_t totalTime = 0; 14110a5c7a17Sopenharmony_ci uint8_t *privateTagTemp = new uint8_t[PRIVATE_TAG_LEN]; 14120a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 14130a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 14140a5c7a17Sopenharmony_ci frameConfig->GetVendorParameter(privateTagTemp, PRIVATE_TAG_LEN); 14150a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 14160a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 14170a5c7a17Sopenharmony_ci } 14180a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 14190a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 14200a5c7a17Sopenharmony_ci delete[] privateTag; 14210a5c7a17Sopenharmony_ci delete[] privateTagTemp; 14220a5c7a17Sopenharmony_ci} 14230a5c7a17Sopenharmony_ci 14240a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_GetVendorParameter_004, Level1) 14250a5c7a17Sopenharmony_ci{ 14260a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CALLBACK); 14270a5c7a17Sopenharmony_ci uint8_t *privateTag = new uint8_t[PRIVATE_TAG_LEN]; 14280a5c7a17Sopenharmony_ci privateTag[4] = 4; 14290a5c7a17Sopenharmony_ci frameConfig->SetVendorParameter(privateTag, PRIVATE_TAG_LEN); 14300a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 14310a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 14320a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 14330a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 14340a5c7a17Sopenharmony_ci int64_t totalTime = 0; 14350a5c7a17Sopenharmony_ci uint8_t *privateTagTemp = new uint8_t[PRIVATE_TAG_LEN]; 14360a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 14370a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 14380a5c7a17Sopenharmony_ci frameConfig->GetVendorParameter(privateTagTemp, PRIVATE_TAG_LEN); 14390a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 14400a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 14410a5c7a17Sopenharmony_ci } 14420a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 14430a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 14440a5c7a17Sopenharmony_ci delete[] privateTag; 14450a5c7a17Sopenharmony_ci delete[] privateTagTemp; 14460a5c7a17Sopenharmony_ci} 14470a5c7a17Sopenharmony_ci 14480a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetSurface_001, Level1) 14490a5c7a17Sopenharmony_ci{ 14500a5c7a17Sopenharmony_ci CameraKit *cameraKit = nullptr; 14510a5c7a17Sopenharmony_ci list<string> cameraList; 14520a5c7a17Sopenharmony_ci string cameraId; 14530a5c7a17Sopenharmony_ci EventHandler eventHdlr; 14540a5c7a17Sopenharmony_ci ASSERT_TRUE(GetCameraId(cameraKit, cameraList, cameraId)); 14550a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 14560a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 14570a5c7a17Sopenharmony_ci sleep(2); 14580a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CAPTURE); 14590a5c7a17Sopenharmony_ci Surface *surface = Surface::CreateSurface(); 14600a5c7a17Sopenharmony_ci surface->SetWidthAndHeight(1920, 1080); 14610a5c7a17Sopenharmony_ci EXPECT_EQ(1920, surface->GetWidth()); 14620a5c7a17Sopenharmony_ci EXPECT_EQ(1080, surface->GetHeight()); 14630a5c7a17Sopenharmony_ci delete surface; 14640a5c7a17Sopenharmony_ci} 14650a5c7a17Sopenharmony_ci 14660a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetSurface_002, Level1) 14670a5c7a17Sopenharmony_ci{ 14680a5c7a17Sopenharmony_ci CameraKit *cameraKit = nullptr; 14690a5c7a17Sopenharmony_ci list<string> cameraList; 14700a5c7a17Sopenharmony_ci string cameraId; 14710a5c7a17Sopenharmony_ci EventHandler eventHdlr; 14720a5c7a17Sopenharmony_ci ASSERT_TRUE(GetCameraId(cameraKit, cameraList, cameraId)); 14730a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 14740a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 14750a5c7a17Sopenharmony_ci sleep(2); 14760a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CAPTURE); 14770a5c7a17Sopenharmony_ci Surface *surface = Surface::CreateSurface(); 14780a5c7a17Sopenharmony_ci surface->SetWidthAndHeight(480, 360); 14790a5c7a17Sopenharmony_ci EXPECT_EQ(480, surface->GetWidth()); 14800a5c7a17Sopenharmony_ci EXPECT_EQ(360, surface->GetHeight()); 14810a5c7a17Sopenharmony_ci} 14820a5c7a17Sopenharmony_ci 14830a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetSurface_003, Level1) 14840a5c7a17Sopenharmony_ci{ 14850a5c7a17Sopenharmony_ci CameraKit *cameraKit = nullptr; 14860a5c7a17Sopenharmony_ci list<string> cameraList; 14870a5c7a17Sopenharmony_ci string cameraId; 14880a5c7a17Sopenharmony_ci EventHandler eventHdlr; 14890a5c7a17Sopenharmony_ci ASSERT_TRUE(GetCameraId(cameraKit, cameraList, cameraId)); 14900a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 14910a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 14920a5c7a17Sopenharmony_ci sleep(2); 14930a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CAPTURE); 14940a5c7a17Sopenharmony_ci Surface *surface = Surface::CreateSurface(); 14950a5c7a17Sopenharmony_ci surface->SetWidthAndHeight(1920, 1080); 14960a5c7a17Sopenharmony_ci frameConfig->AddSurface(*surface); 14970a5c7a17Sopenharmony_ci EXPECT_FALSE(frameConfig->GetSurfaces().size() == 0); 14980a5c7a17Sopenharmony_ci} 14990a5c7a17Sopenharmony_ci 15000a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetSurface_004, Level1) 15010a5c7a17Sopenharmony_ci{ 15020a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW); 15030a5c7a17Sopenharmony_ci Surface *surface = Surface::CreateSurface(); 15040a5c7a17Sopenharmony_ci frameConfig->AddSurface(*surface); 15050a5c7a17Sopenharmony_ci frameConfig->RemoveSurface(*surface); 15060a5c7a17Sopenharmony_ci list<Surface *> list = frameConfig->GetSurfaces(); 15070a5c7a17Sopenharmony_ci EXPECT_TRUE(list.size() == 0); 15080a5c7a17Sopenharmony_ci} 15090a5c7a17Sopenharmony_ci 15100a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetSurface_005, Level1) 15110a5c7a17Sopenharmony_ci{ 15120a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_RECORD); 15130a5c7a17Sopenharmony_ci Surface *surface = Surface::CreateSurface(); 15140a5c7a17Sopenharmony_ci frameConfig->AddSurface(*surface); 15150a5c7a17Sopenharmony_ci list<Surface *> list = frameConfig->GetSurfaces(); 15160a5c7a17Sopenharmony_ci EXPECT_TRUE(list.size() == 1); 15170a5c7a17Sopenharmony_ci} 15180a5c7a17Sopenharmony_ci 15190a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetSurface_006, Level1) 15200a5c7a17Sopenharmony_ci{ 15210a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CALLBACK); 15220a5c7a17Sopenharmony_ci Surface *surface = Surface::CreateSurface(); 15230a5c7a17Sopenharmony_ci frameConfig->AddSurface(*surface); 15240a5c7a17Sopenharmony_ci list<Surface *> list = frameConfig->GetSurfaces(); 15250a5c7a17Sopenharmony_ci EXPECT_TRUE(list.size() == 1); 15260a5c7a17Sopenharmony_ci} 15270a5c7a17Sopenharmony_ci 15280a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_GetSurfaces_001, Level1) 15290a5c7a17Sopenharmony_ci{ 15300a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW); 15310a5c7a17Sopenharmony_ci Surface *surface = Surface::CreateSurface(); 15320a5c7a17Sopenharmony_ci frameConfig->AddSurface(*surface); 15330a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 15340a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 15350a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 15360a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 15370a5c7a17Sopenharmony_ci int64_t totalTime = 0; 15380a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 15390a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 15400a5c7a17Sopenharmony_ci frameConfig->GetSurfaces(); 15410a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 15420a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 15430a5c7a17Sopenharmony_ci } 15440a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 15450a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 15460a5c7a17Sopenharmony_ci} 15470a5c7a17Sopenharmony_ci 15480a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_GetSurfaces_002, Level1) 15490a5c7a17Sopenharmony_ci{ 15500a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CAPTURE); 15510a5c7a17Sopenharmony_ci Surface *surface = Surface::CreateSurface(); 15520a5c7a17Sopenharmony_ci frameConfig->AddSurface(*surface); 15530a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 15540a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 15550a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 15560a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 15570a5c7a17Sopenharmony_ci int64_t totalTime = 0; 15580a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 15590a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 15600a5c7a17Sopenharmony_ci frameConfig->GetSurfaces(); 15610a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 15620a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 15630a5c7a17Sopenharmony_ci } 15640a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 15650a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 15660a5c7a17Sopenharmony_ci delete surface; 15670a5c7a17Sopenharmony_ci} 15680a5c7a17Sopenharmony_ci 15690a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_GetSurfaces_003, Level1) 15700a5c7a17Sopenharmony_ci{ 15710a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_RECORD); 15720a5c7a17Sopenharmony_ci Surface *surface = Surface::CreateSurface(); 15730a5c7a17Sopenharmony_ci frameConfig->AddSurface(*surface); 15740a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 15750a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 15760a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 15770a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 15780a5c7a17Sopenharmony_ci int64_t totalTime = 0; 15790a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 15800a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 15810a5c7a17Sopenharmony_ci frameConfig->GetSurfaces(); 15820a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 15830a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 15840a5c7a17Sopenharmony_ci } 15850a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 15860a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 15870a5c7a17Sopenharmony_ci} 15880a5c7a17Sopenharmony_ci 15890a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_GetSurfaces_004, Level1) 15900a5c7a17Sopenharmony_ci{ 15910a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_CALLBACK); 15920a5c7a17Sopenharmony_ci Surface *surface = Surface::CreateSurface(); 15930a5c7a17Sopenharmony_ci frameConfig->AddSurface(*surface); 15940a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 15950a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 15960a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 15970a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 15980a5c7a17Sopenharmony_ci int64_t totalTime = 0; 15990a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 16000a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 16010a5c7a17Sopenharmony_ci frameConfig->GetSurfaces(); 16020a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 16030a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 16040a5c7a17Sopenharmony_ci } 16050a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 16060a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 16070a5c7a17Sopenharmony_ci} 16080a5c7a17Sopenharmony_ci 16090a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_OnFrameProgressed_001, Level1) 16100a5c7a17Sopenharmony_ci{ 16110a5c7a17Sopenharmony_ci CameraKit *cameraKit = nullptr; 16120a5c7a17Sopenharmony_ci list<string> cameraList; 16130a5c7a17Sopenharmony_ci string cameraId; 16140a5c7a17Sopenharmony_ci EventHandler eventHdlr; 16150a5c7a17Sopenharmony_ci ASSERT_TRUE(GetCameraId(cameraKit, cameraList, cameraId)); 16160a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 16170a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 16180a5c7a17Sopenharmony_ci sleep(2); 16190a5c7a17Sopenharmony_ci camStateMng.Capture(); 16200a5c7a17Sopenharmony_ci sleep(2); 16210a5c7a17Sopenharmony_ci EXPECT_EQ(g_onFrameStartedFlag, true); 16220a5c7a17Sopenharmony_ci EXPECT_EQ(g_onFrameProgressedFlag, true); 16230a5c7a17Sopenharmony_ci} 16240a5c7a17Sopenharmony_ci 16250a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_OnFrameCompletedFlag_001, Level1) 16260a5c7a17Sopenharmony_ci{ 16270a5c7a17Sopenharmony_ci CameraKit *cameraKit = nullptr; 16280a5c7a17Sopenharmony_ci list<string> cameraList; 16290a5c7a17Sopenharmony_ci string cameraId; 16300a5c7a17Sopenharmony_ci EventHandler eventHdlr; 16310a5c7a17Sopenharmony_ci ASSERT_TRUE(GetCameraId(cameraKit, cameraList, cameraId)); 16320a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 16330a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 16340a5c7a17Sopenharmony_ci sleep(2); 16350a5c7a17Sopenharmony_ci camStateMng.Capture(); 16360a5c7a17Sopenharmony_ci sleep(2); 16370a5c7a17Sopenharmony_ci EXPECT_EQ(g_onFrameFinishedFlag, true); 16380a5c7a17Sopenharmony_ci} 16390a5c7a17Sopenharmony_ci 16400a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_OnFrameErrorFlag_001, Level1) 16410a5c7a17Sopenharmony_ci{ 16420a5c7a17Sopenharmony_ci CameraKit *cameraKit = nullptr; 16430a5c7a17Sopenharmony_ci list<string> cameraList; 16440a5c7a17Sopenharmony_ci string cameraId; 16450a5c7a17Sopenharmony_ci EventHandler eventHdlr; 16460a5c7a17Sopenharmony_ci ASSERT_TRUE(GetCameraId(cameraKit, cameraList, cameraId)); 16470a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 16480a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 16490a5c7a17Sopenharmony_ci sleep(2); 16500a5c7a17Sopenharmony_ci camStateMng.Capture(); 16510a5c7a17Sopenharmony_ci sleep(2); 16520a5c7a17Sopenharmony_ci EXPECT_NE(g_onFrameErrorFlag, true); 16530a5c7a17Sopenharmony_ci} 16540a5c7a17Sopenharmony_ci 16550a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_AddSurface_001, Level1) 16560a5c7a17Sopenharmony_ci{ 16570a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW); 16580a5c7a17Sopenharmony_ci Surface *surface = Surface::CreateSurface(); 16590a5c7a17Sopenharmony_ci frameConfig->AddSurface(*surface); 16600a5c7a17Sopenharmony_ci list<Surface *> list = frameConfig->GetSurfaces(); 16610a5c7a17Sopenharmony_ci EXPECT_TRUE(list.size() == 1); 16620a5c7a17Sopenharmony_ci} 16630a5c7a17Sopenharmony_ci 16640a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_AddSurface_002, Level1) 16650a5c7a17Sopenharmony_ci{ 16660a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW); 16670a5c7a17Sopenharmony_ci Surface *surface = Surface::CreateSurface(); 16680a5c7a17Sopenharmony_ci frameConfig->AddSurface(*surface); 16690a5c7a17Sopenharmony_ci frameConfig->AddSurface(*surface); 16700a5c7a17Sopenharmony_ci list<Surface *> list = frameConfig->GetSurfaces(); 16710a5c7a17Sopenharmony_ci EXPECT_TRUE(list.size() == 1); 16720a5c7a17Sopenharmony_ci} 16730a5c7a17Sopenharmony_ci 16740a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_AddSurface_003, Level1) 16750a5c7a17Sopenharmony_ci{ 16760a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW); 16770a5c7a17Sopenharmony_ci Surface *surface = Surface::CreateSurface(); 16780a5c7a17Sopenharmony_ci frameConfig->AddSurface(*surface); 16790a5c7a17Sopenharmony_ci frameConfig->AddSurface(*surface); 16800a5c7a17Sopenharmony_ci frameConfig->AddSurface(*surface); 16810a5c7a17Sopenharmony_ci list<Surface *> list = frameConfig->GetSurfaces(); 16820a5c7a17Sopenharmony_ci EXPECT_TRUE(list.size() == 1); 16830a5c7a17Sopenharmony_ci} 16840a5c7a17Sopenharmony_ci 16850a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_AddSurface_001, Level1) 16860a5c7a17Sopenharmony_ci{ 16870a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW); 16880a5c7a17Sopenharmony_ci Surface *surface = Surface::CreateSurface(); 16890a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 16900a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 16910a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 16920a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 16930a5c7a17Sopenharmony_ci int64_t totalTime = 0; 16940a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 16950a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 16960a5c7a17Sopenharmony_ci frameConfig->AddSurface(*surface); 16970a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 16980a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 16990a5c7a17Sopenharmony_ci } 17000a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 17010a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 17020a5c7a17Sopenharmony_ci} 17030a5c7a17Sopenharmony_ci 17040a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_RemoveSurface_001, Level1) 17050a5c7a17Sopenharmony_ci{ 17060a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW); 17070a5c7a17Sopenharmony_ci Surface *surface = Surface::CreateSurface(); 17080a5c7a17Sopenharmony_ci frameConfig->AddSurface(*surface); 17090a5c7a17Sopenharmony_ci frameConfig->RemoveSurface(*surface); 17100a5c7a17Sopenharmony_ci list<Surface *> list = frameConfig->GetSurfaces(); 17110a5c7a17Sopenharmony_ci EXPECT_TRUE(list.size() == 0); 17120a5c7a17Sopenharmony_ci} 17130a5c7a17Sopenharmony_ci 17140a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_RemoveSurface_002, Level1) 17150a5c7a17Sopenharmony_ci{ 17160a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW); 17170a5c7a17Sopenharmony_ci Surface *surface = Surface::CreateSurface(); 17180a5c7a17Sopenharmony_ci Surface *surface1 = Surface::CreateSurface(); 17190a5c7a17Sopenharmony_ci frameConfig->AddSurface(*surface); 17200a5c7a17Sopenharmony_ci frameConfig->AddSurface(*surface1); 17210a5c7a17Sopenharmony_ci frameConfig->RemoveSurface(*surface1); 17220a5c7a17Sopenharmony_ci list<Surface *> list = frameConfig->GetSurfaces(); 17230a5c7a17Sopenharmony_ci EXPECT_TRUE(list.size() == 1); 17240a5c7a17Sopenharmony_ci} 17250a5c7a17Sopenharmony_ci 17260a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_RemoveSurface_003, Level1) 17270a5c7a17Sopenharmony_ci{ 17280a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW); 17290a5c7a17Sopenharmony_ci Surface *surface = Surface::CreateSurface(); 17300a5c7a17Sopenharmony_ci Surface *surface1 = Surface::CreateSurface(); 17310a5c7a17Sopenharmony_ci frameConfig->AddSurface(*surface); 17320a5c7a17Sopenharmony_ci frameConfig->AddSurface(*surface1); 17330a5c7a17Sopenharmony_ci frameConfig->RemoveSurface(*surface); 17340a5c7a17Sopenharmony_ci frameConfig->RemoveSurface(*surface1); 17350a5c7a17Sopenharmony_ci list<Surface *> list = frameConfig->GetSurfaces(); 17360a5c7a17Sopenharmony_ci EXPECT_TRUE(list.size() == 0); 17370a5c7a17Sopenharmony_ci} 17380a5c7a17Sopenharmony_ci 17390a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_RemoveSurface_001, Level1) 17400a5c7a17Sopenharmony_ci{ 17410a5c7a17Sopenharmony_ci shared_ptr<FrameConfig> frameConfig = make_shared<FrameConfig>(FRAME_CONFIG_PREVIEW); 17420a5c7a17Sopenharmony_ci Surface *surface = Surface::CreateSurface(); 17430a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 17440a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 17450a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 17460a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 17470a5c7a17Sopenharmony_ci int64_t totalTime = 0; 17480a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 17490a5c7a17Sopenharmony_ci frameConfig->AddSurface(*surface); 17500a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 17510a5c7a17Sopenharmony_ci frameConfig->RemoveSurface(*surface); 17520a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 17530a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 17540a5c7a17Sopenharmony_ci } 17550a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 17560a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 17570a5c7a17Sopenharmony_ci} 17580a5c7a17Sopenharmony_ci 17590a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_Capture_001, Level1) 17600a5c7a17Sopenharmony_ci{ 17610a5c7a17Sopenharmony_ci CameraKit *cameraKit = nullptr; 17620a5c7a17Sopenharmony_ci list<string> cameraList; 17630a5c7a17Sopenharmony_ci string cameraId; 17640a5c7a17Sopenharmony_ci EventHandler eventHdlr; 17650a5c7a17Sopenharmony_ci ASSERT_TRUE(GetCameraId(cameraKit, cameraList, cameraId)); 17660a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 17670a5c7a17Sopenharmony_ci g_onCaptureTriggerStartedFlag = false; 17680a5c7a17Sopenharmony_ci g_onCaptureTriggerCompletedFlag = false; 17690a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 17700a5c7a17Sopenharmony_ci sleep(2); 17710a5c7a17Sopenharmony_ci camStateMng.Capture(); 17720a5c7a17Sopenharmony_ci sleep(2); 17730a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCaptureTriggerStartedFlag, true); 17740a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCaptureTriggerCompletedFlag, true); 17750a5c7a17Sopenharmony_ci} 17760a5c7a17Sopenharmony_ci 17770a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_Capture_002, Level1) 17780a5c7a17Sopenharmony_ci{ 17790a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 17800a5c7a17Sopenharmony_ci string cameraId = "0"; 17810a5c7a17Sopenharmony_ci EventHandler eventHdlr; 17820a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 17830a5c7a17Sopenharmony_ci g_onCaptureTriggerStartedFlag = false; 17840a5c7a17Sopenharmony_ci g_onCaptureTriggerCompletedFlag = false; 17850a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 17860a5c7a17Sopenharmony_ci sleep(2); 17870a5c7a17Sopenharmony_ci camStateMng.StartPreview(); 17880a5c7a17Sopenharmony_ci sleep(2); 17890a5c7a17Sopenharmony_ci camStateMng.Capture(); 17900a5c7a17Sopenharmony_ci sleep(2); 17910a5c7a17Sopenharmony_ci camStateMng.Stop(); 17920a5c7a17Sopenharmony_ci sleep(2); 17930a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCaptureTriggerStartedFlag, true); 17940a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCaptureTriggerCompletedFlag, true); 17950a5c7a17Sopenharmony_ci} 17960a5c7a17Sopenharmony_ci 17970a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_Capture_003, Level1) 17980a5c7a17Sopenharmony_ci{ 17990a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 18000a5c7a17Sopenharmony_ci string cameraId = "0"; 18010a5c7a17Sopenharmony_ci EventHandler eventHdlr; 18020a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 18030a5c7a17Sopenharmony_ci g_onCaptureTriggerStartedFlag = false; 18040a5c7a17Sopenharmony_ci g_onCaptureTriggerCompletedFlag = false; 18050a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 18060a5c7a17Sopenharmony_ci sleep(2); 18070a5c7a17Sopenharmony_ci camStateMng.StartPreview(); 18080a5c7a17Sopenharmony_ci sleep(2); 18090a5c7a17Sopenharmony_ci camStateMng.Stop(); 18100a5c7a17Sopenharmony_ci sleep(2); 18110a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCaptureTriggerStartedFlag, false); 18120a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCaptureTriggerCompletedFlag, false); 18130a5c7a17Sopenharmony_ci} 18140a5c7a17Sopenharmony_ci 18150a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_Capture_004, Level1) 18160a5c7a17Sopenharmony_ci{ 18170a5c7a17Sopenharmony_ci CameraKit *cameraKit = nullptr; 18180a5c7a17Sopenharmony_ci list<string> cameraList; 18190a5c7a17Sopenharmony_ci string cameraId; 18200a5c7a17Sopenharmony_ci EventHandler eventHdlr; 18210a5c7a17Sopenharmony_ci ASSERT_TRUE(GetCameraId(cameraKit, cameraList, cameraId)); 18220a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 18230a5c7a17Sopenharmony_ci g_onCaptureTriggerStartedFlag = false; 18240a5c7a17Sopenharmony_ci g_onCaptureTriggerCompletedFlag = false; 18250a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 18260a5c7a17Sopenharmony_ci sleep(2); 18270a5c7a17Sopenharmony_ci camStateMng.Capture(); 18280a5c7a17Sopenharmony_ci sleep(2); 18290a5c7a17Sopenharmony_ci camStateMng.Stop(); 18300a5c7a17Sopenharmony_ci sleep(2); 18310a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCaptureTriggerStartedFlag, true); 18320a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCaptureTriggerCompletedFlag, true); 18330a5c7a17Sopenharmony_ci} 18340a5c7a17Sopenharmony_ci 18350a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_Capture_005, Level1) 18360a5c7a17Sopenharmony_ci{ 18370a5c7a17Sopenharmony_ci CameraKit *cameraKit = nullptr; 18380a5c7a17Sopenharmony_ci list<string> cameraList; 18390a5c7a17Sopenharmony_ci string cameraId; 18400a5c7a17Sopenharmony_ci EventHandler eventHdlr; 18410a5c7a17Sopenharmony_ci ASSERT_TRUE(GetCameraId(cameraKit, cameraList, cameraId)); 18420a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 18430a5c7a17Sopenharmony_ci g_onCaptureTriggerStartedFlag = false; 18440a5c7a17Sopenharmony_ci g_onCaptureTriggerCompletedFlag = false; 18450a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 18460a5c7a17Sopenharmony_ci sleep(2); 18470a5c7a17Sopenharmony_ci camStateMng.Capture(); 18480a5c7a17Sopenharmony_ci sleep(2); 18490a5c7a17Sopenharmony_ci camStateMng.Capture(); 18500a5c7a17Sopenharmony_ci sleep(2); 18510a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCaptureTriggerStartedFlag, true); 18520a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCaptureTriggerCompletedFlag, true); 18530a5c7a17Sopenharmony_ci} 18540a5c7a17Sopenharmony_ci 18550a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_Capture_006, Level1) 18560a5c7a17Sopenharmony_ci{ 18570a5c7a17Sopenharmony_ci CameraKit *cameraKit = nullptr; 18580a5c7a17Sopenharmony_ci list<string> cameraList; 18590a5c7a17Sopenharmony_ci string cameraId; 18600a5c7a17Sopenharmony_ci EventHandler eventHdlr; 18610a5c7a17Sopenharmony_ci ASSERT_TRUE(GetCameraId(cameraKit, cameraList, cameraId)); 18620a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 18630a5c7a17Sopenharmony_ci g_onCaptureTriggerStartedFlag = false; 18640a5c7a17Sopenharmony_ci g_onCaptureTriggerCompletedFlag = false; 18650a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 18660a5c7a17Sopenharmony_ci sleep(2); 18670a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 18680a5c7a17Sopenharmony_ci sleep(2); 18690a5c7a17Sopenharmony_ci camStateMng.Capture(); 18700a5c7a17Sopenharmony_ci sleep(2); 18710a5c7a17Sopenharmony_ci EXPECT_TRUE(g_onCaptureTriggerStartedFlag); 18720a5c7a17Sopenharmony_ci EXPECT_TRUE(g_onCaptureTriggerCompletedFlag); 18730a5c7a17Sopenharmony_ci} 18740a5c7a17Sopenharmony_ci 18750a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_Capture_007, Level1) 18760a5c7a17Sopenharmony_ci{ 18770a5c7a17Sopenharmony_ci CameraKit *cameraKit = nullptr; 18780a5c7a17Sopenharmony_ci list<string> cameraList; 18790a5c7a17Sopenharmony_ci string cameraId; 18800a5c7a17Sopenharmony_ci EventHandler eventHdlr; 18810a5c7a17Sopenharmony_ci ASSERT_TRUE(GetCameraId(cameraKit, cameraList, cameraId)); 18820a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 18830a5c7a17Sopenharmony_ci g_onCaptureTriggerStartedFlag = false; 18840a5c7a17Sopenharmony_ci g_onCaptureTriggerCompletedFlag = false; 18850a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 18860a5c7a17Sopenharmony_ci sleep(2); 18870a5c7a17Sopenharmony_ci camStateMng.Stop(); 18880a5c7a17Sopenharmony_ci sleep(2); 18890a5c7a17Sopenharmony_ci camStateMng.Capture(); 18900a5c7a17Sopenharmony_ci sleep(2); 18910a5c7a17Sopenharmony_ci EXPECT_TRUE(g_onCaptureTriggerStartedFlag); 18920a5c7a17Sopenharmony_ci EXPECT_TRUE(g_onCaptureTriggerCompletedFlag); 18930a5c7a17Sopenharmony_ci} 18940a5c7a17Sopenharmony_ci 18950a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_Capture_008, Level1) 18960a5c7a17Sopenharmony_ci{ 18970a5c7a17Sopenharmony_ci CameraKit *cameraKit = nullptr; 18980a5c7a17Sopenharmony_ci list<string> cameraList; 18990a5c7a17Sopenharmony_ci string cameraId; 19000a5c7a17Sopenharmony_ci EventHandler eventHdlr; 19010a5c7a17Sopenharmony_ci GetCameraId(cameraKit, cameraList, cameraId); 19020a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 19030a5c7a17Sopenharmony_ci g_onCaptureTriggerStartedFlag = false; 19040a5c7a17Sopenharmony_ci g_onCaptureTriggerCompletedFlag = false; 19050a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 19060a5c7a17Sopenharmony_ci sleep(2); 19070a5c7a17Sopenharmony_ci camStateMng.StartPreview(); 19080a5c7a17Sopenharmony_ci sleep(2); 19090a5c7a17Sopenharmony_ci camStateMng.Stop(); 19100a5c7a17Sopenharmony_ci sleep(2); 19110a5c7a17Sopenharmony_ci camStateMng.Capture(); 19120a5c7a17Sopenharmony_ci sleep(2); 19130a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCaptureTriggerStartedFlag, true); 19140a5c7a17Sopenharmony_ci EXPECT_EQ(g_onCaptureTriggerCompletedFlag, true); 19150a5c7a17Sopenharmony_ci} 19160a5c7a17Sopenharmony_ci 19170a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_Preview_001, Level1) 19180a5c7a17Sopenharmony_ci{ 19190a5c7a17Sopenharmony_ci CameraKit *cameraKit = nullptr; 19200a5c7a17Sopenharmony_ci list<string> cameraList; 19210a5c7a17Sopenharmony_ci string cameraId; 19220a5c7a17Sopenharmony_ci EventHandler eventHdlr; 19230a5c7a17Sopenharmony_ci ASSERT_TRUE(GetCameraId(cameraKit, cameraList, cameraId)); 19240a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 19250a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 19260a5c7a17Sopenharmony_ci g_onPreviewFlag = false; 19270a5c7a17Sopenharmony_ci camStateMng.StartPreview(); 19280a5c7a17Sopenharmony_ci sleep(2); 19290a5c7a17Sopenharmony_ci EXPECT_TRUE(g_onPreviewFlag); 19300a5c7a17Sopenharmony_ci camStateMng.Stop(); 19310a5c7a17Sopenharmony_ci} 19320a5c7a17Sopenharmony_ci 19330a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_Preview_002, Level1) 19340a5c7a17Sopenharmony_ci{ 19350a5c7a17Sopenharmony_ci CameraKit *cameraKit = nullptr; 19360a5c7a17Sopenharmony_ci list<string> cameraList; 19370a5c7a17Sopenharmony_ci string cameraId; 19380a5c7a17Sopenharmony_ci EventHandler eventHdlr; 19390a5c7a17Sopenharmony_ci ASSERT_TRUE(GetCameraId(cameraKit, cameraList, cameraId)); 19400a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 19410a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 19420a5c7a17Sopenharmony_ci g_onPreviewFlag = false; 19430a5c7a17Sopenharmony_ci camStateMng.StartPreview(); 19440a5c7a17Sopenharmony_ci sleep(2); 19450a5c7a17Sopenharmony_ci camStateMng.Stop(); 19460a5c7a17Sopenharmony_ci EXPECT_FALSE(g_onPreviewFlag); 19470a5c7a17Sopenharmony_ci} 19480a5c7a17Sopenharmony_ci 19490a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_Preview_003, Level1) 19500a5c7a17Sopenharmony_ci{ 19510a5c7a17Sopenharmony_ci CameraKit *cameraKit = nullptr; 19520a5c7a17Sopenharmony_ci list<string> cameraList; 19530a5c7a17Sopenharmony_ci string cameraId; 19540a5c7a17Sopenharmony_ci EventHandler eventHdlr; 19550a5c7a17Sopenharmony_ci ASSERT_TRUE(GetCameraId(cameraKit, cameraList, cameraId)); 19560a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 19570a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 19580a5c7a17Sopenharmony_ci g_onPreviewFlag = false; 19590a5c7a17Sopenharmony_ci camStateMng.StartPreview(); 19600a5c7a17Sopenharmony_ci sleep(2); 19610a5c7a17Sopenharmony_ci camStateMng.Stop(); 19620a5c7a17Sopenharmony_ci camStateMng.StartPreview(); 19630a5c7a17Sopenharmony_ci sleep(2); 19640a5c7a17Sopenharmony_ci EXPECT_TRUE(g_onPreviewFlag); 19650a5c7a17Sopenharmony_ci} 19660a5c7a17Sopenharmony_ci 19670a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_Preview_004, Level1) 19680a5c7a17Sopenharmony_ci{ 19690a5c7a17Sopenharmony_ci CameraKit *cameraKit = nullptr; 19700a5c7a17Sopenharmony_ci list<string> cameraList; 19710a5c7a17Sopenharmony_ci string cameraId; 19720a5c7a17Sopenharmony_ci EventHandler eventHdlr; 19730a5c7a17Sopenharmony_ci ASSERT_TRUE(GetCameraId(cameraKit, cameraList, cameraId)); 19740a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 19750a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 19760a5c7a17Sopenharmony_ci g_onPreviewFlag = false; 19770a5c7a17Sopenharmony_ci camStateMng.StartPreview(); 19780a5c7a17Sopenharmony_ci sleep(2); 19790a5c7a17Sopenharmony_ci camStateMng.Stop(); 19800a5c7a17Sopenharmony_ci camStateMng.StartPreview(); 19810a5c7a17Sopenharmony_ci sleep(2); 19820a5c7a17Sopenharmony_ci camStateMng.Stop(); 19830a5c7a17Sopenharmony_ci EXPECT_FALSE(g_onPreviewFlag); 19840a5c7a17Sopenharmony_ci} 19850a5c7a17Sopenharmony_ci 19860a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_Preview_005, Level1) 19870a5c7a17Sopenharmony_ci{ 19880a5c7a17Sopenharmony_ci CameraKit *cameraKit = nullptr; 19890a5c7a17Sopenharmony_ci list<string> cameraList; 19900a5c7a17Sopenharmony_ci string cameraId; 19910a5c7a17Sopenharmony_ci EventHandler eventHdlr; 19920a5c7a17Sopenharmony_ci ASSERT_TRUE(GetCameraId(cameraKit, cameraList, cameraId)); 19930a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 19940a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 19950a5c7a17Sopenharmony_ci g_onPreviewFlag = false; 19960a5c7a17Sopenharmony_ci camStateMng.Capture(); 19970a5c7a17Sopenharmony_ci sleep(2); 19980a5c7a17Sopenharmony_ci camStateMng.Stop(); 19990a5c7a17Sopenharmony_ci sleep(2); 20000a5c7a17Sopenharmony_ci camStateMng.StartPreview(); 20010a5c7a17Sopenharmony_ci sleep(2); 20020a5c7a17Sopenharmony_ci EXPECT_TRUE(g_onPreviewFlag); 20030a5c7a17Sopenharmony_ci camStateMng.Stop(); 20040a5c7a17Sopenharmony_ci} 20050a5c7a17Sopenharmony_ci 20060a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_Preview_006, Level1) 20070a5c7a17Sopenharmony_ci{ 20080a5c7a17Sopenharmony_ci CameraKit *cameraKit = nullptr; 20090a5c7a17Sopenharmony_ci list<string> cameraList; 20100a5c7a17Sopenharmony_ci string cameraId; 20110a5c7a17Sopenharmony_ci EventHandler eventHdlr; 20120a5c7a17Sopenharmony_ci ASSERT_TRUE(GetCameraId(cameraKit, cameraList, cameraId)); 20130a5c7a17Sopenharmony_ci SampleCameraStateMng camStateMng(eventHdlr); 20140a5c7a17Sopenharmony_ci cameraKit->CreateCamera(cameraId, camStateMng, eventHdlr); 20150a5c7a17Sopenharmony_ci g_onPreviewFlag = false; 20160a5c7a17Sopenharmony_ci camStateMng.Capture(); 20170a5c7a17Sopenharmony_ci sleep(2); 20180a5c7a17Sopenharmony_ci camStateMng.StartPreview(); 20190a5c7a17Sopenharmony_ci sleep(2); 20200a5c7a17Sopenharmony_ci camStateMng.Stop(); 20210a5c7a17Sopenharmony_ci EXPECT_FALSE(g_onPreviewFlag); 20220a5c7a17Sopenharmony_ci} /* end frame config & frame state call back interface test */ 20230a5c7a17Sopenharmony_ci 20240a5c7a17Sopenharmony_ci/* start camera info interface test */ 20250a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetCameraType_001, Level1) 20260a5c7a17Sopenharmony_ci{ 20270a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 20280a5c7a17Sopenharmony_ci string cameraId = "0"; 20290a5c7a17Sopenharmony_ci const CameraInfo *cameraInfo = cameraKit->GetCameraInfo(cameraId); 20300a5c7a17Sopenharmony_ci int32_t cameraType = cameraInfo->GetCameraType(); 20310a5c7a17Sopenharmony_ci EXPECT_TRUE(cameraType <= 3); 20320a5c7a17Sopenharmony_ci EXPECT_TRUE(cameraType >= 0); 20330a5c7a17Sopenharmony_ci} 20340a5c7a17Sopenharmony_ci 20350a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_GetCameraType_001, Level1) 20360a5c7a17Sopenharmony_ci{ 20370a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 20380a5c7a17Sopenharmony_ci string cameraId = "0"; 20390a5c7a17Sopenharmony_ci const CameraInfo *cameraInfo = cameraKit->GetCameraInfo(cameraId); 20400a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 20410a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 20420a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 20430a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 20440a5c7a17Sopenharmony_ci int64_t totalTime = 0; 20450a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 20460a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 20470a5c7a17Sopenharmony_ci cameraInfo->GetCameraType(); 20480a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 20490a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 20500a5c7a17Sopenharmony_ci } 20510a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 20520a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 20530a5c7a17Sopenharmony_ci} 20540a5c7a17Sopenharmony_ci 20550a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, Test_GetCameraFacingType_001, Level1) 20560a5c7a17Sopenharmony_ci{ 20570a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 20580a5c7a17Sopenharmony_ci string cameraId = "0"; 20590a5c7a17Sopenharmony_ci const CameraInfo *cameraInfo = cameraKit->GetCameraInfo(cameraId); 20600a5c7a17Sopenharmony_ci int32_t cameraFacingType = cameraInfo->GetCameraFacingType(); 20610a5c7a17Sopenharmony_ci EXPECT_TRUE(cameraFacingType <= 2); 20620a5c7a17Sopenharmony_ci EXPECT_TRUE(cameraFacingType >= 0); 20630a5c7a17Sopenharmony_ci} 20640a5c7a17Sopenharmony_ci 20650a5c7a17Sopenharmony_ciHWTEST_F(CameraLiteTest, PrfTest_GetCameraFacingType_001, Level1) 20660a5c7a17Sopenharmony_ci{ 20670a5c7a17Sopenharmony_ci CameraKit *cameraKit = CameraKit::GetInstance(); 20680a5c7a17Sopenharmony_ci string cameraId = "0"; 20690a5c7a17Sopenharmony_ci const CameraInfo *cameraInfo = cameraKit->GetCameraInfo(cameraId); 20700a5c7a17Sopenharmony_ci struct timespec tv1 = {0}; 20710a5c7a17Sopenharmony_ci struct timespec tv2 = {0}; 20720a5c7a17Sopenharmony_ci int64_t performanceTestTimes = 10; 20730a5c7a17Sopenharmony_ci int64_t usecTimes = 1000000; 20740a5c7a17Sopenharmony_ci int64_t totalTime = 0; 20750a5c7a17Sopenharmony_ci for (int32_t i = 0; i < performanceTestTimes; i++) { 20760a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv1); 20770a5c7a17Sopenharmony_ci cameraInfo->GetCameraFacingType(); 20780a5c7a17Sopenharmony_ci clock_gettime(CLOCK_REALTIME, &tv2); 20790a5c7a17Sopenharmony_ci totalTime += tv2.tv_sec * usecTimes + tv2.tv_nsec - (tv1.tv_sec * usecTimes + tv1.tv_nsec); 20800a5c7a17Sopenharmony_ci } 20810a5c7a17Sopenharmony_ci int64_t expectTime = 1000000; 20820a5c7a17Sopenharmony_ci EXPECT_TRUE(totalTime <= expectTime * performanceTestTimes); 20830a5c7a17Sopenharmony_ci} /* end camera info interface test */ 20840a5c7a17Sopenharmony_ci} // namespace OHOS 2085