1ba5c3796Sopenharmony_ci/* 2ba5c3796Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 3ba5c3796Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4ba5c3796Sopenharmony_ci * you may not use this file except in compliance with the License. 5ba5c3796Sopenharmony_ci * You may obtain a copy of the License at 6ba5c3796Sopenharmony_ci * 7ba5c3796Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8ba5c3796Sopenharmony_ci * 9ba5c3796Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10ba5c3796Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11ba5c3796Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12ba5c3796Sopenharmony_ci * See the License for the specific language governing permissions and 13ba5c3796Sopenharmony_ci * limitations under the License. 14ba5c3796Sopenharmony_ci */ 15ba5c3796Sopenharmony_ci 16ba5c3796Sopenharmony_ci#include "gtest/gtest.h" 17ba5c3796Sopenharmony_ci 18ba5c3796Sopenharmony_ci#include "utils.h" 19ba5c3796Sopenharmony_ci 20ba5c3796Sopenharmony_ci#define private public 21ba5c3796Sopenharmony_ci#define protected public 22ba5c3796Sopenharmony_ci#include "avail_buffer_manager.h" 23ba5c3796Sopenharmony_ci#include "memmgr_config_manager.h" 24ba5c3796Sopenharmony_ci#undef private 25ba5c3796Sopenharmony_ci#undef protected 26ba5c3796Sopenharmony_ci 27ba5c3796Sopenharmony_cinamespace OHOS { 28ba5c3796Sopenharmony_cinamespace Memory { 29ba5c3796Sopenharmony_ciusing namespace testing; 30ba5c3796Sopenharmony_ciusing namespace testing::ext; 31ba5c3796Sopenharmony_ci 32ba5c3796Sopenharmony_ciclass AvailBufferManagerTest : public testing::Test { 33ba5c3796Sopenharmony_cipublic: 34ba5c3796Sopenharmony_ci static void SetUpTestCase(); 35ba5c3796Sopenharmony_ci static void TearDownTestCase(); 36ba5c3796Sopenharmony_ci void SetUp(); 37ba5c3796Sopenharmony_ci void TearDown(); 38ba5c3796Sopenharmony_ci}; 39ba5c3796Sopenharmony_ci 40ba5c3796Sopenharmony_civoid AvailBufferManagerTest::SetUpTestCase() 41ba5c3796Sopenharmony_ci{ 42ba5c3796Sopenharmony_ci} 43ba5c3796Sopenharmony_ci 44ba5c3796Sopenharmony_civoid AvailBufferManagerTest::TearDownTestCase() 45ba5c3796Sopenharmony_ci{ 46ba5c3796Sopenharmony_ci} 47ba5c3796Sopenharmony_ci 48ba5c3796Sopenharmony_civoid AvailBufferManagerTest::SetUp() 49ba5c3796Sopenharmony_ci{ 50ba5c3796Sopenharmony_ci} 51ba5c3796Sopenharmony_ci 52ba5c3796Sopenharmony_civoid AvailBufferManagerTest::TearDown() 53ba5c3796Sopenharmony_ci{ 54ba5c3796Sopenharmony_ci} 55ba5c3796Sopenharmony_ci 56ba5c3796Sopenharmony_ciHWTEST_F(AvailBufferManagerTest, initTest, TestSize.Level1) 57ba5c3796Sopenharmony_ci{ 58ba5c3796Sopenharmony_ci MemmgrConfigManager::GetInstance().Init(); 59ba5c3796Sopenharmony_ci AvailBufferManager::GetInstance().Init(); 60ba5c3796Sopenharmony_ci} 61ba5c3796Sopenharmony_ci 62ba5c3796Sopenharmony_ciHWTEST_F(AvailBufferManagerTest, WriteAvailBufferToKernelTest, TestSize.Level1) 63ba5c3796Sopenharmony_ci{ 64ba5c3796Sopenharmony_ci EXPECT_EQ(AvailBufferManager::GetInstance().WriteAvailBufferToKernel(), true); 65ba5c3796Sopenharmony_ci} 66ba5c3796Sopenharmony_ci 67ba5c3796Sopenharmony_ciHWTEST_F(AvailBufferManagerTest, SetAvailBufferTest, TestSize.Level1) 68ba5c3796Sopenharmony_ci{ 69ba5c3796Sopenharmony_ci unsigned int availBuffer = 123; 70ba5c3796Sopenharmony_ci unsigned int minAvailBuffer = 100; 71ba5c3796Sopenharmony_ci unsigned int highAvailBuffer = 666; 72ba5c3796Sopenharmony_ci unsigned int swapReserve = 888; 73ba5c3796Sopenharmony_ci std::shared_ptr<AvailBufferConfig> para = std::make_shared<AvailBufferConfig>(availBuffer, minAvailBuffer, 74ba5c3796Sopenharmony_ci highAvailBuffer, swapReserve); 75ba5c3796Sopenharmony_ci EXPECT_EQ(AvailBufferManager::GetInstance().SetAvailBuffer(para), true); 76ba5c3796Sopenharmony_ci} 77ba5c3796Sopenharmony_ci 78ba5c3796Sopenharmony_ciHWTEST_F(AvailBufferManagerTest, LoadAvailBufferFromConfigTest, TestSize.Level1) 79ba5c3796Sopenharmony_ci{ 80ba5c3796Sopenharmony_ci EXPECT_EQ(AvailBufferManager::GetInstance().LoadAvailBufferFromConfig(), true); 81ba5c3796Sopenharmony_ci} 82ba5c3796Sopenharmony_ci 83ba5c3796Sopenharmony_ciHWTEST_F(AvailBufferManagerTest, CloseZswapdTest, TestSize.Level1) 84ba5c3796Sopenharmony_ci{ 85ba5c3796Sopenharmony_ci AvailBufferManager::GetInstance().CloseZswapd(); 86ba5c3796Sopenharmony_ci EXPECT_EQ(AvailBufferManager::GetInstance().availBuffer_, 0); 87ba5c3796Sopenharmony_ci EXPECT_EQ(AvailBufferManager::GetInstance().minAvailBuffer_, 0); 88ba5c3796Sopenharmony_ci EXPECT_EQ(AvailBufferManager::GetInstance().highAvailBuffer_, 0); 89ba5c3796Sopenharmony_ci EXPECT_EQ(AvailBufferManager::GetInstance().swapReserve_, 0); 90ba5c3796Sopenharmony_ci} 91ba5c3796Sopenharmony_ci 92ba5c3796Sopenharmony_ciHWTEST_F(AvailBufferManagerTest, InitAvailBufferTest, TestSize.Level1) 93ba5c3796Sopenharmony_ci{ 94ba5c3796Sopenharmony_ci AvailBufferManager::GetInstance().zramEnable_ = false; 95ba5c3796Sopenharmony_ci EXPECT_EQ(AvailBufferManager::GetInstance().zramEnable_, false); 96ba5c3796Sopenharmony_ci AvailBufferManager::GetInstance().InitAvailBuffer(); 97ba5c3796Sopenharmony_ci EXPECT_EQ(AvailBufferManager::GetInstance().zramEnable_, true); 98ba5c3796Sopenharmony_ci} 99ba5c3796Sopenharmony_ci 100ba5c3796Sopenharmony_ciHWTEST_F(AvailBufferManagerTest, InitTest, TestSize.Level1) 101ba5c3796Sopenharmony_ci{ 102ba5c3796Sopenharmony_ci EXPECT_EQ(AvailBufferManager::GetInstance().Init(), true); 103ba5c3796Sopenharmony_ci} 104ba5c3796Sopenharmony_ci 105ba5c3796Sopenharmony_ciHWTEST_F(AvailBufferManagerTest, GetEventHandlerTest, TestSize.Level1) 106ba5c3796Sopenharmony_ci{ 107ba5c3796Sopenharmony_ci EXPECT_EQ(AvailBufferManager::GetInstance().GetEventHandler(), true); 108ba5c3796Sopenharmony_ci} 109ba5c3796Sopenharmony_ci 110ba5c3796Sopenharmony_ciHWTEST_F(AvailBufferManagerTest, UpdateZramEnableFromKernelTest, TestSize.Level1) 111ba5c3796Sopenharmony_ci{ 112ba5c3796Sopenharmony_ci AvailBufferManager::GetInstance().zramEnable_ = false; 113ba5c3796Sopenharmony_ci EXPECT_EQ(AvailBufferManager::GetInstance().zramEnable_, false); 114ba5c3796Sopenharmony_ci AvailBufferManager::GetInstance().UpdateZramEnableFromKernel(); 115ba5c3796Sopenharmony_ci EXPECT_EQ(AvailBufferManager::GetInstance().zramEnable_, true); 116ba5c3796Sopenharmony_ci} 117ba5c3796Sopenharmony_ci 118ba5c3796Sopenharmony_ciHWTEST_F(AvailBufferManagerTest, CheckAvailBufferTest, TestSize.Level1) 119ba5c3796Sopenharmony_ci{ 120ba5c3796Sopenharmony_ci unsigned int availBuffer = 123; 121ba5c3796Sopenharmony_ci unsigned int minAvailBuffer = 100; 122ba5c3796Sopenharmony_ci unsigned int highAvailBuffer = 666; 123ba5c3796Sopenharmony_ci unsigned int swapReserve = 888; 124ba5c3796Sopenharmony_ci std::shared_ptr<AvailBufferConfig> para = std::make_shared<AvailBufferConfig>(availBuffer, minAvailBuffer, 125ba5c3796Sopenharmony_ci highAvailBuffer, swapReserve); 126ba5c3796Sopenharmony_ci EXPECT_EQ(AvailBufferManager::GetInstance().CheckAvailBuffer(para), true); 127ba5c3796Sopenharmony_ci} 128ba5c3796Sopenharmony_ci 129ba5c3796Sopenharmony_ciHWTEST_F(AvailBufferManagerTest, UpdateMemTotalFromKernelTest, TestSize.Level1) 130ba5c3796Sopenharmony_ci{ 131ba5c3796Sopenharmony_ci AvailBufferManager::GetInstance().memTotal_ = 0; 132ba5c3796Sopenharmony_ci EXPECT_EQ(AvailBufferManager::GetInstance().memTotal_, 0); 133ba5c3796Sopenharmony_ci AvailBufferManager::GetInstance().UpdateMemTotalFromKernel(); 134ba5c3796Sopenharmony_ci EXPECT_NE(AvailBufferManager::GetInstance().memTotal_, 0); 135ba5c3796Sopenharmony_ci} 136ba5c3796Sopenharmony_ci} 137ba5c3796Sopenharmony_ci} 138