1 /*
2 * Copyright (c) 2022-2023 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 #include <osal_mem.h>
18 #include <unistd.h>
19 #include "hdf_log.h"
20 #include "idevmgr_hdi.h"
21 #include "v1_0/ipartition_slot.h"
22
23 using namespace testing;
24 using namespace testing::ext;
25 using namespace OHOS::HDI::Partitionslot::V1_0;
26 using OHOS::HDI::DeviceManager::V1_0::IDeviceManager;
27
28 class StartupPartitionSlotTest : public testing::Test {
29 public:
SetUpTestCase()30 static void SetUpTestCase()
31 {
32 auto devmgr = IDeviceManager::Get();
33 if (devmgr != nullptr) {
34 devmgr->LoadDevice("partition_slot_service");
35 } else {
36 std::cout << "Get devmgr failed" << std::endl;
37 }
38 }
TearDownTestCase()39 static void TearDownTestCase()
40 {
41 auto devmgr = IDeviceManager::Get();
42 if (devmgr != nullptr) {
43 devmgr->UnloadDevice("partition_slot_service");
44 } else {
45 std::cout << "Get devmgr failed" << std::endl;
46 }
47 }
SetUp()48 void SetUp() {}
TearDown()49 void TearDown() {}
50 };
51
52 /**
53 * @tc.number: StartupPartitionSlotTest_001
54 * @tc.name: testGetCurrentSlotFun001
55 * @tc.desc: NA
56 */
HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_001, Function | MediumTest | Level1)57 HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_001, Function | MediumTest | Level1) {
58 std::cout << "begin get currentslot by service" << std::endl;
59 int numOfSlots = 0;
60 int currentSlot = -1;
61 sptr<IPartitionSlot> partitionslot = IPartitionSlot::Get();
62 ASSERT_TRUE(partitionslot != nullptr);
63 ASSERT_TRUE(partitionslot->GetCurrentSlot(currentSlot, numOfSlots) == 0);
64 }
65 /**
66 * @tc.number: StartupPartitionSlotTest_002
67 * @tc.name: testGetCurrentSlotFun002
68 * @tc.desc: NA
69 */
HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_002, Function | MediumTest | Level1)70 HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_002, Function | MediumTest | Level1)
71 {
72 std::cout << "begin get currentslot by service" << std::endl;
73 int numOfSlots = 1;
74 int currentSlot = 0;
75 sptr<IPartitionSlot> partitionslot = IPartitionSlot::Get();
76 ASSERT_TRUE(partitionslot != nullptr);
77 ASSERT_TRUE(partitionslot->GetCurrentSlot(currentSlot, numOfSlots) == 0);
78 }
79 /**
80 * @tc.number: StartupPartitionSlotTest_003
81 * @tc.name: testGetCurrentSlotFun003
82 * @tc.desc: NA
83 */
HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_003, Function | MediumTest | Level1)84 HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_003, Function | MediumTest | Level1)
85 {
86 std::cout << "begin get currentslot by service" << std::endl;
87 int numOfSlots = 1;
88 int currentSlot = 1;
89 sptr<IPartitionSlot> partitionslot = IPartitionSlot::Get();
90 ASSERT_TRUE(partitionslot != nullptr);
91 ASSERT_TRUE(partitionslot->GetCurrentSlot(currentSlot, numOfSlots) == 0);
92 }
93 /**
94 * @tc.number: StartupPartitionSlotTest_004
95 * @tc.name: testGetCurrentSlotFun004
96 * @tc.desc: NA
97 */
HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_004, Function | MediumTest | Level1)98 HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_004, Function | MediumTest | Level1)
99 {
100 std::cout << "begin get currentslot by service" << std::endl;
101 int numOfSlots = 2;
102 int currentSlot = 2;
103 sptr<IPartitionSlot> partitionslot = IPartitionSlot::Get();
104 ASSERT_TRUE(partitionslot != nullptr);
105 ASSERT_TRUE(partitionslot->GetCurrentSlot(currentSlot, numOfSlots) == 0);
106 }
107 /**
108 * @tc.number: StartupPartitionSlotTest_005
109 * @tc.name: testGetCurrentSlotFun005
110 * @tc.desc: NA
111 */
HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_005, Function | MediumTest | Level1)112 HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_005, Function | MediumTest | Level1)
113 {
114 std::cout << "begin get currentslot by service" << std::endl;
115 int numOfSlots = 3;
116 int currentSlot = 3;
117 sptr<IPartitionSlot> partitionslot = IPartitionSlot::Get();
118 ASSERT_TRUE(partitionslot != nullptr);
119 ASSERT_TRUE(partitionslot->GetCurrentSlot(currentSlot, numOfSlots) == 0);
120 }
121 /**
122 * @tc.number: StartupPartitionSlotTest_006
123 * @tc.name: testGetSlotSuffixFun001
124 * @tc.desc: NA
125 */
HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_006, Function | MediumTest | Level1)126 HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_006, Function | MediumTest | Level1)
127 {
128 std::cout << "begin get suffix by service" << std::endl;
129 std::string suffix = "";
130 int slot = -1;
131 sptr<IPartitionSlot> partitionslot = IPartitionSlot::Get();
132 ASSERT_TRUE(partitionslot != nullptr);
133 ASSERT_TRUE(partitionslot->GetSlotSuffix(slot, suffix) == 0);
134 }
135 /**
136 * @tc.number: StartupPartitionSlotTest_007
137 * @tc.name: testGetSlotSuffixFun002
138 * @tc.desc: NA
139 */
HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_007, Function | MediumTest | Level1)140 HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_007, Function | MediumTest | Level1)
141 {
142 std::cout << "begin get suffix by service" << std::endl;
143 std::string suffix = "";
144 int slot = 0;
145 sptr<IPartitionSlot> partitionslot = IPartitionSlot::Get();
146 ASSERT_TRUE(partitionslot != nullptr);
147 ASSERT_TRUE(partitionslot->GetSlotSuffix(slot, suffix) == 0);
148 }
149 /**
150 * @tc.number: StartupPartitionSlotTest_008
151 * @tc.name: testGetSlotSuffixFun003
152 * @tc.desc: NA
153 */
HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_008, Function | MediumTest | Level1)154 HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_008, Function | MediumTest | Level1)
155 {
156 std::cout << "begin get suffix by service" << std::endl;
157 std::string suffix = "";
158 int slot = 1;
159 sptr<IPartitionSlot> partitionslot = IPartitionSlot::Get();
160 ASSERT_TRUE(partitionslot != nullptr);
161 ASSERT_TRUE(partitionslot->GetSlotSuffix(slot, suffix) == 0);
162 }
163 /**
164 * @tc.number: StartupPartitionSlotTest_002
165 * @tc.name: testGetSlotSuffixFun004
166 * @tc.desc: NA
167 */
HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_009, Function | MediumTest | Level1)168 HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_009, Function | MediumTest | Level1) {
169 std::cout << "begin get suffix by service" << std::endl;
170 std::string suffix = "";
171 int slot = 2;
172 sptr<IPartitionSlot> partitionslot = IPartitionSlot::Get();
173 ASSERT_TRUE(partitionslot != nullptr);
174 ASSERT_TRUE(partitionslot->GetSlotSuffix(slot, suffix) == 0);
175 }
176 /**
177 * @tc.number: StartupPartitionSlotTest_010
178 * @tc.name: testGetSlotSuffixFun005
179 * @tc.desc: NA
180 */
HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_010, Function | MediumTest | Level1)181 HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_010, Function | MediumTest | Level1)
182 {
183 std::cout << "begin get suffix by service" << std::endl;
184 std::string suffix = "";
185 int slot = 3;
186 sptr<IPartitionSlot> partitionslot = IPartitionSlot::Get();
187 ASSERT_TRUE(partitionslot != nullptr);
188 ASSERT_TRUE(partitionslot->GetSlotSuffix(slot, suffix) == 0);
189 }
190 /**
191 * @tc.number: StartupPartitionSlotTest_011
192 * @tc.name: testGetCurrentSlotFun001
193 * @tc.desc: NA
194 */
HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_011, Function | MediumTest | Level1)195 HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_011, Function | MediumTest | Level1)
196 {
197 std::cout << "begin set active slot by service" << std::endl;
198 int numOfSlots = 0;
199 int currentSlot = -1;
200 sptr<IPartitionSlot> partitionslot = IPartitionSlot::Get();
201 ASSERT_TRUE(partitionslot != nullptr);
202 partitionslot->GetCurrentSlot(currentSlot, numOfSlots);
203 ASSERT_TRUE(partitionslot->SetActiveSlot(-1) != 0);
204 partitionslot->SetActiveSlot(currentSlot);
205 }
206 /**
207 * @tc.number: StartupPartitionSlotTest_012
208 * @tc.name: testGetCurrentSlotFun002
209 * @tc.desc: NA
210 */
HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_012, Function | MediumTest | Level1)211 HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_012, Function | MediumTest | Level1) {
212 std::cout << "begin set active slot by service" << std::endl;
213 int numOfSlots = 0;
214 int currentSlot = 0;
215 sptr<IPartitionSlot> partitionslot = IPartitionSlot::Get();
216 ASSERT_TRUE(partitionslot != nullptr);
217 partitionslot->GetCurrentSlot(currentSlot, numOfSlots);
218 ASSERT_TRUE(partitionslot->SetActiveSlot(0) == 0);
219 partitionslot->SetActiveSlot(currentSlot);
220 }
221 /**
222 * @tc.number: StartupPartitionSlotTest_013
223 * @tc.name: testGetCurrentSlotFun003
224 * @tc.desc: NA
225 */
HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_013, Function | MediumTest | Level1)226 HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_013, Function | MediumTest | Level1)
227 {
228 std::cout << "begin set active slot by service" << std::endl;
229 int numOfSlots = 1;
230 int currentSlot = 0;
231 sptr<IPartitionSlot> partitionslot = IPartitionSlot::Get();
232 ASSERT_TRUE(partitionslot != nullptr);
233 partitionslot->GetCurrentSlot(currentSlot, numOfSlots);
234 ASSERT_TRUE(partitionslot->SetActiveSlot(1) == 0);
235 partitionslot->SetActiveSlot(currentSlot);
236 }
237 /**
238 * @tc.number: StartupPartitionSlotTest_014
239 * @tc.name: testGetCurrentSlotFun004
240 * @tc.desc: NA
241 */
HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_014, Function | MediumTest | Level1)242 HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_014, Function | MediumTest | Level1)
243 {
244 std::cout << "begin set active slot by service" << std::endl;
245 int numOfSlots = 2;
246 int currentSlot = 0;
247 sptr<IPartitionSlot> partitionslot = IPartitionSlot::Get();
248 ASSERT_TRUE(partitionslot != nullptr);
249 partitionslot->GetCurrentSlot(currentSlot, numOfSlots);
250 ASSERT_TRUE(partitionslot->SetActiveSlot(2) == 0);
251 partitionslot->SetActiveSlot(currentSlot);
252 }
253 /**
254 * @tc.number: StartupPartitionSlotTest_015
255 * @tc.name: testGetCurrentSlotFun005
256 * @tc.desc: NA
257 */
HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_015, Function | MediumTest | Level1)258 HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_015, Function | MediumTest | Level1)
259 {
260 std::cout << "begin set active slot by service" << std::endl;
261 int numOfSlots = 3;
262 int currentSlot = 0;
263 sptr<IPartitionSlot> partitionslot = IPartitionSlot::Get();
264 ASSERT_TRUE(partitionslot != nullptr);
265 partitionslot->GetCurrentSlot(currentSlot, numOfSlots);
266 ASSERT_TRUE(partitionslot->SetActiveSlot(3) == 0);
267 partitionslot->SetActiveSlot(currentSlot);
268 }
269 /**
270 * @tc.number: StartupPartitionSlotTest_016
271 * @tc.name: testSetSlotUnbootableFun001
272 * @tc.desc: NA
273 */
HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_016, Function | MediumTest | Level1)274 HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_016, Function | MediumTest | Level1) {
275 std::cout << "begin set unbootable slot by service" << std::endl;
276 sptr<IPartitionSlot> partitionslot = IPartitionSlot::Get();
277 ASSERT_TRUE(partitionslot != nullptr);
278 ASSERT_TRUE(partitionslot->SetSlotUnbootable(-1) != 0);
279 }
280 /**
281 * @tc.number: StartupPartitionSlotTest_017
282 * @tc.name: testSetSlotUnbootableFun002
283 * @tc.desc: NA
284 */
HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_017, Function | MediumTest | Level1)285 HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_017, Function | MediumTest | Level1)
286 {
287 std::cout << "begin set unbootable slot by service" << std::endl;
288 sptr<IPartitionSlot> partitionslot = IPartitionSlot::Get();
289 ASSERT_TRUE(partitionslot != nullptr);
290 ASSERT_TRUE(partitionslot->SetSlotUnbootable(0) == 0);
291 }
292 /**
293 * @tc.number: StartupPartitionSlotTest_018
294 * @tc.name: testSetSlotUnbootableFun003
295 * @tc.desc: NA
296 */
HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_018, Function | MediumTest | Level1)297 HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_018, Function | MediumTest | Level1)
298 {
299 std::cout << "begin set unbootable slot by service" << std::endl;
300 sptr<IPartitionSlot> partitionslot = IPartitionSlot::Get();
301 ASSERT_TRUE(partitionslot != nullptr);
302 ASSERT_TRUE(partitionslot->SetSlotUnbootable(1) == 0);
303 }
304 /**
305 * @tc.number: StartupPartitionSlotTest_019
306 * @tc.name: testSetSlotUnbootableFun004
307 * @tc.desc: NA
308 */
HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_019, Function | MediumTest | Level1)309 HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_019, Function | MediumTest | Level1)
310 {
311 std::cout << "begin set unbootable slot by service" << std::endl;
312 sptr<IPartitionSlot> partitionslot = IPartitionSlot::Get();
313 ASSERT_TRUE(partitionslot != nullptr);
314 ASSERT_TRUE(partitionslot->SetSlotUnbootable(2) == 0);
315 }
316 /**
317 * @tc.number: StartupPartitionSlotTest_020
318 * @tc.name: testSetSlotUnbootableFun005
319 * @tc.desc: NA
320 */
HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_020, Function | MediumTest | Level1)321 HWTEST_F(StartupPartitionSlotTest, StartupPartitionSlotTest_020, Function | MediumTest | Level1)
322 {
323 std::cout << "begin set unbootable slot by service" << std::endl;
324 sptr<IPartitionSlot> partitionslot = IPartitionSlot::Get();
325 ASSERT_TRUE(partitionslot != nullptr);
326 ASSERT_TRUE(partitionslot->SetSlotUnbootable(3) == 0);
327 }