1 /*
2  * Copyright (c) 2022 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 
18 #include "utils.h"
19 
20 #define private public
21 #define protected public
22 #include "avail_buffer_manager.h"
23 #include "memmgr_config_manager.h"
24 #undef private
25 #undef protected
26 
27 namespace OHOS {
28 namespace Memory {
29 using namespace testing;
30 using namespace testing::ext;
31 
32 class AvailBufferManagerTest : public testing::Test {
33 public:
34     static void SetUpTestCase();
35     static void TearDownTestCase();
36     void SetUp();
37     void TearDown();
38 };
39 
SetUpTestCase()40 void AvailBufferManagerTest::SetUpTestCase()
41 {
42 }
43 
TearDownTestCase()44 void AvailBufferManagerTest::TearDownTestCase()
45 {
46 }
47 
SetUp()48 void AvailBufferManagerTest::SetUp()
49 {
50 }
51 
TearDown()52 void AvailBufferManagerTest::TearDown()
53 {
54 }
55 
56 HWTEST_F(AvailBufferManagerTest, initTest, TestSize.Level1)
57 {
58     MemmgrConfigManager::GetInstance().Init();
59     AvailBufferManager::GetInstance().Init();
60 }
61 
62 HWTEST_F(AvailBufferManagerTest, WriteAvailBufferToKernelTest, TestSize.Level1)
63 {
64     EXPECT_EQ(AvailBufferManager::GetInstance().WriteAvailBufferToKernel(), true);
65 }
66 
67 HWTEST_F(AvailBufferManagerTest, SetAvailBufferTest, TestSize.Level1)
68 {
69     unsigned int availBuffer = 123;
70     unsigned int minAvailBuffer = 100;
71     unsigned int highAvailBuffer = 666;
72     unsigned int swapReserve = 888;
73     std::shared_ptr<AvailBufferConfig> para = std::make_shared<AvailBufferConfig>(availBuffer, minAvailBuffer,
74             highAvailBuffer, swapReserve);
75     EXPECT_EQ(AvailBufferManager::GetInstance().SetAvailBuffer(para), true);
76 }
77 
78 HWTEST_F(AvailBufferManagerTest, LoadAvailBufferFromConfigTest, TestSize.Level1)
79 {
80     EXPECT_EQ(AvailBufferManager::GetInstance().LoadAvailBufferFromConfig(), true);
81 }
82 
83 HWTEST_F(AvailBufferManagerTest, CloseZswapdTest, TestSize.Level1)
84 {
85     AvailBufferManager::GetInstance().CloseZswapd();
86     EXPECT_EQ(AvailBufferManager::GetInstance().availBuffer_, 0);
87     EXPECT_EQ(AvailBufferManager::GetInstance().minAvailBuffer_, 0);
88     EXPECT_EQ(AvailBufferManager::GetInstance().highAvailBuffer_, 0);
89     EXPECT_EQ(AvailBufferManager::GetInstance().swapReserve_, 0);
90 }
91 
92 HWTEST_F(AvailBufferManagerTest, InitAvailBufferTest, TestSize.Level1)
93 {
94     AvailBufferManager::GetInstance().zramEnable_ = false;
95     EXPECT_EQ(AvailBufferManager::GetInstance().zramEnable_, false);
96     AvailBufferManager::GetInstance().InitAvailBuffer();
97     EXPECT_EQ(AvailBufferManager::GetInstance().zramEnable_, true);
98 }
99 
100 HWTEST_F(AvailBufferManagerTest, InitTest, TestSize.Level1)
101 {
102     EXPECT_EQ(AvailBufferManager::GetInstance().Init(), true);
103 }
104 
105 HWTEST_F(AvailBufferManagerTest, GetEventHandlerTest, TestSize.Level1)
106 {
107     EXPECT_EQ(AvailBufferManager::GetInstance().GetEventHandler(), true);
108 }
109 
110 HWTEST_F(AvailBufferManagerTest, UpdateZramEnableFromKernelTest, TestSize.Level1)
111 {
112     AvailBufferManager::GetInstance().zramEnable_ = false;
113     EXPECT_EQ(AvailBufferManager::GetInstance().zramEnable_, false);
114     AvailBufferManager::GetInstance().UpdateZramEnableFromKernel();
115     EXPECT_EQ(AvailBufferManager::GetInstance().zramEnable_, true);
116 }
117 
118 HWTEST_F(AvailBufferManagerTest, CheckAvailBufferTest, TestSize.Level1)
119 {
120     unsigned int availBuffer = 123;
121     unsigned int minAvailBuffer = 100;
122     unsigned int highAvailBuffer = 666;
123     unsigned int swapReserve = 888;
124     std::shared_ptr<AvailBufferConfig> para = std::make_shared<AvailBufferConfig>(availBuffer, minAvailBuffer,
125             highAvailBuffer, swapReserve);
126     EXPECT_EQ(AvailBufferManager::GetInstance().CheckAvailBuffer(para), true);
127 }
128 
129 HWTEST_F(AvailBufferManagerTest, UpdateMemTotalFromKernelTest, TestSize.Level1)
130 {
131     AvailBufferManager::GetInstance().memTotal_ = 0;
132     EXPECT_EQ(AvailBufferManager::GetInstance().memTotal_, 0);
133     AvailBufferManager::GetInstance().UpdateMemTotalFromKernel();
134     EXPECT_NE(AvailBufferManager::GetInstance().memTotal_, 0);
135 }
136 }
137 }
138