• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file expected in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #include "front_camera_hdi_test_v1_2.h"
16 
17 using namespace OHOS;
18 using namespace std;
19 using namespace testing::ext;
20 using namespace OHOS::Camera;
21 
22 constexpr uint32_t ITEM_CAPACITY = 100;
23 constexpr uint32_t DATA_CAPACITY = 2000;
24 constexpr uint32_t DATA_COUNT = 1;
SetUpTestCase(void)25 void FrontCameraHdiTestV1_2::SetUpTestCase(void) {}
TearDownTestCase(void)26 void FrontCameraHdiTestV1_2::TearDownTestCase(void) {}
SetUp(void)27 void FrontCameraHdiTestV1_2::SetUp(void)
28 {
29     cameraTest = std::make_shared<OHOS::Camera::Test>();
30     cameraTest->Init(); // assert inside
31     cameraTest->Open(DEVICE_1); // assert inside
32 }
33 
TearDown(void)34 void FrontCameraHdiTestV1_2::TearDown(void)
35 {
36     cameraTest->Close();
37 }
38 
39 /**
40  * @tc.name: SUB_Driver_Camera_APERTURE_0300
41  * @tc.desc: OHOS_CONTROL_CAMERA_VIRTUAL_APERTURE_RANGE
42  * @tc.size: MediumTest
43  * @tc.type: Function
44  */
45 HWTEST_F(FrontCameraHdiTestV1_2, SUB_Driver_Camera_APERTURE_0300, TestSize.Level1)
46 {
47     // Get Stream Operator
48     cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
49     cameraTest->rc = cameraTest->cameraDeviceV1_1->GetStreamOperator_V1_1(cameraTest->streamOperatorCallback,
50         cameraTest->streamOperator_V1_1);
51     EXPECT_NE(cameraTest->streamOperator_V1_1, nullptr);
52     EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
53 
54     // preview streamInfo
55     cameraTest->streamInfoV1_1 = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
56     cameraTest->DefaultInfosPreview(cameraTest->streamInfoV1_1);
57     cameraTest->streamInfosV1_1.push_back(*cameraTest->streamInfoV1_1);
58 
59     // capture streamInfo
60     cameraTest->streamInfoV1_1 = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
61     cameraTest->DefaultInfosCapture(cameraTest->streamInfoV1_1);
62     cameraTest->streamInfosV1_1.push_back(*cameraTest->streamInfoV1_1);
63 
64     // create and commitstreams
65     cameraTest->rc = cameraTest->streamOperator_V1_1->CreateStreams_V1_1(cameraTest->streamInfosV1_1);
66     EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
67     cameraTest->rc = cameraTest->streamOperator_V1_1->CommitStreams_V1_1(
68         static_cast<OHOS::HDI::Camera::V1_1::OperationMode_V1_1>(OHOS::HDI::Camera::V1_2::PORTRAIT),
69         cameraTest->abilityVec);
70     EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
71 
72     //update settings
73     std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY, DATA_CAPACITY);
74     float virtualApertureValue = 1.6;
75     meta->addEntry(OHOS_CONTROL_CAMERA_VIRTUAL_APERTURE_VALUE, &virtualApertureValue, DATA_COUNT);
76     std::vector<uint8_t> setting;
77     MetadataUtils::ConvertMetadataToVec(meta, setting);
78     cameraTest->rc = (CamRetCode)cameraTest->cameraDevice->UpdateSettings(setting);
79     EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
80 
81     // start capture
82     cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, false, true);
83     cameraTest->StartCapture(cameraTest->streamIdCapture, cameraTest->captureIdCapture, false, true);
84 
85     // stop stream
86     cameraTest->captureIds = {cameraTest->captureIdPreview, cameraTest->captureIdCapture};
87     cameraTest->streamIds = {cameraTest->streamIdPreview, cameraTest->streamIdCapture};
88     cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
89 }
90 
91 /**
92  * @tc.name: SUB_Driver_Camera_APERTURE_0400
93  * @tc.desc: OHOS_CONTROL_CAMERA_VIRTUAL_APERTURE_RANGE, all value
94  * @tc.size: MediumTest
95  * @tc.type: Function
96  */
97 HWTEST_F(FrontCameraHdiTestV1_2, SUB_Driver_Camera_APERTURE_0400, TestSize.Level1)
98 {
99     EXPECT_NE(cameraTest->ability, nullptr);
100     common_metadata_header_t* data = cameraTest->ability->get();
101     EXPECT_NE(data, nullptr);
102     camera_metadata_item_t entry;
103     cameraTest->rc = FindCameraMetadataItem(data, OHOS_ABILITY_CAMERA_VIRTUAL_APERTURE_RANGE, &entry);
104 
105     for (size_t i = 0; i < entry.count; i++) {
106         // Get Stream Operator
107         cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
108         cameraTest->rc = cameraTest->cameraDeviceV1_1->GetStreamOperator_V1_1(cameraTest->streamOperatorCallback,
109             cameraTest->streamOperator_V1_1);
110         EXPECT_NE(cameraTest->streamOperator_V1_1, nullptr);
111         EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
112 
113         // preview streamInfo
114         cameraTest->streamInfoV1_1 = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
115         cameraTest->DefaultInfosPreview(cameraTest->streamInfoV1_1);
116         cameraTest->streamInfosV1_1.push_back(*cameraTest->streamInfoV1_1);
117 
118         // capture streamInfo
119         cameraTest->streamInfoV1_1 = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
120         cameraTest->DefaultInfosCapture(cameraTest->streamInfoV1_1);
121         cameraTest->streamInfosV1_1.push_back(*cameraTest->streamInfoV1_1);
122 
123         // create and commitstreams
124         cameraTest->rc = cameraTest->streamOperator_V1_1->CreateStreams_V1_1(cameraTest->streamInfosV1_1);
125         EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
126         cameraTest->rc = cameraTest->streamOperator_V1_1->CommitStreams_V1_1(
127             static_cast<OHOS::HDI::Camera::V1_1::OperationMode_V1_1>(OHOS::HDI::Camera::V1_2::PORTRAIT),
128             cameraTest->abilityVec);
129         EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
130 
131         //update settings
132         std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY, DATA_CAPACITY);
133         float virtualApertureValue = entry.data.f[i];
134         meta->addEntry(OHOS_CONTROL_CAMERA_VIRTUAL_APERTURE_VALUE, &virtualApertureValue, DATA_COUNT);
135         std::vector<uint8_t> setting;
136         MetadataUtils::ConvertMetadataToVec(meta, setting);
137         cameraTest->rc = (CamRetCode)cameraTest->cameraDevice->UpdateSettings(setting);
138         EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
139 
140         // start capture
141         cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, false, true);
142         cameraTest->StartCapture(cameraTest->streamIdCapture, cameraTest->captureIdCapture, false, true);
143 
144         cameraTest->captureIds = {cameraTest->captureIdPreview, cameraTest->captureIdCapture};
145         cameraTest->streamIds = {cameraTest->streamIdPreview, cameraTest->streamIdCapture};
146         cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
147         sleep(1);
148         cameraTest->streamInfosV1_1.clear();
149     }
150 }
151