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, Camera_Stream_Hdi_001, TestSize.Level1)
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>();
__anon7cf1ccea0102(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 }
81
82 /**
83 * @tc.name: CreateStreams
84 * @tc.desc: CreateStreams, success
85 * @tc.size: MediumTest
86 * @tc.type: Function
87 */
88 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_002, TestSize.Level1)
89 {
90 cameraTest->Open();
91 cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
92 cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
93 cameraTest->streamOperator);
94 EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
95
96 cameraTest->streamInfo = std::make_shared<StreamInfo>();
97 cameraTest->DefaultInfosPreview(cameraTest->streamInfo);
98 cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
99 cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
100 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
101
102 std::vector<int> streamIds;
103 streamIds.push_back(cameraTest->streamInfo->streamId_);
104 cameraTest->rc = cameraTest->streamOperator->ReleaseStreams(streamIds);
105 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
106 }
107
108 /**
109 * @tc.name: CreateStreams
110 * @tc.desc: CreateStreams, StreamInfo->streamId = -1, return error
111 * @tc.size: MediumTest
112 * @tc.type: Function
113 */
114 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_003, TestSize.Level1)
115 {
116 cameraTest->Open();
117 cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
118 cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
119 cameraTest->streamOperator);
120 EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
121
122 cameraTest->streamInfo = std::make_shared<StreamInfo>();
123 cameraTest->DefaultInfosPreview(cameraTest->streamInfo);
124 cameraTest->streamInfo->streamId_ = -1;
125 cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
126 cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
127 EXPECT_EQ(cameraTest->rc, INVALID_ARGUMENT);
128 }
129
130 /**
131 * @tc.name: CreateStreams
132 * @tc.desc: CreateStreams, StreamInfo->width = -1, return error
133 * @tc.size: MediumTest
134 * @tc.type: Function
135 */
136 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_005, TestSize.Level1)
137 {
138 cameraTest->Open();
139 cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
140 cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
141 cameraTest->streamOperator);
142 EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
143
144 cameraTest->streamInfo = std::make_shared<StreamInfo>();
145 cameraTest->DefaultInfosPreview(cameraTest->streamInfo);
146 cameraTest->streamInfo->width_ = -1;
147 cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
148 cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
149 EXPECT_EQ(cameraTest->rc, INVALID_ARGUMENT);
150 }
151
152 /**
153 * @tc.name: CreateStreams
154 * @tc.desc: CreateStreams, StreamInfo->width = 2147483647, success
155 * @tc.size: MediumTest
156 * @tc.type: Function
157 */
158 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_006, TestSize.Level1)
159 {
160 cameraTest->Open();
161 cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
162 cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
163 cameraTest->streamOperator);
164 EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
165
166 cameraTest->streamInfo = std::make_shared<StreamInfo>();
167 cameraTest->DefaultInfosPreview(cameraTest->streamInfo);
168 cameraTest->streamInfo->width_ = 2147483647;
169 cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
170 cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
171 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
172
173 cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamInfo->streamId_});
174 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
175 }
176
177 /**
178 * @tc.name: CreateStreams
179 * @tc.desc: CreateStreams, StreamInfo->height = -1, success
180 * @tc.size: MediumTest
181 * @tc.type: Function
182 */
183 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_007, TestSize.Level1)
184 {
185 cameraTest->Open();
186 cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
187 cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
188 cameraTest->streamOperator);
189 EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
190
191 cameraTest->streamInfo = std::make_shared<StreamInfo>();
192 cameraTest->DefaultInfosPreview(cameraTest->streamInfo);
193 cameraTest->streamInfo->height_ = -1;
194 cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
195 cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
196 EXPECT_EQ(cameraTest->rc, INVALID_ARGUMENT);
197 }
198
199 /**
200 * @tc.name: CreateStreams
201 * @tc.desc: CreateStreams, StreamInfo->height = 2147483647, success
202 * @tc.size: MediumTest
203 * @tc.type: Function
204 */
205 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_008, TestSize.Level1)
206 {
207 cameraTest->Open();
208 cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
209 cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
210 cameraTest->streamOperator);
211 EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
212
213 cameraTest->streamInfo = std::make_shared<StreamInfo>();
214 cameraTest->DefaultInfosPreview(cameraTest->streamInfo);
215 cameraTest->streamInfo->height_ = 2147483647;
216 cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
217 cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
218 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
219
220 cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamInfo->streamId_});
221 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
222 }
223
224 /**
225 * @tc.name: CreateStreams
226 * @tc.desc: CreateStreams, StreamInfo->format = 2147483647, success
227 * @tc.size: MediumTest
228 * @tc.type: Function
229 */
230 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_009, TestSize.Level1)
231 {
232 cameraTest->Open();
233 cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
234 cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
235 cameraTest->streamOperator);
236 EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
237
238 cameraTest->streamInfo = std::make_shared<StreamInfo>();
239 cameraTest->DefaultInfosPreview(cameraTest->streamInfo);
240 cameraTest->streamInfo->format_ = 2147483647;
241 cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
242 cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
243 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
244
245 cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamInfo->streamId_});
246 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
247 }
248
249 /**
250 * @tc.name: CreateStreams
251 * @tc.desc: CreateStreams, StreamInfo->dataspace = 2147483647, success
252 * @tc.size: MediumTest
253 * @tc.type: Function
254 */
255 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_010, TestSize.Level1)
256 {
257 cameraTest->Open();
258 cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
259 cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
260 cameraTest->streamOperator);
261 EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
262
263 cameraTest->streamInfo = std::make_shared<StreamInfo>();
264 cameraTest->DefaultInfosPreview(cameraTest->streamInfo);
265 cameraTest->streamInfo->dataspace_ = 2147483647;
266 cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
267 cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
268 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
269
270 cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamInfo->streamId_});
271 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
272 }
273
274 /**
275 * @tc.name: CreateStreams
276 * @tc.desc: CreateStreams, StreamInfo->StreamIntent = PREVIEW, success
277 * @tc.size: MediumTest
278 * @tc.type: Function
279 */
280 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_011, TestSize.Level1)
281 {
282 cameraTest->Open();
283 cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
284 cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
285 cameraTest->streamOperator);
286 EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
287
288 cameraTest->streamInfo = std::make_shared<StreamInfo>();
289 cameraTest->DefaultInfosPreview(cameraTest->streamInfo);
290 cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
291 cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
292 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
293
294 cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamInfo->streamId_});
295 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
296 }
297
298 /**
299 * @tc.name: CreateStreams
300 * @tc.desc: CreateStreams, StreamInfo->StreamIntent = VIDEO, success
301 * @tc.size: MediumTest
302 * @tc.type: Function
303 */
304 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_012, TestSize.Level1)
305 {
306 cameraTest->Open();
307 cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
308 cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
309 cameraTest->streamOperator);
310 EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
311
312 cameraTest->streamInfo = std::make_shared<StreamInfo>();
313 cameraTest->DefaultInfosVideo(cameraTest->streamInfo);
314 cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
315 cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
316 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
317
318 cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamInfo->streamId_});
319 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
320 }
321
322 /**
323 * @tc.name: CreateStreams
324 * @tc.desc: CreateStreams, StreamInfo->StreamIntent = STILL_CAPTURE, success
325 * @tc.size: MediumTest
326 * @tc.type: Function
327 */
328 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_013, TestSize.Level1)
329 {
330 cameraTest->Open();
331 cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
332 cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
333 cameraTest->streamOperator);
334 EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
335
336 cameraTest->streamInfo = std::make_shared<StreamInfo>();
337 cameraTest->DefaultInfosCapture(cameraTest->streamInfo);
338 cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
339 cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
340 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
341
342 cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamInfo->streamId_});
343 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
344 }
345
346 /**
347 * @tc.name: CreateStreams
348 * @tc.desc: CreateStreams, StreamInfo->StreamIntent = POST_VIEW, success
349 * @tc.size: MediumTest
350 * @tc.type: Function
351 */
352 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_014, TestSize.Level1)
353 {
354 cameraTest->Open();
355 cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
356 cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
357 cameraTest->streamOperator);
358 EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
359
360 cameraTest->streamInfo = std::make_shared<StreamInfo>();
361 cameraTest->DefaultInfosAnalyze(cameraTest->streamInfo);
362 cameraTest->streamInfo->intent_ = POST_VIEW;
363 cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
364 cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
365 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
366
367 cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamInfo->streamId_});
368 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
369 }
370
371 /**
372 * @tc.name: CreateStreams
373 * @tc.desc: CreateStreams, StreamInfo->StreamIntent = StreamIntent::ANALYZE, success
374 * @tc.size: MediumTest
375 * @tc.type: Function
376 */
377 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_015, TestSize.Level1)
378 {
379 cameraTest->Open();
380 cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
381 cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
382 cameraTest->streamOperator);
383 EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
384
385 cameraTest->streamInfo = std::make_shared<StreamInfo>();
386 cameraTest->DefaultInfosAnalyze(cameraTest->streamInfo);
387 cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
388 cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
389 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
390
391 cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamInfo->streamId_});
392 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
393 }
394
395 /**
396 * @tc.name: CreateStreams
397 * @tc.desc: CreateStreams, StreamInfo->StreamIntent = PREVIEW, success
398 * @tc.size: MediumTest
399 * @tc.type: Function
400 */
401 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_016, TestSize.Level1)
402 {
403 cameraTest->Open();
404 cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
405 cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
406 cameraTest->streamOperator);
407 EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
408
409 cameraTest->streamInfo = std::make_shared<StreamInfo>();
410 cameraTest->DefaultInfosPreview(cameraTest->streamInfo);
411 cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
412 cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
413 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
414
415 cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamInfo->streamId_});
416 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
417 }
418
419 /**
420 * @tc.name: startStream, stopStream
421 * @tc.desc: startStream, stopStream
422 * @tc.size: MediumTest
423 * @tc.type: Function
424 */
425 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_019, TestSize.Level1)
426 {
427 cameraTest->Open();
428 cameraTest->intents = {PREVIEW};
429 cameraTest->StartStream(cameraTest->intents);
430 cameraTest->captureIds = {};
431 cameraTest->streamIds = {cameraTest->streamIdPreview};
432 cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
433 }
434
435 /**
436 * @tc.name: GetStreamAttributes
437 * @tc.desc: GetStreamAttributes, success
438 * @tc.size: MediumTest
439 * @tc.type: Function
440 */
441 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_020, TestSize.Level1)
442 {
443 cameraTest->Open();
444 cameraTest->intents = {PREVIEW};
445 cameraTest->StartStream(cameraTest->intents);
446
447 std::vector<StreamAttribute> attributes;
448 cameraTest->rc = cameraTest->streamOperator->GetStreamAttributes(attributes);
449 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
450 cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamIdPreview});
451 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
452 }
453
454 /**
455 * @tc.name: capture
456 * @tc.desc: capture, input normal
457 * @tc.size: MediumTest
458 * @tc.type: Function
459 */
460 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_021, TestSize.Level1)
461 {
462 cameraTest->Open();
463 cameraTest->intents = {PREVIEW};
464 cameraTest->StartStream(cameraTest->intents);
465 cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, false, true);
466 cameraTest->captureIds = {cameraTest->captureIdPreview};
467 cameraTest->streamIds = {cameraTest->streamIdPreview};
468 cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
469 }
470
471 /**
472 * @tc.name: capture
473 * @tc.desc: preview, capture->captureInfo->streamId = -1, return error
474 * @tc.size: MediumTest
475 * @tc.type: Function
476 */
477 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_022, TestSize.Level1)
478 {
479 cameraTest->Open();
480 cameraTest->intents = {PREVIEW};
481 cameraTest->StartStream(cameraTest->intents);
482 int captureId = 2001;
483 cameraTest->captureInfo = std::make_shared<CaptureInfo>();
484 cameraTest->captureInfo->streamIds_ = {-1};
485 cameraTest->captureInfo->captureSetting_ = cameraTest->abilityVec;
486 cameraTest->captureInfo->enableShutterCallback_ = true;
487 cameraTest->rc = cameraTest->streamOperator->Capture(captureId, *cameraTest->captureInfo, true);
488 EXPECT_EQ(INVALID_ARGUMENT, cameraTest->rc);
489 sleep(1);
490 cameraTest->streamOperator->CancelCapture(captureId);
491 cameraTest->captureIds = {};
492 cameraTest->streamIds = {cameraTest->streamIdPreview};
493 cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
494 }
495
496 /**
497 * @tc.name: capture
498 * @tc.desc: preview, capture->captureId = -1, return error
499 * @tc.size: MediumTest
500 * @tc.type: Function
501 */
502 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_024, TestSize.Level1)
503 {
504 cameraTest->Open();
505 cameraTest->intents = {PREVIEW};
506 cameraTest->StartStream(cameraTest->intents);
507
508 cameraTest->captureInfo = std::make_shared<CaptureInfo>();
509 cameraTest->captureInfo->streamIds_ = {cameraTest->streamIdPreview};
510 cameraTest->captureInfo->captureSetting_ = cameraTest->abilityVec;
511 cameraTest->captureInfo->enableShutterCallback_ = false;
512 bool isStreaming = true;
513 int captureId = -1;
514 cameraTest->rc = cameraTest->streamOperator->Capture(captureId, *cameraTest->captureInfo, isStreaming);
515 EXPECT_EQ(INVALID_ARGUMENT, cameraTest->rc);
516 sleep(1);
517 cameraTest->rc = cameraTest->streamOperator->CancelCapture(cameraTest->captureIdPreview);
518 cameraTest->rc = cameraTest->streamOperator->ReleaseStreams({cameraTest->streamIdPreview});
519 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
520 }
521
522 /**
523 * @tc.name: capture
524 * @tc.desc: preview, capture->captureInfo->enableShutterCallback = true, return success
525 * @tc.size: MediumTest
526 * @tc.type: Function
527 */
528 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_025, TestSize.Level1)
529 {
530 cameraTest->Open();
531 cameraTest->intents = {PREVIEW};
532 cameraTest->StartStream(cameraTest->intents);
533 cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, true, true);
534
535 cameraTest->captureIds = {cameraTest->captureIdPreview};
536 cameraTest->streamIds = {cameraTest->streamIdPreview};
537 cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
538 }
539
540 /**
541 * @tc.name: CancelCapture
542 * @tc.desc: CancelCapture captureId = -1
543 * @tc.size: MediumTest
544 * @tc.type: Function
545 */
546 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_026, TestSize.Level1)
547 {
548 cameraTest->Open();
549 cameraTest->intents = {PREVIEW};
550 cameraTest->StartStream(cameraTest->intents);
551 cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, true, true);
552 cameraTest->rc = cameraTest->streamOperator->CancelCapture(-1);
553 EXPECT_EQ(INVALID_ARGUMENT, cameraTest->rc);
554 cameraTest->captureIds = {cameraTest->captureIdPreview};
555 cameraTest->streamIds = {cameraTest->streamIdPreview};
556 cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
557 }
558
559 /**
560 * @tc.name: AttachBufferQueue & DetachBufferQueue
561 * @tc.desc: AttachBufferQueue & DetachBufferQueue
562 * @tc.size: MediumTest
563 * @tc.type: Function
564 */
565 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_028, TestSize.Level1)
566 {
567 cameraTest->Open();
568 cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
569 cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
570 cameraTest->streamOperator);
571
572 cameraTest->streamInfo = std::make_shared<StreamInfo>();
573 cameraTest->DefaultInfosPreview(cameraTest->streamInfo);
574 cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
575
576 cameraTest->streamInfoSnapshot = std::make_shared<StreamInfo>();
577 cameraTest->DefaultInfosCapture(cameraTest->streamInfoSnapshot);
578 cameraTest->streamInfos.push_back(*cameraTest->streamInfoSnapshot);
579
580 cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
581 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
582
583 std::shared_ptr<OHOS::Camera::Test::StreamConsumer> preview_consumer =
584 std::make_shared<OHOS::Camera::Test::StreamConsumer>();
585 OHOS::sptr<OHOS::IBufferProducer> producerTemp = preview_consumer->CreateProducer([this](void* addr,
__anon7cf1ccea0202(void* addr, uint32_t size) 586 uint32_t size) {
587 cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
588 });
589
590 OHOS::sptr<BufferProducerSequenceable> bufferQueue = new BufferProducerSequenceable(producerTemp);
591 cameraTest->rc = cameraTest->streamOperator->AttachBufferQueue(cameraTest->streamInfoSnapshot->streamId_,
592 bufferQueue);
593 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
594
595 cameraTest->rc = cameraTest->streamOperator->DetachBufferQueue(cameraTest->streamInfoSnapshot->streamId_);
596 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
597
598 std::vector<int> streamIds = {cameraTest->streamInfo->streamId_, cameraTest->streamInfoSnapshot->streamId_};
599 cameraTest->rc = cameraTest->streamOperator->ReleaseStreams(streamIds);
600 EXPECT_EQ(cameraTest->rc, HDI::Camera::V1_0::NO_ERROR);
601 }
602
603 /**
604 * @tc.name: CreateStreams
605 * @tc.desc: CreateStreams, StreamInfo->format = -1, success
606 * @tc.size: MediumTest
607 * @tc.type: Function
608 */
609 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_029, TestSize.Level1)
610 {
611 cameraTest->Open();
612 cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
613 cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
614 cameraTest->streamOperator);
615 EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR || cameraTest->streamOperator == nullptr);
616
617 cameraTest->streamInfo = std::make_shared<StreamInfo>();
618 cameraTest->DefaultInfosPreview(cameraTest->streamInfo);
619 cameraTest->streamInfo->format_ = -1;
620 cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
621 cameraTest->rc = cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
622 EXPECT_EQ(cameraTest->rc, INVALID_ARGUMENT);
623 }
624
625 /**
626 * @tc.name: capture
627 * @tc.desc: capture, input normal
628 * @tc.size: MediumTest
629 * @tc.type: Function
630 */
631 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_030, TestSize.Level1)
632 {
633 cameraTest->Open();
634 cameraTest->intents = {PREVIEW};
635 cameraTest->StartStream(cameraTest->intents);
636 cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, true, true);
637 cameraTest->captureIds = {cameraTest->captureIdPreview};
638 cameraTest->streamIds = {cameraTest->streamIdPreview};
639 cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
640 }
641
642 /**
643 * @tc.name: capture
644 * @tc.desc: capture, input normal
645 * @tc.size: MediumTest
646 * @tc.type: Function
647 */
648 HWTEST_F(HdiStreamUtTest, Camera_Stream_Hdi_031, TestSize.Level0)
649 {
650 cameraTest->Open();
651 cameraTest->streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
652 cameraTest->rc = cameraTest->cameraDevice->GetStreamOperator(cameraTest->streamOperatorCallback,
653 cameraTest->streamOperator);
654
655 cameraTest->streamInfo = std::make_shared<StreamInfo>();
656 cameraTest->DefaultInfosPreview(cameraTest->streamInfo);
657 cameraTest->streamInfos.push_back(*cameraTest->streamInfo);
658
659 cameraTest->streamInfoSnapshot = std::make_shared<StreamInfo>();
660 cameraTest->DefaultInfosCapture(cameraTest->streamInfoSnapshot);
661 cameraTest->streamInfos.push_back(*cameraTest->streamInfoSnapshot);
662
663 cameraTest->rc = (CamRetCode)cameraTest->streamOperator->CreateStreams(cameraTest->streamInfos);
664 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
665
666 cameraTest->rc = (CamRetCode)cameraTest->streamOperator->CommitStreams(OperationMode::NORMAL,
667 cameraTest->abilityVec);
668 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
669
670 int captureId = 2001;
671 cameraTest->captureInfo = std::make_shared<CaptureInfo>();
672 cameraTest->captureInfo->streamIds_ = {101};
673 cameraTest->captureInfo->captureSetting_ = cameraTest->abilityVec;
674 cameraTest->captureInfo->enableShutterCallback_ = true;
675 bool isStreaming = true;
676 cameraTest->rc = (CamRetCode)cameraTest->streamOperator->Capture(captureId, *cameraTest->captureInfo, isStreaming);
677 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
678 sleep(UT_SECOND_TIMES);
679 OHOS::sptr<IStreamOperatorCallback> streamOperatorCallback = new OHOS::Camera::Test::TestStreamOperatorCallback();
680 OHOS::sptr<IOfflineStreamOperator> offlineStreamOperator = nullptr;
681
682 cameraTest->rc = (CamRetCode)cameraTest->streamOperator->ChangeToOfflineStream(
683 {cameraTest->streamInfoSnapshot->streamId_}, streamOperatorCallback, offlineStreamOperator);
684 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
685
686 sleep(UT_SECOND_TIMES);
687
688 cameraTest->rc = (CamRetCode)offlineStreamOperator->CancelCapture(captureId);
689 EXPECT_EQ(true, cameraTest->rc == HDI::Camera::V1_0::NO_ERROR);
690
691 std::vector<int> streamIds = {101};
692 cameraTest->rc = (CamRetCode)offlineStreamOperator->ReleaseStreams(streamIds);
693 EXPECT_EQ(true, cameraTest->rc == HDI::Camera::V1_0::NO_ERROR);
694
695 cameraTest->rc = (CamRetCode)offlineStreamOperator->Release();
696 EXPECT_EQ(true, cameraTest->rc == HDI::Camera::V1_0::NO_ERROR);
697
698 cameraTest->rc = (CamRetCode)cameraTest->streamOperator->ReleaseStreams({1201});
699 EXPECT_EQ(HDI::Camera::V1_0::NO_ERROR, cameraTest->rc);
700 sleep(UT_SECOND_TIMES);
701 }
702
703