1 /*
2 * Copyright (c) 2024 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
16 #include "camera_hdi_test_securestream_v1_3.h"
17 #include <functional>
18
19 using namespace OHOS;
20 using namespace std;
21 using namespace testing::ext;
22 using namespace OHOS::Camera;
SetUpTestCase(void)23 void CameraHdiTestSecureStreamV1_3::SetUpTestCase(void) {}
TearDownTestCase(void)24 void CameraHdiTestSecureStreamV1_3::TearDownTestCase(void) {}
SetUp(void)25 void CameraHdiTestSecureStreamV1_3::SetUp(void)
26 {
27 cameraTest = std::make_shared<OHOS::Camera::Test>();
28 cameraTest->Init(); // assert inside
29 }
30
TearDown(void)31 void CameraHdiTestSecureStreamV1_3::TearDown(void)
32 {
33 cameraTest->Close();
34 }
35
36 /**
37 * @tc.name: SUB_Driver_Camera_SecureStream_0200
38 * @tc.desc: invoke Secure stream
39 * @tc.size: MediumTest
40 * @tc.type: Function
41 */
42 HWTEST_F(CameraHdiTestSecureStreamV1_3, SUB_Driver_Camera_SecureStream_0200, TestSize.Level1)
43 {
44 cameraTest->OpenSecureCamera(DEVICE_1);
45 // PREVIEW stream
46 cameraTest->intents = {PREVIEW};
47 cameraTest->streamOperatorCallbackV1_3 = new OHOS::Camera::Test::TestStreamOperatorCallbackV1_3();
48
49 cameraTest->rc = cameraTest->cameraDeviceV1_3->GetStreamOperator_V1_3(cameraTest->streamOperatorCallbackV1_3,
50 cameraTest->streamOperator_V1_3);
51 EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR);
52 cameraTest->streamInfoPre = std::make_shared<OHOS::HDI::Camera::V1_1::StreamInfo_V1_1>();
53 cameraTest->DefaultInfosPreview(cameraTest->streamInfoPre);
54 std::shared_ptr<OHOS::Camera::Test::StreamConsumer> consumer_pre =
55 std::make_shared<OHOS::Camera::Test::StreamConsumer>();
56 OHOS::HDI::Camera::V1_1::ExtendedStreamInfo extendedStreamInfo =
57 {
58 .type = static_cast<OHOS::HDI::Camera::V1_1::ExtendedStreamInfoType>(
59 OHOS::HDI::Camera::V1_3::EXTENDED_STREAM_INFO_SECURE),
60 .width = 1024,
61 .height = 768,
62 .format = PIXEL_FMT_YCRCB_420_SP,
63 .dataspace = UT_DATA_SIZE,
__anonb64980c20102() 64 .bufferQueue = consumer_pre->CreateProducerSeq([this](void* addr, uint32_t size) {
65 cameraTest->DumpImageFile(cameraTest->streamIdPreview, "yuv", addr, size);
66 })
67 };
68 cameraTest->consumerMap_[StreamIntent::PREVIEW] = consumer_pre;
69 cameraTest->streamInfoPre->extendedStreamInfos = {extendedStreamInfo};
70 cameraTest->streamInfos.push_back(*(cameraTest->streamInfoPre));
71 cameraTest->rc = cameraTest->streamOperator_V1_3->CreateStreams_V1_1(cameraTest->streamInfos);
72 EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR);
73 cameraTest->rc = cameraTest->streamOperator_V1_3->CommitStreams_V1_1(
74 static_cast<OHOS::HDI::Camera::V1_1::OperationMode_V1_1>(OHOS::HDI::Camera::V1_3::OperationMode::SECURE),
75 cameraTest->abilityVec);
76 EXPECT_EQ(false, cameraTest->rc != HDI::Camera::V1_0::NO_ERROR);
77
78 cameraTest->StartCapture(cameraTest->streamIdPreview, cameraTest->captureIdPreview, false, true);
79 //release stream
80 cameraTest->captureIds = {cameraTest->captureIdPreview};
81 cameraTest->streamIds = {cameraTest->streamIdPreview};
82 cameraTest->StopStream(cameraTest->captureIds, cameraTest->streamIds);
83 }
84
85 /**
86 * @tc.name: SUB_Driver_Camera_SecureStream_0300
87 * @tc.desc: invoke GetSecureCameraSeq, verification
88 * @tc.size: MediumTest
89 * @tc.type: Function
90 */
91 HWTEST_F(CameraHdiTestSecureStreamV1_3, SUB_Driver_Camera_SecureStream_0300, TestSize.Level1)
92 {
93 cameraTest->OpenSecureCamera(DEVICE_1);
94 EXPECT_NE(cameraTest, nullptr);
95 EXPECT_NE(cameraTest->cameraDeviceV1_3, nullptr);
96 uint64_t SeqId;
97 int32_t res = cameraTest->cameraDeviceV1_3->GetSecureCameraSeq(SeqId);
98 std::cout << "SeqId: " << SeqId << std::endl;
99 EXPECT_EQ(res, HDI::Camera::V1_0::NO_ERROR);
100 }