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