14d949f91Sopenharmony_ci/* 24d949f91Sopenharmony_ci * Copyright (C) 2024 Huawei Device Co., Ltd. 34d949f91Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 44d949f91Sopenharmony_ci * you may not use this file except in compliance with the License. 54d949f91Sopenharmony_ci * You may obtain a copy of the License at 64d949f91Sopenharmony_ci * 74d949f91Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 84d949f91Sopenharmony_ci * 94d949f91Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 104d949f91Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 114d949f91Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 124d949f91Sopenharmony_ci * See the License for the specific language governing permissions and 134d949f91Sopenharmony_ci * limitations under the License. 144d949f91Sopenharmony_ci */ 154d949f91Sopenharmony_ci 164d949f91Sopenharmony_ci#include "gtest/gtest.h" 174d949f91Sopenharmony_ci 184d949f91Sopenharmony_ci#include "effect_memory.h" 194d949f91Sopenharmony_ci 204d949f91Sopenharmony_ciusing namespace testing::ext; 214d949f91Sopenharmony_ci 224d949f91Sopenharmony_cinamespace OHOS { 234d949f91Sopenharmony_cinamespace Media { 244d949f91Sopenharmony_cinamespace Effect { 254d949f91Sopenharmony_cinamespace Test { 264d949f91Sopenharmony_ci 274d949f91Sopenharmony_ciconstexpr int BUFFER_SIZE = 1024; 284d949f91Sopenharmony_ci 294d949f91Sopenharmony_ciconstexpr uint32_t WIDTH = 1920; 304d949f91Sopenharmony_ciconstexpr uint32_t HEIGHT = 1080; 314d949f91Sopenharmony_ciconstexpr IEffectFormat FORMATE_TYPE = IEffectFormat::RGBA8888; 324d949f91Sopenharmony_ciconstexpr uint32_t ROW_STRIDE = WIDTH * 4; 334d949f91Sopenharmony_ciconstexpr uint32_t LEN = ROW_STRIDE * HEIGHT; 344d949f91Sopenharmony_ci 354d949f91Sopenharmony_ciclass TestEffectMemoryManager : public testing::Test { 364d949f91Sopenharmony_cipublic: 374d949f91Sopenharmony_ci TestEffectMemoryManager() = default; 384d949f91Sopenharmony_ci 394d949f91Sopenharmony_ci ~TestEffectMemoryManager() override = default; 404d949f91Sopenharmony_ci static void SetUpTestCase() {} 414d949f91Sopenharmony_ci 424d949f91Sopenharmony_ci static void TearDownTestCase() {} 434d949f91Sopenharmony_ci 444d949f91Sopenharmony_ci void SetUp() override 454d949f91Sopenharmony_ci { 464d949f91Sopenharmony_ci buffer = malloc(BUFFER_SIZE); 474d949f91Sopenharmony_ci std::shared_ptr<HeapMemoryData> memoryData = std::make_unique<HeapMemoryData>(); 484d949f91Sopenharmony_ci memoryData->data = buffer; 494d949f91Sopenharmony_ci memoryData_ = memoryData; 504d949f91Sopenharmony_ci } 514d949f91Sopenharmony_ci 524d949f91Sopenharmony_ci void TearDown() override 534d949f91Sopenharmony_ci { 544d949f91Sopenharmony_ci memoryData_ = nullptr; 554d949f91Sopenharmony_ci free(buffer); 564d949f91Sopenharmony_ci buffer = nullptr; 574d949f91Sopenharmony_ci } 584d949f91Sopenharmony_ci 594d949f91Sopenharmony_ci void *buffer = nullptr; 604d949f91Sopenharmony_ci std::shared_ptr<HeapMemoryData> memoryData_; 614d949f91Sopenharmony_ci}; 624d949f91Sopenharmony_ci 634d949f91Sopenharmony_ciHWTEST_F(TestEffectMemoryManager, TestEffectMemoryManager001, TestSize.Level1) { 644d949f91Sopenharmony_ci 654d949f91Sopenharmony_ci std::unique_ptr<HeapMemory> heapMemory = std::make_unique<HeapMemory>(); 664d949f91Sopenharmony_ci ErrorCode result = heapMemory->Release(); 674d949f91Sopenharmony_ci ASSERT_NE(result, ErrorCode::SUCCESS); 684d949f91Sopenharmony_ci 694d949f91Sopenharmony_ci MemoryInfo memoryInfo; 704d949f91Sopenharmony_ci memoryInfo.bufferInfo.width_ = WIDTH; 714d949f91Sopenharmony_ci memoryInfo.bufferInfo.height_ = HEIGHT; 724d949f91Sopenharmony_ci memoryInfo.bufferInfo.len_ = LEN; 734d949f91Sopenharmony_ci memoryInfo.bufferInfo.rowStride_ = ROW_STRIDE; 744d949f91Sopenharmony_ci memoryInfo.bufferInfo.formatType_ = FORMATE_TYPE; 754d949f91Sopenharmony_ci 764d949f91Sopenharmony_ci std::shared_ptr<MemoryData> memoryData = heapMemory->Alloc(memoryInfo); 774d949f91Sopenharmony_ci ASSERT_NE(memoryData, nullptr); 784d949f91Sopenharmony_ci result = heapMemory->Release(); 794d949f91Sopenharmony_ci ASSERT_EQ(result, ErrorCode::SUCCESS); 804d949f91Sopenharmony_ci 814d949f91Sopenharmony_ci std::shared_ptr<DmaMemory> dmaMemory = std::make_shared<DmaMemory>(); 824d949f91Sopenharmony_ci result = dmaMemory->Release(); 834d949f91Sopenharmony_ci ASSERT_NE(result, ErrorCode::SUCCESS); 844d949f91Sopenharmony_ci 854d949f91Sopenharmony_ci memoryData = dmaMemory->Alloc(memoryInfo); 864d949f91Sopenharmony_ci ASSERT_NE(memoryData, nullptr); 874d949f91Sopenharmony_ci result = dmaMemory->Release(); 884d949f91Sopenharmony_ci ASSERT_EQ(result, ErrorCode::SUCCESS); 894d949f91Sopenharmony_ci 904d949f91Sopenharmony_ci std::shared_ptr<SharedMemory> sharedMemory = std::make_shared<SharedMemory>(); 914d949f91Sopenharmony_ci result = sharedMemory->Release(); 924d949f91Sopenharmony_ci ASSERT_NE(result, ErrorCode::SUCCESS); 934d949f91Sopenharmony_ci 944d949f91Sopenharmony_ci memoryData = sharedMemory->Alloc(memoryInfo); 954d949f91Sopenharmony_ci ASSERT_NE(memoryData, nullptr); 964d949f91Sopenharmony_ci result = sharedMemory->Release(); 974d949f91Sopenharmony_ci ASSERT_EQ(result, ErrorCode::SUCCESS); 984d949f91Sopenharmony_ci 994d949f91Sopenharmony_ci EffectMemory *effectMemory = new EffectMemory(); 1004d949f91Sopenharmony_ci BufferType bufferType = BufferType::SHARED_MEMORY; 1014d949f91Sopenharmony_ci std::unique_ptr<AbsMemory> absMemory = effectMemory->CreateMemory(bufferType); 1024d949f91Sopenharmony_ci ASSERT_NE(absMemory, nullptr); 1034d949f91Sopenharmony_ci bufferType = BufferType::DEFAULT; 1044d949f91Sopenharmony_ci absMemory = effectMemory->CreateMemory(bufferType); 1054d949f91Sopenharmony_ci ASSERT_EQ(absMemory, nullptr); 1064d949f91Sopenharmony_ci} 1074d949f91Sopenharmony_ci} 1084d949f91Sopenharmony_ci} 1094d949f91Sopenharmony_ci} 1104d949f91Sopenharmony_ci}