From 757e82c0a56ecbe0e15a1e894992931c22fe2b33 Mon Sep 17 00:00:00 2001 From: qiudengcheng Date: Mon, 19 Apr 2021 15:01:04 +0800 Subject: [PATCH 1/6] Changes to be committed: modified: services/abilitymgr_lite/BUILD.gn new file: services/abilitymgr_lite/unittest/BUILD.gn new file: services/abilitymgr_lite/unittest/test_lv0/page_ability_test/BUILD.gn new file: services/abilitymgr_lite/unittest/test_lv0/page_ability_test/page_ability_test.cpp new file: services/abilitymgr_lite/unittest/utils/ability_test_helper.cpp new file: services/abilitymgr_lite/unittest/utils/ability_test_helper.h --- services/abilitymgr_lite/BUILD.gn | 1 + services/abilitymgr_lite/unittest/BUILD.gn | 21 ++ .../test_lv0/page_ability_test/BUILD.gn | 63 ++++ .../page_ability_test/page_ability_test.cpp | 77 +++++ .../unittest/utils/ability_test_helper.cpp | 278 ++++++++++++++++++ .../unittest/utils/ability_test_helper.h | 60 ++++ 6 files changed, 500 insertions(+) create mode 100644 services/abilitymgr_lite/unittest/BUILD.gn create mode 100644 services/abilitymgr_lite/unittest/test_lv0/page_ability_test/BUILD.gn create mode 100644 services/abilitymgr_lite/unittest/test_lv0/page_ability_test/page_ability_test.cpp create mode 100644 services/abilitymgr_lite/unittest/utils/ability_test_helper.cpp create mode 100644 services/abilitymgr_lite/unittest/utils/ability_test_helper.h diff --git a/services/abilitymgr_lite/BUILD.gn b/services/abilitymgr_lite/BUILD.gn index 3650914..ba3479b 100644 --- a/services/abilitymgr_lite/BUILD.gn +++ b/services/abilitymgr_lite/BUILD.gn @@ -119,5 +119,6 @@ lite_component("aafwk_services_lite") { features = [ ":abilityms", "tools:aa", + "unittest:ability_test", ] } diff --git a/services/abilitymgr_lite/unittest/BUILD.gn b/services/abilitymgr_lite/unittest/BUILD.gn new file mode 100644 index 0000000..8e7523e --- /dev/null +++ b/services/abilitymgr_lite/unittest/BUILD.gn @@ -0,0 +1,21 @@ +# Copyright (c) 2020 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build/lite/config/component/lite_component.gni") +import("//build/lite/config/test.gni") + +group("ability_test") { + deps = [ + "test_lv0/page_ability_test:ability_test_pageAbilityTest_group_lv0", + ] +} \ No newline at end of file diff --git a/services/abilitymgr_lite/unittest/test_lv0/page_ability_test/BUILD.gn b/services/abilitymgr_lite/unittest/test_lv0/page_ability_test/BUILD.gn new file mode 100644 index 0000000..81f3252 --- /dev/null +++ b/services/abilitymgr_lite/unittest/test_lv0/page_ability_test/BUILD.gn @@ -0,0 +1,63 @@ +# Copyright (c) 2020 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build/lite/config/component/lite_component.gni") +import("//build/lite/config/test.gni") + +unittest("ability_test_pageAbilityTest_lv0") { + output_extension = "bin" + output_dir = "$root_out_dir/test/unittest/PageAbilityTest_lv0" + + ldflags = ["-lstdc++"] + + sources = [ + "../../utils/ability_test_helper.cpp", + "../utils/ability_test_helper.cpp" + "page_ability_test.cpp", + ] + + include_dirs = [ + "${aafwk_lite_path}/interfaces/innerkits/abilitymgr_lite", + "${aafwk_lite_path}/interfaces/kits/ability_lite", + "${aafwk_lite_path}/interfaces/kits/want_lite", + "${aafwk_lite_path}/frameworks/want_lite/include", + "${aafwk_lite_path}/services/abilitymgr_lite/include", + "${aafwk_lite_path}/services/abilitymgr_lite/unittest/util", + "${appexecfwk_lite_path}/interfaces/kits/bundle_lite", + "${appexecfwk_lite_path}/utils/bundle_lite", + "${appexecfwk_lite_path}/interfaces/innerkits/bundlemgr_lite", + "${appexecfwk_lite_path}/frameworks/bundle_lite/include", + "${appexecfwk_lite_path}/kits/appkit_lite/appkit_utils/include", + "//foundation/distributedschedule/samgr_lite/interfaces/innerkits/samgr", + "//foundation/distributedschedule/samgr_lite/interfaces/innerkits/registry", + "//kernel/liteos_a/kernel/include", + "//kernel/liteos_a/kernel/common", + "//third_party/cJSON", + "//utils/native/lite/include", + ] + + deps = [ + "${aafwk_lite_path}/frameworks/abilitymgr_lite:aafwk_abilityManager_lite", + "${appexecfwk_lite_path}/frameworks/bundle_lite:bundle", + "//base/hiviewdfx/hilog_lite/frameworks/featured:hilog_shared", + "//build/lite/config/component/cJSON:cjson_shared", + "//foundation/communication/ipc_lite:liteipc_adapter", + "//foundation/distributedschedule/samgr_lite/samgr:samgr", + ] + + defines = ["OHOS_APPEXECFWK_BMS_BUNDLEMANAGER"] +} + +group("ability_test_pageAbilityTest_group_lv0") { + deps = [ ":ability_test_pageAbilityTest_lv0" ] +} \ No newline at end of file diff --git a/services/abilitymgr_lite/unittest/test_lv0/page_ability_test/page_ability_test.cpp b/services/abilitymgr_lite/unittest/test_lv0/page_ability_test/page_ability_test.cpp new file mode 100644 index 0000000..c59b9b0 --- /dev/null +++ b/services/abilitymgr_lite/unittest/test_lv0/page_ability_test/page_ability_test.cpp @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2020 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "gtest/gtest.h" + +#include "utils/ability_test_helper.h" + +using namespace testing::ext; + +namespace OHOS { + constexpr char HAP_PATH[] = "/system/internal/setting.hap"; + constexpr char BUNDLE_NAME[] = "com.huawei.setting"; + constexpr char ABILITY_NAME[] = "SettingMainAbility"; + + static Want g_want = {}; + static ElementName g_element = {}; + + class PageAbilityTest : public testing::Test { + public : + static void SetUpTestCase() + { + AbilityTestHelper::Initialize(); + } + + static void TearDownTestCase() + { + AbilityTestHelper::UnInitialize(); + } + + void SetUp() override + { + SetElementBundleName(&g_element, BUNDLE_NAME); + SetElementAbilityName(&g_element, ABILITY_NAME); + SetWantElement(&g_want, g_element); + } + + void TearDown() override + { + ASSERT_TRUE(AbilityTestHelper::TestTerminateApp(g_element.bundleName)); + ASSERT_NE(STATE_ACTIVE, AbilityTestHelper::GetAbilityState(g_element)); + ClearElement(&g_element); + ClearWant(&g_want); + } + }; + + /** + * @tc.name: StartAbilityTest001 + * @tc.desc: test StartAbility. + * @tc.require: AR000DSMBM + * @tc.type: FUNC + */ + HWTEST_F(PageAbilityTest, startAbility001, TestSize.Level0) + { + /** + * @tc.steps: step1. Start ability. + * @tc.expected: step1. Start ability success. + */ + ASSERT_TRUE(AbilityTestHelper::TestStartAbility(g_want)); + + /** + * @tc.expected: step1. Ability state is STATE_ACTIVE. + */ + ASSERT_EQ(STATE_ACTIVE, AbilityTestHelper::GetAbilityState(g_element)); + } +} // namespace OHOS \ No newline at end of file diff --git a/services/abilitymgr_lite/unittest/utils/ability_test_helper.cpp b/services/abilitymgr_lite/unittest/utils/ability_test_helper.cpp new file mode 100644 index 0000000..7373378 --- /dev/null +++ b/services/abilitymgr_lite/unittest/utils/ability_test_helper.cpp @@ -0,0 +1,278 @@ +/* + * Copyright (c) 2020 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "ability_test_helper.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace OHOS { + constexpr uint32_t WAIT_TIMEOUT = 30; + constexpr int MAX_BUFFER_SIZE_PER = 1024; // 1024 byte + constexpr char ABILITY_STATE[] = "Ability State: ["; + constexpr char NO_ABILITY[] = "Ability not found"; + constexpr char SLICE_STACK[] = "\n ["; + constexpr char SLICE_STATE[] = "] State: ["; + + static sem_t g_sem; + static bool g_result = false; + static std::string g_resultString; + + SvcIdentity AbilityTestHelper::identity_ = {}; + IClientProxy *AbilityTestHelper::proxy_ = nullptr; + + void AbilityTestHelper::Initialize() + { + if (RegisterIpcCallback(AbilityCallback, 0, IPC_WAIT_FOREVER, &identity_, nullptr) != 0) + { + printf("registerIpcCallback failed\n"); + exit(-1); + } + proxy_ = GetAbilityInnerFeature(); + if (proxy_ == nullptr) + { + exit(-1); + } + sleep(1); + } + + void AbilityTestHelper::UnInitialize() + { + UnregisterIpcCallback(identity_); + sleep(1); + } + + void AbilityTestHelper::InstallCallback(const uint8_t resultCode, const void *resultMessage) + { + std::string strMessage = reinterpret_cast(resultMessage); + if (!strMessage.empty()) + { + printf("install resultMessage is %s\n", strMessage.c_str()); + } + + g_result = (resultCode == ERR_OK); + SemPost(); + } + + void AbilityTestHelper::UninstallCallback(const uint8_t resultCode, const void *resultMessage) + { + std::string strMessage = reinterpret_cast(resultMessage); + if (!strMessage.empty()) + { + printf("[INFO] [AbilityTestHelper] uninstall resultMessage is %s\n", strMessage.c_str()); + } + + g_result = (resultCode == ERR_OK); + SemPost(); + } + + int32_t AbilityTestHelper::AbilityCallback(const IpcContext* context, void *ipcMsg, IpcIo *data, void *arg) + { + if (ipcMsg == nullptr) + { + printf("ams call back error, ipcMsg is null\n"); + return -1; + } + + uint32_t funcId = 0; + GetCode(ipcMsg, &funcId); + uint32_t flag = 0; + GetFlag(ipcMsg, &flag); + if (flag == LITEIPC_FLAG_ONEWAY) + { + FreeBuffer(nullptr, ipcMsg); + } + switch (funcId) + { + case SCHEDULER_APP_INIT: { + ElementName element = {}; + DeserializeElement(&element, data); + int ret = IpcIoPopInt32(data); + printf("ams call back, start %s.%s ret = %d\n", element.bundleName, element.abilityName, ret); + ClearElement(&element); + g_result = (ret == EC_SUCCESS); + break; + } + case SCHEDULER_DUMP_ABILITY: { + BuffPtr *buff = IpcIoPopDataBuff(data); + if ((buff == nullptr) || (buff->buff == nullptr)) + { + printf("ams call back error, buff is empty\n"); + return false; + } + g_resultString = static_cast(buff->buff); + FreeBuffer(nullptr, buff->buff); + break; + } + default: { + printf("ams call back error, funcId: %u\n", funcId); + break; + } + } + + SemPost(); + return 0; + } + + bool AbilityTestHelper::TestInstall(const std::string &hap) + { + InstallParam installParam = { + .installLocation = 1, + .keepData = false + }; + if (!Install(hap.c_str(), &installParam, InstallCallback)) + { + printf("[ERROR] [AbilityTestHelper] Install hap failed!\n"); + exit(-1); + } + g_result = false; + SemWait(); + return g_result; + } + + bool AbilityTestHelper::TestUnInstall(const std::string &bundleName) + { + InstallParam installParam = { + .installLocation = 1, + .keepData = false + }; + Uninstall(bundleName.c_str(), &installParam, UninstallCallback); + g_result = false; + SemWait(); + return g_result; + } + + bool AbilityTestHelper::TestStartAbility(const Want &want) + { + SetWantSvcIdentity(const_cast(&want), identity_); + StartAbility(&want); + g_result = false; + SemWait(); + sleep(1); + return g_result; + } + + bool AbilityTestHelper::TestTerminateApp(const std::string &bundleName) + { + IpcIo req; + char data[IPC_IO_DATA_MAX]; + IpcIoInit(&req, data, IPC_IO_DATA_MAX, 0); + IpcIoPushString(&req, bundleName.c_str()); + int32_t ret = proxy_->Invoke(proxy_, TERMINATE_APP, &req, nullptr, nullptr); + sleep(2); + return ret == EC_SUCCESS; + } + + State AbilityTestHelper::GetAbilityState(const ElementName &elementName) + { + TestDumpAbility(elementName); + + auto position = g_resultString.find(ABILITY_STATE); + if (position != std::string::npos) + { + return static_cast(g_resultString[position + strlen(ABILITY_STATE)] - '0'); + } + + if (g_resultString.find(NO_ABILITY) != std::string::npos) + { + return STATE_INITIAL; + } + printf("[ERROR] [AbilityTestHelper] Failed to GetAbilityState\n"); + return STATE_UNINITIALIZED; + } + + std::list> AbilityTestHelper::GetSliceStack(const ElementName &elementName) + { + TestDumpAbility(elementName); + std::list> sliceList; + std::string::size_type begin; + std::string::size_type end = 0; + + while (((begin = g_resultString.find(SLICE_STACK, end)) != std::string::npos) && + ((end = g_resultString.find(SLICE_STATE, begin)) != std::string::npos)) { + auto record = std::make_shared(); + record->name = g_resultString.substr(begin + strlen(SLICE_STACK), end); + record->state = static_cast)g_resultSrtring[end + strlen(SLICE_STATE)] - '0'); + sliceList.push_back(record); + } + + return sliceList; + } + + IClientProxy *AbilityTestHelper::GetAbilityInnerFeature() + { + IUnknown *iUnknown = SAMGR_GetInstance()->GetFeatureApi(AMS_SERVICE, AMS_INNER_FEATURE); + if (iUnknown == nullptr) + { + printf("ams inner unknown is null\n"); + return nullptr; + } + IClientProxy *innerProxy = nullptr; + (void)iUnknown->QueryInterface(iUnknown, CLIENT_PROXY_VER, (void **)&innerProxy); + if (innerProxy == nullptr) + { + printf("ams inner feature is null\n"); + return nullptr; + } + return innerProxy; + } + + void AbilityTestHelper::TestDumpAbility(const ElementName &elementName) + { + IpcIo req; + char data[IPC_IO_DATA_MAX]; + IpcIoInit(&req, data, IPC_IO_DATA_MAX, 2); + Want want = {}; + SetWantElement(&want, elementName); + SetWantSvcIdentity(&want, identity_); + if (!SerializeWant(&req, &want)) + { + printf("SerializeWant failed\n"); + ClearWant(&want); + exit(-1); + } + ClearWant(&want); + proxy_->Invoke(proxy_, DUMP_ABILITY, &req, nullptr, nullptr); + SemWait(); + + printf("[Dump]\n%s\n", g_resultString.c_str()); + } + + void AbilityTestHelper::SemWait() + { + printf("waiting callback\n"); + sem_init(&g_sem, 0, 0); + struct timespec ts = {}; + clock_gettime(CLOCK_REALTIME, &ts); + ts.tv_sec += WAIT_TIMEOUT; + sem_timedwait(&g_sem, &ts); + } + + void AbilityTestHelper::SemPost() + { + printf("receive callback\n"); + sem_post(&g_sem); + } +} + diff --git a/services/abilitymgr_lite/unittest/utils/ability_test_helper.h b/services/abilitymgr_lite/unittest/utils/ability_test_helper.h new file mode 100644 index 0000000..815afdd --- /dev/null +++ b/services/abilitymgr_lite/unittest/utils/ability_test_helper.h @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2020 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef OHOS_ABILITY_TEST_HELPER_H +#define OHOS_ABILITY_TEST_HELPER_H + +#include +#include +#include +#include +#include +#include +#include "liteipc_adapter.h" +namespace OHOS { + struct SliceRecord { + std::string name; + State state; + }; + + class AbilityTestHelper { + public: + AbilityTestHelper() = delete; + ~AbilityTestHelper() = delete; + static void Initialize(); + static void UnInitialize(); + + static void InstallCallback(uint8_t resultCode, const void *resultMessage); + static void UninstallCallback(uint8_t resultCode, const void *resultMessage); + static int32_t AbilityCallback(const IpcContext* context, void *ipcMsg, IpcIo *data, void *arg); + static bool TestInstall(const std::string &hap); + static bool TestUnInstall(const std::string &bundleName); + static bool TestStartAbility(const Want &want); + static bool TestTerminateApp(const std::string &bundleName); + static State GetAbilityState(const ElementName &elementName); + static std::list> GetSliceStack(const ElementName &elementName); + + private: + static IClientProxy *GetAbilityInnerFeature(); + static void TestDumpAbility(const ElementName &elementName); + static void SemWait(); + static void SemPost(); + + static SvcIdentity identity_; + static IClientProxy *proxy_; + }; +} + +#endif // OHOS_ABILITY_TEST_HELPER_H \ No newline at end of file -- Gitee From fedbe7c5d23205a12207623db38231391bfec9d3 Mon Sep 17 00:00:00 2001 From: qiudengcheng Date: Tue, 20 Apr 2021 10:32:02 +0800 Subject: [PATCH 2/6] update services/abilitymgr_lite/unittest/test_lv0/page_ability_test/BUILD.gn. --- .../unittest/test_lv0/page_ability_test/BUILD.gn | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/services/abilitymgr_lite/unittest/test_lv0/page_ability_test/BUILD.gn b/services/abilitymgr_lite/unittest/test_lv0/page_ability_test/BUILD.gn index 81f3252..f25c01c 100644 --- a/services/abilitymgr_lite/unittest/test_lv0/page_ability_test/BUILD.gn +++ b/services/abilitymgr_lite/unittest/test_lv0/page_ability_test/BUILD.gn @@ -21,8 +21,7 @@ unittest("ability_test_pageAbilityTest_lv0") { ldflags = ["-lstdc++"] sources = [ - "../../utils/ability_test_helper.cpp", - "../utils/ability_test_helper.cpp" + "../utils/ability_test_helper.cpp", "page_ability_test.cpp", ] -- Gitee From 468d517a889e5e416a71a643146a24169cf34a70 Mon Sep 17 00:00:00 2001 From: qiudengcheng Date: Tue, 20 Apr 2021 11:44:21 +0800 Subject: [PATCH 3/6] update services/abilitymgr_lite/unittest/test_lv0/page_ability_test/BUILD.gn. --- .../unittest/test_lv0/page_ability_test/BUILD.gn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/abilitymgr_lite/unittest/test_lv0/page_ability_test/BUILD.gn b/services/abilitymgr_lite/unittest/test_lv0/page_ability_test/BUILD.gn index f25c01c..b259a0a 100644 --- a/services/abilitymgr_lite/unittest/test_lv0/page_ability_test/BUILD.gn +++ b/services/abilitymgr_lite/unittest/test_lv0/page_ability_test/BUILD.gn @@ -21,7 +21,7 @@ unittest("ability_test_pageAbilityTest_lv0") { ldflags = ["-lstdc++"] sources = [ - "../utils/ability_test_helper.cpp", + "../../utils/ability_test_helper.cpp", "page_ability_test.cpp", ] -- Gitee From a458fffd01076e2353660762df87f1d7219a54f4 Mon Sep 17 00:00:00 2001 From: qiudengcheng Date: Tue, 20 Apr 2021 13:55:34 +0800 Subject: [PATCH 4/6] update services/abilitymgr_lite/unittest/utils/ability_test_helper.cpp. --- services/abilitymgr_lite/unittest/utils/ability_test_helper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/abilitymgr_lite/unittest/utils/ability_test_helper.cpp b/services/abilitymgr_lite/unittest/utils/ability_test_helper.cpp index 7373378..51e9e60 100644 --- a/services/abilitymgr_lite/unittest/utils/ability_test_helper.cpp +++ b/services/abilitymgr_lite/unittest/utils/ability_test_helper.cpp @@ -213,7 +213,7 @@ namespace OHOS { ((end = g_resultString.find(SLICE_STATE, begin)) != std::string::npos)) { auto record = std::make_shared(); record->name = g_resultString.substr(begin + strlen(SLICE_STACK), end); - record->state = static_cast)g_resultSrtring[end + strlen(SLICE_STATE)] - '0'); + record->state = static_cast(g_resultSrtring[end + strlen(SLICE_STATE)] - '0'); sliceList.push_back(record); } -- Gitee From 287f929a2ed7977f8c42a3bc1e4f661969a95a40 Mon Sep 17 00:00:00 2001 From: qiudengcheng Date: Tue, 20 Apr 2021 15:04:16 +0800 Subject: [PATCH 5/6] update services/abilitymgr_lite/unittest/utils/ability_test_helper.cpp. --- services/abilitymgr_lite/unittest/utils/ability_test_helper.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/abilitymgr_lite/unittest/utils/ability_test_helper.cpp b/services/abilitymgr_lite/unittest/utils/ability_test_helper.cpp index 51e9e60..bde64ad 100644 --- a/services/abilitymgr_lite/unittest/utils/ability_test_helper.cpp +++ b/services/abilitymgr_lite/unittest/utils/ability_test_helper.cpp @@ -213,7 +213,7 @@ namespace OHOS { ((end = g_resultString.find(SLICE_STATE, begin)) != std::string::npos)) { auto record = std::make_shared(); record->name = g_resultString.substr(begin + strlen(SLICE_STACK), end); - record->state = static_cast(g_resultSrtring[end + strlen(SLICE_STATE)] - '0'); + record->state = static_cast(g_resultString[end + strlen(SLICE_STATE)] - '0'); sliceList.push_back(record); } -- Gitee From 2c1f796f25b4470a8bfafc7a3a772ef66162fd0b Mon Sep 17 00:00:00 2001 From: qiudengcheng Date: Tue, 20 Apr 2021 16:05:33 +0800 Subject: [PATCH 6/6] update services/abilitymgr_lite/unittest/test_lv0/page_ability_test/page_ability_test.cpp. --- .../unittest/test_lv0/page_ability_test/page_ability_test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/abilitymgr_lite/unittest/test_lv0/page_ability_test/page_ability_test.cpp b/services/abilitymgr_lite/unittest/test_lv0/page_ability_test/page_ability_test.cpp index c59b9b0..ec11113 100644 --- a/services/abilitymgr_lite/unittest/test_lv0/page_ability_test/page_ability_test.cpp +++ b/services/abilitymgr_lite/unittest/test_lv0/page_ability_test/page_ability_test.cpp @@ -15,7 +15,7 @@ #include "gtest/gtest.h" -#include "utils/ability_test_helper.h" +#include "../../utils/ability_test_helper.h" using namespace testing::ext; -- Gitee