19762338dSopenharmony_ci/* 29762338dSopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 39762338dSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 49762338dSopenharmony_ci * you may not use this file except in compliance with the License. 59762338dSopenharmony_ci * You may obtain a copy of the License at 69762338dSopenharmony_ci * 79762338dSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 89762338dSopenharmony_ci * 99762338dSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 109762338dSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 119762338dSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 129762338dSopenharmony_ci * See the License for the specific language governing permissions and 139762338dSopenharmony_ci * limitations under the License. 149762338dSopenharmony_ci */ 159762338dSopenharmony_ci 169762338dSopenharmony_ci#include "idevmgr_hdi.h" 179762338dSopenharmony_ci#include <memory> 189762338dSopenharmony_ci#include <iostream> 199762338dSopenharmony_ci#include <cmath> 209762338dSopenharmony_ci#include <cstdio> 219762338dSopenharmony_ci#include <unistd.h> 229762338dSopenharmony_ci#include <gtest/gtest.h> 239762338dSopenharmony_ci#include <securec.h> 249762338dSopenharmony_ci#ifdef FEATURE_GNSS_SUPPORT 259762338dSopenharmony_ci#include <osal_mem.h> 269762338dSopenharmony_ci#include "hdf_base.h" 279762338dSopenharmony_ci#include "hdf_log.h" 289762338dSopenharmony_ci#include "osal_time.h" 299762338dSopenharmony_ci#include "hdf_sbuf.h" 309762338dSopenharmony_ci#include "v2_0/ignss_interface.h" 319762338dSopenharmony_ci#include "gnss_callback_impl.h" 329762338dSopenharmony_ci 339762338dSopenharmony_ciusing namespace OHOS::HDI::Location::Gnss::V2_0; 349762338dSopenharmony_ci#endif 359762338dSopenharmony_ciusing namespace std; 369762338dSopenharmony_ciusing namespace testing::ext; 379762338dSopenharmony_ci 389762338dSopenharmony_cinamespace { 399762338dSopenharmony_ci #ifdef FEATURE_GNSS_SUPPORT 409762338dSopenharmony_ci sptr<IGnssInterface> g_ignssHci = nullptr; 419762338dSopenharmony_ci constexpr const char *AGNSS_SERVICE_NAME = "agnss_interface_service"; 429762338dSopenharmony_ci constexpr const char *GNSS_SERVICE_NAME = "gnss_interface_service"; 439762338dSopenharmony_ci constexpr const char *GEOFENCE_SERVICE_NAME = "geofence_interface_service"; 449762338dSopenharmony_ci #endif 459762338dSopenharmony_ci} 469762338dSopenharmony_ci 479762338dSopenharmony_ciclass LocationGnssTest : public testing::Test { 489762338dSopenharmony_cipublic: 499762338dSopenharmony_ci static void SetUpTestCase(); 509762338dSopenharmony_ci static void TearDownTestCase(); 519762338dSopenharmony_ci void SetUp(); 529762338dSopenharmony_ci void TearDown(); 539762338dSopenharmony_ci}; 549762338dSopenharmony_ci 559762338dSopenharmony_ci#ifdef FEATURE_GNSS_SUPPORT 569762338dSopenharmony_ciint32_t GnssCallbackImpl::ReportLocation(const LocationInfo& location) 579762338dSopenharmony_ci{ 589762338dSopenharmony_ci if (location.timeSinceBoot != 0) { 599762338dSopenharmony_ci printf("Location success!!\n"); 609762338dSopenharmony_ci return HDF_SUCCESS; 619762338dSopenharmony_ci } 629762338dSopenharmony_ci else{ 639762338dSopenharmony_ci printf("Location fail!!\n"); 649762338dSopenharmony_ci return HDF_FAILURE; 659762338dSopenharmony_ci } 669762338dSopenharmony_ci} 679762338dSopenharmony_ci 689762338dSopenharmony_ciint32_t GnssCallbackImpl::ReportGnssWorkingStatus(GnssWorkingStatus status) 699762338dSopenharmony_ci{ 709762338dSopenharmony_ci if (status == GnssWorkingStatus::GNSS_WORKING_STATUS_NONE) { 719762338dSopenharmony_ci printf("GNSS_WORKING_STATUS_NONE\n"); 729762338dSopenharmony_ci return HDF_SUCCESS; 739762338dSopenharmony_ci } else if (status == GnssWorkingStatus::GNSS_WORKING_STATUS_SESSION_BEGIN) { 749762338dSopenharmony_ci printf("GNSS_WORKING_STATUS_SESSION_BEGIN\n"); 759762338dSopenharmony_ci return HDF_SUCCESS; 769762338dSopenharmony_ci } else if (status == GnssWorkingStatus::GNSS_WORKING_STATUS_SESSION_END) { 779762338dSopenharmony_ci printf("GNSS_WORKING_STATUS_SESSION_END\n"); 789762338dSopenharmony_ci return HDF_SUCCESS; 799762338dSopenharmony_ci } else if (status == GnssWorkingStatus::GNSS_WORKING_STATUS_ENGINE_ON) { 809762338dSopenharmony_ci printf("GNSS_WORKING_STATUS_ENGINE_ON\n"); 819762338dSopenharmony_ci return HDF_SUCCESS; 829762338dSopenharmony_ci } else if (status == GnssWorkingStatus::GNSS_WORKING_STATUS_ENGINE_OFF) { 839762338dSopenharmony_ci printf("GNSS_WORKING_STATUS_ENGINE_OFF\n"); 849762338dSopenharmony_ci return HDF_SUCCESS; 859762338dSopenharmony_ci } else { 869762338dSopenharmony_ci printf("Gnss status fail\n"); 879762338dSopenharmony_ci return HDF_FAILURE; 889762338dSopenharmony_ci } 899762338dSopenharmony_ci} 909762338dSopenharmony_ci 919762338dSopenharmony_ciint32_t GnssCallbackImpl::ReportNmea(int64_t timestamp, const std::string& nmea, int32_t length) 929762338dSopenharmony_ci{ 939762338dSopenharmony_ci (void)timestamp; 949762338dSopenharmony_ci (void)nmea; 959762338dSopenharmony_ci if (length >= 0) { 969762338dSopenharmony_ci printf("Report nmea success\n"); 979762338dSopenharmony_ci return HDF_SUCCESS; 989762338dSopenharmony_ci } 999762338dSopenharmony_ci else{ 1009762338dSopenharmony_ci printf("Report nmea fail\n"); 1019762338dSopenharmony_ci return HDF_FAILURE; 1029762338dSopenharmony_ci } 1039762338dSopenharmony_ci} 1049762338dSopenharmony_ci 1059762338dSopenharmony_ciint32_t GnssCallbackImpl::ReportGnssCapabilities(unsigned int capabilities) 1069762338dSopenharmony_ci{ 1079762338dSopenharmony_ci (void)capabilities; 1089762338dSopenharmony_ci return HDF_SUCCESS; 1099762338dSopenharmony_ci} 1109762338dSopenharmony_ci 1119762338dSopenharmony_ciint32_t GnssCallbackImpl::ReportSatelliteStatusInfo(const SatelliteStatusInfo& info) 1129762338dSopenharmony_ci{ 1139762338dSopenharmony_ci if (info.satellitesNumber <= 0) { 1149762338dSopenharmony_ci printf("SvStatusCallback, satellites_num <= 0!\n"); 1159762338dSopenharmony_ci return HDF_ERR_INVALID_PARAM; 1169762338dSopenharmony_ci } 1179762338dSopenharmony_ci if (((info.carrierFrequencies).size()) > 0) { 1189762338dSopenharmony_ci printf("Get satellite info success!!\n"); 1199762338dSopenharmony_ci return HDF_SUCCESS; 1209762338dSopenharmony_ci } 1219762338dSopenharmony_ci else{ 1229762338dSopenharmony_ci printf("Get satellite info fail!!\n"); 1239762338dSopenharmony_ci return HDF_FAILURE; 1249762338dSopenharmony_ci } 1259762338dSopenharmony_ci} 1269762338dSopenharmony_ci 1279762338dSopenharmony_ciint32_t GnssCallbackImpl::RequestGnssReferenceInfo(GnssRefInfoType type) 1289762338dSopenharmony_ci{ 1299762338dSopenharmony_ci (void)type; 1309762338dSopenharmony_ci return HDF_SUCCESS; 1319762338dSopenharmony_ci} 1329762338dSopenharmony_ci 1339762338dSopenharmony_ciint32_t GnssCallbackImpl::RequestPredictGnssData() 1349762338dSopenharmony_ci{ 1359762338dSopenharmony_ci return HDF_SUCCESS; 1369762338dSopenharmony_ci} 1379762338dSopenharmony_ci 1389762338dSopenharmony_ciint32_t GnssCallbackImpl::ReportCachedLocation(const std::vector<LocationInfo>& gnssLocations) 1399762338dSopenharmony_ci{ 1409762338dSopenharmony_ci (void)gnssLocations; 1419762338dSopenharmony_ci return HDF_SUCCESS; 1429762338dSopenharmony_ci} 1439762338dSopenharmony_ci 1449762338dSopenharmony_ciint32_t GnssCallbackImpl::ReportGnssNiNotification(const GnssNiNotificationRequest& notification) 1459762338dSopenharmony_ci{ 1469762338dSopenharmony_ci (void)notification; 1479762338dSopenharmony_ci return HDF_SUCCESS; 1489762338dSopenharmony_ci} 1499762338dSopenharmony_ci#endif 1509762338dSopenharmony_ci 1519762338dSopenharmony_civoid LocationGnssTest::SetUpTestCase() 1529762338dSopenharmony_ci{ 1539762338dSopenharmony_ci#ifdef FEATURE_GNSS_SUPPORT 1549762338dSopenharmony_ci auto devmgr = HDI::DeviceManager::V1_0::IDeviceManager::Get(); 1559762338dSopenharmony_ci if (devmgr == nullptr) { 1569762338dSopenharmony_ci printf("fail to get devmgr.\n"); 1579762338dSopenharmony_ci return; 1589762338dSopenharmony_ci } 1599762338dSopenharmony_ci if (devmgr->LoadDevice(GNSS_SERVICE_NAME) != 0) { 1609762338dSopenharmony_ci printf("Load gnss service failed!\n"); 1619762338dSopenharmony_ci return; 1629762338dSopenharmony_ci } 1639762338dSopenharmony_ci if (devmgr->LoadDevice(AGNSS_SERVICE_NAME) != 0) { 1649762338dSopenharmony_ci printf("Load agnss service failed!\n"); 1659762338dSopenharmony_ci return; 1669762338dSopenharmony_ci } 1679762338dSopenharmony_ci if (devmgr->LoadDevice(GEOFENCE_SERVICE_NAME) != 0) { 1689762338dSopenharmony_ci printf("Load geofence service failed!\n"); 1699762338dSopenharmony_ci return; 1709762338dSopenharmony_ci } 1719762338dSopenharmony_ci g_ignssHci = IGnssInterface::Get(); 1729762338dSopenharmony_ci#endif 1739762338dSopenharmony_ci} 1749762338dSopenharmony_ci 1759762338dSopenharmony_civoid LocationGnssTest::TearDownTestCase() 1769762338dSopenharmony_ci{ 1779762338dSopenharmony_ci#ifdef FEATURE_GNSS_SUPPORT 1789762338dSopenharmony_ci auto devmgr = HDI::DeviceManager::V1_0::IDeviceManager::Get(); 1799762338dSopenharmony_ci if (devmgr == nullptr) { 1809762338dSopenharmony_ci printf("fail to get devmgr.\n"); 1819762338dSopenharmony_ci return; 1829762338dSopenharmony_ci } 1839762338dSopenharmony_ci if (devmgr->UnloadDevice(GNSS_SERVICE_NAME) != 0) { 1849762338dSopenharmony_ci printf("Load gnss service failed!\n"); 1859762338dSopenharmony_ci return; 1869762338dSopenharmony_ci } 1879762338dSopenharmony_ci if (devmgr->UnloadDevice(AGNSS_SERVICE_NAME) != 0) { 1889762338dSopenharmony_ci printf("Load agnss service failed!\n"); 1899762338dSopenharmony_ci return; 1909762338dSopenharmony_ci } 1919762338dSopenharmony_ci if (devmgr->UnloadDevice(GEOFENCE_SERVICE_NAME) != 0) { 1929762338dSopenharmony_ci printf("Load geofence service failed!\n"); 1939762338dSopenharmony_ci return; 1949762338dSopenharmony_ci } 1959762338dSopenharmony_ci#endif 1969762338dSopenharmony_ci} 1979762338dSopenharmony_ci 1989762338dSopenharmony_civoid LocationGnssTest::SetUp() 1999762338dSopenharmony_ci{ 2009762338dSopenharmony_ci} 2019762338dSopenharmony_ci 2029762338dSopenharmony_civoid LocationGnssTest::TearDown() 2039762338dSopenharmony_ci{ 2049762338dSopenharmony_ci} 2059762338dSopenharmony_ci 2069762338dSopenharmony_ci 2079762338dSopenharmony_ci/** 2089762338dSopenharmony_ci * @tc.name: EnableGnss0100 2099762338dSopenharmony_ci * @tc.desc: Enable the GNSS module and transmit the callback of the upper layer to the GNSS module.. 2109762338dSopenharmony_ci * @tc.type: FUNC 2119762338dSopenharmony_ci */ 2129762338dSopenharmony_ciHWTEST_F(LocationGnssTest, SUB_DriverSystem_EnableGnss_0100, TestSize.Level1) 2139762338dSopenharmony_ci{ 2149762338dSopenharmony_ci#ifdef FEATURE_GNSS_SUPPORT 2159762338dSopenharmony_ci if (g_ignssHci == nullptr) { 2169762338dSopenharmony_ci ASSERT_NE(nullptr, g_ignssHci); 2179762338dSopenharmony_ci return; 2189762338dSopenharmony_ci } 2199762338dSopenharmony_ci sptr<IGnssCallback> gnss_callback = new (std::nothrow) GnssCallbackImpl(); 2209762338dSopenharmony_ci if (gnss_callback == nullptr) { 2219762338dSopenharmony_ci ASSERT_NE(nullptr, gnss_callback); 2229762338dSopenharmony_ci return; 2239762338dSopenharmony_ci } 2249762338dSopenharmony_ci int32_t ret = g_ignssHci->EnableGnss(gnss_callback); 2259762338dSopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret); 2269762338dSopenharmony_ci GnssStartType starttype = GnssStartType::GNSS_START_TYPE_NORMAL; 2279762338dSopenharmony_ci int32_t ret1 = g_ignssHci->StartGnss(starttype); 2289762338dSopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret1); 2299762338dSopenharmony_ci#endif 2309762338dSopenharmony_ci} 2319762338dSopenharmony_ci 2329762338dSopenharmony_ci 2339762338dSopenharmony_ci/** 2349762338dSopenharmony_ci * @tc.name: SetGnssConfigPara0100 2359762338dSopenharmony_ci * @tc.desc: Setting gnss configuration parameters. 2369762338dSopenharmony_ci * @tc.type: FUNC 2379762338dSopenharmony_ci */ 2389762338dSopenharmony_ciHWTEST_F(LocationGnssTest, SUB_DriverSystem_SetGnssConfigPara_0100, TestSize.Level1) 2399762338dSopenharmony_ci{ 2409762338dSopenharmony_ci#ifdef FEATURE_GNSS_SUPPORT 2419762338dSopenharmony_ci if (g_ignssHci == nullptr) { 2429762338dSopenharmony_ci ASSERT_NE(nullptr, g_ignssHci); 2439762338dSopenharmony_ci return; 2449762338dSopenharmony_ci } 2459762338dSopenharmony_ci GnssConfigPara para; 2469762338dSopenharmony_ci para.gnssBasic.minInterval = 10; 2479762338dSopenharmony_ci para.gnssBasic.gnssMode = GnssWorkingMode::GNSS_WORKING_MODE_STANDALONE; 2489762338dSopenharmony_ci para.gnssCaching.interval = 20; 2499762338dSopenharmony_ci para.gnssCaching.fifoFullNotify = true; 2509762338dSopenharmony_ci int32_t ret = g_ignssHci->SetGnssConfigPara(para); 2519762338dSopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret); 2529762338dSopenharmony_ci#endif 2539762338dSopenharmony_ci} 2549762338dSopenharmony_ci 2559762338dSopenharmony_ci 2569762338dSopenharmony_ci/** 2579762338dSopenharmony_ci * @tc.name: SetGnssReferenceInfo0100 2589762338dSopenharmony_ci * @tc.desc: Inject reference information to the GNSS module. 2599762338dSopenharmony_ci * @tc.type: FUNC 2609762338dSopenharmony_ci */ 2619762338dSopenharmony_ciHWTEST_F(LocationGnssTest, SUB_DriverSystem_SetGnssReferenceInfo_0100, TestSize.Level1) 2629762338dSopenharmony_ci{ 2639762338dSopenharmony_ci#ifdef FEATURE_GNSS_SUPPORT 2649762338dSopenharmony_ci if (g_ignssHci == nullptr) { 2659762338dSopenharmony_ci ASSERT_NE(nullptr, g_ignssHci); 2669762338dSopenharmony_ci return; 2679762338dSopenharmony_ci } 2689762338dSopenharmony_ci GnssRefInfo refInfo; 2699762338dSopenharmony_ci refInfo.type = GnssRefInfoType::GNSS_REF_INFO_TIME; 2709762338dSopenharmony_ci refInfo.time.time = 50; 2719762338dSopenharmony_ci refInfo.time.elapsedRealtime = 100; 2729762338dSopenharmony_ci refInfo.time.uncertaintyOfTime = 200; 2739762338dSopenharmony_ci refInfo.gnssLocation.latitude = 39.56; 2749762338dSopenharmony_ci refInfo.gnssLocation.longitude = 116.20; 2759762338dSopenharmony_ci refInfo.gnssLocation.horizontalAccuracy = 90; 2769762338dSopenharmony_ci refInfo.bestLocation.latitude = 39.58; 2779762338dSopenharmony_ci refInfo.bestLocation.longitude = 116.45; 2789762338dSopenharmony_ci refInfo.bestLocation.altitude = 110; 2799762338dSopenharmony_ci refInfo.bestLocation.horizontalAccuracy = 60; 2809762338dSopenharmony_ci refInfo.bestLocation.speed = 60; 2819762338dSopenharmony_ci refInfo.bestLocation.bearing = 60; 2829762338dSopenharmony_ci refInfo.bestLocation.timeForFix = 60; 2839762338dSopenharmony_ci refInfo.bestLocation.timeSinceBoot = 60; 2849762338dSopenharmony_ci int32_t ret = g_ignssHci->SetGnssReferenceInfo(refInfo); 2859762338dSopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret); 2869762338dSopenharmony_ci#endif 2879762338dSopenharmony_ci} 2889762338dSopenharmony_ci 2899762338dSopenharmony_ci/** 2909762338dSopenharmony_ci * @tc.name: StopGnss0100 2919762338dSopenharmony_ci * @tc.desc: Stop the navigation function in normal mode. 2929762338dSopenharmony_ci * @tc.type: FUNC 2939762338dSopenharmony_ci */ 2949762338dSopenharmony_ciHWTEST_F(LocationGnssTest, SUB_DriverSystem_StopGnss_0100, TestSize.Level1) 2959762338dSopenharmony_ci{ 2969762338dSopenharmony_ci#ifdef FEATURE_GNSS_SUPPORT 2979762338dSopenharmony_ci if (g_ignssHci == nullptr) { 2989762338dSopenharmony_ci ASSERT_NE(nullptr, g_ignssHci); 2999762338dSopenharmony_ci return; 3009762338dSopenharmony_ci } 3019762338dSopenharmony_ci GnssStartType stoptype = GnssStartType::GNSS_START_TYPE_NORMAL; 3029762338dSopenharmony_ci int32_t ret = g_ignssHci->StopGnss(stoptype); 3039762338dSopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret); 3049762338dSopenharmony_ci#endif 3059762338dSopenharmony_ci} 3069762338dSopenharmony_ci 3079762338dSopenharmony_ci/** 3089762338dSopenharmony_ci * @tc.name: DeleteAuxiliaryData0100 3099762338dSopenharmony_ci * @tc.desc: Delete the specified auxiliary data. 3109762338dSopenharmony_ci * @tc.type: FUNC 3119762338dSopenharmony_ci */ 3129762338dSopenharmony_ciHWTEST_F(LocationGnssTest, SUB_DriverSystem_DeleteAuxiliaryData_0100, TestSize.Level1) 3139762338dSopenharmony_ci{ 3149762338dSopenharmony_ci#ifdef FEATURE_GNSS_SUPPORT 3159762338dSopenharmony_ci if (g_ignssHci == nullptr) { 3169762338dSopenharmony_ci ASSERT_NE(nullptr, g_ignssHci); 3179762338dSopenharmony_ci return; 3189762338dSopenharmony_ci } 3199762338dSopenharmony_ci GnssAuxiliaryDataType auxdata = GnssAuxiliaryDataType::GNSS_AUXILIARY_DATA_EPHEMERIS; 3209762338dSopenharmony_ci int32_t ret = g_ignssHci->DeleteAuxiliaryData(auxdata); 3219762338dSopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret); 3229762338dSopenharmony_ci#endif 3239762338dSopenharmony_ci} 3249762338dSopenharmony_ci 3259762338dSopenharmony_ci 3269762338dSopenharmony_ci/** 3279762338dSopenharmony_ci * @tc.name: SetPredictGnssData0100 3289762338dSopenharmony_ci * @tc.desc: Ingesting Predict Gnss Data. 3299762338dSopenharmony_ci * @tc.type: FUNC 3309762338dSopenharmony_ci */ 3319762338dSopenharmony_ciHWTEST_F(LocationGnssTest, SUB_DriverSystem_SetPredictGnssData_0100, TestSize.Level1) 3329762338dSopenharmony_ci{ 3339762338dSopenharmony_ci#ifdef FEATURE_GNSS_SUPPORT 3349762338dSopenharmony_ci if (g_ignssHci == nullptr) { 3359762338dSopenharmony_ci ASSERT_NE(nullptr, g_ignssHci); 3369762338dSopenharmony_ci return; 3379762338dSopenharmony_ci } 3389762338dSopenharmony_ci const std::string str1 = "testing"; 3399762338dSopenharmony_ci int32_t ret = g_ignssHci->SetPredictGnssData(str1); 3409762338dSopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret); 3419762338dSopenharmony_ci#endif 3429762338dSopenharmony_ci} 3439762338dSopenharmony_ci 3449762338dSopenharmony_ci/** 3459762338dSopenharmony_ci * @tc.name: GetCachedGnssLocationsSize0100 3469762338dSopenharmony_ci * @tc.desc: Obtain the number of locations that can be cached by the GNSS module. 3479762338dSopenharmony_ci * @tc.type: FUNC 3489762338dSopenharmony_ci */ 3499762338dSopenharmony_ciHWTEST_F(LocationGnssTest, SUB_DriverSystem_GetCachedGnssLocationsSize_0100, TestSize.Level1) 3509762338dSopenharmony_ci{ 3519762338dSopenharmony_ci#ifdef FEATURE_GNSS_SUPPORT 3529762338dSopenharmony_ci if (g_ignssHci == nullptr) { 3539762338dSopenharmony_ci ASSERT_NE(nullptr, g_ignssHci); 3549762338dSopenharmony_ci return; 3559762338dSopenharmony_ci } 3569762338dSopenharmony_ci int cach_size = 60; 3579762338dSopenharmony_ci int32_t ret = g_ignssHci->GetCachedGnssLocationsSize(cach_size); 3589762338dSopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret); 3599762338dSopenharmony_ci#endif 3609762338dSopenharmony_ci} 3619762338dSopenharmony_ci 3629762338dSopenharmony_ci/** 3639762338dSopenharmony_ci * @tc.name: GetCachedGnssLocations0100 3649762338dSopenharmony_ci * @tc.desc: Request to obtain all the location information in the GNSS cache at a time and clear the cache buffer. 3659762338dSopenharmony_ci * @tc.type: FUNC 3669762338dSopenharmony_ci */ 3679762338dSopenharmony_ciHWTEST_F(LocationGnssTest, SUB_DriverSystem_GetCachedGnssLocations_0100, TestSize.Level1) 3689762338dSopenharmony_ci{ 3699762338dSopenharmony_ci#ifdef FEATURE_GNSS_SUPPORT 3709762338dSopenharmony_ci if (g_ignssHci == nullptr) { 3719762338dSopenharmony_ci ASSERT_NE(nullptr, g_ignssHci); 3729762338dSopenharmony_ci return; 3739762338dSopenharmony_ci } 3749762338dSopenharmony_ci int32_t ret = g_ignssHci->GetCachedGnssLocations(); 3759762338dSopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret); 3769762338dSopenharmony_ci#endif 3779762338dSopenharmony_ci} 3789762338dSopenharmony_ci 3799762338dSopenharmony_ci/** 3809762338dSopenharmony_ci * @tc.name: DisableGnss0100 3819762338dSopenharmony_ci * @tc.desc: Disable the GNSS module. 3829762338dSopenharmony_ci * @tc.type: FUNC 3839762338dSopenharmony_ci */ 3849762338dSopenharmony_ciHWTEST_F(LocationGnssTest, SUB_DriverSystem_DisableGnss_0100, TestSize.Level1) 3859762338dSopenharmony_ci{ 3869762338dSopenharmony_ci#ifdef FEATURE_GNSS_SUPPORT 3879762338dSopenharmony_ci if (g_ignssHci == nullptr) { 3889762338dSopenharmony_ci ASSERT_NE(nullptr, g_ignssHci); 3899762338dSopenharmony_ci return; 3909762338dSopenharmony_ci } 3919762338dSopenharmony_ci int32_t ret = g_ignssHci->DisableGnss(); 3929762338dSopenharmony_ci EXPECT_EQ(HDF_SUCCESS, ret); 3939762338dSopenharmony_ci#endif 3949762338dSopenharmony_ci} 395