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#include "hdi_iter_test.h"
16094332d3Sopenharmony_ci
17094332d3Sopenharmony_ciconstexpr int ITEM_CAPACITY_SIZE = 2;
18094332d3Sopenharmony_ciconstexpr int DATA_CAPACITY_SIZE = 128;
19094332d3Sopenharmony_ci
20094332d3Sopenharmony_civoid UtestHdiIterTest::SetUpTestCase(void)
21094332d3Sopenharmony_ci{}
22094332d3Sopenharmony_civoid UtestHdiIterTest::TearDownTestCase(void)
23094332d3Sopenharmony_ci{}
24094332d3Sopenharmony_civoid UtestHdiIterTest::SetUp(void)
25094332d3Sopenharmony_ci{
26094332d3Sopenharmony_ci    if (cameraBase == nullptr)
27094332d3Sopenharmony_ci    cameraBase = std::make_shared<TestCameraBase>();
28094332d3Sopenharmony_ci    cameraBase->FBInit();
29094332d3Sopenharmony_ci    cameraBase->Init();
30094332d3Sopenharmony_ci}
31094332d3Sopenharmony_civoid UtestHdiIterTest::TearDown(void)
32094332d3Sopenharmony_ci{
33094332d3Sopenharmony_ci    cameraBase->Close();
34094332d3Sopenharmony_ci}
35094332d3Sopenharmony_ci
36094332d3Sopenharmony_ci/**
37094332d3Sopenharmony_ci  * @tc.name: CreateStreams
38094332d3Sopenharmony_ci  * @tc.desc: CreateStreams, success.
39094332d3Sopenharmony_ci  * @tc.level: Level1
40094332d3Sopenharmony_ci  * @tc.size: MediumTest
41094332d3Sopenharmony_ci  * @tc.type: Function
42094332d3Sopenharmony_ci  */
43094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0130)
44094332d3Sopenharmony_ci{
45094332d3Sopenharmony_ci    std::cout << "==========[test log] CreateStreams, success." << std::endl;
46094332d3Sopenharmony_ci    // Create and get streamOperator information
47094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
48094332d3Sopenharmony_ci    // Create data stream
49094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
50094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
51094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
52094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
53094332d3Sopenharmony_ci    }
54094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
55094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
56094332d3Sopenharmony_ci        return;
57094332d3Sopenharmony_ci    };
58094332d3Sopenharmony_ci    producer->SetCallback(callback);
59094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
60094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
61094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
62094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
63094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 480; // 480:picture height
64094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
65094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
66094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = PREVIEW;
67094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
68094332d3Sopenharmony_ci    cameraBase->streamInfo->bufferQueue_ = producer;
69094332d3Sopenharmony_ci    streamInfos.push_back(cameraBase->streamInfo);
70094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
71094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
72094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
73094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
74094332d3Sopenharmony_ci    } else {
75094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
76094332d3Sopenharmony_ci    }
77094332d3Sopenharmony_ci    // release stream
78094332d3Sopenharmony_ci    std::vector<int> streamIds;
79094332d3Sopenharmony_ci    streamIds.push_back(cameraBase->streamInfo->streamId_);
80094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->ReleaseStreams(streamIds);
81094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
82094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
83094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams success." << std::endl;
84094332d3Sopenharmony_ci    } else {
85094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams fail, rc = " << cameraBase->rc << std::endl;
86094332d3Sopenharmony_ci    }
87094332d3Sopenharmony_ci}
88094332d3Sopenharmony_ci
89094332d3Sopenharmony_ci/**
90094332d3Sopenharmony_ci  * @tc.name: CreateStreams
91094332d3Sopenharmony_ci  * @tc.desc: CreateStreams, StreamInfo->streamId = -1, return error.
92094332d3Sopenharmony_ci  * @tc.level: Level2
93094332d3Sopenharmony_ci  * @tc.size: MediumTest
94094332d3Sopenharmony_ci  * @tc.type: Function
95094332d3Sopenharmony_ci  */
96094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0131)
97094332d3Sopenharmony_ci{
98094332d3Sopenharmony_ci    std::cout << "==========[test log] CreateStreams, StreamInfo->streamId = -1, return error." << std::endl;
99094332d3Sopenharmony_ci    // Create and get streamOperator information
100094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
101094332d3Sopenharmony_ci    // Create data stream
102094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
103094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
104094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
105094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
106094332d3Sopenharmony_ci    }
107094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
108094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
109094332d3Sopenharmony_ci        return;
110094332d3Sopenharmony_ci    };
111094332d3Sopenharmony_ci    producer->SetCallback(callback);
112094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
113094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
114094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = -1;
115094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
116094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 480; // 480:picture height
117094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
118094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
119094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = PREVIEW;
120094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
121094332d3Sopenharmony_ci    cameraBase->streamInfo->bufferQueue_ = producer;
122094332d3Sopenharmony_ci    streamInfos.push_back(cameraBase->streamInfo);
123094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
124094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
125094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
126094332d3Sopenharmony_ci    } else {
127094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
128094332d3Sopenharmony_ci    }
129094332d3Sopenharmony_ci    std::cout << "streamOperator->CreateStreams's RetCode = " << cameraBase->rc << std::endl;
130094332d3Sopenharmony_ci    EXPECT_EQ(INVALID_ARGUMENT, cameraBase->rc);
131094332d3Sopenharmony_ci}
132094332d3Sopenharmony_ci
133094332d3Sopenharmony_ci/**
134094332d3Sopenharmony_ci  * @tc.name: CreateStreams
135094332d3Sopenharmony_ci  * @tc.desc: CreateStreams, StreamInfo->streamId = 2147483647, return success.
136094332d3Sopenharmony_ci  * @tc.level: Level2
137094332d3Sopenharmony_ci  * @tc.size: MediumTest
138094332d3Sopenharmony_ci  * @tc.type: Function
139094332d3Sopenharmony_ci  */
140094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0132)
141094332d3Sopenharmony_ci{
142094332d3Sopenharmony_ci    std::cout << "==========[test log] CreateStreams,";
143094332d3Sopenharmony_ci    std::cout << "StreamInfo->streamId = 2147483647, return success." << std::endl;
144094332d3Sopenharmony_ci    // Create and get streamOperator information
145094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
146094332d3Sopenharmony_ci    // Create data stream
147094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
148094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
149094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
150094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
151094332d3Sopenharmony_ci    }
152094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
153094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
154094332d3Sopenharmony_ci        return;
155094332d3Sopenharmony_ci    };
156094332d3Sopenharmony_ci    producer->SetCallback(callback);
157094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
158094332d3Sopenharmony_ci    std::shared_ptr<StreamInfo> streamInfo = std::make_shared<StreamInfo>();
159094332d3Sopenharmony_ci    streamInfo->streamId_ = INVALID_VALUE_TEST;
160094332d3Sopenharmony_ci    streamInfo->width_ = 640; // 640:picture width
161094332d3Sopenharmony_ci    streamInfo->height_ = 480; // 480:picture height
162094332d3Sopenharmony_ci    streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
163094332d3Sopenharmony_ci    streamInfo->dataspace_ = 8; // 8:picture dataspace
164094332d3Sopenharmony_ci    streamInfo->intent_ = PREVIEW;
165094332d3Sopenharmony_ci    streamInfo->tunneledMode_ = 5; // 5:tunnel mode
166094332d3Sopenharmony_ci    streamInfo->bufferQueue_ = producer;
167094332d3Sopenharmony_ci
168094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>>().swap(streamInfos);
169094332d3Sopenharmony_ci    streamInfos.push_back(streamInfo);
170094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
171094332d3Sopenharmony_ci    std::cout << "streamOperator->CreateStreams's RetCode = " << cameraBase->rc << std::endl;
172094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
173094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
174094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
175094332d3Sopenharmony_ci    } else {
176094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
177094332d3Sopenharmony_ci    }
178094332d3Sopenharmony_ci}
179094332d3Sopenharmony_ci
180094332d3Sopenharmony_ci/**
181094332d3Sopenharmony_ci  * @tc.name: CreateStreams
182094332d3Sopenharmony_ci  * @tc.desc: CreateStreams, StreamInfo->width = -1, return error.
183094332d3Sopenharmony_ci  * @tc.level: Level2
184094332d3Sopenharmony_ci  * @tc.size: MediumTest
185094332d3Sopenharmony_ci  * @tc.type: Function
186094332d3Sopenharmony_ci  */
187094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0133)
188094332d3Sopenharmony_ci{
189094332d3Sopenharmony_ci    std::cout << "==========[test log] CreateStreams, StreamInfo->width = -1, return error." << std::endl;
190094332d3Sopenharmony_ci    // Create and get streamOperator information
191094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
192094332d3Sopenharmony_ci    // Create data stream
193094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
194094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
195094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
196094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
197094332d3Sopenharmony_ci    }
198094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
199094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
200094332d3Sopenharmony_ci        return;
201094332d3Sopenharmony_ci    };
202094332d3Sopenharmony_ci    producer->SetCallback(callback);
203094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
204094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
205094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
206094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = -1;
207094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 640; // 640:picture height
208094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
209094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
210094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = PREVIEW;
211094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
212094332d3Sopenharmony_ci    cameraBase->streamInfo->bufferQueue_ = producer;
213094332d3Sopenharmony_ci    streamInfos.push_back(cameraBase->streamInfo);
214094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
215094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
216094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
217094332d3Sopenharmony_ci    } else {
218094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
219094332d3Sopenharmony_ci    }
220094332d3Sopenharmony_ci    std::cout << "streamOperator->CreateStreams's RetCode = " << cameraBase->rc << std::endl;
221094332d3Sopenharmony_ci    EXPECT_EQ(INVALID_ARGUMENT, cameraBase->rc);
222094332d3Sopenharmony_ci}
223094332d3Sopenharmony_ci
224094332d3Sopenharmony_ci/**
225094332d3Sopenharmony_ci  * @tc.name: CreateStreams
226094332d3Sopenharmony_ci  * @tc.desc: CreateStreams, StreamInfo->width = 2147483647, success.
227094332d3Sopenharmony_ci  * @tc.level: Level2
228094332d3Sopenharmony_ci  * @tc.size: MediumTest
229094332d3Sopenharmony_ci  * @tc.type: Function
230094332d3Sopenharmony_ci  */
231094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0134)
232094332d3Sopenharmony_ci{
233094332d3Sopenharmony_ci    std::cout << "==========[test log] CreateStreams, StreamInfo->width = 2147483647, success." << std::endl;
234094332d3Sopenharmony_ci    // Create and get streamOperator information
235094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
236094332d3Sopenharmony_ci    // Create data stream
237094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
238094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
239094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
240094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
241094332d3Sopenharmony_ci    }
242094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
243094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
244094332d3Sopenharmony_ci        return;
245094332d3Sopenharmony_ci    };
246094332d3Sopenharmony_ci    producer->SetCallback(callback);
247094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
248094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
249094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
250094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = INVALID_VALUE_TEST;
251094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 480; // 480:picture height
252094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
253094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
254094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = PREVIEW;
255094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
256094332d3Sopenharmony_ci    cameraBase->streamInfo->bufferQueue_ = producer;
257094332d3Sopenharmony_ci    streamInfos.push_back(cameraBase->streamInfo);
258094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
259094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
260094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
261094332d3Sopenharmony_ci    } else {
262094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
263094332d3Sopenharmony_ci    }
264094332d3Sopenharmony_ci    std::cout << "streamOperator->CreateStreams's RetCode = " << cameraBase->rc << std::endl;
265094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
266094332d3Sopenharmony_ci    // release stream
267094332d3Sopenharmony_ci    std::vector<int> streamIds;
268094332d3Sopenharmony_ci    streamIds.push_back(cameraBase->streamInfo->streamId_);
269094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->ReleaseStreams(streamIds);
270094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
271094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
272094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams success." << std::endl;
273094332d3Sopenharmony_ci    } else {
274094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams fail, rc = " << cameraBase->rc << std::endl;
275094332d3Sopenharmony_ci    }
276094332d3Sopenharmony_ci}
277094332d3Sopenharmony_ci
278094332d3Sopenharmony_ci/**
279094332d3Sopenharmony_ci  * @tc.name: CreateStreams
280094332d3Sopenharmony_ci  * @tc.desc: CreateStreams, StreamInfo->height = -1, return error.
281094332d3Sopenharmony_ci  * @tc.level: Level2
282094332d3Sopenharmony_ci  * @tc.size: MediumTest
283094332d3Sopenharmony_ci  * @tc.type: Function
284094332d3Sopenharmony_ci  */
285094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0135)
286094332d3Sopenharmony_ci{
287094332d3Sopenharmony_ci    std::cout << "==========[test log] CreateStreams, StreamInfo->height = -1, return error." << std::endl;
288094332d3Sopenharmony_ci    // Create and get streamOperator information
289094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
290094332d3Sopenharmony_ci    // Create data stream
291094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
292094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
293094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
294094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
295094332d3Sopenharmony_ci    }
296094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
297094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
298094332d3Sopenharmony_ci        return;
299094332d3Sopenharmony_ci    };
300094332d3Sopenharmony_ci    producer->SetCallback(callback);
301094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
302094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
303094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
304094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
305094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = -1;
306094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
307094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
308094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = PREVIEW;
309094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
310094332d3Sopenharmony_ci    cameraBase->streamInfo->bufferQueue_ = producer;
311094332d3Sopenharmony_ci    streamInfos.push_back(cameraBase->streamInfo);
312094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
313094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
314094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
315094332d3Sopenharmony_ci    } else {
316094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
317094332d3Sopenharmony_ci    }
318094332d3Sopenharmony_ci    std::cout << "streamOperator->CreateStreams's RetCode = " << cameraBase->rc << std::endl;
319094332d3Sopenharmony_ci    EXPECT_EQ(INVALID_ARGUMENT, cameraBase->rc);
320094332d3Sopenharmony_ci}
321094332d3Sopenharmony_ci
322094332d3Sopenharmony_ci/**
323094332d3Sopenharmony_ci  * @tc.name: CreateStreams
324094332d3Sopenharmony_ci  * @tc.desc: CreateStreams, StreamInfo->height = 2147483647, success.
325094332d3Sopenharmony_ci  * @tc.level: Level2
326094332d3Sopenharmony_ci  * @tc.size: MediumTest
327094332d3Sopenharmony_ci  * @tc.type: Function
328094332d3Sopenharmony_ci  */
329094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0136)
330094332d3Sopenharmony_ci{
331094332d3Sopenharmony_ci    std::cout << "==========[test log] CreateStreams, StreamInfo->height = 2147483647, success." << std::endl;
332094332d3Sopenharmony_ci    // Create and get streamOperator information
333094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
334094332d3Sopenharmony_ci    // Create data stream
335094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
336094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
337094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
338094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
339094332d3Sopenharmony_ci    }
340094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
341094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
342094332d3Sopenharmony_ci        return;
343094332d3Sopenharmony_ci    };
344094332d3Sopenharmony_ci    producer->SetCallback(callback);
345094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
346094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
347094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
348094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
349094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = INVALID_VALUE_TEST;
350094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
351094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
352094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = PREVIEW;
353094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
354094332d3Sopenharmony_ci    cameraBase->streamInfo->bufferQueue_ = producer;
355094332d3Sopenharmony_ci    streamInfos.push_back(cameraBase->streamInfo);
356094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
357094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
358094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
359094332d3Sopenharmony_ci    } else {
360094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
361094332d3Sopenharmony_ci    }
362094332d3Sopenharmony_ci    std::cout << "streamOperator->CreateStreams's RetCode = " << cameraBase->rc << std::endl;
363094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
364094332d3Sopenharmony_ci}
365094332d3Sopenharmony_ci
366094332d3Sopenharmony_ci/**
367094332d3Sopenharmony_ci  * @tc.name: CreateStreams
368094332d3Sopenharmony_ci  * @tc.desc: CreateStreams, StreamInfo->format = -1, return error.
369094332d3Sopenharmony_ci  * @tc.level: Level2
370094332d3Sopenharmony_ci  * @tc.size: MediumTest
371094332d3Sopenharmony_ci  * @tc.type: Function
372094332d3Sopenharmony_ci  */
373094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0137)
374094332d3Sopenharmony_ci{
375094332d3Sopenharmony_ci    std::cout << "==========[test log] CreateStreams, StreamInfo->format = -1, return error." << std::endl;
376094332d3Sopenharmony_ci    // Create and get streamOperator information
377094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
378094332d3Sopenharmony_ci    // Create data stream
379094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
380094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
381094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
382094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
383094332d3Sopenharmony_ci    }
384094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
385094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
386094332d3Sopenharmony_ci        return;
387094332d3Sopenharmony_ci    };
388094332d3Sopenharmony_ci    producer->SetCallback(callback);
389094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
390094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
391094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
392094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
393094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 480; // 480:picture height
394094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = -1;
395094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
396094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = PREVIEW;
397094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
398094332d3Sopenharmony_ci    cameraBase->streamInfo->bufferQueue_ = producer;
399094332d3Sopenharmony_ci    streamInfos.push_back(cameraBase->streamInfo);
400094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
401094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
402094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
403094332d3Sopenharmony_ci    } else {
404094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
405094332d3Sopenharmony_ci    }
406094332d3Sopenharmony_ci    std::cout << "streamOperator->CreateStreams's RetCode = " << cameraBase->rc << std::endl;
407094332d3Sopenharmony_ci    EXPECT_EQ(INVALID_ARGUMENT, cameraBase->rc);
408094332d3Sopenharmony_ci}
409094332d3Sopenharmony_ci
410094332d3Sopenharmony_ci/**
411094332d3Sopenharmony_ci  * @tc.name: CreateStreams
412094332d3Sopenharmony_ci  * @tc.desc: CreateStreams, StreamInfo->format = 2147483647, success.
413094332d3Sopenharmony_ci  * @tc.level: Level2
414094332d3Sopenharmony_ci  * @tc.size: MediumTest
415094332d3Sopenharmony_ci  * @tc.type: Function
416094332d3Sopenharmony_ci  */
417094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0138)
418094332d3Sopenharmony_ci{
419094332d3Sopenharmony_ci    std::cout << "==========[test log] CreateStreams, StreamInfo->format = 2147483647, success." << std::endl;
420094332d3Sopenharmony_ci    // Create and get streamOperator information
421094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
422094332d3Sopenharmony_ci    // Create data stream
423094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
424094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
425094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
426094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
427094332d3Sopenharmony_ci    }
428094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
429094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
430094332d3Sopenharmony_ci        return;
431094332d3Sopenharmony_ci    };
432094332d3Sopenharmony_ci    producer->SetCallback(callback);
433094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
434094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
435094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
436094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
437094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 480; // 480:picture height
438094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = INVALID_VALUE_TEST;
439094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
440094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = PREVIEW;
441094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
442094332d3Sopenharmony_ci    cameraBase->streamInfo->bufferQueue_ = producer;
443094332d3Sopenharmony_ci    streamInfos.push_back(cameraBase->streamInfo);
444094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
445094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
446094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
447094332d3Sopenharmony_ci    } else {
448094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
449094332d3Sopenharmony_ci    }
450094332d3Sopenharmony_ci    std::cout << "streamOperator->CreateStreams's RetCode = " << cameraBase->rc << std::endl;
451094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
452094332d3Sopenharmony_ci    // release stream
453094332d3Sopenharmony_ci    std::vector<int> streamIds;
454094332d3Sopenharmony_ci    streamIds.push_back(cameraBase->streamInfo->streamId_);
455094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->ReleaseStreams(streamIds);
456094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
457094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams success." << std::endl;
458094332d3Sopenharmony_ci    } else {
459094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams fail, rc = " << cameraBase->rc << std::endl;
460094332d3Sopenharmony_ci    }
461094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
462094332d3Sopenharmony_ci}
463094332d3Sopenharmony_ci
464094332d3Sopenharmony_ci/**
465094332d3Sopenharmony_ci  * @tc.name: CreateStreams
466094332d3Sopenharmony_ci  * @tc.desc: CreateStreams, StreamInfo->dataspace = -1, return error.
467094332d3Sopenharmony_ci  * @tc.level: Level2
468094332d3Sopenharmony_ci  * @tc.size: MediumTest
469094332d3Sopenharmony_ci  * @tc.type: Function
470094332d3Sopenharmony_ci  */
471094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0139)
472094332d3Sopenharmony_ci{
473094332d3Sopenharmony_ci    std::cout << "==========[test log] CreateStreams, StreamInfo->dataspace = -1, return error." << std::endl;
474094332d3Sopenharmony_ci    // Create and get streamOperator information
475094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
476094332d3Sopenharmony_ci    // Create data stream
477094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
478094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
479094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
480094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
481094332d3Sopenharmony_ci    }
482094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
483094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
484094332d3Sopenharmony_ci        return;
485094332d3Sopenharmony_ci    };
486094332d3Sopenharmony_ci    producer->SetCallback(callback);
487094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
488094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
489094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
490094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
491094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 480; // 480:picture height
492094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
493094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = -1;
494094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = PREVIEW;
495094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
496094332d3Sopenharmony_ci    cameraBase->streamInfo->bufferQueue_ = producer;
497094332d3Sopenharmony_ci    streamInfos.push_back(cameraBase->streamInfo);
498094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
499094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
500094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
501094332d3Sopenharmony_ci    } else {
502094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
503094332d3Sopenharmony_ci    }
504094332d3Sopenharmony_ci    std::cout << "streamOperator->CreateStreams's RetCode = " << cameraBase->rc << std::endl;
505094332d3Sopenharmony_ci    EXPECT_EQ(INVALID_ARGUMENT, cameraBase->rc);
506094332d3Sopenharmony_ci}
507094332d3Sopenharmony_ci
508094332d3Sopenharmony_ci/**
509094332d3Sopenharmony_ci  * @tc.name: CreateStreams
510094332d3Sopenharmony_ci  * @tc.desc: CreateStreams, StreamInfo->dataspace = 2147483647, success.
511094332d3Sopenharmony_ci  * @tc.level: Level2
512094332d3Sopenharmony_ci  * @tc.size: MediumTest
513094332d3Sopenharmony_ci  * @tc.type: Function
514094332d3Sopenharmony_ci  */
515094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0140)
516094332d3Sopenharmony_ci{
517094332d3Sopenharmony_ci    std::cout << "==========[test log] CreateStreams,";
518094332d3Sopenharmony_ci    std::cout << "StreamInfo->dataspace = 2147483647, success." << std::endl;
519094332d3Sopenharmony_ci    // Create and get streamOperator information
520094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
521094332d3Sopenharmony_ci    // Create data stream
522094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
523094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
524094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
525094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
526094332d3Sopenharmony_ci    }
527094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
528094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
529094332d3Sopenharmony_ci        return;
530094332d3Sopenharmony_ci    };
531094332d3Sopenharmony_ci    producer->SetCallback(callback);
532094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
533094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
534094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
535094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
536094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 480; // 480:picture height
537094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
538094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = INVALID_VALUE_TEST;
539094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = PREVIEW;
540094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
541094332d3Sopenharmony_ci    cameraBase->streamInfo->bufferQueue_ = producer;
542094332d3Sopenharmony_ci    streamInfos.push_back(cameraBase->streamInfo);
543094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
544094332d3Sopenharmony_ci    std::cout << "streamOperator->CreateStreams's RetCode = " << cameraBase->rc << std::endl;
545094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
546094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
547094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
548094332d3Sopenharmony_ci    } else {
549094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
550094332d3Sopenharmony_ci    }
551094332d3Sopenharmony_ci    // release stream
552094332d3Sopenharmony_ci    std::vector<int> streamIds;
553094332d3Sopenharmony_ci    streamIds.push_back(cameraBase->streamInfo->streamId_);
554094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->ReleaseStreams(streamIds);
555094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
556094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
557094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams success." << std::endl;
558094332d3Sopenharmony_ci    } else {
559094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams fail, rc = " << cameraBase->rc << std::endl;
560094332d3Sopenharmony_ci    }
561094332d3Sopenharmony_ci}
562094332d3Sopenharmony_ci
563094332d3Sopenharmony_ci/**
564094332d3Sopenharmony_ci  * @tc.name: CreateStreams
565094332d3Sopenharmony_ci  * @tc.desc: CreateStreams, StreamInfo->StreamIntent = PREVIEW, success.
566094332d3Sopenharmony_ci  * @tc.level: Level2
567094332d3Sopenharmony_ci  * @tc.size: MediumTest
568094332d3Sopenharmony_ci  * @tc.type: Function
569094332d3Sopenharmony_ci  */
570094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0141)
571094332d3Sopenharmony_ci{
572094332d3Sopenharmony_ci    std::cout << "==========[test log] CreateStreams,";
573094332d3Sopenharmony_ci    std::cout << "StreamInfo->StreamIntent = PREVIEW, success." << std::endl;
574094332d3Sopenharmony_ci    // Create and get streamOperator information
575094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
576094332d3Sopenharmony_ci    // Create data stream
577094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
578094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
579094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
580094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
581094332d3Sopenharmony_ci    }
582094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
583094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
584094332d3Sopenharmony_ci        return;
585094332d3Sopenharmony_ci    };
586094332d3Sopenharmony_ci    producer->SetCallback(callback);
587094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
588094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
589094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
590094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
591094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 1080; // 1080:picture height
592094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
593094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
594094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = PREVIEW;
595094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
596094332d3Sopenharmony_ci    cameraBase->streamInfo->bufferQueue_ = producer;
597094332d3Sopenharmony_ci    streamInfos.push_back(cameraBase->streamInfo);
598094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
599094332d3Sopenharmony_ci    std::cout << "streamOperator->CreateStreams's RetCode = " << cameraBase->rc << std::endl;
600094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
601094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
602094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
603094332d3Sopenharmony_ci    } else {
604094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
605094332d3Sopenharmony_ci    }
606094332d3Sopenharmony_ci    // release stream
607094332d3Sopenharmony_ci    std::vector<int> streamIds;
608094332d3Sopenharmony_ci    streamIds.push_back(cameraBase->streamInfo->streamId_);
609094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->ReleaseStreams(streamIds);
610094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
611094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams success." << std::endl;
612094332d3Sopenharmony_ci    } else {
613094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams fail, rc = " << cameraBase->rc << std::endl;
614094332d3Sopenharmony_ci    }
615094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
616094332d3Sopenharmony_ci}
617094332d3Sopenharmony_ci
618094332d3Sopenharmony_ci/**
619094332d3Sopenharmony_ci  * @tc.name: CreateStreams
620094332d3Sopenharmony_ci  * @tc.desc: CreateStreams, StreamInfo->StreamIntent = VIDEO, success.
621094332d3Sopenharmony_ci  * @tc.level: Level2
622094332d3Sopenharmony_ci  * @tc.size: MediumTest
623094332d3Sopenharmony_ci  * @tc.type: Function
624094332d3Sopenharmony_ci  */
625094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0142)
626094332d3Sopenharmony_ci{
627094332d3Sopenharmony_ci    std::cout << "==========[test log] CreateStreams,";
628094332d3Sopenharmony_ci    std::cout << "StreamInfo->StreamIntent = VIDEO, success." << std::endl;
629094332d3Sopenharmony_ci    // Create and get streamOperator information
630094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
631094332d3Sopenharmony_ci    // Create data stream1080
632094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
633094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
634094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
635094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
636094332d3Sopenharmony_ci    }
637094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
638094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->video_mode);
639094332d3Sopenharmony_ci        return;
640094332d3Sopenharmony_ci    };
641094332d3Sopenharmony_ci    producer->SetCallback(callback);
642094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
643094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
644094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
645094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
646094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 1080; // 1080:picture height
647094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
648094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
649094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = VIDEO;
650094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
651094332d3Sopenharmony_ci    cameraBase->streamInfo->bufferQueue_ = producer;
652094332d3Sopenharmony_ci    streamInfos.push_back(cameraBase->streamInfo);
653094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
654094332d3Sopenharmony_ci    std::cout << "streamOperator->CreateStreams's RetCode = " << cameraBase->rc << std::endl;
655094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
656094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
657094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
658094332d3Sopenharmony_ci    } else {
659094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
660094332d3Sopenharmony_ci    }
661094332d3Sopenharmony_ci    // release stream
662094332d3Sopenharmony_ci    std::vector<int> streamIds;
663094332d3Sopenharmony_ci    streamIds.push_back(cameraBase->streamInfo->streamId_);
664094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->ReleaseStreams(streamIds);
665094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
666094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
667094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams success." << std::endl;
668094332d3Sopenharmony_ci    } else {
669094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams fail, rc = " << cameraBase->rc << std::endl;
670094332d3Sopenharmony_ci    }
671094332d3Sopenharmony_ci}
672094332d3Sopenharmony_ci
673094332d3Sopenharmony_ci/**
674094332d3Sopenharmony_ci  * @tc.name: CreateStreams
675094332d3Sopenharmony_ci  * @tc.desc: CreateStreams, StreamInfo->StreamIntent = STILL_CAPTURE, success.
676094332d3Sopenharmony_ci  * @tc.level: Level2
677094332d3Sopenharmony_ci  * @tc.size: MediumTest
678094332d3Sopenharmony_ci  * @tc.type: Function
679094332d3Sopenharmony_ci  */
680094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0143)
681094332d3Sopenharmony_ci{
682094332d3Sopenharmony_ci    std::cout << "==========[test log] CreateStreams,";
683094332d3Sopenharmony_ci    std::cout << "StreamInfo->StreamIntent = STILL_CAPTURE, success." << std::endl;
684094332d3Sopenharmony_ci    // Create and get streamOperator information
685094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
686094332d3Sopenharmony_ci    // Create data stream
687094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
688094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
689094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
690094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
691094332d3Sopenharmony_ci    }
692094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
693094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->capture_mode);
694094332d3Sopenharmony_ci        return;
695094332d3Sopenharmony_ci    };
696094332d3Sopenharmony_ci    producer->SetCallback(callback);
697094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
698094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
699094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
700094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
701094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 1080; // 1080:picture height
702094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
703094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
704094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = STILL_CAPTURE;
705094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
706094332d3Sopenharmony_ci    cameraBase->streamInfo->bufferQueue_ = producer;
707094332d3Sopenharmony_ci    streamInfos.push_back(cameraBase->streamInfo);
708094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
709094332d3Sopenharmony_ci    std::cout << "streamOperator->CreateStreams's RetCode = " << cameraBase->rc << std::endl;
710094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
711094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
712094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
713094332d3Sopenharmony_ci    } else {
714094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
715094332d3Sopenharmony_ci    }
716094332d3Sopenharmony_ci    // release stream
717094332d3Sopenharmony_ci    std::vector<int> streamIds;
718094332d3Sopenharmony_ci    streamIds.push_back(cameraBase->streamInfo->streamId_);
719094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->ReleaseStreams(streamIds);
720094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
721094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
722094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams success." << std::endl;
723094332d3Sopenharmony_ci    } else {
724094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams fail, rc = " << cameraBase->rc << std::endl;
725094332d3Sopenharmony_ci    }
726094332d3Sopenharmony_ci}
727094332d3Sopenharmony_ci
728094332d3Sopenharmony_ci/**
729094332d3Sopenharmony_ci  * @tc.name: CreateStreams
730094332d3Sopenharmony_ci  * @tc.desc: CreateStreams, StreamInfo->StreamIntent = POST_VIEW;, success.
731094332d3Sopenharmony_ci  * @tc.level: Level2
732094332d3Sopenharmony_ci  * @tc.size: MediumTest
733094332d3Sopenharmony_ci  * @tc.type: Function
734094332d3Sopenharmony_ci  */
735094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0144)
736094332d3Sopenharmony_ci{
737094332d3Sopenharmony_ci    std::cout << "==========[test log] CreateStreams,";
738094332d3Sopenharmony_ci    std::cout << "StreamInfo->StreamIntent = POST_VIEW;, success." << std::endl;
739094332d3Sopenharmony_ci    // Create and get streamOperator information
740094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
741094332d3Sopenharmony_ci    // Create data stream
742094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
743094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
744094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
745094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
746094332d3Sopenharmony_ci    }
747094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
748094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
749094332d3Sopenharmony_ci        return;
750094332d3Sopenharmony_ci    };
751094332d3Sopenharmony_ci    producer->SetCallback(callback);
752094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
753094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
754094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
755094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
756094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 1080; // 1080:picture height
757094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
758094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
759094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = POST_VIEW;
760094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
761094332d3Sopenharmony_ci    cameraBase->streamInfo->bufferQueue_ = producer;
762094332d3Sopenharmony_ci    streamInfos.push_back(cameraBase->streamInfo);
763094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
764094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
765094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
766094332d3Sopenharmony_ci    } else {
767094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
768094332d3Sopenharmony_ci    }
769094332d3Sopenharmony_ci    std::cout << "streamOperator->CreateStreams's RetCode = " << cameraBase->rc << std::endl;
770094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
771094332d3Sopenharmony_ci    // release stream
772094332d3Sopenharmony_ci    std::vector<int> streamIds;
773094332d3Sopenharmony_ci    streamIds.push_back(cameraBase->streamInfo->streamId_);
774094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->ReleaseStreams(streamIds);
775094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
776094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
777094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams success." << std::endl;
778094332d3Sopenharmony_ci    } else {
779094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams fail, rc = " << cameraBase->rc << std::endl;
780094332d3Sopenharmony_ci    }
781094332d3Sopenharmony_ci}
782094332d3Sopenharmony_ci
783094332d3Sopenharmony_ci/**
784094332d3Sopenharmony_ci  * @tc.name: CreateStreams
785094332d3Sopenharmony_ci  * @tc.desc: CreateStreams, StreamInfo->StreamIntent = ANALYZE;, success.
786094332d3Sopenharmony_ci  * @tc.level: Level2
787094332d3Sopenharmony_ci  * @tc.size: MediumTest
788094332d3Sopenharmony_ci  * @tc.type: Function
789094332d3Sopenharmony_ci  */
790094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0145)
791094332d3Sopenharmony_ci{
792094332d3Sopenharmony_ci    std::cout << "==========[test log] CreateStreams,";
793094332d3Sopenharmony_ci    std::cout << "StreamInfo->StreamIntent = ANALYZE;, success." << std::endl;
794094332d3Sopenharmony_ci    // Create and get streamOperator information
795094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
796094332d3Sopenharmony_ci    // Create data stream
797094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
798094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
799094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
800094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
801094332d3Sopenharmony_ci    }
802094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
803094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
804094332d3Sopenharmony_ci        return;
805094332d3Sopenharmony_ci    };
806094332d3Sopenharmony_ci    producer->SetCallback(callback);
807094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
808094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
809094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
810094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
811094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 1080; // 1080:picture height
812094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
813094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
814094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = ANALYZE;
815094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
816094332d3Sopenharmony_ci    cameraBase->streamInfo->bufferQueue_ = producer;
817094332d3Sopenharmony_ci    streamInfos.push_back(cameraBase->streamInfo);
818094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
819094332d3Sopenharmony_ci    std::cout << "streamOperator->CreateStreams's RetCode = " << cameraBase->rc << std::endl;
820094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
821094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
822094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
823094332d3Sopenharmony_ci    } else {
824094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
825094332d3Sopenharmony_ci    }
826094332d3Sopenharmony_ci    // release stream
827094332d3Sopenharmony_ci    std::vector<int> streamIds;
828094332d3Sopenharmony_ci    streamIds.push_back(cameraBase->streamInfo->streamId_);
829094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->ReleaseStreams(streamIds);
830094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
831094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
832094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams success." << std::endl;
833094332d3Sopenharmony_ci    } else {
834094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams fail, rc = " << cameraBase->rc << std::endl;
835094332d3Sopenharmony_ci    }
836094332d3Sopenharmony_ci}
837094332d3Sopenharmony_ci
838094332d3Sopenharmony_ci/**
839094332d3Sopenharmony_ci  * @tc.name: CreateStreams
840094332d3Sopenharmony_ci  * @tc.desc: CreateStreams, StreamInfo->StreamIntent = Camera::CUSTOM;, not support.
841094332d3Sopenharmony_ci  * @tc.level: Level2
842094332d3Sopenharmony_ci  * @tc.size: MediumTest
843094332d3Sopenharmony_ci  * @tc.type: Function
844094332d3Sopenharmony_ci  */
845094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0146)
846094332d3Sopenharmony_ci{
847094332d3Sopenharmony_ci    std::cout << "==========[test log] CreateStreams,";
848094332d3Sopenharmony_ci    std::cout << "StreamInfo->StreamIntent = Camera::CUSTOM;, success." << std::endl;
849094332d3Sopenharmony_ci    // Create and get streamOperator information
850094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
851094332d3Sopenharmony_ci    // Create data stream
852094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
853094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
854094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
855094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
856094332d3Sopenharmony_ci    }
857094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
858094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
859094332d3Sopenharmony_ci        return;
860094332d3Sopenharmony_ci    };
861094332d3Sopenharmony_ci    producer->SetCallback(callback);
862094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
863094332d3Sopenharmony_ci    std::shared_ptr<StreamInfo> streamInfo = std::make_shared<StreamInfo>();
864094332d3Sopenharmony_ci    streamInfo->streamId_ = DEFAULT_STREAM_ID;
865094332d3Sopenharmony_ci    streamInfo->width_ = 640; // 640:picture width
866094332d3Sopenharmony_ci    streamInfo->height_ = 480; // 480:picture height
867094332d3Sopenharmony_ci    streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
868094332d3Sopenharmony_ci    streamInfo->dataspace_ = 8; // 8:picture dataspace
869094332d3Sopenharmony_ci    streamInfo->intent_ = Camera::CUSTOM;
870094332d3Sopenharmony_ci    streamInfo->tunneledMode_ = 5; // 5:tunnel mode
871094332d3Sopenharmony_ci    streamInfo->bufferQueue_ = producer;
872094332d3Sopenharmony_ci
873094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>>().swap(streamInfos);
874094332d3Sopenharmony_ci    streamInfos.push_back(streamInfo);
875094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
876094332d3Sopenharmony_ci    std::cout << "streamOperator->CreateStreams's RetCode = " << cameraBase->rc << std::endl;
877094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc != NO_ERROR);
878094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
879094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
880094332d3Sopenharmony_ci    } else {
881094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
882094332d3Sopenharmony_ci    }
883094332d3Sopenharmony_ci}
884094332d3Sopenharmony_ci
885094332d3Sopenharmony_ci/**
886094332d3Sopenharmony_ci  * @tc.name: CreateStreams
887094332d3Sopenharmony_ci  * @tc.desc: CreateStreams, StreamInfo->tunneledMode = false, success.
888094332d3Sopenharmony_ci  * @tc.level: Level2
889094332d3Sopenharmony_ci  * @tc.size: MediumTest
890094332d3Sopenharmony_ci  * @tc.type: Function
891094332d3Sopenharmony_ci  */
892094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0147)
893094332d3Sopenharmony_ci{
894094332d3Sopenharmony_ci    std::cout << "==========[test log] CreateStreams,";
895094332d3Sopenharmony_ci    std::cout << "StreamInfo->tunneledMode = false, success." << std::endl;
896094332d3Sopenharmony_ci    // Create and get streamOperator information
897094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
898094332d3Sopenharmony_ci    // Create data stream
899094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
900094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
901094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
902094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
903094332d3Sopenharmony_ci    }
904094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
905094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
906094332d3Sopenharmony_ci        return;
907094332d3Sopenharmony_ci    };
908094332d3Sopenharmony_ci    producer->SetCallback(callback);
909094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
910094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
911094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
912094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
913094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 1080; // 1080:picture height
914094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
915094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
916094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = Camera::CUSTOM;
917094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = false;
918094332d3Sopenharmony_ci    cameraBase->streamInfo->bufferQueue_ = producer;
919094332d3Sopenharmony_ci    streamInfos.push_back(cameraBase->streamInfo);
920094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
921094332d3Sopenharmony_ci    std::cout << "streamOperator->CreateStreams's RetCode = " << cameraBase->rc << std::endl;
922094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == Camera::METHOD_NOT_SUPPORTED);
923094332d3Sopenharmony_ci    if (cameraBase->rc == Camera::METHOD_NOT_SUPPORTED) {
924094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail." << std::endl;
925094332d3Sopenharmony_ci    } else {
926094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success"<< std::endl;
927094332d3Sopenharmony_ci    }
928094332d3Sopenharmony_ci}
929094332d3Sopenharmony_ci
930094332d3Sopenharmony_ci/**
931094332d3Sopenharmony_ci  * @tc.name: CreateStreams
932094332d3Sopenharmony_ci  * @tc.desc: CreateStreams, StreamInfo->minFrameDuration = -1, return error.
933094332d3Sopenharmony_ci  * @tc.level: Level2
934094332d3Sopenharmony_ci  * @tc.size: MediumTest
935094332d3Sopenharmony_ci  * @tc.type: Function
936094332d3Sopenharmony_ci  */
937094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0148)
938094332d3Sopenharmony_ci{
939094332d3Sopenharmony_ci    std::cout << "==========[test log] CreateStreams,";
940094332d3Sopenharmony_ci    std::cout << "StreamInfo->minFrameDuration = -1, return error." << std::endl;
941094332d3Sopenharmony_ci    // Create and get streamOperator information
942094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
943094332d3Sopenharmony_ci    // Create data stream
944094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
945094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
946094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
947094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
948094332d3Sopenharmony_ci    }
949094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
950094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
951094332d3Sopenharmony_ci        return;
952094332d3Sopenharmony_ci    };
953094332d3Sopenharmony_ci    producer->SetCallback(callback);
954094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
955094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
956094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
957094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
958094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 1080; // 1080:picture height
959094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
960094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
961094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = Camera::CUSTOM;
962094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 0;
963094332d3Sopenharmony_ci    cameraBase->streamInfo->minFrameDuration_ = -1;
964094332d3Sopenharmony_ci    cameraBase->streamInfo->bufferQueue_ = producer;
965094332d3Sopenharmony_ci    streamInfos.push_back(cameraBase->streamInfo);
966094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
967094332d3Sopenharmony_ci    std::cout << "streamOperator->CreateStreams's RetCode = " << cameraBase->rc << std::endl;
968094332d3Sopenharmony_ci    EXPECT_EQ(INVALID_ARGUMENT, cameraBase->rc);
969094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
970094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
971094332d3Sopenharmony_ci    } else {
972094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
973094332d3Sopenharmony_ci    }
974094332d3Sopenharmony_ci}
975094332d3Sopenharmony_ci
976094332d3Sopenharmony_ci/**
977094332d3Sopenharmony_ci  * @tc.name: CreateStreams
978094332d3Sopenharmony_ci  * @tc.desc: CreateStreams, StreamInfo->minFrameDuration = 2147483647, fail.
979094332d3Sopenharmony_ci  * @tc.level: Level2
980094332d3Sopenharmony_ci  * @tc.size: MediumTest
981094332d3Sopenharmony_ci  * @tc.type: Function
982094332d3Sopenharmony_ci  */
983094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0149)
984094332d3Sopenharmony_ci{
985094332d3Sopenharmony_ci    std::cout << "==========[test log] CreateStreams,";
986094332d3Sopenharmony_ci    std::cout << "StreamInfo->minFrameDuration = 2147483647, success." << std::endl;
987094332d3Sopenharmony_ci    // Create and get streamOperator information
988094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
989094332d3Sopenharmony_ci    // Create data stream
990094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
991094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
992094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
993094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
994094332d3Sopenharmony_ci    }
995094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
996094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
997094332d3Sopenharmony_ci        return;
998094332d3Sopenharmony_ci    };
999094332d3Sopenharmony_ci    producer->SetCallback(callback);
1000094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
1001094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
1002094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
1003094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
1004094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 480; // 480:picture height
1005094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
1006094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
1007094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = PREVIEW;
1008094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 0;
1009094332d3Sopenharmony_ci    cameraBase->streamInfo->minFrameDuration_ = INVALID_VALUE_TEST;
1010094332d3Sopenharmony_ci    cameraBase->streamInfo->bufferQueue_ = producer;
1011094332d3Sopenharmony_ci    streamInfos.push_back(cameraBase->streamInfo);
1012094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
1013094332d3Sopenharmony_ci    std::cout << "streamOperator->CreateStreams's RetCode = " << cameraBase->rc << std::endl;
1014094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == Camera::METHOD_NOT_SUPPORTED);
1015094332d3Sopenharmony_ci    if (cameraBase->rc == Camera::METHOD_NOT_SUPPORTED) {
1016094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail." << std::endl;
1017094332d3Sopenharmony_ci    } else {
1018094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success, rc = " << cameraBase->rc << std::endl;
1019094332d3Sopenharmony_ci    }
1020094332d3Sopenharmony_ci}
1021094332d3Sopenharmony_ci
1022094332d3Sopenharmony_ci/**
1023094332d3Sopenharmony_ci  * @tc.name: ReleaseStreams
1024094332d3Sopenharmony_ci  * @tc.desc: ReleaseStreams,streamID normal.
1025094332d3Sopenharmony_ci  * @tc.level: Level1
1026094332d3Sopenharmony_ci  * @tc.size: MediumTest
1027094332d3Sopenharmony_ci  * @tc.type: Function
1028094332d3Sopenharmony_ci  */
1029094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0160)
1030094332d3Sopenharmony_ci{
1031094332d3Sopenharmony_ci    std::cout << "==========[test log] ReleaseStreams,streamID normal." << std::endl;
1032094332d3Sopenharmony_ci    // Create and get streamOperator information
1033094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
1034094332d3Sopenharmony_ci    // Create data stream
1035094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
1036094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
1037094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
1038094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
1039094332d3Sopenharmony_ci    }
1040094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
1041094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
1042094332d3Sopenharmony_ci        return;
1043094332d3Sopenharmony_ci    };
1044094332d3Sopenharmony_ci    producer->SetCallback(callback);
1045094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
1046094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
1047094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
1048094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
1049094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 480; // 480:picture height
1050094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
1051094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
1052094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = PREVIEW;
1053094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
1054094332d3Sopenharmony_ci    cameraBase->streamInfo->bufferQueue_ = producer;
1055094332d3Sopenharmony_ci    streamInfos.push_back(cameraBase->streamInfo);
1056094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
1057094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
1058094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
1059094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
1060094332d3Sopenharmony_ci    } else {
1061094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
1062094332d3Sopenharmony_ci    }
1063094332d3Sopenharmony_ci    // release stream
1064094332d3Sopenharmony_ci    std::vector<int> streamIds;
1065094332d3Sopenharmony_ci    streamIds.push_back(cameraBase->streamInfo->streamId_);
1066094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->ReleaseStreams(streamIds);
1067094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
1068094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
1069094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams success." << std::endl;
1070094332d3Sopenharmony_ci    } else {
1071094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams fail, rc = " << cameraBase->rc << std::endl;
1072094332d3Sopenharmony_ci    }
1073094332d3Sopenharmony_ci}
1074094332d3Sopenharmony_ci
1075094332d3Sopenharmony_ci/**
1076094332d3Sopenharmony_ci  * @tc.name: ReleaseStreams
1077094332d3Sopenharmony_ci  * @tc.desc: ReleaseStreams-> streamID = -1, expected success.
1078094332d3Sopenharmony_ci  * @tc.level: Level2
1079094332d3Sopenharmony_ci  * @tc.size: MediumTest
1080094332d3Sopenharmony_ci  * @tc.type: Function
1081094332d3Sopenharmony_ci  */
1082094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0161)
1083094332d3Sopenharmony_ci{
1084094332d3Sopenharmony_ci    std::cout << "==========[test log] ReleaseStreams-> streamID = -1, expected success." << std::endl;
1085094332d3Sopenharmony_ci    // Create and get streamOperator information
1086094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
1087094332d3Sopenharmony_ci    // Create data stream
1088094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
1089094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
1090094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
1091094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
1092094332d3Sopenharmony_ci    }
1093094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
1094094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
1095094332d3Sopenharmony_ci        return;
1096094332d3Sopenharmony_ci    };
1097094332d3Sopenharmony_ci    producer->SetCallback(callback);
1098094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
1099094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
1100094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
1101094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
1102094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 480; // 480:picture height
1103094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
1104094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
1105094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = PREVIEW;
1106094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
1107094332d3Sopenharmony_ci    cameraBase->streamInfo->bufferQueue_ = producer;
1108094332d3Sopenharmony_ci    streamInfos.push_back(cameraBase->streamInfo);
1109094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
1110094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
1111094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
1112094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
1113094332d3Sopenharmony_ci    } else {
1114094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
1115094332d3Sopenharmony_ci    }
1116094332d3Sopenharmony_ci    // Distribution stream
1117094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CommitStreams(Camera::NORMAL, nullptr);
1118094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
1119094332d3Sopenharmony_ci    // Get preview
1120094332d3Sopenharmony_ci    int captureId = 2001;
1121094332d3Sopenharmony_ci    std::shared_ptr<CaptureInfo> captureInfo = std::make_shared<CaptureInfo>();
1122094332d3Sopenharmony_ci    captureInfo->streamIds_ = {DEFAULT_STREAM_ID};
1123094332d3Sopenharmony_ci    captureInfo->enableShutterCallback_ = false;
1124094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->Capture(captureId, captureInfo, true);
1125094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
1126094332d3Sopenharmony_ci    sleep(3); // waiting 3s, prepare for execute function CancelCapture
1127094332d3Sopenharmony_ci    cameraBase->streamOperator->CancelCapture(captureId);
1128094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
1129094332d3Sopenharmony_ci
1130094332d3Sopenharmony_ci    // release stream
1131094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->ReleaseStreams({-1});
1132094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
1133094332d3Sopenharmony_ci    std::cout << "streamOperator->ReleaseStreams's RetCode = " << cameraBase->rc << std::endl;
1134094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
1135094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams success." << std::endl;
1136094332d3Sopenharmony_ci    } else {
1137094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams fail, rc = " << cameraBase->rc << std::endl;
1138094332d3Sopenharmony_ci    }
1139094332d3Sopenharmony_ci}
1140094332d3Sopenharmony_ci
1141094332d3Sopenharmony_ci/**
1142094332d3Sopenharmony_ci  * @tc.name: CommitStreams
1143094332d3Sopenharmony_ci  * @tc.desc: CommitStreams, input normal.
1144094332d3Sopenharmony_ci  * @tc.level: Level1
1145094332d3Sopenharmony_ci  * @tc.size: MediumTest
1146094332d3Sopenharmony_ci  * @tc.type: Function
1147094332d3Sopenharmony_ci  */
1148094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0170)
1149094332d3Sopenharmony_ci{
1150094332d3Sopenharmony_ci    std::cout << "==========[test log] CommitStreams, input normal." << std::endl;
1151094332d3Sopenharmony_ci    // Create and get streamOperator information
1152094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
1153094332d3Sopenharmony_ci    // Create data stream
1154094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
1155094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
1156094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
1157094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
1158094332d3Sopenharmony_ci    }
1159094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
1160094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
1161094332d3Sopenharmony_ci        return;
1162094332d3Sopenharmony_ci    };
1163094332d3Sopenharmony_ci    producer->SetCallback(callback);
1164094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
1165094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
1166094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
1167094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
1168094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 480; // 480:picture height
1169094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
1170094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
1171094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = PREVIEW;
1172094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
1173094332d3Sopenharmony_ci    cameraBase->streamInfo->bufferQueue_ = producer;
1174094332d3Sopenharmony_ci    streamInfos.push_back(cameraBase->streamInfo);
1175094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
1176094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
1177094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
1178094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
1179094332d3Sopenharmony_ci    } else {
1180094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
1181094332d3Sopenharmony_ci    }
1182094332d3Sopenharmony_ci
1183094332d3Sopenharmony_ci    std::shared_ptr<CameraMetadata> modeSetting =
1184094332d3Sopenharmony_ci        std::make_shared<CameraMetadata>(ITEM_CAPACITY_SIZE, DATA_CAPACITY_SIZE);
1185094332d3Sopenharmony_ci    // Distribution stream
1186094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CommitStreams(Camera::NORMAL, modeSetting);
1187094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
1188094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
1189094332d3Sopenharmony_ci        std::cout << "==========[test log] CommitStreams success." << std::endl;
1190094332d3Sopenharmony_ci    } else {
1191094332d3Sopenharmony_ci        std::cout << "==========[test log] CommitStreams fail, rc = " << cameraBase->rc << std::endl;
1192094332d3Sopenharmony_ci    }
1193094332d3Sopenharmony_ci}
1194094332d3Sopenharmony_ci
1195094332d3Sopenharmony_ci/**
1196094332d3Sopenharmony_ci  * @tc.name: CommitStreams
1197094332d3Sopenharmony_ci  * @tc.desc: CommitStreams, modeSetting is nullptr.
1198094332d3Sopenharmony_ci  * @tc.level: Level1
1199094332d3Sopenharmony_ci  * @tc.size: MediumTest
1200094332d3Sopenharmony_ci  * @tc.type: Function
1201094332d3Sopenharmony_ci  */
1202094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0171)
1203094332d3Sopenharmony_ci{
1204094332d3Sopenharmony_ci    std::cout << "==========[test log] CommitStreams, input normal." << std::endl;
1205094332d3Sopenharmony_ci    // Create and get streamOperator information
1206094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
1207094332d3Sopenharmony_ci    // Create data stream
1208094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
1209094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
1210094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
1211094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
1212094332d3Sopenharmony_ci    }
1213094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
1214094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
1215094332d3Sopenharmony_ci        return;
1216094332d3Sopenharmony_ci    };
1217094332d3Sopenharmony_ci    producer->SetCallback(callback);
1218094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
1219094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
1220094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
1221094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
1222094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 480; // 480:picture height
1223094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
1224094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
1225094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = PREVIEW;
1226094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
1227094332d3Sopenharmony_ci    cameraBase->streamInfo->bufferQueue_ = producer;
1228094332d3Sopenharmony_ci    streamInfos.push_back(cameraBase->streamInfo);
1229094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
1230094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
1231094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
1232094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
1233094332d3Sopenharmony_ci    } else {
1234094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
1235094332d3Sopenharmony_ci    }
1236094332d3Sopenharmony_ci    std::shared_ptr<CameraMetadata> modeSetting = nullptr;
1237094332d3Sopenharmony_ci
1238094332d3Sopenharmony_ci    // Distribution stream
1239094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CommitStreams(Camera::NORMAL, modeSetting);
1240094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
1241094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
1242094332d3Sopenharmony_ci        std::cout << "==========[test log] CommitStreams success." << std::endl;
1243094332d3Sopenharmony_ci    } else {
1244094332d3Sopenharmony_ci        std::cout << "==========[test log] CommitStreams fail, rc = " << cameraBase->rc << std::endl;
1245094332d3Sopenharmony_ci    }
1246094332d3Sopenharmony_ci    // Get preview
1247094332d3Sopenharmony_ci    int captureId = 2001;
1248094332d3Sopenharmony_ci    std::shared_ptr<CaptureInfo> captureInfo = std::make_shared<CaptureInfo>();
1249094332d3Sopenharmony_ci    captureInfo->streamIds_ = {DEFAULT_STREAM_ID};
1250094332d3Sopenharmony_ci    captureInfo->enableShutterCallback_ = false;
1251094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->Capture(captureId, captureInfo, true);
1252094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
1253094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
1254094332d3Sopenharmony_ci        std::cout << "==========[test log] Capture success." << std::endl;
1255094332d3Sopenharmony_ci    } else {
1256094332d3Sopenharmony_ci        std::cout << "==========[test log] Capture fail, rc = " << cameraBase->rc << std::endl;
1257094332d3Sopenharmony_ci    }
1258094332d3Sopenharmony_ci    sleep(3); // waiting 3s, prepare for execute function CancelCapture
1259094332d3Sopenharmony_ci    cameraBase->streamOperator->CancelCapture(captureId);
1260094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
1261094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
1262094332d3Sopenharmony_ci        std::cout << "==========[test log] CancelCapture success." << std::endl;
1263094332d3Sopenharmony_ci    } else {
1264094332d3Sopenharmony_ci        std::cout << "==========[test log] CancelCapture fail, rc = " << cameraBase->rc << std::endl;
1265094332d3Sopenharmony_ci    }
1266094332d3Sopenharmony_ci    // release stream
1267094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->ReleaseStreams(captureInfo->streamIds_);
1268094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
1269094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
1270094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams success." << std::endl;
1271094332d3Sopenharmony_ci    } else {
1272094332d3Sopenharmony_ci        std::cout << "==========[test log] ReleaseStreams fail, rc = " << cameraBase->rc << std::endl;
1273094332d3Sopenharmony_ci    }
1274094332d3Sopenharmony_ci    // Turn off the device
1275094332d3Sopenharmony_ci    cameraBase->cameraDevice->Close();
1276094332d3Sopenharmony_ci    std::cout << "==========[test log] cameraDevice->Close" << std::endl;
1277094332d3Sopenharmony_ci}
1278094332d3Sopenharmony_ci
1279094332d3Sopenharmony_ci/**
1280094332d3Sopenharmony_ci  * @tc.name: GetStreamAttributes
1281094332d3Sopenharmony_ci  * @tc.desc: GetStreamAttributes, success.
1282094332d3Sopenharmony_ci  * @tc.level: Level1
1283094332d3Sopenharmony_ci  * @tc.size: MediumTest
1284094332d3Sopenharmony_ci  * @tc.type: Function
1285094332d3Sopenharmony_ci  */
1286094332d3Sopenharmony_ciTEST_F(UtestHdiIterTest, camera_hdi_0180)
1287094332d3Sopenharmony_ci{
1288094332d3Sopenharmony_ci    std::cout << "==========[test log] GetStreamAttributes, success." << std::endl;
1289094332d3Sopenharmony_ci    // Create and get streamOperator information
1290094332d3Sopenharmony_ci    cameraBase->AchieveStreamOperator();
1291094332d3Sopenharmony_ci    // Create data stream
1292094332d3Sopenharmony_ci    std::shared_ptr<IBufferProducer> producer = IBufferProducer::CreateBufferQueue();
1293094332d3Sopenharmony_ci    producer->SetQueueSize(8); // 8:set bufferQueue size
1294094332d3Sopenharmony_ci    if (producer->GetQueueSize() != 8) { // 8:get bufferQueue size
1295094332d3Sopenharmony_ci        std::cout << "~~~~~~~" << std::endl;
1296094332d3Sopenharmony_ci    }
1297094332d3Sopenharmony_ci    auto callback = [this](std::shared_ptr<SurfaceBuffer> b) {
1298094332d3Sopenharmony_ci        cameraBase->BufferCallback(b, cameraBase->preview_mode);
1299094332d3Sopenharmony_ci        return;
1300094332d3Sopenharmony_ci    };
1301094332d3Sopenharmony_ci    producer->SetCallback(callback);
1302094332d3Sopenharmony_ci    std::vector<std::shared_ptr<StreamInfo>> streamInfos;
1303094332d3Sopenharmony_ci    cameraBase->streamInfo = std::make_shared<StreamInfo>();
1304094332d3Sopenharmony_ci    cameraBase->streamInfo->streamId_ = DEFAULT_STREAM_ID;
1305094332d3Sopenharmony_ci    cameraBase->streamInfo->width_ = 640; // 640:picture width
1306094332d3Sopenharmony_ci    cameraBase->streamInfo->height_ = 480; // 480:picture height
1307094332d3Sopenharmony_ci    cameraBase->streamInfo->format_ = CAMERA_FORMAT_YUYV_422_PKG;
1308094332d3Sopenharmony_ci    cameraBase->streamInfo->dataspace_ = 8; // 8:picture dataspace
1309094332d3Sopenharmony_ci    cameraBase->streamInfo->intent_ = PREVIEW;
1310094332d3Sopenharmony_ci    cameraBase->streamInfo->tunneledMode_ = 5; // 5:tunnel mode
1311094332d3Sopenharmony_ci    cameraBase->streamInfo->bufferQueue_ = producer;
1312094332d3Sopenharmony_ci    streamInfos.push_back(cameraBase->streamInfo);
1313094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CreateStreams(streamInfos);
1314094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
1315094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
1316094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams success." << std::endl;
1317094332d3Sopenharmony_ci    } else {
1318094332d3Sopenharmony_ci        std::cout << "==========[test log] CreateStreams fail, rc = " << cameraBase->rc << std::endl;
1319094332d3Sopenharmony_ci    }
1320094332d3Sopenharmony_ci    std::shared_ptr<CameraMetadata> modeSetting = nullptr;
1321094332d3Sopenharmony_ci
1322094332d3Sopenharmony_ci    // Distribution stream
1323094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->CommitStreams(Camera::NORMAL, modeSetting);
1324094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
1325094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
1326094332d3Sopenharmony_ci        std::cout << "==========[test log] CommitStreams success." << std::endl;
1327094332d3Sopenharmony_ci    } else {
1328094332d3Sopenharmony_ci        std::cout << "==========[test log] CommitStreams fail, rc = " << cameraBase->rc << std::endl;
1329094332d3Sopenharmony_ci    }
1330094332d3Sopenharmony_ci
1331094332d3Sopenharmony_ci    std::vector<std::shared_ptr<OHOS::Camera::StreamAttribute>> attributes;
1332094332d3Sopenharmony_ci    cameraBase->rc = cameraBase->streamOperator->GetStreamAttributes(attributes);
1333094332d3Sopenharmony_ci    EXPECT_EQ(true, cameraBase->rc == NO_ERROR);
1334094332d3Sopenharmony_ci    std::cout << "==========[test log] GetStreamAttributes, rc = " << cameraBase->rc << std::endl;
1335094332d3Sopenharmony_ci    if (cameraBase->rc == NO_ERROR) {
1336094332d3Sopenharmony_ci        std::cout << "==========[test log] GetStreamAttributes success." << std::endl;
1337094332d3Sopenharmony_ci    } else {
1338094332d3Sopenharmony_ci        std::cout << "==========[test log] GetStreamAttributes fail, rc = " << cameraBase->rc << std::endl;
1339094332d3Sopenharmony_ci    }
1340094332d3Sopenharmony_ci}