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 except 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 <gtest/gtest.h> 17 #define private public 18 #include "common_utils.h" 19 #include "image_native.h" 20 #include "image_receiver_native.h" 21 #include "image_kits.h" 22 #include "image_receiver.h" 23 24 using namespace testing::ext; 25 namespace OHOS { 26 namespace Media { 27 28 class ImageNativeTest : public testing::Test { 29 public: ImageNativeTest()30 ImageNativeTest() {} ~ImageNativeTest()31 ~ImageNativeTest() {} 32 }; 33 34 /** 35 * @tc.name: OH_ImageNative_ReleaseTest 36 * @tc.desc: OH_ImageNative_Release 37 * @tc.type: FUNC 38 */ 39 HWTEST_F(ImageNativeTest, OH_ImageNative_ReleaseTest, TestSize.Level3) 40 { 41 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_ReleaseTest start"; 42 OH_ImageNative* pImg = nullptr; 43 Image_ErrorCode nRst = OH_ImageNative_Release(pImg); 44 ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER); 45 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_ReleaseTest end"; 46 } 47 48 /** 49 * @tc.name: OH_ImageNative_GetByteBufferTest 50 * @tc.desc: OH_ImageNative_GetByteBuffer 51 * @tc.type: FUNC 52 */ 53 HWTEST_F(ImageNativeTest, OH_ImageNative_GetByteBufferTest, TestSize.Level3) 54 { 55 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetByteBufferTest start"; 56 OH_ImageNative* pImg = nullptr; 57 OH_NativeBuffer* pBuffer = nullptr; 58 Image_ErrorCode nRst = OH_ImageNative_GetByteBuffer(pImg, 0, &pBuffer); 59 ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER); 60 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetByteBufferTest end"; 61 } 62 63 /** 64 * @tc.name: OH_ImageNative_GetBufferSizeTest 65 * @tc.desc: OH_ImageNative_GetBufferSize 66 * @tc.type: FUNC 67 */ 68 HWTEST_F(ImageNativeTest, OH_ImageNative_GetBufferSizeTest, TestSize.Level3) 69 { 70 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetBufferSizeTest start"; 71 OH_ImageNative* pImg = nullptr; 72 size_t nSize = 0; 73 Image_ErrorCode nRst = OH_ImageNative_GetBufferSize(pImg, 0, &nSize); 74 ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER); 75 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetBufferSizeTest end"; 76 } 77 78 /** 79 * @tc.name: OH_ImageNative_GetComponentTypesTest 80 * @tc.desc: OH_ImageNative_GetComponentTypes 81 * @tc.type: FUNC 82 */ 83 HWTEST_F(ImageNativeTest, OH_ImageNative_GetComponentTypesTest, TestSize.Level3) 84 { 85 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetComponentTypesTest start"; 86 OH_ImageNative* pImg = nullptr; 87 uint32_t* pTypes = nullptr; 88 size_t nTypeSize = 0; 89 Image_ErrorCode nRst = OH_ImageNative_GetComponentTypes(pImg, &pTypes, &nTypeSize); 90 ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER); 91 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetComponentTypesTest end"; 92 } 93 94 /** 95 * @tc.name: OH_ImageNative_GetRowStrideTest 96 * @tc.desc: OH_ImageNative_GetRowStride 97 * @tc.type: FUNC 98 */ 99 HWTEST_F(ImageNativeTest, OH_ImageNative_GetRowStrideTest, TestSize.Level3) 100 { 101 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetRowStrideTest start"; 102 OH_ImageNative* pImg = nullptr; 103 int32_t nRowStride = 0; 104 Image_ErrorCode nRst = OH_ImageNative_GetRowStride(pImg, 0, &nRowStride); 105 ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER); 106 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetRowStrideTest end"; 107 } 108 109 /** 110 * @tc.name: OH_ImageNative_GetRowStrideTest002 111 * @tc.desc: OH_ImageNative_GetRowStride 112 * @tc.type: FUNC 113 */ 114 HWTEST_F(ImageNativeTest, OH_ImageNative_GetRowStrideTest002, TestSize.Level3) 115 { 116 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetRowStrideTest002 start"; 117 struct OH_ImageNative imageNative; 118 OH_ImageNative* pImg = &imageNative; 119 sptr<SurfaceBuffer> buffer = SurfaceBuffer::Create(); 120 std::shared_ptr<IBufferProcessor> releaser; 121 NativeImage imgNative(buffer, releaser); 122 pImg->imgNative = &imgNative; 123 uint32_t componentType = 0; 124 int32_t nRowStride = 0; 125 Image_ErrorCode nRst = OH_ImageNative_GetRowStride(pImg, componentType, &nRowStride); 126 ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER); 127 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetRowStrideTest002 end"; 128 } 129 130 /** 131 * @tc.name: OH_ImageNative_GetPixelStrideTest 132 * @tc.desc: OH_ImageNative_GetPixelStride 133 * @tc.type: FUNC 134 */ 135 HWTEST_F(ImageNativeTest, OH_ImageNative_GetPixelStrideTest, TestSize.Level3) 136 { 137 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetPixelStrideTest start"; 138 OH_ImageNative* pImg = nullptr; 139 int32_t nPixelStride = 0; 140 Image_ErrorCode nRst = OH_ImageNative_GetPixelStride(pImg, 0, &nPixelStride); 141 ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER); 142 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetPixelStrideTest end"; 143 } 144 145 /** 146 * @tc.name: OH_ImageNative_GetImageSizeTest 147 * @tc.desc: OH_ImageNative_GetImageSize 148 * @tc.type: FUNC 149 */ 150 HWTEST_F(ImageNativeTest, OH_ImageNative_GetImageSizeTest, TestSize.Level3) 151 { 152 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetImageSizeTest start"; 153 OH_ImageNative* pImg = nullptr; 154 Image_Size szImg = { 0 }; 155 Image_ErrorCode nRst = OH_ImageNative_GetImageSize(pImg, &szImg); 156 ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER); 157 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetImageSizeTest end"; 158 } 159 160 /** 161 @tc.name: OH_ImageNative_GetComponentTypesTest002 162 @tc.desc: OH_ImageNative_GetComponentTypes 163 @tc.type: FUNC 164 */ 165 HWTEST_F(ImageNativeTest, OH_ImageNative_GetComponentTypesTest002, TestSize.Level3) 166 { 167 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetComponentTypesTest002 start"; 168 struct OH_ImageNative imageNative; 169 OH_ImageNative* pImg = &imageNative; 170 sptr<SurfaceBuffer> buffer = SurfaceBuffer::Create(); 171 std::shared_ptr<IBufferProcessor> releaser = nullptr; 172 NativeImage imgNative(buffer, releaser); 173 pImg->imgNative = &imgNative; 174 uint32_t data = 0; 175 uint32_t* pTypes = &data; 176 size_t nTypeSize = 0; 177 Image_ErrorCode nRst = OH_ImageNative_GetComponentTypes(pImg, &pTypes, &nTypeSize); 178 ASSERT_EQ(nRst, IMAGE_SUCCESS); 179 uint32_t componentType = 128; 180 size_t* size = (size_t *)&data; 181 nRst = OH_ImageNative_GetBufferSize(pImg, componentType, size); 182 ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER); 183 int32_t* rowStride = (int32_t *)&data; 184 nRst = OH_ImageNative_GetRowStride(pImg, componentType, rowStride); 185 ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER); 186 int32_t* pixelStride = (int32_t *)&data; 187 nRst = OH_ImageNative_GetPixelStride(pImg, componentType, pixelStride); 188 ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER); 189 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetComponentTypesTest002 end"; 190 } 191 192 /** 193 * @tc.name: OH_ImageNative_GetComponentTypesTest003 194 * @tc.desc: OH_ImageNative_GetComponentTypes 195 * @tc.type: FUNC 196 */ 197 HWTEST_F(ImageNativeTest, OH_ImageNative_GetComponentTypesTest003, TestSize.Level3) 198 { 199 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetComponentTypesTest003 start"; 200 struct OH_ImageNative imageNative; 201 OH_ImageNative* pImg = &imageNative; 202 sptr<SurfaceBuffer> buffer = SurfaceBuffer::Create(); 203 std::shared_ptr<IBufferProcessor> releaser; 204 NativeImage imgNative(buffer, releaser); 205 pImg->imgNative = &imgNative; 206 uint32_t* pTypes = nullptr; 207 size_t nTypeSize = 0; 208 Image_ErrorCode nRst = OH_ImageNative_GetComponentTypes(pImg, &pTypes, &nTypeSize); 209 ASSERT_EQ(nRst, IMAGE_SUCCESS); 210 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetComponentTypesTest003 end"; 211 } 212 213 /** 214 * @tc.name: OH_ImageNative_GetByteBufferTest002 215 * @tc.desc: OH_ImageNative_GetByteBuffer 216 * @tc.type: FUNC 217 */ 218 HWTEST_F(ImageNativeTest, OH_ImageNative_GetByteBufferTest002, TestSize.Level3) 219 { 220 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetByteBufferTest002 start"; 221 struct OH_ImageNative imageNative; 222 OH_ImageNative* pImg = &imageNative; 223 sptr<SurfaceBuffer> buffer = SurfaceBuffer::Create(); 224 std::shared_ptr<IBufferProcessor> releaser; 225 NativeImage imgNative(buffer, releaser); 226 pImg->imgNative = &imgNative; 227 OH_NativeBuffer* pBuffer; 228 uint32_t type = 128; 229 Image_ErrorCode nRst = OH_ImageNative_GetByteBuffer(pImg, type, &pBuffer); 230 ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER); 231 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetByteBufferTest002 end"; 232 } 233 234 /** 235 * @tc.name: OH_ImageNative_GetByteBufferTest003 236 * @tc.desc: OH_ImageNative_GetByteBuffer 237 * @tc.type: FUNC 238 */ 239 HWTEST_F(ImageNativeTest, OH_ImageNative_GetByteBufferTest003, TestSize.Level3) 240 { 241 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetByteBufferTest003 start"; 242 struct OH_ImageNative imageNative; 243 OH_ImageNative* pImg = &imageNative; 244 sptr<SurfaceBuffer> buffer = SurfaceBuffer::Create(); 245 std::shared_ptr<IBufferProcessor> releaser; 246 NativeImage imgNative(buffer, releaser); 247 pImg->imgNative = &imgNative; 248 OH_NativeBuffer* pBuffer; 249 uint32_t type = 1; 250 uint8_t vir = 0; 251 pImg->imgNative->CreateComponent(1, 1, 1, 1, &vir); 252 Image_ErrorCode nRst = OH_ImageNative_GetByteBuffer(pImg, type, &pBuffer); 253 ASSERT_EQ(nRst, IMAGE_SUCCESS); 254 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetByteBufferTest003 end"; 255 } 256 257 /** 258 * @tc.name: OH_ImageNative_GetImageSizeTest002 259 * @tc.desc: OH_ImageNative_GetImageSize 260 * @tc.type: FUNC 261 */ 262 HWTEST_F(ImageNativeTest, OH_ImageNative_GetImageSizeTest002, TestSize.Level3) 263 { 264 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetImageSizeTest002 start"; 265 struct OH_ImageNative imageNative; 266 OH_ImageNative* pImg = &imageNative; 267 sptr<SurfaceBuffer> buffer = SurfaceBuffer::Create(); 268 std::shared_ptr<IBufferProcessor> releaser; 269 NativeImage imgNative(buffer, releaser); 270 pImg->imgNative = &imgNative; 271 Image_Size szImg = {0, 0}; 272 Image_ErrorCode nRst = OH_ImageNative_GetImageSize(pImg, &szImg); 273 ASSERT_EQ(nRst, IMAGE_SUCCESS); 274 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetImageSizeTest002 end"; 275 } 276 277 /** 278 * @tc.name: OH_ImageNative_GetImageSizeTest003 279 * @tc.desc: OH_ImageNative_GetImageSize 280 * @tc.type: FUNC 281 */ 282 HWTEST_F(ImageNativeTest, OH_ImageNative_GetImageSizeTest003, TestSize.Level3) 283 { 284 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetImageSizeTest003 start"; 285 struct OH_ImageNative imageNative; 286 OH_ImageNative* pImg = &imageNative; 287 sptr<SurfaceBuffer> buffer = SurfaceBuffer::Create(); 288 std::shared_ptr<IBufferProcessor> releaser; 289 NativeImage imgNative(buffer, releaser); 290 pImg->imgNative = &imgNative; 291 pImg->imgNative->buffer_ = nullptr; 292 Image_Size szImg = {0, 0}; 293 Image_ErrorCode nRst = OH_ImageNative_GetImageSize(pImg, &szImg); 294 ASSERT_EQ(nRst, ERR_MEDIA_DEAD_OBJECT); 295 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetImageSizeTest003 end"; 296 } 297 298 /** 299 * @tc.name: OH_ImageNative_GetTimestampTest001 300 * @tc.desc: OH_ImageNative_GetTimestamp 301 * @tc.type: FUNC 302 */ 303 HWTEST_F(ImageNativeTest, OH_ImageNative_GetTimestampTest001, TestSize.Level3) 304 { 305 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetTimestampTest001 start"; 306 OH_ImageNative* pImg = nullptr; 307 int64_t timestamp = 0; 308 Image_ErrorCode nRst = OH_ImageNative_GetTimestamp(pImg, ×tamp); 309 ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER); 310 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetTimestampTest001 end"; 311 } 312 313 /** 314 * @tc.name: OH_ImageNative_GetTimestampTest002 315 * @tc.desc: OH_ImageNative_GetTimestamp 316 * @tc.type: FUNC 317 */ 318 HWTEST_F(ImageNativeTest, OH_ImageNative_GetTimestampTest002, TestSize.Level3) 319 { 320 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetTimestampTest002 start"; 321 struct OH_ImageNative imageNative; 322 OH_ImageNative* pImg = &imageNative; 323 sptr<SurfaceBuffer> buffer = SurfaceBuffer::Create(); 324 std::shared_ptr<IBufferProcessor> releaser; 325 NativeImage imgNative(buffer, releaser); 326 pImg->imgNative = &imgNative; 327 int64_t timestamp = 0; 328 Image_ErrorCode nRst = OH_ImageNative_GetTimestamp(pImg, ×tamp); 329 ASSERT_EQ(nRst, IMAGE_SUCCESS); 330 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetTimestampTest002 end"; 331 } 332 333 /** 334 * @tc.name: OH_ImageNative_GetTimestampTest003 335 * @tc.desc: OH_ImageNative_GetTimestamp 336 * @tc.type: FUNC 337 */ 338 HWTEST_F(ImageNativeTest, OH_ImageNative_GetTimestampTest003, TestSize.Level3) 339 { 340 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetTimestampTest003 start"; 341 struct OH_ImageNative imageNative; 342 OH_ImageNative* pImg = &imageNative; 343 sptr<SurfaceBuffer> buffer = nullptr; 344 std::shared_ptr<IBufferProcessor> releaser; 345 NativeImage imgNative(buffer, releaser); 346 pImg->imgNative = &imgNative; 347 int64_t timestamp = 0; 348 Image_ErrorCode nRst = OH_ImageNative_GetTimestamp(pImg, ×tamp); 349 ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER); 350 GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetTimestampTest003 end"; 351 } 352 } // namespace Media 353 } // namespace OHOS 354