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