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}