1 /*
2 * Copyright (c) 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 <iostream>
17 #include <osal_mem.h>
18 #include "hdf_sbuf.h"
19 #include <cmath>
20 #include <cstdio>
21 #include <unistd.h>
22 #include <gtest/gtest.h>
23 #include "idevmgr_hdi.h"
24 #include <securec.h>
25 #include "hdf_base.h"
26 #include "hdf_log.h"
27 #include "osal_time.h"
28 #ifdef HDF_DRIVERS_INTERFACE_GEOFENCE_ENABLE
29 #include "v2_0/igeofence_interface.h"
30 #include "geofence_callback_impl.h"
31
32 using namespace OHOS::HDI::Location::Geofence::V2_0;
33 #endif
34 using namespace std;
35 using namespace testing::ext;
36
37 namespace {
38 #ifdef HDF_DRIVERS_INTERFACE_GEOFENCE_ENABLE
39 sptr<IGeofenceInterface> g_igeofenceHci = nullptr;
40 #endif
41 } // namespace
42
43 class LocationGeofenceAdditionalTest : public testing::Test {
44 public:
45 static void SetUpTestCase();
46 static void TearDownTestCase();
47 void SetUp();
48 void TearDown();
49 };
50
51 #ifdef HDF_DRIVERS_INTERFACE_GEOFENCE_ENABLE
ReportGeofenceAvailability(bool isAvailable)52 int32_t GeofenceCallbackImpl::ReportGeofenceAvailability(bool isAvailable)
53 {
54 (void)isAvailable;
55 return HDF_SUCCESS;
56 }
57
ReportGeofenceEvent(int32_t fenceIndex, const LocationInfo &location, GeofenceEvent event, int64_t timestamp)58 int32_t GeofenceCallbackImpl::ReportGeofenceEvent(int32_t fenceIndex, const LocationInfo &location, GeofenceEvent event,
59 int64_t timestamp)
60 {
61 (void)fenceIndex;
62 (void)location;
63 (void)event;
64 (void)timestamp;
65 return HDF_SUCCESS;
66 }
67
ReportGeofenceOperateResult(int32_t fenceIndex, GeofenceOperateType type, GeofenceOperateResult result)68 int32_t GeofenceCallbackImpl::ReportGeofenceOperateResult(int32_t fenceIndex, GeofenceOperateType type,
69 GeofenceOperateResult result)
70 {
71 (void)fenceIndex;
72 (void)type;
73 (void)result;
74 return HDF_SUCCESS;
75 }
76 #endif
77
SetUpTestCase()78 void LocationGeofenceAdditionalTest::SetUpTestCase()
79 {
80 #ifdef HDF_DRIVERS_INTERFACE_GEOFENCE_ENABLE
81 auto devmgr = HDI::DeviceManager::V1_0::IDeviceManager::Get();
82 if (devmgr == nullptr) {
83 printf("fail to get devmgr.\n");
84 return;
85 }
86 if (devmgr->LoadDevice("gnss_interface_service") != 0) {
87 printf("Load gnss service failed!\n");
88 return;
89 }
90 if (devmgr->LoadDevice("agnss_interface_service") != 0) {
91 printf("Load agnss service failed!\n");
92 return;
93 }
94 if (devmgr->LoadDevice("geofence_interface_service") != 0) {
95 printf("Load geofence service failed!\n");
96 return;
97 }
98 g_igeofenceHci = IGeofenceInterface::Get();
99 #endif
100 }
101
TearDownTestCase()102 void LocationGeofenceAdditionalTest::TearDownTestCase()
103 {
104 #ifdef HDF_DRIVERS_INTERFACE_GEOFENCE_ENABLE
105 auto devmgr = HDI::DeviceManager::V1_0::IDeviceManager::Get();
106 if (devmgr == nullptr) {
107 printf("fail to get devmgr.\n");
108 return;
109 }
110 if (devmgr->UnloadDevice("gnss_interface_service") != 0) {
111 printf("Load gnss service failed!\n");
112 return;
113 }
114 if (devmgr->UnloadDevice("agnss_interface_service") != 0) {
115 printf("Load agnss service failed!\n");
116 return;
117 }
118 if (devmgr->UnloadDevice("geofence_interface_service") != 0) {
119 printf("Load geofence service failed!\n");
120 return;
121 }
122 #endif
123 }
124
SetUp()125 void LocationGeofenceAdditionalTest::SetUp() {}
126
TearDown()127 void LocationGeofenceAdditionalTest::TearDown() {}
128
129 /**
130 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_0200
131 * @tc.name : testAddGnssGeofence001
132 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_ENTERED.
133 */
134 #ifdef HDF_DRIVERS_INTERFACE_GEOFENCE_ENABLE
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence001, Function | MediumTest | Level1)135 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence001, Function | MediumTest | Level1)
136 {
137 GeofenceInfo fence;
138 fence.fenceIndex = 1;
139 fence.latitude = 1.00;
140 fence.longitude = 1.00;
141 fence.radius = 1.00;
142 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_ENTERED;
143 int32_t ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
144 EXPECT_EQ(HDF_SUCCESS, ret);
145 }
146
147 /**
148 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_0300
149 * @tc.name : testAddGnssGeofence002
150 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_ENTERED 100times.
151 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence002, Function | MediumTest | Level1)152 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence002, Function | MediumTest | Level1)
153 {
154 int32_t ret = 0;
155 GeofenceInfo fence;
156 fence.fenceIndex = 1;
157 fence.latitude = 1.00;
158 fence.longitude = 1.00;
159 fence.radius = 1.00;
160 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_ENTERED;
161 for (int i = 0; i < 100; i++) {
162 ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
163 EXPECT_EQ(HDF_SUCCESS, ret);
164 }
165 }
166
167 /**
168 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_0400
169 * @tc.name : testAddGnssGeofence003
170 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_ENTERED.
171 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence003, Function | MediumTest | Level1)172 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence003, Function | MediumTest | Level1)
173 {
174 GeofenceInfo fence;
175 fence.fenceIndex = 1;
176 fence.latitude = 180.00;
177 fence.longitude = 1.00;
178 fence.radius = 1.00;
179 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_ENTERED;
180 int32_t ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
181 EXPECT_EQ(HDF_SUCCESS, ret);
182 }
183
184 /**
185 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_0500
186 * @tc.name : testAddGnssGeofence004
187 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_ENTERED.
188 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence004, Function | MediumTest | Level1)189 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence004, Function | MediumTest | Level1)
190 {
191 GeofenceInfo fence;
192 fence.fenceIndex = 1;
193 fence.latitude = 180.00;
194 fence.longitude = 1.00;
195 fence.radius = 1.00;
196 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_ENTERED;
197 int32_t ret = 0;
198 for (int i = 0; i < 100; i++) {
199 ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
200 EXPECT_EQ(HDF_SUCCESS, ret);
201 }
202 }
203
204 /**
205 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_0600
206 * @tc.name : testAddGnssGeofence005
207 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_ENTERED.
208 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence005, Function | MediumTest | Level1)209 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence005, Function | MediumTest | Level1)
210 {
211 GeofenceInfo fence;
212 fence.fenceIndex = 1;
213 fence.latitude = 1.00;
214 fence.longitude = 180.00;
215 fence.radius = 1.00;
216 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_ENTERED;
217 int32_t ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
218 EXPECT_EQ(HDF_SUCCESS, ret);
219 }
220
221 /**
222 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_0700
223 * @tc.name : testAddGnssGeofence006
224 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_ENTERED.
225 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence006, Function | MediumTest | Level1)226 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence006, Function | MediumTest | Level1)
227 {
228 GeofenceInfo fence;
229 fence.fenceIndex = 1;
230 fence.latitude = 1.00;
231 fence.longitude = 180.00;
232 fence.radius = 1.00;
233 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_ENTERED;
234 int32_t ret = 0;
235 for (int i = 0; i < 100; i++) {
236 ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
237 EXPECT_EQ(HDF_SUCCESS, ret);
238 }
239 }
240
241 /**
242 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_0800
243 * @tc.name : testAddGnssGeofence007
244 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_ENTERED.
245 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence007, Function | MediumTest | Level1)246 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence007, Function | MediumTest | Level1)
247 {
248 GeofenceInfo fence;
249 fence.fenceIndex = 1;
250 fence.latitude = 180.00;
251 fence.longitude = 180.00;
252 fence.radius = 1.00;
253 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_ENTERED;
254 int32_t ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
255 EXPECT_EQ(HDF_SUCCESS, ret);
256 }
257
258 /**
259 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_0900
260 * @tc.name : testAddGnssGeofence008
261 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_ENTERED.
262 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence008, Function | MediumTest | Level1)263 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence008, Function | MediumTest | Level1)
264 {
265 GeofenceInfo fence;
266 fence.fenceIndex = 1;
267 fence.latitude = 180.00;
268 fence.longitude = 180.00;
269 fence.radius = 1.00;
270 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_ENTERED;
271 int32_t ret = 0;
272 for (int i = 0; i < 100; i++) {
273 ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
274 EXPECT_EQ(HDF_SUCCESS, ret);
275 }
276 }
277
278 /**
279 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_1000
280 * @tc.name : testAddGnssGeofence009
281 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_ENTERED.
282 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence009, Function | MediumTest | Level1)283 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence009, Function | MediumTest | Level1)
284 {
285 GeofenceInfo fence;
286 fence.fenceIndex = 1;
287 fence.latitude = 180.00;
288 fence.longitude = 180.00;
289 fence.radius = 180.00;
290 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_ENTERED;
291 int32_t ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
292 EXPECT_EQ(HDF_SUCCESS, ret);
293 }
294
295 /**
296 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_1100
297 * @tc.name : testAddGnssGeofence010
298 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_ENTERED.
299 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence010, Function | MediumTest | Level1)300 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence010, Function | MediumTest | Level1)
301 {
302 GeofenceInfo fence;
303 fence.fenceIndex = 1;
304 fence.latitude = 1.00;
305 fence.longitude = 1.00;
306 fence.radius = 1.00;
307 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_ENTERED;
308 int32_t ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
309 EXPECT_EQ(HDF_SUCCESS, ret);
310 }
311
312 /**
313 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_1200
314 * @tc.name : testAddGnssGeofence011
315 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_ENTERED 100times.
316 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence011, Function | MediumTest | Level1)317 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence011, Function | MediumTest | Level1)
318 {
319 int32_t ret = 0;
320 GeofenceInfo fence;
321 fence.fenceIndex = 1;
322 fence.latitude = 1.00;
323 fence.longitude = 1.00;
324 fence.radius = 1.00;
325 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_ENTERED;
326 for (int i = 0; i < 100; i++) {
327 ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
328 EXPECT_EQ(HDF_SUCCESS, ret);
329 }
330 }
331
332 /**
333 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_1300
334 * @tc.name : testAddGnssGeofence012
335 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_ENTERED.
336 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence012, Function | MediumTest | Level1)337 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence012, Function | MediumTest | Level1)
338 {
339 GeofenceInfo fence;
340 fence.fenceIndex = 1;
341 fence.latitude = 180.00;
342 fence.longitude = 1.00;
343 fence.radius = 1.00;
344 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_ENTERED;
345 int32_t ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
346 EXPECT_EQ(HDF_SUCCESS, ret);
347 }
348
349 /**
350 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_1400
351 * @tc.name : testAddGnssGeofence013
352 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_ENTERED.
353 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence013, Function | MediumTest | Level1)354 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence013, Function | MediumTest | Level1)
355 {
356 GeofenceInfo fence;
357 fence.fenceIndex = 1;
358 fence.latitude = 180.00;
359 fence.longitude = 1.00;
360 fence.radius = 1.00;
361 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_ENTERED;
362 int32_t ret = 0;
363 for (int i = 0; i < 100; i++) {
364 ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
365 EXPECT_EQ(HDF_SUCCESS, ret);
366 }
367 }
368
369 /**
370 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_1500
371 * @tc.name : testAddGnssGeofence014
372 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_ENTERED.
373 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence014, Function | MediumTest | Level1)374 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence014, Function | MediumTest | Level1)
375 {
376 GeofenceInfo fence;
377 fence.fenceIndex = 1;
378 fence.latitude = 1.00;
379 fence.longitude = 180.00;
380 fence.radius = 1.00;
381 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_ENTERED;
382 int32_t ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
383 EXPECT_EQ(HDF_SUCCESS, ret);
384 }
385
386 /**
387 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_1600
388 * @tc.name : testAddGnssGeofence015
389 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_ENTERED.
390 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence015, Function | MediumTest | Level1)391 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence015, Function | MediumTest | Level1)
392 {
393 GeofenceInfo fence;
394 fence.fenceIndex = 1;
395 fence.latitude = 1.00;
396 fence.longitude = 180.00;
397 fence.radius = 1.00;
398 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_ENTERED;
399 int32_t ret = 0;
400 for (int i = 0; i < 100; i++) {
401 ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
402 EXPECT_EQ(HDF_SUCCESS, ret);
403 }
404 }
405
406 /**
407 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_1700
408 * @tc.name : testAddGnssGeofence016
409 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_ENTERED.
410 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence016, Function | MediumTest | Level1)411 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence016, Function | MediumTest | Level1)
412 {
413 GeofenceInfo fence;
414 fence.fenceIndex = 1;
415 fence.latitude = 180.00;
416 fence.longitude = 180.00;
417 fence.radius = 1.00;
418 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_ENTERED;
419 int32_t ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
420 EXPECT_EQ(HDF_SUCCESS, ret);
421 }
422
423 /**
424 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_1800
425 * @tc.name : testAddGnssGeofence017
426 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_ENTERED.
427 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence017, Function | MediumTest | Level1)428 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence017, Function | MediumTest | Level1)
429 {
430 GeofenceInfo fence;
431 fence.fenceIndex = 1;
432 fence.latitude = 180.00;
433 fence.longitude = 180.00;
434 fence.radius = 1.00;
435 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_ENTERED;
436 int32_t ret = 0;
437 for (int i = 0; i < 100; i++) {
438 ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
439 EXPECT_EQ(HDF_SUCCESS, ret);
440 }
441 }
442
443 /**
444 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_1900
445 * @tc.name : testAddGnssGeofence018
446 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_ENTERED.
447 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence018, Function | MediumTest | Level1)448 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence018, Function | MediumTest | Level1)
449 {
450 GeofenceInfo fence;
451 fence.fenceIndex = 1;
452 fence.latitude = 180.00;
453 fence.longitude = 180.00;
454 fence.radius = 180.00;
455 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_ENTERED;
456 int32_t ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
457 EXPECT_EQ(HDF_SUCCESS, ret);
458 }
459
460 /**
461 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_2000
462 * @tc.name : testAddGnssGeofence019
463 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_EXITED.
464 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence019, Function | MediumTest | Level1)465 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence019, Function | MediumTest | Level1)
466 {
467 GeofenceInfo fence;
468 fence.fenceIndex = 1;
469 fence.latitude = 1.00;
470 fence.longitude = 1.00;
471 fence.radius = 1.00;
472 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_EXITED;
473 int32_t ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
474 EXPECT_EQ(HDF_SUCCESS, ret);
475 }
476
477 /**
478 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_2100
479 * @tc.name : testAddGnssGeofence020
480 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_EXITED 100times.
481 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence020, Function | MediumTest | Level1)482 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence020, Function | MediumTest | Level1)
483 {
484 int32_t ret = 0;
485 GeofenceInfo fence;
486 fence.fenceIndex = 1;
487 fence.latitude = 1.00;
488 fence.longitude = 1.00;
489 fence.radius = 1.00;
490 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_EXITED;
491 for (int i = 0; i < 100; i++) {
492 ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
493 EXPECT_EQ(HDF_SUCCESS, ret);
494 }
495 }
496
497 /**
498 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_2200
499 * @tc.name : testAddGnssGeofence021
500 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_EXITED.
501 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence021, Function | MediumTest | Level1)502 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence021, Function | MediumTest | Level1)
503 {
504 GeofenceInfo fence;
505 fence.fenceIndex = 1;
506 fence.latitude = 180.00;
507 fence.longitude = 1.00;
508 fence.radius = 1.00;
509 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_EXITED;
510 int32_t ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
511 EXPECT_EQ(HDF_SUCCESS, ret);
512 }
513
514 /**
515 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_2300
516 * @tc.name : testAddGnssGeofence022
517 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_EXITED.
518 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence022, Function | MediumTest | Level1)519 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence022, Function | MediumTest | Level1)
520 {
521 GeofenceInfo fence;
522 fence.fenceIndex = 1;
523 fence.latitude = 180.00;
524 fence.longitude = 1.00;
525 fence.radius = 1.00;
526 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_EXITED;
527 int32_t ret = 0;
528 for (int i = 0; i < 100; i++) {
529 ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
530 EXPECT_EQ(HDF_SUCCESS, ret);
531 }
532 }
533
534 /**
535 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_2400
536 * @tc.name : testAddGnssGeofence023
537 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_EXITED.
538 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence023, Function | MediumTest | Level1)539 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence023, Function | MediumTest | Level1)
540 {
541 GeofenceInfo fence;
542 fence.fenceIndex = 1;
543 fence.latitude = 1.00;
544 fence.longitude = 180.00;
545 fence.radius = 1.00;
546 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_EXITED;
547 int32_t ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
548 EXPECT_EQ(HDF_SUCCESS, ret);
549 }
550
551 /**
552 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_2500
553 * @tc.name : testAddGnssGeofence024
554 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_EXITED.
555 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence024, Function | MediumTest | Level1)556 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence024, Function | MediumTest | Level1)
557 {
558 GeofenceInfo fence;
559 fence.fenceIndex = 1;
560 fence.latitude = 1.00;
561 fence.longitude = 180.00;
562 fence.radius = 1.00;
563 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_EXITED;
564 int32_t ret = 0;
565 for (int i = 0; i < 100; i++) {
566 ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
567 EXPECT_EQ(HDF_SUCCESS, ret);
568 }
569 }
570
571 /**
572 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_2600
573 * @tc.name : testAddGnssGeofence025
574 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_EXITED.
575 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence025, Function | MediumTest | Level1)576 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence025, Function | MediumTest | Level1)
577 {
578 GeofenceInfo fence;
579 fence.fenceIndex = 1;
580 fence.latitude = 180.00;
581 fence.longitude = 180.00;
582 fence.radius = 1.00;
583 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_EXITED;
584 int32_t ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
585 EXPECT_EQ(HDF_SUCCESS, ret);
586 }
587
588 /**
589 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_2700
590 * @tc.name : testAddGnssGeofence026
591 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_EXITED.
592 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence026, Function | MediumTest | Level1)593 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence026, Function | MediumTest | Level1)
594 {
595 GeofenceInfo fence;
596 fence.fenceIndex = 1;
597 fence.latitude = 180.00;
598 fence.longitude = 180.00;
599 fence.radius = 1.00;
600 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_EXITED;
601 int32_t ret = 0;
602 for (int i = 0; i < 100; i++) {
603 ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
604 EXPECT_EQ(HDF_SUCCESS, ret);
605 }
606 }
607
608 /**
609 * @tc.number: SUB_Location_Geofence_AddGnssGeofence_2800
610 * @tc.name : testAddGnssGeofence027
611 * @tc.desc : Call function AddGnssGeofence with GeofenceEvent as GEOFENCE_EVENT_EXITED.
612 */
HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence027, Function | MediumTest | Level1)613 HWTEST_F(LocationGeofenceAdditionalTest, testAddGnssGeofence027, Function | MediumTest | Level1)
614 {
615 GeofenceInfo fence;
616 fence.fenceIndex = 1;
617 fence.latitude = 180.00;
618 fence.longitude = 180.00;
619 fence.radius = 180.00;
620 GeofenceEvent geoevent = GeofenceEvent::GEOFENCE_EVENT_EXITED;
621 int32_t ret = g_igeofenceHci->AddGnssGeofence(fence, geoevent);
622 EXPECT_EQ(HDF_SUCCESS, ret);
623 }
624
625 /**
626 * @tc.number: SUB_Location_Geofence_DeleteGnssGeofence_0200
627 * @tc.name : testDeleteGnssGeofence001
628 * @tc.desc : Call function DeleteGnssGeofence with fenceIndex as 5 100times.
629 */
HWTEST_F(LocationGeofenceAdditionalTest, testDeleteGnssGeofence001, Function | MediumTest | Level1)630 HWTEST_F(LocationGeofenceAdditionalTest, testDeleteGnssGeofence001, Function | MediumTest | Level1)
631 {
632 int fenceIndex = 5;
633 int32_t ret = 0;
634 for (int i = 0; i < 100; i++) {
635 ret = g_igeofenceHci->DeleteGnssGeofence(fenceIndex);
636 EXPECT_EQ(HDF_SUCCESS, ret);
637 }
638 }
639
640 /**
641 * @tc.number: SUB_Location_Geofence_DeleteGnssGeofence_0300
642 * @tc.name : testDeleteGnssGeofence002
643 * @tc.desc : Call function DeleteGnssGeofence with fenceIndex as 0.
644 */
HWTEST_F(LocationGeofenceAdditionalTest, testDeleteGnssGeofence002, Function | MediumTest | Level1)645 HWTEST_F(LocationGeofenceAdditionalTest, testDeleteGnssGeofence002, Function | MediumTest | Level1)
646 {
647 int fenceIndex = 0;
648 int32_t ret = g_igeofenceHci->DeleteGnssGeofence(fenceIndex);
649 EXPECT_EQ(HDF_SUCCESS, ret);
650 }
651
652 /**
653 * @tc.number: SUB_Location_Geofence_SetGeofenceCallback_0200
654 * @tc.name : testSetGeofenceCallback001
655 * @tc.desc : Call function SetGeofenceCallback 100times.
656 */
HWTEST_F(LocationGeofenceAdditionalTest, testSetGeofenceCallback001, Function | MediumTest | Level1)657 HWTEST_F(LocationGeofenceAdditionalTest, testSetGeofenceCallback001, Function | MediumTest | Level1)
658 {
659 int32_t ret = 0;
660 sptr<IGeofenceCallback> geo_callback = new (std::nothrow) GeofenceCallbackImpl();
661 if (geo_callback == nullptr) {
662 ASSERT_NE(nullptr, geo_callback);
663 return;
664 }
665 for (int i = 0; i < 100; i++) {
666 ret = g_igeofenceHci->SetGeofenceCallback(geo_callback);
667 EXPECT_EQ(HDF_SUCCESS, ret);
668 }
669 }
670 #endif