• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file expected in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #include "hdi_stream_uttest.h"
16 
17 using namespace OHOS;
18 using namespace std;
19 using namespace testing::ext;
20 using namespace OHOS::Camera;
21 
SetUpTestCase(void)22 void HdiStreamUtTest::SetUpTestCase(void) {}
TearDownTestCase(void)23 void HdiStreamUtTest::TearDownTestCase(void) {}
SetUp(void)24 void HdiStreamUtTest::SetUp(void)
25 {
26     cameraTest = std::make_shared<OHOS::Camera::Test>();
27     cameraTest->Init();
28 }
29 
TearDown(void)30 void HdiStreamUtTest::TearDown(void)
31 {
32     cameraTest->Close();
33 }
34 
35 /**
36  * @tc.name: IsStreamSupported
37  * @tc.desc: IsStreamSupported, normal cameraId
38  * @tc.size: MediumTest
39  * @tc.type: Function
40  */
41 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0330, TestSize.Level0)
42 {
43     cameraTest->Open();
44     EXPECT_EQ(false, cameraTest->cameraDevice == nullptr);
45     cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
46     cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
47         cameraTest->streamOperator);
48     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
49     std::shared_ptr<CameraMetadata> modeSetting = std::make_shared<CameraMetadata>(2, 128);
50     int64_t expoTime = 0;
51     modeSetting->addEntry(OHOS_SENSOR_EXPOSURE_TIME, &expoTime, 1);
52     int64_t colorGains[4] = {0};
53     modeSetting->addEntry(OHOS_SENSOR_COLOR_CORRECTION_GAINS, &colorGains, 4);
54 
55     cameraTest->streamInfo = std::make_shared<StreamInfo>();
56     cameraTest->streamInfo->streamId_ = 101;
57     cameraTest->streamInfo->format_ = PIXEL_FMT_YCRCB_420_SP;
58     cameraTest->streamInfo->height_ = 480;
59     cameraTest->streamInfo->width_ = 640;
60     cameraTest->streamInfo->dataspace_ = 8;
61 
62     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> consumer =
63         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
__anon36294fde0102(void* addr, uint32_t size) 64     cameraTest->streamInfo->bufferQueue_ =  consumer->CreateProducerSeq([this](void* addr, uint32_t size) {
65         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
66     });
67 
68     cameraTest->streamInfo->bufferQueue_->producer_->SetQueueSize(8);
69     cameraTest->consumerMap_[cameraTest->streamInfo->intent_] = consumer;
70     cameraTest->streamInfo->intent_ = PREVIEW;
71     cameraTest->streamInfo->tunneledMode_ = 5;
72     StreamSupportType pType;
73     std::vector<StreamInfo> streams;
74     streams.push_back(*cameraTest->streamInfo);
75     std::vector<uint8_t> modeSettingVec;
76     MetadataUtils::ConvertMetadataToVec(modeSetting, modeSettingVec);
77     cameraTest->rc = cameraTest->streamOperator->IsStreamsSupported(OperationMode::NORMAL, modeSettingVec,
78         streams, pType);
79     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
80     EXPECT_EQ(true, pType ==HDI::Camera::V1_0::DYNAMIC_SUPPORTED);
81 }
82 
83 /**
84  * @tc.name: CreateStreams
85  * @tc.desc: CreateStreams, success
86  * @tc.size: MediumTest
87  * @tc.type: Function
88  */
89 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0340, TestSize.Level0)
90 {
91     cameraTest->Open();
92     cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
93     cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
94         cameraTest->streamOperator);
95     EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
96 
97     cameraTest->streamInfo = std::make_shared<StreamInfo>();
98     cameraTest->streamInfo->streamId_ = 101;
99     cameraTest->streamInfo->width_ = 640;
100     cameraTest->streamInfo->height_ = 480;
101     cameraTest->streamInfo->format_ = PIXEL_FMT_YCRCB_420_SP;
102     cameraTest->streamInfo->dataspace_ = 8;
103     cameraTest->streamInfo->intent_ = PREVIEW;
104     cameraTest->streamInfo->tunneledMode_ = 5;
105 
106     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> consumer =
107         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
__anon36294fde0202(void* addr, uint32_t size) 108     cameraTest->streamInfo->bufferQueue_ =  consumer->CreateProducerSeq([this](void* addr, uint32_t size) {
109         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
110     });
111 
112     cameraTest->consumerMap_[cameraTest->streamInfo->intent_] = consumer;
113     cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
114     cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
115     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
116 
117     std::vector<int> streamIds;
118     streamIds.push_back(cameraTest->streamInfo->streamId_);
119     cameraTest->rc = cameraTest->streamOperator->ReleaseStreams(streamIds);
120     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
121 }
122 
123 /**
124  * @tc.name: CreateStreams
125  * @tc.desc: CreateStreams, StreamInfo->streamId = -1, return error
126  * @tc.size: MediumTest
127  * @tc.type: Function
128  */
129 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0350, TestSize.Level0)
130 {
131     cameraTest->Open();
132     cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
133     cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
134         cameraTest->streamOperator);
135     EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
136 
137     cameraTest->streamInfo = std::make_shared<StreamInfo>();
138     cameraTest->streamInfo->streamId_ = -1;
139     cameraTest->streamInfo->width_ = 640;
140     cameraTest->streamInfo->height_ = 480;
141     cameraTest->streamInfo->format_ = PIXEL_FMT_YCRCB_420_SP;
142     cameraTest->streamInfo->dataspace_ = 8;
143     cameraTest->streamInfo->intent_ = PREVIEW;
144     cameraTest->streamInfo->tunneledMode_ = 5;
145 
146     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> consumer =
147         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
__anon36294fde0302(void* addr, uint32_t size) 148     cameraTest->streamInfo->bufferQueue_ =  consumer->CreateProducerSeq([this](void* addr, uint32_t size) {
149         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
150     });
151 
152     cameraTest->consumerMap_[cameraTest->streamInfo->intent_] = consumer;
153     cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
154     cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
155     EXPECT_EQ(cameraTest->rc, INVALID_ARGUMENT);
156 }
157 
158 /**
159  * @tc.name: CreateStreams
160  * @tc.desc: CreateStreams, StreamInfo->streamId = 2147483391, success
161  * @tc.size: MediumTest
162  * @tc.type: Function
163  */
164 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0360, TestSize.Level0)
165 {
166     cameraTest->Open();
167     cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
168     cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
169         cameraTest->streamOperator);
170     EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
171 
172     cameraTest->streamInfo = std::make_shared<StreamInfo>();
173     cameraTest->streamInfo->streamId_ = 2147483391;
174     cameraTest->streamInfo->width_ = 640;
175     cameraTest->streamInfo->height_ = 480;
176     cameraTest->streamInfo->format_ = PIXEL_FMT_YCRCB_420_SP;
177     cameraTest->streamInfo->dataspace_ = 8;
178     cameraTest->streamInfo->intent_ = PREVIEW;
179     cameraTest->streamInfo->tunneledMode_ = 5;
180 
181     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> consumer =
182         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
__anon36294fde0402(void* addr, uint32_t size) 183     cameraTest->streamInfo->bufferQueue_ =  consumer->CreateProducerSeq([this](void* addr, uint32_t size) {
184         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
185     });
186 
187     cameraTest->consumerMap_[cameraTest->streamInfo->intent_] = consumer;
188     cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
189     cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
190     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
191 
192     cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamInfo->streamId_});
193     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
194 }
195 
196 /**
197  * @tc.name: CreateStreams
198  * @tc.desc: CreateStreams, StreamInfo->width = -1, return error
199  * @tc.size: MediumTest
200  * @tc.type: Function
201  */
202 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0370, TestSize.Level0)
203 {
204     cameraTest->Open();
205     cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
206     cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
207         cameraTest->streamOperator);
208     EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
209 
210     cameraTest->streamInfo = std::make_shared<StreamInfo>();
211     cameraTest->streamInfo->streamId_ = 101;
212     cameraTest->streamInfo->width_ = -1;
213     cameraTest->streamInfo->height_ = 640;
214     cameraTest->streamInfo->format_ = PIXEL_FMT_YCRCB_420_SP;
215     cameraTest->streamInfo->dataspace_ = 8;
216     cameraTest->streamInfo->intent_ = PREVIEW;
217     cameraTest->streamInfo->tunneledMode_ = 5;
218 
219     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> consumer =
220         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
__anon36294fde0502(void* addr, uint32_t size) 221     cameraTest->streamInfo->bufferQueue_ =  consumer->CreateProducerSeq([this](void* addr, uint32_t size) {
222         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
223     });
224 
225     cameraTest->consumerMap_[cameraTest->streamInfo->intent_] = consumer;
226     cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
227     cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
228     EXPECT_EQ(cameraTest->rc, INVALID_ARGUMENT);
229 }
230 
231 /**
232  * @tc.name: CreateStreams
233  * @tc.desc: CreateStreams, StreamInfo->width = 2147483647, success
234  * @tc.size: MediumTest
235  * @tc.type: Function
236  */
237 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0380, TestSize.Level0)
238 {
239     cameraTest->Open();
240     cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
241     cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
242         cameraTest->streamOperator);
243     EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
244 
245     cameraTest->streamInfo = std::make_shared<StreamInfo>();
246     cameraTest->streamInfo->streamId_ = 101;
247     cameraTest->streamInfo->width_ = 2147483647;
248     cameraTest->streamInfo->height_ = 640;
249     cameraTest->streamInfo->format_ = PIXEL_FMT_YCRCB_420_SP;
250     cameraTest->streamInfo->dataspace_ = 8;
251     cameraTest->streamInfo->intent_ = PREVIEW;
252     cameraTest->streamInfo->tunneledMode_ = 5;
253 
254     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> consumer =
255         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
__anon36294fde0602(void* addr, uint32_t size) 256     cameraTest->streamInfo->bufferQueue_ =  consumer->CreateProducerSeq([this](void* addr, uint32_t size) {
257         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
258     });
259 
260     cameraTest->streamInfo->bufferQueue_->producer_->SetQueueSize(8);
261     cameraTest->consumerMap_[cameraTest->streamInfo->intent_] = consumer;
262     cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
263     cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
264     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
265 
266     cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamInfo->streamId_});
267     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
268 }
269 
270 /**
271  * @tc.name: CreateStreams
272  * @tc.desc: CreateStreams, StreamInfo->height = -1, success
273  * @tc.size: MediumTest
274  * @tc.type: Function
275  */
276 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0390, TestSize.Level0)
277 {
278     cameraTest->Open();
279     cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
280     cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
281         cameraTest->streamOperator);
282     EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
283 
284     cameraTest->streamInfo = std::make_shared<StreamInfo>();
285     cameraTest->streamInfo->streamId_ = 101;
286     cameraTest->streamInfo->width_ = 1920;
287     cameraTest->streamInfo->height_ = -1;
288     cameraTest->streamInfo->format_ = PIXEL_FMT_YCRCB_420_SP;
289     cameraTest->streamInfo->dataspace_ = 8;
290     cameraTest->streamInfo->intent_ = PREVIEW;
291     cameraTest->streamInfo->tunneledMode_ = 5;
292 
293     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> consumer =
294         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
__anon36294fde0702(void* addr, uint32_t size) 295     cameraTest->streamInfo->bufferQueue_ =  consumer->CreateProducerSeq([this](void* addr, uint32_t size) {
296         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
297     });
298 
299     cameraTest->streamInfo->bufferQueue_->producer_->SetQueueSize(8);
300     cameraTest->consumerMap_[cameraTest->streamInfo->intent_] = consumer;
301     cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
302     cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
303     EXPECT_EQ(cameraTest->rc, INVALID_ARGUMENT);
304 }
305 
306 /**
307  * @tc.name: CreateStreams
308  * @tc.desc: CreateStreams, StreamInfo->height = 2147483647, success
309  * @tc.size: MediumTest
310  * @tc.type: Function
311  */
312 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0400, TestSize.Level0)
313 {
314     cameraTest->Open();
315     cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
316     cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
317         cameraTest->streamOperator);
318     EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
319 
320     cameraTest->streamInfo = std::make_shared<StreamInfo>();
321     cameraTest->streamInfo->streamId_ = 101;
322     cameraTest->streamInfo->width_ = 1920;
323     cameraTest->streamInfo->height_ = 2147483647;
324     cameraTest->streamInfo->format_ = PIXEL_FMT_YCRCB_420_SP;
325     cameraTest->streamInfo->dataspace_ = 8;
326     cameraTest->streamInfo->intent_ = PREVIEW;
327     cameraTest->streamInfo->tunneledMode_ = 5;
328 
329     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> consumer =
330         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
__anon36294fde0802(void* addr, uint32_t size) 331     cameraTest->streamInfo->bufferQueue_ =  consumer->CreateProducerSeq([this](void* addr, uint32_t size) {
332         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
333     });
334 
335     cameraTest->streamInfo->bufferQueue_->producer_->SetQueueSize(8);
336     cameraTest->consumerMap_[cameraTest->streamInfo->intent_] = consumer;
337     cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
338     cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
339     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
340 
341     cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamInfo->streamId_});
342     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
343 }
344 
345 /**
346  * @tc.name: CreateStreams
347  * @tc.desc: CreateStreams, StreamInfo->format = 2147483647, success
348  * @tc.size: MediumTest
349  * @tc.type: Function
350  */
351 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0410, TestSize.Level0)
352 {
353     cameraTest->Open();
354     cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
355     cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
356         cameraTest->streamOperator);
357     EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
358 
359     cameraTest->streamInfo = std::make_shared<StreamInfo>();
360     cameraTest->streamInfo->streamId_ = 101;
361     cameraTest->streamInfo->width_ = 1920;
362     cameraTest->streamInfo->height_ = 1080;
363     cameraTest->streamInfo->format_ = 2147483647;
364     cameraTest->streamInfo->dataspace_ = 8;
365     cameraTest->streamInfo->intent_ = PREVIEW;
366     cameraTest->streamInfo->tunneledMode_ = 5;
367 
368     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> consumer =
369         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
__anon36294fde0902(void* addr, uint32_t size) 370     cameraTest->streamInfo->bufferQueue_ =  consumer->CreateProducerSeq([this](void* addr, uint32_t size) {
371         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
372     });
373 
374     cameraTest->streamInfo->bufferQueue_->producer_->SetQueueSize(8);
375     cameraTest->consumerMap_[cameraTest->streamInfo->intent_] = consumer;
376     cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
377     cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
378     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
379 
380     cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamInfo->streamId_});
381     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
382 }
383 
384 /**
385  * @tc.name: CreateStreams
386  * @tc.desc: CreateStreams, StreamInfo->dataspace = 2147483647, success
387  * @tc.size: MediumTest
388  * @tc.type: Function
389  */
390 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0420, TestSize.Level0)
391 {
392     cameraTest->Open();
393     cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
394     cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
395         cameraTest->streamOperator);
396     EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
397 
398     cameraTest->streamInfo = std::make_shared<StreamInfo>();
399     cameraTest->streamInfo->streamId_ = 101;
400     cameraTest->streamInfo->width_ = 1920;
401     cameraTest->streamInfo->height_ = 1080;
402     cameraTest->streamInfo->format_ = PIXEL_FMT_YCRCB_420_SP;
403     cameraTest->streamInfo->dataspace_ = 2147483647;
404     cameraTest->streamInfo->intent_ = PREVIEW;
405     cameraTest->streamInfo->tunneledMode_ = 5;
406 
407     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> consumer =
408         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
__anon36294fde0a02(void* addr, uint32_t size) 409     cameraTest->streamInfo->bufferQueue_ =  consumer->CreateProducerSeq([this](void* addr, uint32_t size) {
410         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
411     });
412 
413     cameraTest->streamInfo->bufferQueue_->producer_->SetQueueSize(8);
414     cameraTest->consumerMap_[cameraTest->streamInfo->intent_] = consumer;
415     cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
416     cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
417     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
418 
419     cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamInfo->streamId_});
420     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
421 }
422 
423 /**
424  * @tc.name: CreateStreams
425  * @tc.desc: CreateStreams, StreamInfo->StreamIntent = PREVIEW, success
426  * @tc.size: MediumTest
427  * @tc.type: Function
428  */
429 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0430, TestSize.Level0)
430 {
431     cameraTest->Open();
432     cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
433     cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
434         cameraTest->streamOperator);
435     EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
436 
437     cameraTest->streamInfo = std::make_shared<StreamInfo>();
438     cameraTest->streamInfo->streamId_ = 101;
439     cameraTest->streamInfo->width_ = 1920;
440     cameraTest->streamInfo->height_ = 1080;
441     cameraTest->streamInfo->format_ = PIXEL_FMT_YCRCB_420_SP;
442     cameraTest->streamInfo->dataspace_ = 8;
443     cameraTest->streamInfo->intent_ = PREVIEW;
444     cameraTest->streamInfo->tunneledMode_ = 5;
445 
446     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> consumer =
447         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
__anon36294fde0b02(void* addr, uint32_t size) 448     cameraTest->streamInfo->bufferQueue_ =  consumer->CreateProducerSeq([this](void* addr, uint32_t size) {
449         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
450     });
451 
452     cameraTest->consumerMap_[cameraTest->streamInfo->intent_] = consumer;
453     cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
454     cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
455     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
456 
457     cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamInfo->streamId_});
458     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
459 }
460 
461 /**
462  * @tc.name: CreateStreams
463  * @tc.desc: CreateStreams, StreamInfo->StreamIntent = VIDEO, success
464  * @tc.size: MediumTest
465  * @tc.type: Function
466  */
467 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0440, TestSize.Level0)
468 {
469     cameraTest->Open();
470     cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
471     cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
472         cameraTest->streamOperator);
473     EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
474 
475     cameraTest->streamInfo = std::make_shared<StreamInfo>();
476     cameraTest->streamInfo->streamId_ = 101;
477     cameraTest->streamInfo->width_ = 1920;
478     cameraTest->streamInfo->height_ = 1080;
479     cameraTest->streamInfo->format_ = PIXEL_FMT_YCRCB_420_SP;
480     cameraTest->streamInfo->dataspace_ = 8;
481     cameraTest->streamInfo->intent_ = VIDEO;
482     cameraTest->streamInfo->tunneledMode_ = 5;
483     cameraTest->streamInfo->encodeType_ = ENCODE_TYPE_H265;
484 
485     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> consumer =
486         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
__anon36294fde0c02(void* addr, uint32_t size) 487     cameraTest->streamInfo->bufferQueue_ =  consumer->CreateProducerSeq([this](void* addr, uint32_t size) {
488         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
489     });
490 
491     cameraTest->streamInfo->bufferQueue_->producer_->SetQueueSize(8);
492     cameraTest->consumerMap_[cameraTest->streamInfo->intent_] = consumer;
493     cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
494     cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
495     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
496 
497     cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamInfo->streamId_});
498     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
499 }
500 
501 /**
502  * @tc.name: CreateStreams
503  * @tc.desc: CreateStreams, StreamInfo->StreamIntent = STILL_CAPTURE, success
504  * @tc.size: MediumTest
505  * @tc.type: Function
506  */
507 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0450, TestSize.Level0)
508 {
509     cameraTest->Open();
510     cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
511     cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
512         cameraTest->streamOperator);
513     EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
514 
515     cameraTest->streamInfo = std::make_shared<StreamInfo>();
516     cameraTest->streamInfo->streamId_ = 101;
517     cameraTest->streamInfo->width_ = 1920;
518     cameraTest->streamInfo->height_ = 1080;
519     cameraTest->streamInfo->format_ = PIXEL_FMT_YCRCB_420_SP;
520     cameraTest->streamInfo->dataspace_ = 8;
521     cameraTest->streamInfo->intent_ = STILL_CAPTURE;
522     cameraTest->streamInfo->tunneledMode_ = 5;
523     cameraTest->streamInfo->encodeType_ = ENCODE_TYPE_NULL;
524 
525     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> consumer =
526         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
__anon36294fde0d02(void* addr, uint32_t size) 527     cameraTest->streamInfo->bufferQueue_ =  consumer->CreateProducerSeq([this](void* addr, uint32_t size) {
528         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
529     });
530 
531     cameraTest->streamInfo->bufferQueue_->producer_->SetQueueSize(8);
532     cameraTest->consumerMap_[cameraTest->streamInfo->intent_] = consumer;
533     cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
534     cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
535     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
536 
537     cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamInfo->streamId_});
538     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
539 }
540 
541 /**
542  * @tc.name: CreateStreams
543  * @tc.desc: CreateStreams, StreamInfo->StreamIntent = POST_VIEW, success
544  * @tc.size: MediumTest
545  * @tc.type: Function
546  */
547 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0460, TestSize.Level0)
548 {
549     cameraTest->Open();
550     cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
551     cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
552         cameraTest->streamOperator);
553     EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
554 
555     cameraTest->streamInfo = std::make_shared<StreamInfo>();
556     cameraTest->streamInfo->streamId_ = 101;
557     cameraTest->streamInfo->width_ = 1920;
558     cameraTest->streamInfo->height_ = 1080;
559     cameraTest->streamInfo->format_ = PIXEL_FMT_YCRCB_420_SP;
560     cameraTest->streamInfo->dataspace_ = 8;
561     cameraTest->streamInfo->intent_ = POST_VIEW;
562     cameraTest->streamInfo->tunneledMode_ = 5;
563 
564     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> consumer =
565         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
__anon36294fde0e02(void* addr, uint32_t size) 566     cameraTest->streamInfo->bufferQueue_ =  consumer->CreateProducerSeq([this](void* addr, uint32_t size) {
567         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
568     });
569 
570     cameraTest->streamInfo->bufferQueue_->producer_->SetQueueSize(8);
571     cameraTest->consumerMap_[cameraTest->streamInfo->intent_] = consumer;
572     cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
573     cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
574     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
575 
576     cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamInfo->streamId_});
577     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
578 }
579 
580 /**
581  * @tc.name: CreateStreams
582  * @tc.desc: CreateStreams, StreamInfo->StreamIntent = StreamIntent::ANALYZE, success
583  * @tc.size: MediumTest
584  * @tc.type: Function
585  */
586 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0470, TestSize.Level0)
587 {
588     cameraTest->Open();
589     cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
590     cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
591         cameraTest->streamOperator);
592     EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
593 
594     cameraTest->streamInfo = std::make_shared<StreamInfo>();
595     cameraTest->streamInfo->streamId_ = 101;
596     cameraTest->streamInfo->width_ = 1920;
597     cameraTest->streamInfo->height_ = 1080;
598     cameraTest->streamInfo->format_ = PIXEL_FMT_YCRCB_420_SP;
599     cameraTest->streamInfo->dataspace_ = 8;
600     cameraTest->streamInfo->intent_ = StreamIntent::ANALYZE;
601     cameraTest->streamInfo->tunneledMode_ = 5;
602 
603     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> consumer =
604         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
__anon36294fde0f02(void* addr, uint32_t size) 605     cameraTest->streamInfo->bufferQueue_ =  consumer->CreateProducerSeq([this](void* addr, uint32_t size) {
606         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
607     });
608 
609     cameraTest->streamInfo->bufferQueue_->producer_->SetQueueSize(8);
610     cameraTest->consumerMap_[cameraTest->streamInfo->intent_] = consumer;
611     cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
612     cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
613     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
614 
615     cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamInfo->streamId_});
616     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
617 }
618 
619 /**
620  * @tc.name: CreateStreams
621  * @tc.desc: CreateStreams, StreamInfo->StreamIntent = PREVIEW, success
622  * @tc.size: MediumTest
623  * @tc.type: Function
624  */
625 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0480, TestSize.Level0)
626 {
627     cameraTest->Open();
628     cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
629     cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
630         cameraTest->streamOperator);
631     EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
632 
633     cameraTest->streamInfo = std::make_shared<StreamInfo>();
634     cameraTest->streamInfo->streamId_ = 101;
635     cameraTest->streamInfo->width_ = 1920;
636     cameraTest->streamInfo->height_ = 1080;
637     cameraTest->streamInfo->format_ = PIXEL_FMT_YCRCB_420_SP;
638     cameraTest->streamInfo->dataspace_ = 8;
639     cameraTest->streamInfo->intent_ = PREVIEW;
640     cameraTest->streamInfo->tunneledMode_ = 5;
641 
642     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> consumer =
643         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
__anon36294fde1002(void* addr, uint32_t size) 644     cameraTest->streamInfo->bufferQueue_ =  consumer->CreateProducerSeq([this](void* addr, uint32_t size) {
645         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
646     });
647 
648     cameraTest->streamInfo->bufferQueue_->producer_->SetQueueSize(8);
649     cameraTest->consumerMap_[cameraTest->streamInfo->intent_] = consumer;
650     cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
651     cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
652     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
653 
654     cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamInfo->streamId_});
655     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
656 }
657 
658 /**
659  * @tc.name: startStream, stopStream
660  * @tc.desc: startStream, stopStream
661  * @tc.size: MediumTest
662  * @tc.type: Function
663  */
664 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0490, TestSize.Level0)
665 {
666     cameraTest->Open();
667     cameraTest->intents = {PREVIEW};
668     cameraTest->StartStream(cameraTest->intents);
669     cameraTest->captureIds = {};
670     cameraTest->streamIds = {cameraTest->streamIdPreview};
671     cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
672 }
673 
674 /**
675  * @tc.name: GetStreamAttributes
676  * @tc.desc: GetStreamAttributes, success
677  * @tc.size: MediumTest
678  * @tc.type: Function
679  */
680 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0500, TestSize.Level0)
681 {
682     cameraTest->Open();
683     cameraTest->intents = {PREVIEW};
684     cameraTest->StartStream(cameraTest->intents);
685 
686     std::vector<StreamAttribute> attributes;
687     cameraTest->rc = cameraTest->streamOperator->GetStreamAttributes(attributes);
688     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
689     cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamIdPreview});
690     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
691 }
692 
693 /**
694  * @tc.name: capture
695  * @tc.desc: capture, input normal
696  * @tc.size: MediumTest
697  * @tc.type: Function
698  */
699 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0510, TestSize.Level0)
700 {
701     cameraTest->Open();
702     cameraTest->intents = {PREVIEW};
703     cameraTest->StartStream(cameraTest->intents);
704     cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, false, true);
705     cameraTest->captureIds = {cameraTest->captureIdPreview};
706     cameraTest->streamIds = {cameraTest->streamIdPreview};
707     cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
708 }
709 
710 /**
711  * @tc.name: capture
712  * @tc.desc: preview, capture->captureInfo->streamId = -1, return error
713  * @tc.size: MediumTest
714  * @tc.type: Function
715  */
716 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0520, TestSize.Level0)
717 {
718     cameraTest->Open();
719     cameraTest->intents = {PREVIEW};
720     cameraTest->StartStream(cameraTest->intents);
721     int captureId = 2001;
722     cameraTest->captureInfo = std::make_shared<CaptureInfo>();
723     cameraTest->captureInfo->streamIds_ = {-1};
724     cameraTest->captureInfo->captureSetting_ = cameraTest->abilityVec;
725     cameraTest->captureInfo->enableShutterCallback_ = true;
726     cameraTest->rc = cameraTest->streamOperator->Capture(captureId, *cameraTest->captureInfo, true);
727     EXPECT_EQ(INVALID_ARGUMENT, cameraTest->rc);
728     sleep(1);
729     cameraTest->streamOperator->CancelCapture(captureId);
730     cameraTest->captureIds = {};
731     cameraTest->streamIds = {cameraTest->streamIdPreview};
732     cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
733 }
734 
735 
736 /**
737  * @tc.name: capture
738  * @tc.desc: preview, capture->captureInfo->streamId = 2147483391, return success
739  * @tc.size: MediumTest
740  * @tc.type: Function
741  */
742 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0530, TestSize.Level0)
743 {
744     cameraTest->Open();
745     cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
746     cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
747         cameraTest->streamOperator);
748     EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
749 
750     cameraTest->streamInfo = std::make_shared<StreamInfo>();
751     cameraTest->streamInfo->streamId_ = 2147483391;
752     cameraTest->streamInfo->width_ = 1920;
753     cameraTest->streamInfo->height_ = 1080;
754     cameraTest->streamInfo->format_ = PIXEL_FMT_YCRCB_420_SP;
755     cameraTest->streamInfo->dataspace_ = 8;
756     cameraTest->streamInfo->intent_ = PREVIEW;
757     cameraTest->streamInfo->tunneledMode_ = 5;
758 
759     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> consumer =
760         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
__anon36294fde1102(void* addr, uint32_t size) 761     cameraTest->streamInfo->bufferQueue_ =  consumer->CreateProducerSeq([this](void* addr, uint32_t size) {
762         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
763     });
764 
765     cameraTest->streamInfo->bufferQueue_->producer_->SetQueueSize(8);
766     cameraTest->consumerMap_[cameraTest->streamInfo->intent_] = consumer;
767     cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
768     cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
769     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
770 
771     cameraTest->rc = cameraTest->streamOperator->CommitStreams(OperationMode::NORMAL, cameraTest->abilityVec);
772     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
773     int captureId = 2001;
774     cameraTest->captureInfo = std::make_shared<CaptureInfo>();
775     cameraTest->captureInfo->streamIds_ = {2147483391};
776     cameraTest->captureInfo->captureSetting_ = cameraTest->abilityVec;
777     cameraTest->captureInfo->enableShutterCallback_ =true;
778     bool isStreaming = true;
779     cameraTest->rc = cameraTest->streamOperator->Capture(captureId, *cameraTest->captureInfo, isStreaming);
780     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
781     sleep(1);
782     cameraTest->streamOperator->CancelCapture(captureId);
783 
784     cameraTest->rc = cameraTest->streamOperator->ReleaseStreams(cameraTest->captureInfo->streamIds_);
785     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
786     cameraTest->cameraDevice->Close();
787 }
788 
789 /**
790  * @tc.name: capture
791  * @tc.desc: preview, capture->captureId = -1, return error
792  * @tc.size: MediumTest
793  * @tc.type: Function
794  */
795 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0540, TestSize.Level0)
796 {
797     cameraTest->Open();
798     cameraTest->intents = {PREVIEW};
799     cameraTest->StartStream(cameraTest->intents);
800 
801     cameraTest->captureInfo = std::make_shared<CaptureInfo>();
802     cameraTest->captureInfo->streamIds_ = {cameraTest->streamIdPreview};
803     cameraTest->captureInfo->captureSetting_ = cameraTest->abilityVec;
804     cameraTest->captureInfo->enableShutterCallback_ = false;
805     bool isStreaming = true;
806     int captureId = -1;
807     cameraTest->rc = cameraTest->streamOperator->Capture(captureId, *cameraTest->captureInfo, isStreaming);
808     EXPECT_EQ(INVALID_ARGUMENT, cameraTest->rc);
809     sleep(1);
810     cameraTest->rc = cameraTest->streamOperator->CancelCapture(cameraTest->captureIdPreview);
811     cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamIdPreview});
812     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
813 }
814 
815 /**
816  * @tc.name: capture
817  * @tc.desc: preview, capture->captureInfo->enableShutterCallback = true, return success
818  * @tc.size: MediumTest
819  * @tc.type: Function
820  */
821 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0550, TestSize.Level0)
822 {
823     cameraTest->Open();
824     cameraTest->intents = {PREVIEW};
825     cameraTest->StartStream(cameraTest->intents);
826     cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, true, true);
827 
828     cameraTest->captureIds = {cameraTest->captureIdPreview};
829     cameraTest->streamIds = {cameraTest->streamIdPreview};
830     cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
831 }
832 
833 /**
834  * @tc.name: CancelCapture
835  * @tc.desc: CancelCapture captureId = -1
836  * @tc.size: MediumTest
837  * @tc.type: Function
838  */
839 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0560, TestSize.Level0)
840 {
841     cameraTest->Open();
842     cameraTest->intents = {PREVIEW};
843     cameraTest->StartStream(cameraTest->intents);
844     cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, true, true);
845     cameraTest->rc = cameraTest->streamOperator->CancelCapture(-1);
846     EXPECT_EQ(INVALID_ARGUMENT, cameraTest->rc);
847     cameraTest->captureIds = {cameraTest->captureIdPreview};
848     cameraTest->streamIds = {cameraTest->streamIdPreview};
849     cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
850 }
851 
852 /**
853  * @tc.name: AttachBufferQueue & DetachBufferQueue
854  * @tc.desc: AttachBufferQueue & DetachBufferQueue
855  * @tc.size: MediumTest
856  * @tc.type: Function
857  */
858 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0580, TestSize.Level0)
859 {
860     cameraTest->Open();
861     cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
862     cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
863         cameraTest->streamOperator);
864 
865     cameraTest->streamInfo = std::make_shared<StreamInfo>();
866     cameraTest->streamInfo->streamId_ = 101; // PREVIEW streamId
867     cameraTest->streamInfo->width_ = 720; // Pixel Width
868     cameraTest->streamInfo->height_ = 480; // Pixel height
869     cameraTest->streamInfo->format_ = PIXEL_FMT_YCRCB_420_SP;
870     cameraTest->streamInfo->dataspace_ = UT_DATA_SIZE;
871     cameraTest->streamInfo->intent_ = PREVIEW;
872     cameraTest->streamInfo->tunneledMode_ = UT_TUNNEL_MODE;
873     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> consumer =
874         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
__anon36294fde1202(void* addr, uint32_t size) 875     cameraTest->streamInfo->bufferQueue_ = consumer->CreateProducerSeq([this](void* addr, uint32_t size) {
876         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
877     });
878 
879     cameraTest->streamInfo->bufferQueue_->producer_->SetQueueSize(UT_DATA_SIZE);
880     cameraTest->consumerMap_[cameraTest->streamInfo->intent_] = consumer;
881     cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
882 
883     cameraTest->streamInfoSnapshot = std::make_shared<StreamInfo>();
884     cameraTest->streamInfoSnapshot->streamId_ = 102; // STILL_CAPTURE streamId
885     cameraTest->streamInfoSnapshot->width_ = 720; // Pixel Width
886     cameraTest->streamInfoSnapshot->height_ = 480; // Pixel height
887     cameraTest->streamInfoSnapshot->format_ = PIXEL_FMT_YCRCB_420_SP;
888     cameraTest->streamInfoSnapshot->dataspace_ = UT_DATA_SIZE;
889     cameraTest->streamInfoSnapshot->intent_ = STILL_CAPTURE;
890     cameraTest->streamInfoSnapshot->tunneledMode_ = UT_TUNNEL_MODE;
891     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> snapshotConsumer =
892         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
893     cameraTest->streamInfoSnapshot->bufferQueue_ = snapshotConsumer->CreateProducerSeq([this](void* addr,
__anon36294fde1302(void* addr, uint32_t size) 894         uint32_t size) {
895         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
896     });
897 
898     cameraTest->streamInfoSnapshot->bufferQueue_->producer_->SetQueueSize(UT_DATA_SIZE);
899     cameraTest->consumerMap_[cameraTest->streamInfoSnapshot->intent_] = snapshotConsumer;
900     cameraTest->streamInfos.push_back(*cameraTest->streamInfoSnapshot);
901 
902     cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
903     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
904 
905     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> preview_consumer =
906         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
907     OHOS::sptr<OHOS::IBufferProducer> producerTemp = preview_consumer->CreateProducer([this](void* addr,
__anon36294fde1402(void* addr, uint32_t size) 908         uint32_t size) {
909         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
910     });
911 
912     OHOS::sptr<BufferProducerSequenceable> bufferQueue = new BufferProducerSequenceable(producerTemp);
913     cameraTest->rc = cameraTest->streamOperator->AttachBufferQueue(cameraTest->streamInfoSnapshot->streamId_,
914         bufferQueue);
915     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
916 
917     cameraTest->rc = cameraTest->streamOperator->DetachBufferQueue(cameraTest->streamInfoSnapshot->streamId_);
918     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
919 
920     std::vector<int> streamIds = {cameraTest->streamInfo->streamId_, cameraTest->streamInfoSnapshot->streamId_};
921     cameraTest->rc = cameraTest->streamOperator->ReleaseStreams(streamIds);
922     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
923 }
924 
925 /**
926  * @tc.name: offlineStreamOperator
927  * @tc.desc: offlineStreamOperator, input normal
928  * @tc.size: MediumTest
929  * @tc.type: Function
930  */
931 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_0610, TestSize.Level0)
932 {
933     cameraTest->Open();
934     cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
935     cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
936         cameraTest->streamOperator);
937 
938     cameraTest->streamInfo = std::make_shared<StreamInfo>();
939     cameraTest->streamInfo->streamId_ = 101;
940     cameraTest->streamInfo->width_ = 720;
941     cameraTest->streamInfo->height_ = 480;
942     cameraTest->streamInfo->format_ = PIXEL_FMT_YCRCB_420_SP;
943     cameraTest->streamInfo->dataspace_ = UT_DATA_SIZE;
944     cameraTest->streamInfo->intent_ = PREVIEW;
945     cameraTest->streamInfo->tunneledMode_ = UT_TUNNEL_MODE;
946     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> consumer =
947         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
__anon36294fde1502(void* addr, uint32_t size) 948     cameraTest->streamInfo->bufferQueue_ = consumer->CreateProducerSeq([this](void* addr, uint32_t size) {
949         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
950     });
951     cameraTest->streamInfo->bufferQueue_->producer_->SetQueueSize(UT_DATA_SIZE);
952     cameraTest->consumerMap_[cameraTest->streamInfo->intent_] = consumer;
953     cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
954 
955     cameraTest->streamInfoSnapshot = std::make_shared<StreamInfo>();
956     cameraTest->streamInfoSnapshot->streamId_ = 102;
957     cameraTest->streamInfoSnapshot->width_ = 720;
958     cameraTest->streamInfoSnapshot->height_ = 480;
959     cameraTest->streamInfoSnapshot->format_ = PIXEL_FMT_YCRCB_420_SP;
960     cameraTest->streamInfoSnapshot->dataspace_ = UT_DATA_SIZE;
961     cameraTest->streamInfoSnapshot->intent_ = STILL_CAPTURE;
962     cameraTest->streamInfoSnapshot->tunneledMode_ = UT_TUNNEL_MODE;
963     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> snapshotConsumer =
964         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
965     cameraTest->streamInfoSnapshot->bufferQueue_ = snapshotConsumer->CreateProducerSeq([this](void* addr,
__anon36294fde1602(void* addr, uint32_t size) 966         uint32_t size) {
967         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
968     });
969     cameraTest->streamInfoSnapshot->bufferQueue_->producer_->SetQueueSize(UT_DATA_SIZE);
970     cameraTest->consumerMap_[cameraTest->streamInfoSnapshot->intent_] = snapshotConsumer;
971     cameraTest->streamInfos.push_back(*cameraTest->streamInfoSnapshot);
972 
973     cameraTest->rc = (CamRetCode)cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
974     EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
975 
976     cameraTest->rc = (CamRetCode)cameraTest->streamOperator->CommitStreams(OperationMode::NORMAL, cameraTest->abilityVec);
977     EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
978 
979     int captureId = 2001;
980     cameraTest->captureInfo = std::make_shared<CaptureInfo>();
981     cameraTest->captureInfo->streamIds_ = {102};
982     cameraTest->captureInfo->captureSetting_ = cameraTest->abilityVec;
983     cameraTest->captureInfo->enableShutterCallback_ = true;
984     bool isStreaming = true;
985     cameraTest->rc = (CamRetCode)cameraTest->streamOperator->Capture(captureId, *cameraTest->captureInfo, isStreaming);
986     EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
987     sleep(UT_SECOND_TIMES);
988     OHOS::sptr<IStreamOperatorCallback> streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
989     OHOS::sptr<IOfflineStreamOperator> offlineStreamOperator = nullptr;
990 
991     cameraTest->rc = (CamRetCode)cameraTest->streamOperator->ChangeToOfflineStream({cameraTest->streamInfoSnapshot->streamId_},
992         streamOperatorCallback, offlineStreamOperator);
993     EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
994 
995     sleep(UT_SECOND_TIMES);
996 
997     cameraTest->rc = (CamRetCode)offlineStreamOperator->CancelCapture(captureId);
998 
999     EXPECT_EQ(true, cameraTest->rc == HDI::Camera::V1_0::NO_ERROR);
1000 
1001     std::vector<int> streamIds = {102};
1002     cameraTest->rc = (CamRetCode)offlineStreamOperator->ReleaseStreams(streamIds);
1003     EXPECT_EQ(true, cameraTest->rc == HDI::Camera::V1_0::NO_ERROR);
1004 
1005     cameraTest->rc = (CamRetCode)offlineStreamOperator->Release();
1006     EXPECT_EQ(true, cameraTest->rc == HDI::Camera::V1_0::NO_ERROR);
1007 
1008     cameraTest->rc = (CamRetCode)cameraTest->streamOperator->ReleaseStreams({1201});
1009     EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
1010     sleep(UT_SECOND_TIMES);
1011 }
1012 
1013 /**
1014   * @tc.name: CAMERA_BUSY
1015   * @tc.desc: CAMERA_BUSY
1016   * @tc.level: Level1
1017   * @tc.size: MediumTest
1018   * @tc.type: Function
1019   */
1020 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_001, TestSize.Level1)
1021 {
1022     cameraTest->Open();
1023     cameraTest->intents = {PREVIEW};
1024     cameraTest->StartStream(cameraTest->intents);
1025     cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, false, true);
1026     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> preview_consumer =
1027         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
1028     OHOS::sptr<OHOS::IBufferProducer> producerTemp = preview_consumer->CreateProducer([this](void* addr,
__anon36294fde1702(void* addr, uint32_t size) 1029         uint32_t size) {
1030         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
1031     });
1032 
1033     OHOS::sptr<BufferProducerSequenceable> bufferProduder = new BufferProducerSequenceable(producerTemp);
1034     cameraTest->rc = cameraTest->streamOperator->AttachBufferQueue(cameraTest->streamIdPreview, bufferProduder);
1035     EXPECT_EQ(true, cameraTest->rc == CAMERA_BUSY);
1036     cameraTest->captureIds = {cameraTest->captureIdPreview};
1037     cameraTest->streamIds = {cameraTest->streamIdPreview};
1038     cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
1039 }
1040 
1041 /**
1042  * @tc.name: DEVICE_ERROR
1043  * @tc.desc: DEVICE_ERROR
1044  * @tc.size: MediumTest
1045  * @tc.type: Function
1046  */
1047 HWTEST_F(HdiStreamUtTest, SUB_DriverSystem_CameraHdiMg_002, TestSize.Level0)
1048 {
1049     cameraTest->Open();
1050     cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
1051     cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
1052         cameraTest->streamOperator);
1053 
1054     cameraTest->streamInfo = std::make_shared<StreamInfo>();
1055     cameraTest->streamInfo->streamId_ = cameraTest->streamIdPreview;
1056     cameraTest->streamInfo->width_ = cameraTest->previewWidth;
1057     cameraTest->streamInfo->height_ = cameraTest->previewHeight;
1058     cameraTest->streamInfo->format_ = cameraTest->previewFormat;
1059     cameraTest->streamInfo->dataspace_ = UT_DATA_SIZE;
1060     cameraTest->streamInfo->intent_ = StreamIntent::PREVIEW;
1061     cameraTest->streamInfo->tunneledMode_ = UT_TUNNEL_MODE;
1062 
1063     std::shared_ptr<OHOS::Camera::Test::StreamConsumer> consumer_pre =
1064         std::make_shared<OHOS::Camera::Test::StreamConsumer>();
__anon36294fde1802(void* addr, uint32_t size) 1065     cameraTest->streamInfo->bufferQueue_ = consumer_pre->CreateProducerSeq([this](void* addr, uint32_t size) {
1066         cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
1067     });
1068     cameraTest->streamInfo->bufferQueue_->producer_->SetQueueSize(UT_DATA_SIZE);
1069     cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
1070     cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
1071     EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
1072 
1073     cameraTest->captureInfo = std::make_shared<CaptureInfo>();
1074     cameraTest->captureInfo->streamIds_ = {cameraTest->streamIdPreview};
1075     cameraTest->captureInfo->captureSetting_ = cameraTest->abilityVec;
1076     cameraTest->captureInfo->enableShutterCallback_ = true;
1077     cameraTest->rc = cameraTest->streamOperator->Capture(cameraTest->streamIdPreview, *cameraTest->captureInfo, true);
1078     EXPECT_EQ(true, cameraTest->rc == DEVICE_ERROR);
1079 }