1094332d3Sopenharmony_ci/*
2094332d3Sopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd.
3094332d3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4094332d3Sopenharmony_ci * you may not use this file except in compliance with the License.
5094332d3Sopenharmony_ci * You may obtain a copy of the License at
6094332d3Sopenharmony_ci *
7094332d3Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8094332d3Sopenharmony_ci *
9094332d3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10094332d3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11094332d3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12094332d3Sopenharmony_ci * See the License for the specific language governing permissions and
13094332d3Sopenharmony_ci * limitations under the License.
14094332d3Sopenharmony_ci */
15094332d3Sopenharmony_ci
16094332d3Sopenharmony_ci#include "hdi_test.h"
17094332d3Sopenharmony_ci
18094332d3Sopenharmony_ciconstexpr int ITEM_CAPACITY_SIZE = 100;
19094332d3Sopenharmony_ciconstexpr int DATA_CAPACITY_SIZE = 2000;
20094332d3Sopenharmony_ci
21094332d3Sopenharmony_civoid UtestHdiTest::SetUpTestCase(void)
22094332d3Sopenharmony_ci{}
23094332d3Sopenharmony_civoid UtestHdiTest::TearDownTestCase(void)
24094332d3Sopenharmony_ci{}
25094332d3Sopenharmony_civoid UtestHdiTest::SetUp(void)
26094332d3Sopenharmony_ci{
27094332d3Sopenharmony_ci    if (cameraBase == nullptr)
28094332d3Sopenharmony_ci    cameraBase = std::make_shared<TestCameraBase>();
29094332d3Sopenharmony_ci    cameraBase->FBInit();
30094332d3Sopenharmony_ci    cameraBase->Init();
31094332d3Sopenharmony_ci}
32094332d3Sopenharmony_civoid UtestHdiTest::TearDown(void)
33094332d3Sopenharmony_ci{
34094332d3Sopenharmony_ci    cameraBase->Close();
35094332d3Sopenharmony_ci}
36094332d3Sopenharmony_ci
37094332d3Sopenharmony_ci/**
38094332d3Sopenharmony_ci  * @tc.name: GetCameraIds
39094332d3Sopenharmony_ci  * @tc.desc: CamRetCode GetCameraIds([out] String[] ids);
40094332d3Sopenharmony_ci  * @tc.level: Level0
41094332d3Sopenharmony_ci  * @tc.size: MediumTest
42094332d3Sopenharmony_ci  * @tc.type: Function
43094332d3Sopenharmony_ci  */
44094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0010)
45094332d3Sopenharmony_ci{
46094332d3Sopenharmony_ci    std::cout << "==========[test log] GetCameraIds([out] String[] ids)." << std::endl;
47094332d3Sopenharmony_ci    if (cameraBase->cameraDevice == nullptr) {
48094332d3Sopenharmony_ci        sleep(3); // waiting 3s, prepare for execute GetCameraIds.
49094332d3Sopenharmony_ci        cameraBase->rc = cameraBase->cameraHost->GetCameraIds(cameraBase->cameraIds);
50094332d3Sopenharmony_ci        EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
51094332d3Sopenharmony_ci        EXPECT_LT(0, cameraBase->cameraIds.size());
52094332d3Sopenharmony_ci        std::cout << "==========[test log] cameraIds.size()= ."<< cameraBase->cameraIds.size() << std::endl;
53094332d3Sopenharmony_ci    }
54094332d3Sopenharmony_ci}
55094332d3Sopenharmony_ci
56094332d3Sopenharmony_ci/**
57094332d3Sopenharmony_ci  * @tc.name: GetCameraAbility
58094332d3Sopenharmony_ci  * @tc.desc: GetCameraAbility, normal cameraId.
59094332d3Sopenharmony_ci  * @tc.level: Level0
60094332d3Sopenharmony_ci  * @tc.size: MediumTest
61094332d3Sopenharmony_ci  * @tc.type: Function
62094332d3Sopenharmony_ci  */
63094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0020)
64094332d3Sopenharmony_ci{
65094332d3Sopenharmony_ci    std::cout << "==========[test log] GetCameraAbility, normal cameraId." << std::endl;
66094332d3Sopenharmony_ci    std::shared_ptr<CameraAbility> ability;
67094332d3Sopenharmony_ci    if (cameraBase->cameraDevice == nullptr) {
68094332d3Sopenharmony_ci        sleep(3); // waiting 3s, prepare for execute GetCameraIds.
69094332d3Sopenharmony_ci        cameraBase->rc = cameraBase->cameraHost->GetCameraIds(cameraBase->cameraIds);
70094332d3Sopenharmony_ci        EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
71094332d3Sopenharmony_ci        for (int i = 0; i < cameraBase->cameraIds.size(); i++) {
72094332d3Sopenharmony_ci            cameraBase->rc = cameraBase->cameraHost->GetCameraAbility(cameraBase->cameraIds[i], ability);
73094332d3Sopenharmony_ci            std::cout << "==========[test log] GetCameraAbility, cameraid = ";
74094332d3Sopenharmony_ci            std::cout << cameraBase->cameraIds[i] << std::endl;
75094332d3Sopenharmony_ci            EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
76094332d3Sopenharmony_ci        }
77094332d3Sopenharmony_ci    }
78094332d3Sopenharmony_ci}
79094332d3Sopenharmony_ci
80094332d3Sopenharmony_ci/**
81094332d3Sopenharmony_ci  * @tc.name: GetCameraAbility
82094332d3Sopenharmony_ci  * @tc.desc: GetCameraAbility, abnormal cameraId = 'abc'.
83094332d3Sopenharmony_ci  * @tc.level: Level2
84094332d3Sopenharmony_ci  * @tc.size: MediumTest
85094332d3Sopenharmony_ci  * @tc.type: Function
86094332d3Sopenharmony_ci  */
87094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0021)
88094332d3Sopenharmony_ci{
89094332d3Sopenharmony_ci    std::cout << "==========[test log] GetCameraAbility, abnormal cameraId = 'abc'." << std::endl;
90094332d3Sopenharmony_ci    std::shared_ptr<CameraAbility> ability;
91094332d3Sopenharmony_ci    if (cameraBase->cameraDevice == nullptr) {
92094332d3Sopenharmony_ci        std::string cameraId = "abc";
93094332d3Sopenharmony_ci        sleep(3); // waiting 3s, prepare for execute GetCameraAbility.
94094332d3Sopenharmony_ci        cameraBase->rc = cameraBase->cameraHost->GetCameraAbility(cameraId, ability);
95094332d3Sopenharmony_ci        std::cout << "==========[test log] cameraBase->rc ="<< cameraBase->rc << std::endl;
96094332d3Sopenharmony_ci        EXPECT_EQ(true, cameraBase->rc == INVALID_ARGUMENT);
97094332d3Sopenharmony_ci    }
98094332d3Sopenharmony_ci}
99094332d3Sopenharmony_ci
100094332d3Sopenharmony_ci/**
101094332d3Sopenharmony_ci  * @tc.name: GetCameraAbility
102094332d3Sopenharmony_ci  * @tc.desc: GetCameraAbility, abnormal cameraId = ''
103094332d3Sopenharmony_ci  * @tc.level: Level2
104094332d3Sopenharmony_ci  * @tc.size: MediumTest
105094332d3Sopenharmony_ci  * @tc.type: Function
106094332d3Sopenharmony_ci  */
107094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0022)
108094332d3Sopenharmony_ci{
109094332d3Sopenharmony_ci    std::cout << "==========[test log] GetCameraAbility, abnormal cameraId = ''." << std::endl;
110094332d3Sopenharmony_ci    std::shared_ptr<CameraAbility> ability;
111094332d3Sopenharmony_ci    if (cameraBase->cameraDevice == nullptr) {
112094332d3Sopenharmony_ci        std::string cameraId = "";
113094332d3Sopenharmony_ci        sleep(2); // waiting 2s, prepare for execute GetCameraAbility.
114094332d3Sopenharmony_ci        cameraBase->rc = cameraBase->cameraHost->GetCameraAbility(cameraId, ability);
115094332d3Sopenharmony_ci        std::cout << "==========[test log] cameraBase->rc ="<< cameraBase->rc << std::endl;
116094332d3Sopenharmony_ci        EXPECT_EQ(true, cameraBase->rc == INVALID_ARGUMENT);
117094332d3Sopenharmony_ci    }
118094332d3Sopenharmony_ci}
119094332d3Sopenharmony_ci
120094332d3Sopenharmony_ci/**
121094332d3Sopenharmony_ci  * @tc.name: OpenCamera
122094332d3Sopenharmony_ci  * @tc.desc: OpenCamera, normal cameraId.
123094332d3Sopenharmony_ci  * @tc.level: Level0
124094332d3Sopenharmony_ci  * @tc.size: MediumTest
125094332d3Sopenharmony_ci  * @tc.type: Function
126094332d3Sopenharmony_ci  */
127094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0030)
128094332d3Sopenharmony_ci{
129094332d3Sopenharmony_ci    std::cout << "==========[test log] OpenCamera, normal cameraId."<< std::endl;
130094332d3Sopenharmony_ci    if (cameraBase->cameraDevice == nullptr) {
131094332d3Sopenharmony_ci        sleep(3); // waiting 3s, prepare for execute GetCameraIds.
132094332d3Sopenharmony_ci        cameraBase->cameraHost->GetCameraIds(cameraBase->cameraIds);
133094332d3Sopenharmony_ci        const std::shared_ptr<ICameraDeviceCallback> callback =
134094332d3Sopenharmony_ci            std::make_shared<ICameraDeviceCallback>();
135094332d3Sopenharmony_ci        cameraBase->rc = cameraBase->cameraHost->OpenCamera(cameraBase->cameraIds.front(),
136094332d3Sopenharmony_ci            callback, cameraBase->cameraDevice);
137094332d3Sopenharmony_ci        EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
138094332d3Sopenharmony_ci        if (cameraBase->rc != NO_ERROR || cameraBase->cameraDevice == nullptr) {
139094332d3Sopenharmony_ci            std::cout << "==========[test log] OpenCamera failed." << std::endl;
140094332d3Sopenharmony_ci            return;
141094332d3Sopenharmony_ci        }
142094332d3Sopenharmony_ci        std::cout << "==========[test log] OpenCamera success." << std::endl;
143094332d3Sopenharmony_ci    }
144094332d3Sopenharmony_ci}
145094332d3Sopenharmony_ci
146094332d3Sopenharmony_ci/**
147094332d3Sopenharmony_ci  * @tc.name: OpenCamera
148094332d3Sopenharmony_ci  * @tc.desc: OpenCamera, cameraID is not found.
149094332d3Sopenharmony_ci  * @tc.level: Level2
150094332d3Sopenharmony_ci  * @tc.size: MediumTest
151094332d3Sopenharmony_ci  * @tc.type: Function
152094332d3Sopenharmony_ci  */
153094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0031)
154094332d3Sopenharmony_ci{
155094332d3Sopenharmony_ci    std::cout << "==========[test log] OpenCamera, cameraID is not found."<< std::endl;
156094332d3Sopenharmony_ci    if (cameraBase->cameraDevice == nullptr) {
157094332d3Sopenharmony_ci        std::string cameraId = "qwerty";
158094332d3Sopenharmony_ci        const std::shared_ptr<ICameraDeviceCallback> callback =
159094332d3Sopenharmony_ci            std::make_shared<ICameraDeviceCallback>();
160094332d3Sopenharmony_ci        sleep(3); // waiting 3s, prepare for execute OpenCamera.
161094332d3Sopenharmony_ci        cameraBase->rc = cameraBase->cameraHost->OpenCamera(cameraId, callback, cameraBase->cameraDevice);
162094332d3Sopenharmony_ci        EXPECT_EQ(true, cameraBase->rc == INVALID_ARGUMENT);
163094332d3Sopenharmony_ci    }
164094332d3Sopenharmony_ci}
165094332d3Sopenharmony_ci
166094332d3Sopenharmony_ci/**
167094332d3Sopenharmony_ci  * @tc.name: OpenCamera
168094332d3Sopenharmony_ci  * @tc.desc: OpenCamera, cameraID is illegal.
169094332d3Sopenharmony_ci  * @tc.level: Level2
170094332d3Sopenharmony_ci  * @tc.size: MediumTest
171094332d3Sopenharmony_ci  * @tc.type: Function
172094332d3Sopenharmony_ci  */
173094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0032)
174094332d3Sopenharmony_ci{
175094332d3Sopenharmony_ci    std::cout << "==========[test log] OpenCamera, cameraID is illegal."<< std::endl;
176094332d3Sopenharmony_ci    if (cameraBase->cameraDevice == nullptr) {
177094332d3Sopenharmony_ci        std::string cameraId = "1";
178094332d3Sopenharmony_ci        const std::shared_ptr<ICameraDeviceCallback> callback =
179094332d3Sopenharmony_ci            std::make_shared<ICameraDeviceCallback>();
180094332d3Sopenharmony_ci        sleep(3); // waiting 3s, prepare for execute OpenCamera.
181094332d3Sopenharmony_ci        cameraBase->rc = cameraBase->cameraHost->OpenCamera(cameraId, callback, cameraBase->cameraDevice);
182094332d3Sopenharmony_ci        EXPECT_EQ(true, cameraBase->rc == INVALID_ARGUMENT);
183094332d3Sopenharmony_ci    }
184094332d3Sopenharmony_ci}
185094332d3Sopenharmony_ci
186094332d3Sopenharmony_ci/**
187094332d3Sopenharmony_ci  * @tc.name: OpenCamera
188094332d3Sopenharmony_ci  * @tc.desc: OpenCamera, cameraID is Empty.
189094332d3Sopenharmony_ci  * @tc.level: Level2
190094332d3Sopenharmony_ci  * @tc.size: MediumTest
191094332d3Sopenharmony_ci  * @tc.type: Function
192094332d3Sopenharmony_ci  */
193094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0033)
194094332d3Sopenharmony_ci{
195094332d3Sopenharmony_ci    std::cout << "==========[test log] OpenCamera, cameraID is Empty."<< std::endl;
196094332d3Sopenharmony_ci    if (cameraBase->cameraDevice == nullptr) {
197094332d3Sopenharmony_ci        std::string cameraId = "";
198094332d3Sopenharmony_ci        const std::shared_ptr<ICameraDeviceCallback> callback =
199094332d3Sopenharmony_ci            std::make_shared<ICameraDeviceCallback>();
200094332d3Sopenharmony_ci        sleep(3); // waiting 3s, prepare for execute OpenCamera.
201094332d3Sopenharmony_ci        cameraBase->rc = cameraBase->cameraHost->OpenCamera(cameraId, callback, cameraBase->cameraDevice);
202094332d3Sopenharmony_ci        EXPECT_EQ(true, cameraBase->rc == INVALID_ARGUMENT);
203094332d3Sopenharmony_ci    }
204094332d3Sopenharmony_ci}
205094332d3Sopenharmony_ci
206094332d3Sopenharmony_ci/**
207094332d3Sopenharmony_ci  * @tc.name: OpenCamera
208094332d3Sopenharmony_ci  * @tc.desc: OpenCamera, Callback is Null.
209094332d3Sopenharmony_ci  * @tc.level: Level2
210094332d3Sopenharmony_ci  * @tc.size: MediumTest
211094332d3Sopenharmony_ci  * @tc.type: Function
212094332d3Sopenharmony_ci  */
213094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0034)
214094332d3Sopenharmony_ci{
215094332d3Sopenharmony_ci    std::cout << "==========[test log] OpenCamera, Callback is Null."<< std::endl;
216094332d3Sopenharmony_ci    if (cameraBase->cameraDevice == nullptr) {
217094332d3Sopenharmony_ci        sleep(3); // waiting 3s, prepare for execute GetCameraIds.
218094332d3Sopenharmony_ci        cameraBase->cameraHost->GetCameraIds(cameraBase->cameraIds);
219094332d3Sopenharmony_ci        const std::shared_ptr<ICameraDeviceCallback> callback = nullptr;
220094332d3Sopenharmony_ci        cameraBase->rc = cameraBase->cameraHost->OpenCamera(cameraBase->cameraIds.front(),
221094332d3Sopenharmony_ci            callback, cameraBase->cameraDevice);
222094332d3Sopenharmony_ci        EXPECT_EQ(true, cameraBase->rc == INVALID_ARGUMENT);
223094332d3Sopenharmony_ci    }
224094332d3Sopenharmony_ci}
225094332d3Sopenharmony_ci
226094332d3Sopenharmony_ci/**
227094332d3Sopenharmony_ci  * @tc.name: OpenCamera
228094332d3Sopenharmony_ci  * @tc.desc: cameraID is not found, callback is null.
229094332d3Sopenharmony_ci  * @tc.level: Level1
230094332d3Sopenharmony_ci  * @tc.size: MediumTest
231094332d3Sopenharmony_ci  * @tc.type: Function
232094332d3Sopenharmony_ci  */
233094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0035)
234094332d3Sopenharmony_ci{
235094332d3Sopenharmony_ci    std::cout << "==========[test log] OpenCamera, cameraID is not found, callback is null."<< std::endl;
236094332d3Sopenharmony_ci    if (cameraBase->cameraDevice == nullptr) {
237094332d3Sopenharmony_ci        std::string cameraId = "abc";
238094332d3Sopenharmony_ci        const std::shared_ptr<ICameraDeviceCallback> callback = nullptr;
239094332d3Sopenharmony_ci        sleep(3); // waiting 3s, prepare for execute OpenCamera.
240094332d3Sopenharmony_ci        cameraBase->rc = cameraBase->cameraHost->OpenCamera(cameraId, callback, cameraBase->cameraDevice);
241094332d3Sopenharmony_ci        EXPECT_EQ(true, cameraBase->rc == INVALID_ARGUMENT);
242094332d3Sopenharmony_ci    }
243094332d3Sopenharmony_ci}
244094332d3Sopenharmony_ci
245094332d3Sopenharmony_ci/**
246094332d3Sopenharmony_ci  * @tc.name: GetStreamOprator
247094332d3Sopenharmony_ci  * @tc.desc: GetStreamOprator, normal callback input.
248094332d3Sopenharmony_ci  * @tc.level: Level0
249094332d3Sopenharmony_ci  * @tc.size: MediumTest
250094332d3Sopenharmony_ci  * @tc.type: Function
251094332d3Sopenharmony_ci  */
252094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0050)
253094332d3Sopenharmony_ci{
254094332d3Sopenharmony_ci    std::cout << "==========[test log] GetStreamOprator, normal callback input." << std::endl;
255094332d3Sopenharmony_ci    sleep(3); // waiting 3s, prepare for execute OpenCamera.
256094332d3Sopenharmony_ci    cameraBase->OpenCamera();
257094332d3Sopenharmony_ci    cameraBase->streamOperatorCallback = std::make_shared<IStreamOperatorCallback>();
258094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->GetStreamOperator(cameraBase->streamOperatorCallback,
259094332d3Sopenharmony_ci        cameraBase->streamOperator);
260094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
261094332d3Sopenharmony_ci}
262094332d3Sopenharmony_ci
263094332d3Sopenharmony_ci/**
264094332d3Sopenharmony_ci  * @tc.name: GetStreamOprator
265094332d3Sopenharmony_ci  * @tc.desc: GetStreamOprator, callback is nullptr.
266094332d3Sopenharmony_ci  * @tc.level: Level2
267094332d3Sopenharmony_ci  * @tc.size: MediumTest
268094332d3Sopenharmony_ci  * @tc.type: Function
269094332d3Sopenharmony_ci  */
270094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0051)
271094332d3Sopenharmony_ci{
272094332d3Sopenharmony_ci    std::cout << "==========[test log] GetStreamOprator, normal callback input." << std::endl;
273094332d3Sopenharmony_ci    sleep(3); // waiting 3s, prepare for execute OpenCamera.
274094332d3Sopenharmony_ci    cameraBase->OpenCamera();
275094332d3Sopenharmony_ci    cameraBase->streamOperatorCallback = nullptr;
276094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->GetStreamOperator(cameraBase->streamOperatorCallback,
277094332d3Sopenharmony_ci        cameraBase->streamOperator);
278094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == INVALID_ARGUMENT);
279094332d3Sopenharmony_ci}
280094332d3Sopenharmony_ci
281094332d3Sopenharmony_ci/**
282094332d3Sopenharmony_ci  * @tc.name: UpdateSettings
283094332d3Sopenharmony_ci  * @tc.desc: UpdateSettings, OHOS_CONTROL_AE_EXPOSURE_COMPENSATION.
284094332d3Sopenharmony_ci  * @tc.level: Level1
285094332d3Sopenharmony_ci  * @tc.size: MediumTest
286094332d3Sopenharmony_ci  * @tc.type: Function
287094332d3Sopenharmony_ci  */
288094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0060)
289094332d3Sopenharmony_ci{
290094332d3Sopenharmony_ci    std::cout << "==========[test log] UpdateSettings, OHOS_CONTROL_AE_EXPOSURE_COMPENSATION." << std::endl;
291094332d3Sopenharmony_ci    sleep(3); // waiting 3s, prepare for execute OpenCamera.
292094332d3Sopenharmony_ci    cameraBase->OpenCamera();
293094332d3Sopenharmony_ci    // Issue 3A parameters
294094332d3Sopenharmony_ci    std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE);
295094332d3Sopenharmony_ci    int32_t expo = 0xa0;
296094332d3Sopenharmony_ci    meta->addEntry(OHOS_CONTROL_AE_EXPOSURE_COMPENSATION, &expo, 1);
297094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->UpdateSettings(meta);
298094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
299094332d3Sopenharmony_ci}
300094332d3Sopenharmony_ci
301094332d3Sopenharmony_ci/**
302094332d3Sopenharmony_ci  * @tc.name: UpdateSettings
303094332d3Sopenharmony_ci  * @tc.desc: UpdateSettings, OHOS_CAMERA_AWB_MODE:OHOS_CAMERA_AWB_MODE_AUTO.
304094332d3Sopenharmony_ci  * @tc.level: Level1
305094332d3Sopenharmony_ci  * @tc.size: MediumTest
306094332d3Sopenharmony_ci  * @tc.type: Function
307094332d3Sopenharmony_ci  */
308094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0061)
309094332d3Sopenharmony_ci{
310094332d3Sopenharmony_ci    std::cout << "==========[test log] UpdateSettings, ";
311094332d3Sopenharmony_ci    std::cout << "OHOS_CAMERA_AWB_MODE:OHOS_CAMERA_AWB_MODE_AUTO." << std::endl;
312094332d3Sopenharmony_ci    sleep(3); // waiting 3s, prepare for execute OpenCamera.
313094332d3Sopenharmony_ci    cameraBase->OpenCamera();
314094332d3Sopenharmony_ci    // Issue 3A parameters
315094332d3Sopenharmony_ci    std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE);
316094332d3Sopenharmony_ci    uint8_t awbMode = OHOS_CAMERA_AWB_MODE_AUTO;
317094332d3Sopenharmony_ci    meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1);
318094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->UpdateSettings(meta);
319094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
320094332d3Sopenharmony_ci}
321094332d3Sopenharmony_ci
322094332d3Sopenharmony_ci/**
323094332d3Sopenharmony_ci  * @tc.name: UpdateSettings
324094332d3Sopenharmony_ci  * @tc.desc: UpdateSettings, OHOS_CAMERA_AWB_MODE:OHOS_CAMERA_AWB_MODE_TWILIGHT.
325094332d3Sopenharmony_ci  * @tc.level: Level1
326094332d3Sopenharmony_ci  * @tc.size: MediumTest
327094332d3Sopenharmony_ci  * @tc.type: Function
328094332d3Sopenharmony_ci  */
329094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0063)
330094332d3Sopenharmony_ci{
331094332d3Sopenharmony_ci    std::cout << "==========[test log] UpdateSettings, ";
332094332d3Sopenharmony_ci    std::cout << "OHOS_CAMERA_AWB_MODE:OHOS_CAMERA_AWB_MODE_TWILIGHT." << std::endl;
333094332d3Sopenharmony_ci    sleep(3); // waiting 3s, prepare for execute OpenCamera.
334094332d3Sopenharmony_ci    cameraBase->OpenCamera();
335094332d3Sopenharmony_ci    // Issue 3A parameters
336094332d3Sopenharmony_ci    std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE);
337094332d3Sopenharmony_ci    uint8_t awbMode = OHOS_CAMERA_AWB_MODE_TWILIGHT;
338094332d3Sopenharmony_ci    meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1);
339094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->UpdateSettings(meta);
340094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
341094332d3Sopenharmony_ci}
342094332d3Sopenharmony_ci
343094332d3Sopenharmony_ci/**
344094332d3Sopenharmony_ci  * @tc.name: UpdateSettings
345094332d3Sopenharmony_ci  * @tc.desc: UpdateSettings, OHOS_CAMERA_AWB_MODE:OHOS_CAMERA_AWB_MODE_FLUORESCENT.
346094332d3Sopenharmony_ci  * @tc.level: Level1
347094332d3Sopenharmony_ci  * @tc.size: MediumTest
348094332d3Sopenharmony_ci  * @tc.type: Function
349094332d3Sopenharmony_ci  */
350094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0065)
351094332d3Sopenharmony_ci{
352094332d3Sopenharmony_ci    std::cout << "==========[test log] UpdateSettings, ";
353094332d3Sopenharmony_ci    std::cout << "OHOS_CAMERA_AWB_MODE:OHOS_CAMERA_AWB_MODE_FLUORESCENT." << std::endl;
354094332d3Sopenharmony_ci    sleep(3); // waiting 3s, prepare for execute OpenCamera.
355094332d3Sopenharmony_ci    cameraBase->OpenCamera();
356094332d3Sopenharmony_ci    // Issue 3A parameters
357094332d3Sopenharmony_ci    std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE);
358094332d3Sopenharmony_ci    uint8_t awbMode = OHOS_CAMERA_AWB_MODE_FLUORESCENT;
359094332d3Sopenharmony_ci    meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1);
360094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->UpdateSettings(meta);
361094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
362094332d3Sopenharmony_ci}
363094332d3Sopenharmony_ci
364094332d3Sopenharmony_ci/**
365094332d3Sopenharmony_ci  * @tc.name: UpdateSettings
366094332d3Sopenharmony_ci  * @tc.desc: UpdateSettings, OHOS_CAMERA_AWB_MODE:OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT.
367094332d3Sopenharmony_ci  * @tc.level: Level1
368094332d3Sopenharmony_ci  * @tc.size: MediumTest
369094332d3Sopenharmony_ci  * @tc.type: Function
370094332d3Sopenharmony_ci  */
371094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0066)
372094332d3Sopenharmony_ci{
373094332d3Sopenharmony_ci    std::cout << "==========[test log] UpdateSettings, ";
374094332d3Sopenharmony_ci    std::cout << "OHOS_CAMERA_AWB_MODE:OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT." << std::endl;
375094332d3Sopenharmony_ci    sleep(3); // waiting 3s, prepare for execute OpenCamera.
376094332d3Sopenharmony_ci    cameraBase->OpenCamera();
377094332d3Sopenharmony_ci    // Issue 3A parameters
378094332d3Sopenharmony_ci    std::shared_ptr<CameraSetting> meta = std::make_shared<CameraSetting>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE);
379094332d3Sopenharmony_ci    uint8_t awbMode = OHOS_CAMERA_AWB_MODE_WARM_FLUORESCENT;
380094332d3Sopenharmony_ci    meta->addEntry(OHOS_CONTROL_AWB_MODE, &awbMode, 1);
381094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->UpdateSettings(meta);
382094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
383094332d3Sopenharmony_ci}
384094332d3Sopenharmony_ci
385094332d3Sopenharmony_ci/**
386094332d3Sopenharmony_ci  * @tc.name: SetResultMode
387094332d3Sopenharmony_ci  * @tc.desc: SetResultMode is PER_FRAME.
388094332d3Sopenharmony_ci  * @tc.level: Level1
389094332d3Sopenharmony_ci  * @tc.size: MediumTest
390094332d3Sopenharmony_ci  * @tc.type: Function
391094332d3Sopenharmony_ci  */
392094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0070)
393094332d3Sopenharmony_ci{
394094332d3Sopenharmony_ci    std::cout << "==========[test log] SetResultMode is PER_FRAME." << std::endl;
395094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->cameraDevice != nullptr);
396094332d3Sopenharmony_ci    std::vector<OHOS::Camera::MetaType> enableTypes;
397094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->GetEnabledReuslts(enableTypes);
398094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
399094332d3Sopenharmony_ci    for (const auto &type : enableTypes) {
400094332d3Sopenharmony_ci        std::cout << "==========[test log] type = " << type << std::endl;
401094332d3Sopenharmony_ci    }
402094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->SetResultMode(Camera::PER_FRAME);
403094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
404094332d3Sopenharmony_ci}
405094332d3Sopenharmony_ci
406094332d3Sopenharmony_ci/**
407094332d3Sopenharmony_ci  * @tc.name: SetResultMode
408094332d3Sopenharmony_ci  * @tc.desc: SetResultMode is ON_CHANGED.
409094332d3Sopenharmony_ci  * @tc.level: Level1
410094332d3Sopenharmony_ci  * @tc.size: MediumTest
411094332d3Sopenharmony_ci  * @tc.type: Function
412094332d3Sopenharmony_ci  */
413094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0071)
414094332d3Sopenharmony_ci{
415094332d3Sopenharmony_ci    std::cout << "==========[test log] SetResultMode is PER_FRAME." << std::endl;
416094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->cameraDevice != nullptr);
417094332d3Sopenharmony_ci    std::vector<OHOS::Camera::MetaType> enableTypes;
418094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->GetEnabledReuslts(enableTypes);
419094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
420094332d3Sopenharmony_ci    for (const auto &type : enableTypes) {
421094332d3Sopenharmony_ci        std::cout << "==========[test log] type = " << type << std::endl;
422094332d3Sopenharmony_ci    }
423094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->SetResultMode(Camera::ON_CHANGED);
424094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
425094332d3Sopenharmony_ci}
426094332d3Sopenharmony_ci
427094332d3Sopenharmony_ci/**
428094332d3Sopenharmony_ci  * @tc.name: GetEnabledReuslts
429094332d3Sopenharmony_ci  * @tc.desc: GetEnabledReuslts expected success.
430094332d3Sopenharmony_ci  * @tc.level: Level1
431094332d3Sopenharmony_ci  * @tc.size: MediumTest
432094332d3Sopenharmony_ci  * @tc.type: Function
433094332d3Sopenharmony_ci  */
434094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0080)
435094332d3Sopenharmony_ci{
436094332d3Sopenharmony_ci    std::cout << "==========[test log] GetEnabledReuslts expected success." << std::endl;
437094332d3Sopenharmony_ci    std::vector<OHOS::Camera::MetaType> results;
438094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->GetEnabledReuslts(results);
439094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
440094332d3Sopenharmony_ci    std::cout << "GetEnabledReuslts is :" << std::endl;
441094332d3Sopenharmony_ci    for (int i = 0; i<results.size(); ++i) {
442094332d3Sopenharmony_ci        std::cout << results.at(i) << std::endl;
443094332d3Sopenharmony_ci    }
444094332d3Sopenharmony_ci}
445094332d3Sopenharmony_ci
446094332d3Sopenharmony_ci/**
447094332d3Sopenharmony_ci  * @tc.name: EnableResult
448094332d3Sopenharmony_ci  * @tc.desc: EnableResult one tag, without preview, success.
449094332d3Sopenharmony_ci  * @tc.level: Level1
450094332d3Sopenharmony_ci  * @tc.size: MediumTest
451094332d3Sopenharmony_ci  * @tc.type: Function
452094332d3Sopenharmony_ci  */
453094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0090)
454094332d3Sopenharmony_ci{
455094332d3Sopenharmony_ci    std::cout << "==========[test log] EnableResult one tag, without preview, success." << std::endl;
456094332d3Sopenharmony_ci    // Get the parameter tag currently supported by the device
457094332d3Sopenharmony_ci    std::cout << "==========[test log] 1. Get the tags..." << std::endl;
458094332d3Sopenharmony_ci    std::vector<OHOS::Camera::MetaType> resultsOriginal;
459094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->GetEnabledReuslts(resultsOriginal);
460094332d3Sopenharmony_ci    std::cout << "resultsOriginal.size = " << resultsOriginal.size() << std::endl;
461094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
462094332d3Sopenharmony_ci    // add this tag
463094332d3Sopenharmony_ci    std::vector<OHOS::Camera::MetaType> enableTag;
464094332d3Sopenharmony_ci    std::cout << "==========[test log] 2. Enable the tag: " << resultsOriginal[0] << std::endl;
465094332d3Sopenharmony_ci    enableTag.push_back(resultsOriginal[1]);
466094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->EnableResult(enableTag);
467094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
468094332d3Sopenharmony_ci}
469094332d3Sopenharmony_ci
470094332d3Sopenharmony_ci/**
471094332d3Sopenharmony_ci  * @tc.name: EnableResult
472094332d3Sopenharmony_ci  * @tc.desc: EnableResult multiple tags, success.
473094332d3Sopenharmony_ci  * @tc.level: Level1
474094332d3Sopenharmony_ci  * @tc.size: MediumTest
475094332d3Sopenharmony_ci  * @tc.type: Function
476094332d3Sopenharmony_ci  */
477094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0091)
478094332d3Sopenharmony_ci{
479094332d3Sopenharmony_ci    std::cout << "==========[test log] EnableResult multiple tags, success." << std::endl;
480094332d3Sopenharmony_ci    // Get the parameter tag currently supported by the device
481094332d3Sopenharmony_ci    std::vector<OHOS::Camera::MetaType> resultsOriginal;
482094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->GetEnabledReuslts(resultsOriginal);
483094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
484094332d3Sopenharmony_ci
485094332d3Sopenharmony_ci    // Disable all tags
486094332d3Sopenharmony_ci    std::cout << "then, disable the tag..." << std::endl;
487094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->DisableResult(resultsOriginal);
488094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
489094332d3Sopenharmony_ci
490094332d3Sopenharmony_ci    // Get the parameter tag currently supported by the device again
491094332d3Sopenharmony_ci    std::vector<OHOS::Camera::MetaType> results;
492094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->GetEnabledReuslts(results);
493094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
494094332d3Sopenharmony_ci    EXPECT_GT(results.size(), 0);
495094332d3Sopenharmony_ci
496094332d3Sopenharmony_ci    // Add multiple tags
497094332d3Sopenharmony_ci    std::cout << "then, enable the tag..." << std::endl;
498094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->EnableResult(resultsOriginal);
499094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
500094332d3Sopenharmony_ci
501094332d3Sopenharmony_ci    // Get the parameter tag currently supported by the device again
502094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->GetEnabledReuslts(results);
503094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
504094332d3Sopenharmony_ci}
505094332d3Sopenharmony_ci
506094332d3Sopenharmony_ci/**
507094332d3Sopenharmony_ci  * @tc.name: EnableResult
508094332d3Sopenharmony_ci  * @tc.desc: EnableResult error tag, expected success .
509094332d3Sopenharmony_ci  * @tc.level: Level1
510094332d3Sopenharmony_ci  * @tc.size: MediumTest
511094332d3Sopenharmony_ci  * @tc.type: Function
512094332d3Sopenharmony_ci  */
513094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0092)
514094332d3Sopenharmony_ci{
515094332d3Sopenharmony_ci    std::cout << "==========[test log] EnableResult error tag, expected fail." << std::endl;
516094332d3Sopenharmony_ci    // Get the parameter tag currently supported by the device
517094332d3Sopenharmony_ci    std::vector<OHOS::Camera::MetaType> resultsOriginal;
518094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->GetEnabledReuslts(resultsOriginal);
519094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
520094332d3Sopenharmony_ci
521094332d3Sopenharmony_ci    // add a tag
522094332d3Sopenharmony_ci    std::vector<OHOS::Camera::MetaType> enableTag;
523094332d3Sopenharmony_ci    enableTag.push_back(0);
524094332d3Sopenharmony_ci    std::cout << "then, enable the tag..." << std::endl;
525094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->EnableResult(enableTag);
526094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
527094332d3Sopenharmony_ci}
528094332d3Sopenharmony_ci
529094332d3Sopenharmony_ci/**
530094332d3Sopenharmony_ci  * @tc.name: EnableResult
531094332d3Sopenharmony_ci  * @tc.desc: DisableResult one tag, without preview, success.
532094332d3Sopenharmony_ci  * @tc.level: Level1
533094332d3Sopenharmony_ci  * @tc.size: MediumTest
534094332d3Sopenharmony_ci  * @tc.type: Function
535094332d3Sopenharmony_ci  */
536094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0100)
537094332d3Sopenharmony_ci{
538094332d3Sopenharmony_ci    std::cout << "==========[test log] DisEnabledReuslts, expected success." << std::endl;
539094332d3Sopenharmony_ci    // Get the parameter tag currently supported by the device
540094332d3Sopenharmony_ci    std::vector<OHOS::Camera::MetaType> resultsOriginal;
541094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->GetEnabledReuslts(resultsOriginal);
542094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
543094332d3Sopenharmony_ci    std::cout << "==========[test log] GetEnabledReuslts, size = " << resultsOriginal.size() << std::endl;
544094332d3Sopenharmony_ci
545094332d3Sopenharmony_ci    // disable a tag
546094332d3Sopenharmony_ci    std::vector<OHOS::Camera::MetaType> disableTag;
547094332d3Sopenharmony_ci    disableTag.push_back(resultsOriginal[0]);
548094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->DisableResult(disableTag);
549094332d3Sopenharmony_ci    std::cout << "rc = " << cameraBase->rc << std::endl;
550094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
551094332d3Sopenharmony_ci    std::cout << "==========[test log] DisableResult the tag:" << resultsOriginal[0] << std::endl;
552094332d3Sopenharmony_ci
553094332d3Sopenharmony_ci    // Get the parameter tag currently supported by the device again
554094332d3Sopenharmony_ci    std::vector<OHOS::Camera::MetaType> results;
555094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->GetEnabledReuslts(results);
556094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
557094332d3Sopenharmony_ci}
558094332d3Sopenharmony_ci
559094332d3Sopenharmony_ci/**
560094332d3Sopenharmony_ci  * @tc.name: EnableResult
561094332d3Sopenharmony_ci  * @tc.desc: DisableResult all tag, success.
562094332d3Sopenharmony_ci  * @tc.level: Level1
563094332d3Sopenharmony_ci  * @tc.size: MediumTest
564094332d3Sopenharmony_ci  * @tc.type: Function
565094332d3Sopenharmony_ci  */
566094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0101)
567094332d3Sopenharmony_ci{
568094332d3Sopenharmony_ci    std::cout << "==========[test log] DisableResult all tag, success." << std::endl;
569094332d3Sopenharmony_ci    // Get the parameter tag currently supported by the device
570094332d3Sopenharmony_ci    std::vector<OHOS::Camera::MetaType> resultsOriginal;
571094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->GetEnabledReuslts(resultsOriginal);
572094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
573094332d3Sopenharmony_ci
574094332d3Sopenharmony_ci    // Disable all tags
575094332d3Sopenharmony_ci    std::cout << "then, disable the tag..." << std::endl;
576094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->DisableResult(resultsOriginal);
577094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
578094332d3Sopenharmony_ci
579094332d3Sopenharmony_ci    // Get the parameter tag currently supported by the device again
580094332d3Sopenharmony_ci    std::vector<OHOS::Camera::MetaType> results;
581094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->GetEnabledReuslts(results);
582094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
583094332d3Sopenharmony_ci}
584094332d3Sopenharmony_ci
585094332d3Sopenharmony_ci/**
586094332d3Sopenharmony_ci  * @tc.name: EnableResult
587094332d3Sopenharmony_ci  * @tc.desc: DisableResult error tag, expected fail.
588094332d3Sopenharmony_ci  * @tc.level: Level1
589094332d3Sopenharmony_ci  * @tc.size: MediumTest
590094332d3Sopenharmony_ci  * @tc.type: Function
591094332d3Sopenharmony_ci  */
592094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0102)
593094332d3Sopenharmony_ci{
594094332d3Sopenharmony_ci    std::cout << "==========[test log] DisableResult error tag, expected fail." << std::endl;
595094332d3Sopenharmony_ci    // Get the parameter tag currently supported by the device
596094332d3Sopenharmony_ci    std::vector<OHOS::Camera::MetaType> resultsOriginal;
597094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->GetEnabledReuslts(resultsOriginal);
598094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
599094332d3Sopenharmony_ci
600094332d3Sopenharmony_ci    // disable a tag
601094332d3Sopenharmony_ci    std::vector<OHOS::Camera::MetaType> disableTag;
602094332d3Sopenharmony_ci    disableTag.push_back(0);
603094332d3Sopenharmony_ci    std::cout << "then, disenable the tag..." << std::endl;
604094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->DisableResult(disableTag);
605094332d3Sopenharmony_ci    std::cout << "==========[test log] rc = " << cameraBase->rc << std::endl;
606094332d3Sopenharmony_ci    EXPECT_EQ(false, cameraBase->rc == NO_ERROR);
607094332d3Sopenharmony_ci
608094332d3Sopenharmony_ci    // Get the parameter tag currently supported by the device again
609094332d3Sopenharmony_ci    std::vector<OHOS::Camera::MetaType> results;
610094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->cameraDevice->GetEnabledReuslts(results);
611094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
612094332d3Sopenharmony_ci}
613094332d3Sopenharmony_ci
614094332d3Sopenharmony_ci/**
615094332d3Sopenharmony_ci  * @tc.name: Close
616094332d3Sopenharmony_ci  * @tc.desc: Close the device.
617094332d3Sopenharmony_ci  * @tc.level: Level1
618094332d3Sopenharmony_ci  * @tc.size: MediumTest
619094332d3Sopenharmony_ci  * @tc.type: Function
620094332d3Sopenharmony_ci  */
621094332d3Sopenharmony_ciTEST_F(UtestHdiTest, camera_hdi_0110)
622094332d3Sopenharmony_ci{
623094332d3Sopenharmony_ci    std::cout << "==========[test log] Close the device." << std::endl;
624094332d3Sopenharmony_ci    EXPECT_EQ(false, cameraBase->cameraDevice == nullptr);
625094332d3Sopenharmony_ci    if (cameraBase->cameraDevice != nullptr) {
626094332d3Sopenharmony_ci        cameraBase->cameraDevice->Close();
627094332d3Sopenharmony_ci        std::cout << "==========[test log] cameraBase->cameraDevice->Close()." << std::endl;
628094332d3Sopenharmony_ci        cameraBase->cameraDevice = nullptr;
629094332d3Sopenharmony_ci    }
630094332d3Sopenharmony_ci}