From 8033a5d64b3c7ee771122663c1bd2d3208e05c65 Mon Sep 17 00:00:00 2001 From: pengxiaolong Date: Wed, 16 Oct 2024 09:48:37 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A8=E9=A9=B1=E5=8A=A8=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: pengxiaolong --- .../unittest/include/manual_ondemand_helper.h | 61 +- .../test/unittest/include/ondemand_helper.h | 53 ++ .../unittest/src/manual_ondemand_helper.cpp | 717 +++++++++++------- .../test/unittest/src/ondemand_helper.cpp | 538 ++++++++----- 4 files changed, 903 insertions(+), 466 deletions(-) diff --git a/services/samgr/native/test/unittest/include/manual_ondemand_helper.h b/services/samgr/native/test/unittest/include/manual_ondemand_helper.h index 71afcaf0..a40fc1b9 100644 --- a/services/samgr/native/test/unittest/include/manual_ondemand_helper.h +++ b/services/samgr/native/test/unittest/include/manual_ondemand_helper.h @@ -15,18 +15,77 @@ #ifndef SAMGR_TEST_UNITTEST_INCLUDE_MANUAL_ONDEMAND_HELPER_H #define SAMGR_TEST_UNITTEST_INCLUDE_MANUAL_ONDEMAND_HELPER_H +#include + #include "refbase.h" #include "system_ability_load_callback_stub.h" #include "system_ability_on_demand_event.h" #include "system_process_status_change_stub.h" namespace OHOS { - enum class TimeEventId { LOOP_EVENT = 1, AWAKE_LOOP_EVENT = 2, ORDER_TIMED_EVENT = 3 }; + +enum class TestCommandId { + PARAM = 1, + SA = 2, + PROC = 3, + POLICY = 4, + GET_EXTENSION = 5, + GET_EVENT = 6, + CHECK = 7, + POLICY_TIME = 8, + TEST = 9, + MEMORY = 10 +}; + +enum class TestIntCommandId { + ONE = 1, + TWO = 2, + THREE = 3, + FOUR = 4, + FIVE = 5, + SIX = 6, + SEVEN = 7, + EIGHT = 8, + NINE = 9, + TEN = 10 +}; + +enum class TestOndemandId { + GET = 1, + UPDATE = 2, + START = 3, + START_MULTI = 4, + STOP = 5, + STOP_MULTI = 6, +}; + +enum class TestSAId { + GET = 1, + LOAD = 2, + DEVICE = 3, + LOADRMT1 = 4, + LOADRMT2 = 5, + LOADRMT3 = 6, + LOADRMT4 = 7, + LOADRMT5 = 8, + LOADRMT6 = 9, + LOADMUTI = 10, + UNLOAD = 11, + GETINFO = 12, + SYNCLOAD = 13 +}; + +enum class TestProcessId { + GETP = 1, + SUBP = 2, + UNSUBP = 3, + INITP = 4 +}; class OnDemandHelper { public: diff --git a/services/samgr/native/test/unittest/include/ondemand_helper.h b/services/samgr/native/test/unittest/include/ondemand_helper.h index e310097d..88360d4b 100644 --- a/services/samgr/native/test/unittest/include/ondemand_helper.h +++ b/services/samgr/native/test/unittest/include/ondemand_helper.h @@ -15,12 +15,65 @@ #ifndef SAMGR_TEST_UNITTEST_INCLUDE_ONDEMAND_HELPER_H #define SAMGR_TEST_UNITTEST_INCLUDE_ONDEMAND_HELPER_H +#include + #include "refbase.h" #include "system_ability_load_callback_stub.h" #include "system_ability_on_demand_event.h" #include "system_process_status_change_stub.h" namespace OHOS { +enum class TestCommandId { + PARAM = 1, + SA = 2, + PROC = 3, + POLICY = 4, + GET_EXTENSION = 5, + GET_EVENT = 6, + CHECK = 7, + POLICY_TIME = 8, + TEST = 9, + MEMORY = 10 +}; + +enum class TestIntCommandId { + ONE = 1, + TWO = 2, + THREE = 3, + FOUR = 4, + FIVE = 5, + SIX = 6, + SEVEN = 7, + EIGHT = 8, + NINE = 9, + TEN = 10 +}; + +enum class TestOndemandId { + GET = 1, + UPDATE = 2, + START = 3, + START_MULTI = 4, + STOP = 5, + STOP_MULTI = 6, +}; + +enum class TestSAId { + GET = 1, + LOAD = 2, + DEVICE = 3, + LOADRMT1 = 4, + LOADRMT2 = 5, + LOADRMT3 = 6, + LOADRMT4 = 7, + LOADRMT5 = 8, + LOADRMT6 = 9, + LOADMUTI = 10, + UNLOAD = 11, + GETINFO = 12, + SYNCLOAD = 13 +}; + class OnDemandHelper { public: ~OnDemandHelper() = default; diff --git a/services/samgr/native/test/unittest/src/manual_ondemand_helper.cpp b/services/samgr/native/test/unittest/src/manual_ondemand_helper.cpp index b54aa4e9..99964bfc 100644 --- a/services/samgr/native/test/unittest/src/manual_ondemand_helper.cpp +++ b/services/samgr/native/test/unittest/src/manual_ondemand_helper.cpp @@ -49,6 +49,11 @@ constexpr int32_t SLEEP_1_SECONDS = 1 * 1000 * 1000; constexpr int32_t SLEEP_3_SECONDS = 3 * 1000 * 1000; constexpr int32_t SLEEP_6_SECONDS = 6 * 1000 * 1000; std::string g_inputTimeStr = "2023-10-9-10:00:00"; // time format +static std::map testProcessMap_; +static std::map testSAMap_; +static std::map testOnDemandMap_; +static std::map testCommandMap_; +}; } OnDemandHelper::OnDemandHelper() @@ -1135,26 +1140,31 @@ void OnDemandHelper::GetCommonEventExtraId(int32_t saId, const std::string& even cout << endl; return; } -} static void TestProcess(OHOS::OnDemandHelper& ondemandHelper) { std::string cmd = ""; cout << "please input proc test case(getp/initp/subp/unsubp)" << endl; cin >> cmd; - if (cmd == "getp") { - SamMockPermission::MockProcess("resource_schedule_service"); - ondemandHelper.GetSystemProcess(); - } else if (cmd == "subp") { - SamMockPermission::MockProcess("resource_schedule_service"); - ondemandHelper.SubscribeSystemProcess(); - } else if (cmd == "unsubp") { - SamMockPermission::MockProcess("resource_schedule_service"); - ondemandHelper.UnSubscribeSystemProcess(); - } else if (cmd == "initp") { - ondemandHelper.InitSystemProcessStatusChange(); - } else { - cout << "invalid input" << endl; + int32_t testcaseType = testProcessMap_[cmd]; + switch (testcaseType) { + case static_cast(TestProcessId::GETP): + SamMockPermission::MockProcess("resource_schedule_service"); + ondemandHelper.GetSystemProcess(); + break; + case static_cast(TestProcessId::SUBP): + SamMockPermission::MockProcess("resource_schedule_service"); + ondemandHelper.SubscribeSystemProcess(); + break; + case static_cast(TestProcessId::UNSUBP): + SamMockPermission::MockProcess("resource_schedule_service"); + ondemandHelper.UnSubscribeSystemProcess(); + break; + case static_cast(TestProcessId::INITP): + ondemandHelper.InitSystemProcessStatusChange(); + break; + default: + cout << "invalid input" << endl; } } @@ -1167,41 +1177,57 @@ static void TestSystemAbility(OHOS::OnDemandHelper& ondemandHelper) std::string deviceId = ondemandHelper.GetFirstDevice(); cout << "please input systemAbilityId for " << cmd << " operation" << endl; cin >> systemAbilityId; - if (cmd == "get") { - ondemandHelper.GetSystemAbility(systemAbilityId); - } else if (cmd == "load") { - ondemandHelper.OnDemandAbility(systemAbilityId); - } else if (cmd == "device") { // get remote networkid - ondemandHelper.GetDeviceList(); - } else if (cmd == "loadrmt1") { // single thread with one device, one system ability, one callback - ondemandHelper.LoadRemoteAbility(systemAbilityId, deviceId, nullptr); - } else if (cmd == "loadrmt2") { // one device, one system ability, one callback, three threads - ondemandHelper.LoadRemoteAbilityMuti(systemAbilityId, deviceId); - } else if (cmd == "loadrmt3") { // one device, one system ability, three callbacks, three threads - ondemandHelper.LoadRemoteAbilityMutiCb(systemAbilityId, deviceId); - } else if (cmd == "loadrmt4") { // one device, three system abilities, one callback, three threads - ondemandHelper.LoadRemoteAbilityMutiSA(systemAbilityId, deviceId); - } else if (cmd == "loadrmt5") { // one device, three system abilities, three callbacks, three threads - ondemandHelper.LoadRemoteAbilityMutiSACb(systemAbilityId, deviceId); - } else if (cmd == "loadrmt6") { // two devices - int32_t otherSystemAbilityId = 0; - cout << "please input another systemabilityId for " << cmd << " operation" << endl; - cin >> otherSystemAbilityId; - cout << "please input another deviceId for " << cmd << " operation" << endl; - std::string otherDevice; - cin >> otherDevice; - ondemandHelper.LoadRemoteAbility(systemAbilityId, deviceId, nullptr); - ondemandHelper.LoadRemoteAbility(otherSystemAbilityId, otherDevice, nullptr); - } else if (cmd == "loadmuti") { - ondemandHelper.LoadRemoteAbilityPressure(systemAbilityId, deviceId); - } else if (cmd == "unload") { - ondemandHelper.UnloadSystemAbility(systemAbilityId); - } else if (cmd == "getinfo") { - ondemandHelper.GetSystemProcessInfo(systemAbilityId); - } else if (cmd == "syncload") { - ondemandHelper.TestSyncOnDemandAbility(systemAbilityId); - } else { - cout << "invalid input" << endl; + int32_t testcaseType = testSAMap_[cmd]; + switch (testcaseType) { + case static_cast(TestSAId::GET): + ondemandHelper.GetSystemAbility(systemAbilityId); + break; + case static_cast(TestSAId::LOAD): + ondemandHelper.OnDemandAbility(systemAbilityId); + break; + case static_cast(TestSAId::DEVICE): + ondemandHelper.GetDeviceList(); + break; + case static_cast(TestSAId::LOADRMT1): + ondemandHelper.LoadRemoteAbility(systemAbilityId, deviceId, nullptr); + break; + case static_cast(TestSAId::LOADRMT2): + ondemandHelper.LoadRemoteAbilityMuti(systemAbilityId, deviceId); + break; + case static_cast(TestSAId::LOADRMT3): + ondemandHelper.LoadRemoteAbilityMutiCb(systemAbilityId, deviceId); + break; + case static_cast(TestSAId::LOADRMT4): + ondemandHelper.LoadRemoteAbilityMutiSA(systemAbilityId, deviceId); + break; + case static_cast(TestSAId::LOADRMT5): + ondemandHelper.LoadRemoteAbilityMutiSACb(systemAbilityId, deviceId); + break; + case static_cast(TestSAId::LOADRMT6): { + int32_t otherSystemAbilityId = 0; + cout << "please input another systemabilityId for " << cmd << " operation" << endl; + cin >> otherSystemAbilityId; + cout << "please input another deviceId for " << cmd << " operation" << endl; + std::string otherDevice; + cin >> otherDevice; + ondemandHelper.LoadRemoteAbility(systemAbilityId, deviceId, nullptr); + ondemandHelper.LoadRemoteAbility(otherSystemAbilityId, otherDevice, nullptr); + break; + } + case static_cast(TestSAId::LOADMUTI): + ondemandHelper.LoadRemoteAbilityPressure(systemAbilityId, deviceId); + break; + case static_cast(TestSAId::UNLOAD): + ondemandHelper.UnloadSystemAbility(systemAbilityId); + break; + case static_cast(TestSAId::GETINFO): + ondemandHelper.GetSystemProcessInfo(systemAbilityId); + break; + case static_cast(TestSAId::SYNCLOAD): + ondemandHelper.TestSyncOnDemandAbility(systemAbilityId); + break; + default: + cout << "invalid input" << endl; } } @@ -1226,38 +1252,53 @@ static void CreateOnDemandStartPolicy(SystemAbilityOnDemandEvent& event) int eventId = 1; cout << "please input on demand event id(1,2,3,4,5)" << endl; cin >> eventId; - if (eventId == static_cast(OnDemandEventId::DEVICE_ONLINE)) { - event.eventId = OnDemandEventId::DEVICE_ONLINE; - event.name = "deviceonline"; - event.value = "on"; - } else if (eventId == static_cast(OnDemandEventId::SETTING_SWITCH)) { - event.eventId = OnDemandEventId::SETTING_SWITCH; - event.name = "wifi_status"; - event.value = "on"; - } else if (eventId == static_cast(OnDemandEventId::PARAM)) { - event.eventId = OnDemandEventId::PARAM; - event.name = "persist.samgr.deviceparam"; - event.value = "true"; - } else if (eventId == static_cast(OnDemandEventId::COMMON_EVENT)) { - event.eventId = OnDemandEventId::COMMON_EVENT; - event.name = "usual.event.SCREEN_ON"; - event.value = ""; - } else if (eventId == static_cast(OnDemandEventId::TIMED_EVENT)) { - cout << "please input timeEventId(1,2,3) 1:loopevent 2:awakeloopevent 3: timedevent" << endl; - int timeEventId = 1; - cin >> timeEventId; - event.eventId = OnDemandEventId::TIMED_EVENT; - if (timeEventId == static_cast(TimeEventId::LOOP_EVENT)) { - event.name = "loopevent"; - } else if (timeEventId == static_cast(TimeEventId::AWAKE_LOOP_EVENT)) { - event.name = "awakeloopevent"; - } else if (timeEventId == static_cast(TimeEventId::ORDER_TIMED_EVENT)) { - event.name = "timedevent"; + switch (eventId) { + case static_cast(OnDemandEventId::DEVICE_ONLINE): + event.eventId = OnDemandEventId::DEVICE_ONLINE; + event.name = "deviceonline"; + event.value = "on"; + break; + case static_cast(OnDemandEventId::SETTING_SWITCH): + event.eventId = OnDemandEventId::SETTING_SWITCH; + event.name = "wifi_status"; + event.value = "on"; + break; + case static_cast(OnDemandEventId::PARAM): + event.eventId = OnDemandEventId::PARAM; + event.name = "persist.samgr.deviceparam"; + event.value = "true"; + break; + case static_cast(OnDemandEventId::COMMON_EVENT): + event.eventId = OnDemandEventId::COMMON_EVENT; + event.name = "usual.event.SCREEN_ON"; + event.value = ""; + break; + case static_cast(OnDemandEventId::TIMED_EVENT): { + cout << "please input timeEventId(1,2,3) 1:loopevent 2:awakeloopevent 3: timedevent" << endl; + int timeEventId = 1; + cin >> timeEventId; + event.eventId = OnDemandEventId::TIMED_EVENT; + switch (timeEventId) { + case static_cast(TimeEventId::LOOP_EVENT): + event.name = "loopevent"; + break; + case static_cast(TimeEventId::AWAKE_LOOP_EVENT): + event.name = "awakeloopevent"; + break; + case static_cast(TimeEventId::ORDER_TIMED_EVENT): + event.name = "timedevent"; + break; + default: + cout << "invalid timeEventId" << endl; + } + cout << "please input the duration" <> duration; + event.value = duration; } - cout << "please input the duration"; - string duration = "60"; - cin >> duration; - event.value = duration; + break; + default: + cout << "invalid eventId" << endl; } } @@ -1266,38 +1307,53 @@ static void CreateOnDemandStopPolicy(SystemAbilityOnDemandEvent& event) int eventId = 1; cout << "please input on demand event id(1,2,3,4,5)" << endl; cin >> eventId; - if (eventId == static_cast(OnDemandEventId::DEVICE_ONLINE)) { - event.eventId = OnDemandEventId::DEVICE_ONLINE; - event.name = "deviceonline"; - event.value = "off"; - } else if (eventId == static_cast(OnDemandEventId::SETTING_SWITCH)) { - event.eventId = OnDemandEventId::SETTING_SWITCH; - event.name = "wifi_status"; - event.value = "off"; - } else if (eventId == static_cast(OnDemandEventId::PARAM)) { - event.eventId = OnDemandEventId::PARAM; - event.name = "persist.samgr.deviceparam"; - event.value = "false"; - } else if (eventId == static_cast(OnDemandEventId::COMMON_EVENT)) { - event.eventId = OnDemandEventId::COMMON_EVENT; - event.name = "usual.event.SCREEN_OFF"; - event.value = ""; - } else if (eventId == static_cast(OnDemandEventId::TIMED_EVENT)) { - cout << "please input timeEventId(1,2,3) 1:loopevent 2:awakeloopevent 3: timedevent" << endl; - int timeEventId = 1; - cin >> timeEventId; - event.eventId = OnDemandEventId::TIMED_EVENT; - if (timeEventId == static_cast(TimeEventId::LOOP_EVENT)) { - event.name = "loopevent"; - } else if (timeEventId == static_cast(TimeEventId::AWAKE_LOOP_EVENT)) { - event.name = "awakeloopevent"; - } else if (timeEventId == static_cast(TimeEventId::ORDER_TIMED_EVENT)) { - event.name = "timedevent"; + switch (eventId) { + case static_cast(OnDemandEventId::DEVICE_ONLINE): + event.eventId = OnDemandEventId::DEVICE_ONLINE; + event.name = "deviceonline"; + event.value = "off"; + break; + case static_cast(OnDemandEventId::SETTING_SWITCH): + event.eventId = OnDemandEventId::SETTING_SWITCH; + event.name = "wifi_status"; + event.value = "off"; + break; + case static_cast(OnDemandEventId::PARAM): + event.eventId = OnDemandEventId::PARAM; + event.name = "persist.samgr.deviceparam"; + event.value = "false"; + break; + case static_cast(OnDemandEventId::COMMON_EVENT): + event.eventId = OnDemandEventId::COMMON_EVENT; + event.name = "usual.event.SCREEN_OFF"; + event.value = ""; + break; + case static_cast(OnDemandEventId::TIMED_EVENT): { + cout << "please input timeEventId(1,2,3) 1:loopevent 2:awakeloopevent 3: timedevent" << endl; + int timeEventId = 1; + cin >> timeEventId; + event.eventId = OnDemandEventId::TIMED_EVENT; + switch (timeEventId) { + case static_cast(TimeEventId::LOOP_EVENT): + event.name = "loopevent"; + break; + case static_cast(TimeEventId::AWAKE_LOOP_EVENT): + event.name = "awakeloopevent"; + break; + case static_cast(TimeEventId::ORDER_TIMED_EVENT): + event.name = "timedevent"; + break; + default: + cout << "invalid timeEventId" << endl; + } + cout << "please input the duration" << endl; + string duration = "70"; + cin >> duration; + event.value = duration; } - cout << "please input the duration"; - string duration = "70"; - cin >> duration; - event.value = duration; + break; + default: + cout << "invalid eventId" << endl; } } @@ -1307,47 +1363,78 @@ static void TestOnDemandPolicy(OHOS::OnDemandHelper& ondemandHelper) cout << "please input on demand policy test case(get/update)" << endl; cin >> cmd; std::string type = ""; - cout << "please input on demand type test case(start/stop)" << endl; + cout << "please input on demand type test case(start/start_multi/stop/stop_multi)" << endl; cin >> type; int32_t systemAbilityId = 0; cout << "please input systemAbilityId for " << cmd << " operation" << endl; cin >> systemAbilityId; - if (cmd == "get" && type == "start") { - ondemandHelper.GetOnDemandPolicy(systemAbilityId, OnDemandPolicyType::START_POLICY); - } else if (cmd == "get" && type == "stop") { - ondemandHelper.GetOnDemandPolicy(systemAbilityId, OnDemandPolicyType::STOP_POLICY); - } else if (cmd == "update" && type == "start") { - SystemAbilityOnDemandEvent event; - CreateOnDemandStartPolicy(event); - std::vector abilityOnDemandEvents; - abilityOnDemandEvents.push_back(event); - ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, OnDemandPolicyType::START_POLICY, abilityOnDemandEvents); - } else if (cmd == "update" && type == "start_multi") { - SystemAbilityOnDemandEvent event; - CreateOnDemandStartPolicy(event); - SystemAbilityOnDemandEvent event2; - CreateOnDemandStartPolicy(event2); - std::vector abilityOnDemandEvents; - abilityOnDemandEvents.push_back(event); - abilityOnDemandEvents.push_back(event2); - ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, OnDemandPolicyType::START_POLICY, abilityOnDemandEvents); - } else if (cmd == "update" && type == "stop") { - SystemAbilityOnDemandEvent event; - CreateOnDemandStopPolicy(event); - std::vector abilityOnDemandEvents; - abilityOnDemandEvents.push_back(event); - ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, OnDemandPolicyType::STOP_POLICY, abilityOnDemandEvents); - } else if (cmd == "update" && type == "stop_multi") { - SystemAbilityOnDemandEvent event; - CreateOnDemandStopPolicy(event); - SystemAbilityOnDemandEvent event2; - CreateOnDemandStopPolicy(event2); - std::vector abilityOnDemandEvents; - abilityOnDemandEvents.push_back(event); - abilityOnDemandEvents.push_back(event2); - ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, OnDemandPolicyType::STOP_POLICY, abilityOnDemandEvents); - } else { - cout << "invalid input" << endl; + int32_t demandPolicy = testOnDemandMap_[cmd]; + int32_t demandType = testOnDemandMap_[type]; + switch (demandPolicy) { + case static_cast(TestOndemandId::GET): + switch (demandType) { + case static_cast(TestOndemandId::START): + ondemandHelper.GetOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::START_POLICY); + break; + case static_cast(TestOndemandId::STOP): + ondemandHelper.GetOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::STOP_POLICY); + break; + default: + cout << "invalid demand type" << endl; + } + break; + case static_cast(TestOndemandId::UPDATE): + switch (demandType) { + case static_cast(TestOndemandId::START): { + SystemAbilityOnDemandEvent event; + CreateOnDemandStartPolicy(event); + std::vector abilityOnDemandEvents; + abilityOnDemandEvents.push_back(event); + ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::START_POLICY, abilityOnDemandEvents); + break; + } + case static_cast(TestOndemandId::START_MULTI): { + SystemAbilityOnDemandEvent event; + CreateOnDemandStartPolicy(event); + SystemAbilityOnDemandEvent event2; + CreateOnDemandStartPolicy(event2); + std::vector abilityOnDemandEvents; + abilityOnDemandEvents.push_back(event); + abilityOnDemandEvents.push_back(event2); + ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::START_POLICY, abilityOnDemandEvents); + break; + } + case static_cast(TestOndemandId::STOP): { + SystemAbilityOnDemandEvent event; + CreateOnDemandStopPolicy(event); + std::vector abilityOnDemandEvents; + abilityOnDemandEvents.push_back(event); + ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::STOP_POLICY, abilityOnDemandEvents); + break; + } + case static_cast(TestOndemandId::STOP_MULTI): { + SystemAbilityOnDemandEvent event; + CreateOnDemandStopPolicy(event); + SystemAbilityOnDemandEvent event2; + CreateOnDemandStopPolicy(event2); + std::vector abilityOnDemandEvents; + abilityOnDemandEvents.push_back(event); + abilityOnDemandEvents.push_back(event2); + ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::STOP_POLICY, abilityOnDemandEvents); + break; + } + default: + cout << "invalid demand type" << endl; + } + break; + default: + cout << "invalid demand policy" << endl; } } @@ -1356,27 +1443,35 @@ static void CreateOnDemandStartPolicy1(SystemAbilityOnDemandEvent& event) int eventId = 1; cout << "please input on demand event id(1,2,3,4,5)" << endl; cin >> eventId; - if (eventId == static_cast(OnDemandEventId::DEVICE_ONLINE)) { - event.eventId = OnDemandEventId::DEVICE_ONLINE; - event.name = "deviceonline"; - event.value = "on"; - } else if (eventId == static_cast(OnDemandEventId::SETTING_SWITCH)) { - event.eventId = OnDemandEventId::SETTING_SWITCH; - event.name = "wifi_status"; - event.value = "on"; - } else if (eventId == static_cast(OnDemandEventId::PARAM)) { - event.eventId = OnDemandEventId::PARAM; - event.name = "persist.samgr.deviceparam"; - event.value = "true"; - } else if (eventId == static_cast(OnDemandEventId::COMMON_EVENT)) { - event.eventId = OnDemandEventId::COMMON_EVENT; - event.name = "usual.event.SCREEN_ON"; - event.value = ""; - } else if (eventId == static_cast(OnDemandEventId::TIMED_EVENT)) { - event.eventId = OnDemandEventId::TIMED_EVENT; - event.name = "timedevent"; - event.value = g_inputTimeStr; - event.persistence = true; + switch (eventId) { + case static_cast(OnDemandEventId::DEVICE_ONLINE): + event.eventId = OnDemandEventId::DEVICE_ONLINE; + event.name = "deviceonline"; + event.value = "on"; + break; + case static_cast(OnDemandEventId::SETTING_SWITCH): + event.eventId = OnDemandEventId::SETTING_SWITCH; + event.name = "wifi_status"; + event.value = "on"; + break; + case static_cast(OnDemandEventId::PARAM): + event.eventId = OnDemandEventId::PARAM; + event.name = "persist.samgr.deviceparam"; + event.value = "true"; + break; + case static_cast(OnDemandEventId::COMMON_EVENT): + event.eventId = OnDemandEventId::COMMON_EVENT; + event.name = "usual.event.SCREEN_ON"; + event.value = ""; + break; + case static_cast(OnDemandEventId::TIMED_EVENT): + event.eventId = OnDemandEventId::TIMED_EVENT; + event.name = "timedevent"; + event.value = g_inputTimeStr; + event.persistence = true; + break; + default: + cout << "invalid demand event id" <> eventId; - if (eventId == static_cast(OnDemandEventId::DEVICE_ONLINE)) { - event.eventId = OnDemandEventId::DEVICE_ONLINE; - event.name = "deviceonline"; - event.value = "off"; - } else if (eventId == static_cast(OnDemandEventId::SETTING_SWITCH)) { - event.eventId = OnDemandEventId::SETTING_SWITCH; - event.name = "wifi_status"; - event.value = "off"; - } else if (eventId == static_cast(OnDemandEventId::PARAM)) { - event.eventId = OnDemandEventId::PARAM; - event.name = "persist.samgr.deviceparam"; - event.value = "false"; - } else if (eventId == static_cast(OnDemandEventId::COMMON_EVENT)) { - event.eventId = OnDemandEventId::COMMON_EVENT; - event.name = "usual.event.SCREEN_OFF"; - event.value = ""; - } else if (eventId == static_cast(OnDemandEventId::TIMED_EVENT)) { - event.eventId = OnDemandEventId::TIMED_EVENT; - event.name = "timedevent"; - event.value = g_inputTimeStr; - event.persistence = true; + switch (eventId) { + case static_cast(OnDemandEventId::DEVICE_ONLINE): + event.eventId = OnDemandEventId::DEVICE_ONLINE; + event.name = "deviceonline"; + event.value = "off"; + break; + case static_cast(OnDemandEventId::SETTING_SWITCH): + event.eventId = OnDemandEventId::SETTING_SWITCH; + event.name = "wifi_status"; + event.value = "off"; + break; + case static_cast(OnDemandEventId::PARAM): + event.eventId = OnDemandEventId::PARAM; + event.name = "persist.samgr.deviceparam"; + event.value = "false"; + break; + case static_cast(OnDemandEventId::COMMON_EVENT): + event.eventId = OnDemandEventId::COMMON_EVENT; + event.name = "usual.event.SCREEN_OFF"; + event.value = ""; + break; + case static_cast(OnDemandEventId::TIMED_EVENT): + event.eventId = OnDemandEventId::TIMED_EVENT; + event.name = "timedevent"; + event.value = g_inputTimeStr; + event.persistence = true; + break; + default: + cout << "invalid demand event id" <> systemAbilityId; - if (cmd == "get" && type == "start") { - ondemandHelper.GetOnDemandPolicy(systemAbilityId, OnDemandPolicyType::START_POLICY); - } else if (cmd == "get" && type == "stop") { - ondemandHelper.GetOnDemandPolicy(systemAbilityId, OnDemandPolicyType::STOP_POLICY); - } else if (cmd == "update" && type == "start") { - SystemAbilityOnDemandEvent event; - CreateOnDemandStartPolicy1(event); - std::vector abilityOnDemandEvents; - abilityOnDemandEvents.push_back(event); - ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, OnDemandPolicyType::START_POLICY, abilityOnDemandEvents); - } else if (cmd == "update" && type == "start_multi") { - SystemAbilityOnDemandEvent event; - CreateOnDemandStartPolicy1(event); - SystemAbilityOnDemandEvent event2; - CreateOnDemandStartPolicy1(event2); - std::vector abilityOnDemandEvents; - abilityOnDemandEvents.push_back(event); - abilityOnDemandEvents.push_back(event2); - ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, OnDemandPolicyType::START_POLICY, abilityOnDemandEvents); - } else if (cmd == "update" && type == "stop") { - SystemAbilityOnDemandEvent event; - CreateOnDemandStopPolicy1(event); - std::vector abilityOnDemandEvents; - abilityOnDemandEvents.push_back(event); - ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, OnDemandPolicyType::STOP_POLICY, abilityOnDemandEvents); - } else if (cmd == "update" && type == "stop_multi") { - SystemAbilityOnDemandEvent event; - CreateOnDemandStopPolicy1(event); - SystemAbilityOnDemandEvent event2; - CreateOnDemandStopPolicy1(event2); - std::vector abilityOnDemandEvents; - abilityOnDemandEvents.push_back(event); - abilityOnDemandEvents.push_back(event2); - ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, OnDemandPolicyType::STOP_POLICY, abilityOnDemandEvents); - } else { - cout << "invalid input" << endl; + int32_t demandPolicy = testOnDemandMap_[cmd]; + int32_t demandType = testOnDemandMap_[type]; + switch (demandPolicy) { + case static_cast(TestOndemandId::GET): + switch (demandType) { + case static_cast(TestOndemandId::START): + ondemandHelper.GetOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::START_POLICY); + break; + case static_cast(TestOndemandId::STOP): + ondemandHelper.GetOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::STOP_POLICY); + break; + default: + cout << "invalid demand type" << endl; + } + break; + case static_cast(TestOndemandId::UPDATE): + switch (demandType) { + case static_cast(TestOndemandId::START): { + SystemAbilityOnDemandEvent event; + CreateOnDemandStartPolicy1(event); + std::vector abilityOnDemandEvents; + abilityOnDemandEvents.push_back(event); + ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::START_POLICY, abilityOnDemandEvents); + break; + } + case static_cast(TestOndemandId::START_MULTI): { + SystemAbilityOnDemandEvent event; + CreateOnDemandStartPolicy1(event); + SystemAbilityOnDemandEvent event2; + CreateOnDemandStartPolicy1(event2); + std::vector abilityOnDemandEvents; + abilityOnDemandEvents.push_back(event); + abilityOnDemandEvents.push_back(event2); + ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::START_POLICY, abilityOnDemandEvents); + break; + } + case static_cast(TestOndemandId::STOP): { + SystemAbilityOnDemandEvent event; + CreateOnDemandStopPolicy1(event); + std::vector abilityOnDemandEvents; + abilityOnDemandEvents.push_back(event); + ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::STOP_POLICY, abilityOnDemandEvents); + break; + } + case static_cast(TestOndemandId::STOP_MULTI): { + SystemAbilityOnDemandEvent event; + CreateOnDemandStopPolicy1(event); + SystemAbilityOnDemandEvent event2; + CreateOnDemandStopPolicy1(event2); + std::vector abilityOnDemandEvents; + abilityOnDemandEvents.push_back(event); + abilityOnDemandEvents.push_back(event2); + ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::STOP_POLICY, abilityOnDemandEvents); + break; + } + default: + cout << "invalid demand type" << endl; + } + break; + default: + cout << "invalid demand policy" << endl; } } @@ -1485,7 +1619,6 @@ static void TestGetExtension(OHOS::OnDemandHelper& ondemandHelper) { std::string extension; cin >> extension; - std::vector saIds; if (ondemandHelper.GetExtensionSaIds(extension, saIds) != ERR_OK) { cout << "get extension: " << extension << " failed" << endl; @@ -1519,55 +1652,79 @@ static void TestCheckSystemAbility(OHOS::OnDemandHelper& ondemandHelper) static void TestIntCommand(OHOS::OnDemandHelper& ondemandHelper, string& cmd) { - if (cmd == "1") { - TestParamPlugin(ondemandHelper); - } else if (cmd == "2") { - TestSystemAbility(ondemandHelper); - } else if (cmd == "3") { - TestProcess(ondemandHelper); - } else if (cmd == "4") { - TestOnDemandPolicy(ondemandHelper); - } else if (cmd == "5") { - TestGetExtension(ondemandHelper); - } else if (cmd == "6") { - TestCommonEvent(ondemandHelper); - } else if (cmd == "7") { - TestCheckSystemAbility(ondemandHelper); - } else if (cmd == "8") { - TestOnDemandPolicy1(ondemandHelper); - } else if (cmd == "9") { - TestScheduler(ondemandHelper); - } else if (cmd == "10") { - ondemandHelper.UnloadAllIdleSystemAbility(); - } else { - cout << "invalid input" << endl; + int testType = stoi(cmd); + switch (testType) { + case static_cast(TestIntCommandId::ONE): + TestParamPlugin(ondemandHelper); + break; + case static_cast(TestIntCommandId::TWO): + TestSystemAbility(ondemandHelper); + break; + case static_cast(TestIntCommandId::THREE): + TestProcess(ondemandHelper); + break; + case static_cast(TestIntCommandId::FOUR): + TestOnDemandPolicy(ondemandHelper); + break; + case static_cast(TestIntCommandId::FIVE): + TestGetExtension(ondemandHelper); + break; + case static_cast(TestIntCommandId::SIX): + TestCommonEvent(ondemandHelper); + break; + case static_cast(TestIntCommandId::SEVEN): + TestCheckSystemAbility(ondemandHelper); + break; + case static_cast(TestIntCommandId::EIGHT): + TestOnDemandPolicy1(ondemandHelper); + break; + case static_cast(TestIntCommandId::NINE): + TestScheduler(ondemandHelper); + break; + case static_cast(TestIntCommandId::TEN): + ondemandHelper.UnloadAllIdleSystemAbility(); + break; + default: + cout << "invalid input" << endl; } } static void TestStringCommand(OHOS::OnDemandHelper& ondemandHelper, string& cmd) { - if (cmd == "param") { - TestParamPlugin(ondemandHelper); - } else if (cmd == "sa") { - TestSystemAbility(ondemandHelper); - } else if (cmd == "proc") { - TestProcess(ondemandHelper); - } else if (cmd == "policy") { - TestOnDemandPolicy(ondemandHelper); - } else if (cmd == "getExtension") { - TestGetExtension(ondemandHelper); - } else if (cmd == "getEvent") { - TestCommonEvent(ondemandHelper); - } else if (cmd == "check") { - TestCheckSystemAbility(ondemandHelper); - } else if (cmd == "policy_time") { - TestOnDemandPolicy1(ondemandHelper); - } else if (cmd == "test") { - TestScheduler(ondemandHelper); - } else if (cmd == "memory") { - ondemandHelper.UnloadAllIdleSystemAbility(); - } else { - cout << "invalid input" << endl; + int32_t testType = testCommandMap_[cmd]; + switch (testType) { + case static_cast(TestCommandId::PARAM): + TestParamPlugin(ondemandHelper); + break; + case static_cast(TestCommandId::SA): + TestSystemAbility(ondemandHelper); + break; + case static_cast(TestCommandId::PROC): + TestProcess(ondemandHelper); + break; + case static_cast(TestCommandId::POLICY): + TestOnDemandPolicy(ondemandHelper); + break; + case static_cast(TestCommandId::GET_EXTENSION): + TestGetExtension(ondemandHelper); + break; + case static_cast(TestCommandId::GET_EVENT): + TestCommonEvent(ondemandHelper); + break; + case static_cast(TestCommandId::CHECK): + TestCheckSystemAbility(ondemandHelper); + break; + case static_cast(TestCommandId::POLICY_TIME): + TestOnDemandPolicy1(ondemandHelper); + break; + case static_cast(TestCommandId::TEST): + TestScheduler(ondemandHelper); + break; + case static_cast(TestCommandId::MEMORY): + ondemandHelper.UnloadAllIdleSystemAbility(); + break; + default: + cout << "invalid input" << endl; } } @@ -1575,6 +1732,24 @@ int main(int argc, char* argv[]) { SamMockPermission::MockPermission(); OHOS::OnDemandHelper& ondemandHelper = OnDemandHelper::GetInstance(); + testCommandMap_ = { + {"param", 1}, {"sa", 2}, {"proc", 3}, {"policy", 4}, + {"getExtension", 5}, {"getEvent", 6}, {"check", 7}, + {"policy_time", 8}, {"test", 9}, {"memory", 10} + }; + testOnDemandMap_ = { + {"get", 1}, {"update", 2}, {"start", 3}, {"start_multi", 4}, + {"stop", 5}, {"stop_multi", 6} + }; + testSAMap_ = { + {"get", 1}, {"load", 2}, {"device", 3}, {"loadrmt1", 4}, + {"loadrmt2", 5}, {"loadrmt3", 6}, {"loadrmt4", 7}, {"loadrmt5", 8}, + {"loadrmt6", 9}, {"loadmuti", 10}, {"unload", 11}, {"getinfo", 12}, + {"syncload", 13} + }; + testProcessMap_ = { + {"getp", 1}, {"subp", 2}, {"unsubp", 3}, {"initp", 4} + }; string cmd = "load"; do { cout << "please input operation(1-param/2-sa/3-proc/4-policy/5-getExtension)" << endl; diff --git a/services/samgr/native/test/unittest/src/ondemand_helper.cpp b/services/samgr/native/test/unittest/src/ondemand_helper.cpp index 10d5d19b..b1e457d2 100644 --- a/services/samgr/native/test/unittest/src/ondemand_helper.cpp +++ b/services/samgr/native/test/unittest/src/ondemand_helper.cpp @@ -56,6 +56,9 @@ constexpr int32_t FOURTH_NUM = 4; constexpr int32_t FIFTH_NUM = 5; constexpr int32_t SIXTH_NUM = 6; constexpr int32_t SEVENTH_NUM = 7; +static std::map testSAMap_; +static std::map testOnDemandMap_; +static std::map testCommandMap_; } OnDemandHelper::OnDemandHelper() @@ -1162,40 +1165,54 @@ static void TestSystemAbility(OHOS::OnDemandHelper& ondemandHelper, char* inputc { cout << "please input sa test case(get/load/unload/getinfo/syncload)" << endl; std::string deviceId = ondemandHelper.GetFirstDevice(); - int32_t systemAbilityId = atoi(inputsaid); - if (strcmp(inputcmd, "get") == 0) { - ondemandHelper.GetSystemAbility(systemAbilityId); - } else if (strcmp(inputcmd, "load") == 0) { - ondemandHelper.OnDemandAbility(systemAbilityId); - } else if (strcmp(inputcmd, "device") == 0) { // get remote networkid - ondemandHelper.GetDeviceList(); - } else if (strcmp(inputcmd, "loadrmt1") == 0) { // single thread with one device, one system ability, one callback - ondemandHelper.LoadRemoteAbility(systemAbilityId, deviceId, nullptr); - } else if (strcmp(inputcmd, "loadrmt2") == 0) { // one device, one system ability, one callback, three threads - ondemandHelper.LoadRemoteAbilityMuti(systemAbilityId, deviceId); - } else if (strcmp(inputcmd, "loadrmt3") == 0) { // one device, one system ability, three callbacks, three threads - ondemandHelper.LoadRemoteAbilityMutiCb(systemAbilityId, deviceId); - } else if (strcmp(inputcmd, "loadrmt4") == 0) { // one device, three system abilities, one callback, three threads - ondemandHelper.LoadRemoteAbilityMutiSA(systemAbilityId, deviceId); - } else if (strcmp(inputcmd, "loadrmt5") == 0) { - // one device, three system abilities, three callbacks, three threads - ondemandHelper.LoadRemoteAbilityMutiSACb(systemAbilityId, deviceId); - } else if (strcmp(inputcmd, "loadrmt6") == 0) { // two devices - int32_t otherSystemAbilityId = atoi(inputOtherSaid); - std::string otherDevice = inputOtherDevice; - ondemandHelper.LoadRemoteAbility(systemAbilityId, deviceId, nullptr); - ondemandHelper.LoadRemoteAbility(otherSystemAbilityId, otherDevice, nullptr); - } else if (strcmp(inputcmd, "loadmuti") == 0) { - ondemandHelper.LoadRemoteAbilityPressure(systemAbilityId, deviceId); - } else if (strcmp(inputcmd, "unload") == 0) { - ondemandHelper.UnloadSystemAbility(systemAbilityId); - } else if (strcmp(inputcmd, "getinfo") == 0) { - ondemandHelper.GetSystemProcessInfo(systemAbilityId); - } else if (strcmp(inputcmd, "syncload") == 0) { - ondemandHelper.TestSyncOnDemandAbility(systemAbilityId); - } else { - cout << "invalid inputcmd" << endl; + int32_t testcaseType = testSAMap_[inputcmd]; + switch (testcaseType) { + case static_cast(TestSAId::GET): + ondemandHelper.GetSystemAbility(systemAbilityId); + break; + case static_cast(TestSAId::LOAD): + ondemandHelper.OnDemandAbility(systemAbilityId); + break; + case static_cast(TestSAId::DEVICE): + ondemandHelper.GetDeviceList(); + break; + case static_cast(TestSAId::LOADRMT1): + ondemandHelper.LoadRemoteAbility(systemAbilityId, deviceId, nullptr); + break; + case static_cast(TestSAId::LOADRMT2): + ondemandHelper.LoadRemoteAbilityMuti(systemAbilityId, deviceId); + break; + case static_cast(TestSAId::LOADRMT3): + ondemandHelper.LoadRemoteAbilityMutiCb(systemAbilityId, deviceId); + break; + case static_cast(TestSAId::LOADRMT4): + ondemandHelper.LoadRemoteAbilityMutiSA(systemAbilityId, deviceId); + break; + case static_cast(TestSAId::LOADRMT5): + ondemandHelper.LoadRemoteAbilityMutiSACb(systemAbilityId, deviceId); + break; + case static_cast(TestSAId::LOADRMT6): { + int32_t otherSystemAbilityId = atoi(inputOtherSaid); + std::string otherDevice = inputOtherDevice; + ondemandHelper.LoadRemoteAbility(systemAbilityId, deviceId, nullptr); + ondemandHelper.LoadRemoteAbility(otherSystemAbilityId, otherDevice, nullptr); + break; + } + case static_cast(TestSAId::LOADMUTI): + ondemandHelper.LoadRemoteAbilityPressure(systemAbilityId, deviceId); + break; + case static_cast(TestSAId::UNLOAD): + ondemandHelper.UnloadSystemAbility(systemAbilityId); + break; + case static_cast(TestSAId::GETINFO): + ondemandHelper.GetSystemProcessInfo(systemAbilityId); + break; + case static_cast(TestSAId::SYNCLOAD): + ondemandHelper.TestSyncOnDemandAbility(systemAbilityId); + break; + default: + cout << "invalid input" << endl; } } @@ -1216,52 +1233,68 @@ static void TestParamPlugin(OHOS::OnDemandHelper& ondemandHelper, char* input) static void CreateOnDemandStartPolicy(SystemAbilityOnDemandEvent& event, int eventId) { cout << "please input on demand event id(1,2,3,4,5)" << endl; - if (eventId == static_cast(OnDemandEventId::DEVICE_ONLINE)) { + switch (eventId) { + case static_cast(OnDemandEventId::DEVICE_ONLINE): event.eventId = OnDemandEventId::DEVICE_ONLINE; event.name = "deviceonline"; event.value = "on"; - } else if (eventId == static_cast(OnDemandEventId::SETTING_SWITCH)) { + break; + case static_cast(OnDemandEventId::SETTING_SWITCH): event.eventId = OnDemandEventId::SETTING_SWITCH; event.name = "wifi_status"; event.value = "on"; - } else if (eventId == static_cast(OnDemandEventId::PARAM)) { + break; + case static_cast(OnDemandEventId::PARAM): event.eventId = OnDemandEventId::PARAM; event.name = "persist.samgr.deviceparam"; event.value = "true"; - } else if (eventId == static_cast(OnDemandEventId::COMMON_EVENT)) { + break; + case static_cast(OnDemandEventId::COMMON_EVENT): event.eventId = OnDemandEventId::COMMON_EVENT; event.name = "usual.event.SCREEN_ON"; event.value = ""; - } else if (eventId == static_cast(OnDemandEventId::TIMED_EVENT)) { + break; + case static_cast(OnDemandEventId::TIMED_EVENT): event.eventId = OnDemandEventId::TIMED_EVENT; event.name = "loopevent"; event.value = "60"; + break; + default: + cout << "invalid eventId" << endl; } } static void CreateOnDemandStopPolicy(SystemAbilityOnDemandEvent& event, int eventId) { cout << "please input on demand event id(1,2,3,4,5)" << endl; - if (eventId == static_cast(OnDemandEventId::DEVICE_ONLINE)) { + switch (eventId) { + case static_cast(OnDemandEventId::DEVICE_ONLINE): event.eventId = OnDemandEventId::DEVICE_ONLINE; event.name = "deviceonline"; event.value = "off"; - } else if (eventId == static_cast(OnDemandEventId::SETTING_SWITCH)) { + break; + case static_cast(OnDemandEventId::SETTING_SWITCH): event.eventId = OnDemandEventId::SETTING_SWITCH; event.name = "wifi_status"; event.value = "off"; - } else if (eventId == static_cast(OnDemandEventId::PARAM)) { + break; + case static_cast(OnDemandEventId::PARAM): event.eventId = OnDemandEventId::PARAM; event.name = "persist.samgr.deviceparam"; event.value = "false"; - } else if (eventId == static_cast(OnDemandEventId::COMMON_EVENT)) { + break; + case static_cast(OnDemandEventId::COMMON_EVENT): event.eventId = OnDemandEventId::COMMON_EVENT; event.name = "usual.event.SCREEN_OFF"; event.value = ""; - } else if (eventId == static_cast(OnDemandEventId::TIMED_EVENT)) { + break; + case static_cast(OnDemandEventId::TIMED_EVENT): event.eventId = OnDemandEventId::TIMED_EVENT; event.name = "loopevent"; event.value = "70"; + break; + default: + cout << "invalid eventId" << endl; } } @@ -1278,92 +1311,139 @@ static void TestOnDemandPolicy(OHOS::OnDemandHelper& ondemandHelper, char *argv[ SystemAbilityOnDemandEvent event2; std::vector abilityOnDemandEvents; int32_t systemAbilityId = atoi(inputsaid); - if (strcmp(inputcmd, "get") == 0 && strcmp(inputtype, "start") == 0) { - ondemandHelper.GetOnDemandPolicy(systemAbilityId, OnDemandPolicyType::START_POLICY); - } else if (strcmp(inputcmd, "get") == 0 && strcmp(inputtype, "stop") == 0) { - ondemandHelper.GetOnDemandPolicy(systemAbilityId, OnDemandPolicyType::STOP_POLICY); - } else if (strcmp(inputcmd, "update") == 0 && strcmp(inputtype, "start") == 0) { - int eventId = atoi(inputeventid); - CreateOnDemandStartPolicy(event, eventId); - abilityOnDemandEvents.push_back(event); - ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, OnDemandPolicyType::START_POLICY, abilityOnDemandEvents); - } else if (strcmp(inputcmd, "update") == 0 && strcmp(inputtype, "start_multi") == 0) { - int eventId = atoi(inputeventid); - int anothereventId = atoi(anotherinputeventid); - CreateOnDemandStartPolicy(event, eventId); - CreateOnDemandStartPolicy(event2, anothereventId); - abilityOnDemandEvents.push_back(event); - abilityOnDemandEvents.push_back(event2); - ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, OnDemandPolicyType::START_POLICY, abilityOnDemandEvents); - } else if (strcmp(inputcmd, "update") == 0 && strcmp(inputtype, "stop") == 0) { - int eventId = atoi(inputeventid); - CreateOnDemandStopPolicy(event, eventId); - abilityOnDemandEvents.push_back(event); - ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, OnDemandPolicyType::STOP_POLICY, abilityOnDemandEvents); - } else if (strcmp(inputcmd, "update") == 0 && strcmp(inputtype, "stop_multi") == 0) { - int eventId = atoi(inputeventid); - int anothereventId = atoi(anotherinputeventid); - CreateOnDemandStopPolicy(event, eventId); - CreateOnDemandStopPolicy(event2, anothereventId); - abilityOnDemandEvents.push_back(event); - abilityOnDemandEvents.push_back(event2); - ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, OnDemandPolicyType::STOP_POLICY, abilityOnDemandEvents); - } else { - cout << "invalid input" << endl; + int32_t demandPolicy = testOnDemandMap_[inputcmd]; + int32_t demandType = testOnDemandMap_[inputtype]; + switch (demandPolicy) { + case static_cast(TestOndemandId::GET): + switch (demandType) { + case static_cast(TestOndemandId::START): + ondemandHelper.GetOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::START_POLICY); + break; + case static_cast(TestOndemandId::STOP): + ondemandHelper.GetOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::STOP_POLICY); + break; + default: + cout << "invalid demand type" << endl; + } + break; + case static_cast(TestOndemandId::UPDATE): + switch (demandType) { + case static_cast(TestOndemandId::START): { + int eventId = atoi(inputeventid); + CreateOnDemandStartPolicy(event, eventId); + abilityOnDemandEvents.push_back(event); + ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::START_POLICY, abilityOnDemandEvents); + break; + } + case static_cast(TestOndemandId::START_MULTI): { + int eventId = atoi(inputeventid); + int anothereventId = atoi(anotherinputeventid); + CreateOnDemandStartPolicy(event, eventId); + CreateOnDemandStartPolicy(event2, anothereventId); + abilityOnDemandEvents.push_back(event); + abilityOnDemandEvents.push_back(event2); + ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::START_POLICY, abilityOnDemandEvents); + break; + } + case static_cast(TestOndemandId::STOP): { + int eventId = atoi(inputeventid); + CreateOnDemandStopPolicy(event, eventId); + abilityOnDemandEvents.push_back(event); + ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::STOP_POLICY, abilityOnDemandEvents); + break; + } + case static_cast(TestOndemandId::STOP_MULTI): { + int eventId = atoi(inputeventid); + int anothereventId = atoi(anotherinputeventid); + CreateOnDemandStopPolicy(event, eventId); + CreateOnDemandStopPolicy(event2, anothereventId); + abilityOnDemandEvents.push_back(event); + abilityOnDemandEvents.push_back(event2); + ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::STOP_POLICY, abilityOnDemandEvents); + break; + } + default: + cout << "invalid demand type" << endl; + } + break; + default: + cout << "invalid demand policy" << endl; } } static void CreateOnDemandStartPolicy1(SystemAbilityOnDemandEvent& event, int eventId) { cout << "please input on demand event id(1,2,3,4,5)" << endl; - if (eventId == static_cast(OnDemandEventId::DEVICE_ONLINE)) { - event.eventId = OnDemandEventId::DEVICE_ONLINE; - event.name = "deviceonline"; - event.value = "on"; - } else if (eventId == static_cast(OnDemandEventId::SETTING_SWITCH)) { - event.eventId = OnDemandEventId::SETTING_SWITCH; - event.name = "wifi_status"; - event.value = "on"; - } else if (eventId == static_cast(OnDemandEventId::PARAM)) { - event.eventId = OnDemandEventId::PARAM; - event.name = "persist.samgr.deviceparam"; - event.value = "true"; - } else if (eventId == static_cast(OnDemandEventId::COMMON_EVENT)) { - event.eventId = OnDemandEventId::COMMON_EVENT; - event.name = "usual.event.SCREEN_ON"; - event.value = ""; - } else if (eventId == static_cast(OnDemandEventId::TIMED_EVENT)) { - event.eventId = OnDemandEventId::TIMED_EVENT; - event.name = "timedevent"; - event.value = g_inputTimeStr; - event.persistence = true; + switch (eventId) { + case static_cast(OnDemandEventId::DEVICE_ONLINE): + event.eventId = OnDemandEventId::DEVICE_ONLINE; + event.name = "deviceonline"; + event.value = "on"; + break; + case static_cast(OnDemandEventId::SETTING_SWITCH): + event.eventId = OnDemandEventId::SETTING_SWITCH; + event.name = "wifi_status"; + event.value = "on"; + break; + case static_cast(OnDemandEventId::PARAM): + event.eventId = OnDemandEventId::PARAM; + event.name = "persist.samgr.deviceparam"; + event.value = "true"; + break; + case static_cast(OnDemandEventId::COMMON_EVENT): + event.eventId = OnDemandEventId::COMMON_EVENT; + event.name = "usual.event.SCREEN_ON"; + event.value = ""; + break; + case static_cast(OnDemandEventId::TIMED_EVENT): + event.eventId = OnDemandEventId::TIMED_EVENT; + event.name = "timedevent"; + event.value = g_inputTimeStr; + event.persistence = true; + break; + default: + cout << "invalid demand event id" <(OnDemandEventId::DEVICE_ONLINE)) { - event.eventId = OnDemandEventId::DEVICE_ONLINE; - event.name = "deviceonline"; - event.value = "off"; - } else if (eventId == static_cast(OnDemandEventId::SETTING_SWITCH)) { - event.eventId = OnDemandEventId::SETTING_SWITCH; - event.name = "wifi_status"; - event.value = "off"; - } else if (eventId == static_cast(OnDemandEventId::PARAM)) { - event.eventId = OnDemandEventId::PARAM; - event.name = "persist.samgr.deviceparam"; - event.value = "false"; - } else if (eventId == static_cast(OnDemandEventId::COMMON_EVENT)) { - event.eventId = OnDemandEventId::COMMON_EVENT; - event.name = "usual.event.SCREEN_OFF"; - event.value = ""; - } else if (eventId == static_cast(OnDemandEventId::TIMED_EVENT)) { - event.eventId = OnDemandEventId::TIMED_EVENT; - event.name = "timedevent"; - event.value = g_inputTimeStr; - event.persistence = true; + switch (eventId) { + case static_cast(OnDemandEventId::DEVICE_ONLINE): + event.eventId = OnDemandEventId::DEVICE_ONLINE; + event.name = "deviceonline"; + event.value = "off"; + break; + case static_cast(OnDemandEventId::SETTING_SWITCH): + event.eventId = OnDemandEventId::SETTING_SWITCH; + event.name = "wifi_status"; + event.value = "off"; + break; + case static_cast(OnDemandEventId::PARAM): + event.eventId = OnDemandEventId::PARAM; + event.name = "persist.samgr.deviceparam"; + event.value = "false"; + break; + case static_cast(OnDemandEventId::COMMON_EVENT): + event.eventId = OnDemandEventId::COMMON_EVENT; + event.name = "usual.event.SCREEN_OFF"; + event.value = ""; + break; + case static_cast(OnDemandEventId::TIMED_EVENT): + event.eventId = OnDemandEventId::TIMED_EVENT; + event.name = "timedevent"; + event.value = g_inputTimeStr; + event.persistence = true; + break; + default: + cout << "invalid demand event id" < abilityOnDemandEvents; - if (strcmp(inputcmd, "get") == 0 && strcmp(inputtype, "start") == 0) { - ondemandHelper.GetOnDemandPolicy(systemAbilityId, OnDemandPolicyType::START_POLICY); - } else if (strcmp(inputcmd, "get") == 0 && strcmp(inputtype, "stop") == 0) { - ondemandHelper.GetOnDemandPolicy(systemAbilityId, OnDemandPolicyType::STOP_POLICY); - } else if (strcmp(inputcmd, "update") == 0 && strcmp(inputtype, "start") == 0) { - int eventId = atoi(inputeventid); - CreateOnDemandStartPolicy1(event, eventId); - abilityOnDemandEvents.push_back(event); - ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, OnDemandPolicyType::START_POLICY, abilityOnDemandEvents); - } else if (strcmp(inputcmd, "update") == 0 && strcmp(inputtype, "start_multi") == 0) { - int eventId = atoi(inputeventid); - int anothereventId = atoi(anotherinputeventid); - CreateOnDemandStartPolicy1(event, eventId); - CreateOnDemandStartPolicy1(event2, anothereventId); - abilityOnDemandEvents.push_back(event); - abilityOnDemandEvents.push_back(event2); - ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, OnDemandPolicyType::START_POLICY, abilityOnDemandEvents); - } else if (strcmp(inputcmd, "update") == 0 && strcmp(inputtype, "stop") == 0) { - int eventId = atoi(inputeventid); - CreateOnDemandStopPolicy1(event, eventId); - abilityOnDemandEvents.push_back(event); - ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, OnDemandPolicyType::STOP_POLICY, abilityOnDemandEvents); - } else if (strcmp(inputcmd, "update") == 0 && strcmp(inputtype, "stop_multi") == 0) { - int eventId = atoi(inputeventid); - int anothereventId = atoi(anotherinputeventid); - CreateOnDemandStopPolicy1(event, eventId); - CreateOnDemandStopPolicy1(event2, anothereventId); - abilityOnDemandEvents.push_back(event); - abilityOnDemandEvents.push_back(event2); - ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, OnDemandPolicyType::STOP_POLICY, abilityOnDemandEvents); - } else { - cout << "invalid input" << endl; + int32_t systemAbilityId = atoi(inputsaid); + int32_t demandPolicy = testOnDemandMap_[inputcmd]; + int32_t demandType = testOnDemandMap_[inputtype]; + switch (demandPolicy) { + case static_cast(TestOndemandId::GET): + switch (demandType) { + case static_cast(TestOndemandId::START): + ondemandHelper.GetOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::START_POLICY); + break; + case static_cast(TestOndemandId::STOP): + ondemandHelper.GetOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::STOP_POLICY); + break; + default: + cout << "invalid demand type" << endl; + } + break; + case static_cast(TestOndemandId::UPDATE): + switch (demandType) { + case static_cast(TestOndemandId::START): { + int eventId = atoi(inputeventid); + CreateOnDemandStartPolicy1(event, eventId); + abilityOnDemandEvents.push_back(event); + ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::START_POLICY, abilityOnDemandEvents); + break; + } + case static_cast(TestOndemandId::START_MULTI): { + int eventId = atoi(inputeventid); + int anothereventId = atoi(anotherinputeventid); + CreateOnDemandStartPolicy1(event, eventId); + CreateOnDemandStartPolicy1(event2, anothereventId); + abilityOnDemandEvents.push_back(event); + abilityOnDemandEvents.push_back(event2); + ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::START_POLICY, abilityOnDemandEvents); + break; + } + case static_cast(TestOndemandId::STOP): { + int eventId = atoi(inputeventid); + CreateOnDemandStopPolicy1(event, eventId); + abilityOnDemandEvents.push_back(event); + ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::STOP_POLICY, abilityOnDemandEvents); + break; + } + case static_cast(TestOndemandId::STOP_MULTI): { + int eventId = atoi(inputeventid); + int anothereventId = atoi(anotherinputeventid); + CreateOnDemandStopPolicy1(event, eventId); + CreateOnDemandStopPolicy1(event2, anothereventId); + abilityOnDemandEvents.push_back(event); + abilityOnDemandEvents.push_back(event2); + ondemandHelper.UpdateOnDemandPolicy(systemAbilityId, + OnDemandPolicyType::STOP_POLICY, abilityOnDemandEvents); + break; + } + default: + cout << "invalid demand type" << endl; + } + break; + default: + cout << "invalid demand policy" << endl; } } @@ -1467,55 +1578,79 @@ static void TestCheckSystemAbility(OHOS::OnDemandHelper& ondemandHelper, char* i static void TestIntCommand(OHOS::OnDemandHelper& ondemandHelper, char* argv[]) { - if (strcmp(argv[FIRST_NUM], "1") == 0) { - TestParamPlugin(ondemandHelper, argv[SECOND_NUM]); - } else if (strcmp(argv[FIRST_NUM], "2") == 0) { - TestSystemAbility(ondemandHelper, argv[SECOND_NUM], argv[THIRD_NUM], argv[FOURTH_NUM], argv[FIFTH_NUM]); - } else if (strcmp(argv[FIRST_NUM], "3") == 0) { - TestProcess(ondemandHelper, argv[SECOND_NUM]); - } else if (strcmp(argv[FIRST_NUM], "4") == 0) { - TestOnDemandPolicy(ondemandHelper, argv); - } else if (strcmp(argv[FIRST_NUM], "5") == 0) { - TestGetExtension(ondemandHelper, argv[SECOND_NUM]); - } else if (strcmp(argv[FIRST_NUM], "6") == 0) { - TestCommonEvent(ondemandHelper, argv[SECOND_NUM], argv[THIRD_NUM], argv[FOURTH_NUM]); - } else if (strcmp(argv[FIRST_NUM], "7") == 0) { - TestCheckSystemAbility(ondemandHelper, argv[SECOND_NUM], argv[THIRD_NUM]); - } else if (strcmp(argv[FIRST_NUM], "8") == 0) { - TestOnDemandPolicy1(ondemandHelper, argv); - } else if (strcmp(argv[FIRST_NUM], "9") == 0) { - TestScheduler(ondemandHelper); - } else if (strcmp(argv[FIRST_NUM], "10") == 0) { - ondemandHelper.UnloadAllIdleSystemAbility(); - } else { - cout << "invalid input" << endl; + int testType = atoi(argv[FIRST_NUM]); + switch (testType) { + case static_cast(TestIntCommandId::ONE): + TestParamPlugin(ondemandHelper, argv[SECOND_NUM]); + break; + case static_cast(TestIntCommandId::TWO): + TestSystemAbility(ondemandHelper, argv[SECOND_NUM], argv[THIRD_NUM], argv[FOURTH_NUM], argv[FIFTH_NUM]); + break; + case static_cast(TestIntCommandId::THREE): + TestProcess(ondemandHelper, argv[SECOND_NUM]); + break; + case static_cast(TestIntCommandId::FOUR): + TestOnDemandPolicy(ondemandHelper, argv); + break; + case static_cast(TestIntCommandId::FIVE): + TestGetExtension(ondemandHelper, argv[SECOND_NUM]); + break; + case static_cast(TestIntCommandId::SIX): + TestCommonEvent(ondemandHelper, argv[SECOND_NUM], argv[THIRD_NUM], argv[FOURTH_NUM]); + break; + case static_cast(TestIntCommandId::SEVEN): + TestCheckSystemAbility(ondemandHelper, argv[SECOND_NUM], argv[THIRD_NUM]); + break; + case static_cast(TestIntCommandId::EIGHT): + TestOnDemandPolicy1(ondemandHelper, argv); + break; + case static_cast(TestIntCommandId::NINE): + TestScheduler(ondemandHelper); + break; + case static_cast(TestIntCommandId::TEN): + ondemandHelper.UnloadAllIdleSystemAbility(); + break; + default: + cout << "invalid input" << endl; } } static void TestStringCommand(OHOS::OnDemandHelper& ondemandHelper, char* argv[]) { - if (strcmp(argv[FIRST_NUM], "param") == 0) { - TestParamPlugin(ondemandHelper, argv[SECOND_NUM]); - } else if (strcmp(argv[FIRST_NUM], "sa") == 0) { - TestSystemAbility(ondemandHelper, argv[SECOND_NUM], argv[THIRD_NUM], argv[FOURTH_NUM], argv[FIFTH_NUM]); - } else if (strcmp(argv[FIRST_NUM], "proc") == 0) { - TestProcess(ondemandHelper, argv[SECOND_NUM]); - } else if (strcmp(argv[FIRST_NUM], "policy") == 0) { - TestOnDemandPolicy(ondemandHelper, argv); - } else if (strcmp(argv[FIRST_NUM], "getExtension") == 0) { - TestGetExtension(ondemandHelper, argv[SECOND_NUM]); - } else if (strcmp(argv[FIRST_NUM], "getEvent") == 0) { - TestCommonEvent(ondemandHelper, argv[SECOND_NUM], argv[THIRD_NUM], argv[FOURTH_NUM]); - } else if (strcmp(argv[FIRST_NUM], "check") == 0) { - TestCheckSystemAbility(ondemandHelper, argv[SECOND_NUM], argv[THIRD_NUM]); - } else if (strcmp(argv[FIRST_NUM], "policy_time") == 0) { - TestOnDemandPolicy1(ondemandHelper, argv); - } else if (strcmp(argv[FIRST_NUM], "test") == 0) { - TestScheduler(ondemandHelper); - } else if (strcmp(argv[FIRST_NUM], "memory") == 0) { - ondemandHelper.UnloadAllIdleSystemAbility(); - } else { - cout << "invalid input" << endl; + int32_t testType = testCommandMap_[argv[FIRST_NUM]]; + switch (testType) { + case static_cast(TestCommandId::PARAM): + TestParamPlugin(ondemandHelper, argv[SECOND_NUM]); + break; + case static_cast(TestCommandId::SA): + TestSystemAbility(ondemandHelper, argv[SECOND_NUM], argv[THIRD_NUM], argv[FOURTH_NUM], argv[FIFTH_NUM]); + break; + case static_cast(TestCommandId::PROC): + TestProcess(ondemandHelper, argv[SECOND_NUM]); + break; + case static_cast(TestCommandId::POLICY): + TestOnDemandPolicy(ondemandHelper, argv); + break; + case static_cast(TestCommandId::GET_EXTENSION): + TestGetExtension(ondemandHelper, argv[SECOND_NUM]); + break; + case static_cast(TestCommandId::GET_EVENT): + TestCommonEvent(ondemandHelper, argv[SECOND_NUM], argv[THIRD_NUM], argv[FOURTH_NUM]); + break; + case static_cast(TestCommandId::CHECK): + TestCheckSystemAbility(ondemandHelper, argv[SECOND_NUM], argv[THIRD_NUM]); + break; + case static_cast(TestCommandId::POLICY_TIME): + TestOnDemandPolicy1(ondemandHelper, argv); + break; + case static_cast(TestCommandId::TEST): + TestScheduler(ondemandHelper); + break; + case static_cast(TestCommandId::MEMORY): + ondemandHelper.UnloadAllIdleSystemAbility(); + break; + default: + cout << "invalid input" << endl; } } @@ -1523,6 +1658,21 @@ int main(int argc, char* argv[]) { SamMockPermission::MockPermission(); OHOS::OnDemandHelper& ondemandHelper = OnDemandHelper::GetInstance(); + testCommandMap_ = { + {"param", 1}, {"sa", 2}, {"proc", 3}, {"policy", 4}, + {"getExtension", 5}, {"getEvent", 6}, {"check", 7}, + {"policy_time", 8}, {"test", 9}, {"memory", 10} + }; + testOnDemandMap_ = { + {"get", 1}, {"update", 2}, {"start", 3}, {"start_multi", 4}, + {"stop", 5}, {"stop_multi", 6} + }; + testSAMap_ = { + {"get", 1}, {"load", 2}, {"device", 3}, {"loadrmt1", 4}, + {"loadrmt2", 5}, {"loadrmt3", 6}, {"loadrmt4", 7}, {"loadrmt5", 8}, + {"loadrmt6", 9}, {"loadmuti", 10}, {"unload", 11}, {"getinfo", 12}, + {"syncload", 13} + }; cout << "please input operation(1-param/2-sa/3-proc/4-policy/5-getExtension)" << endl; cout << "please input operation(6-getEvent/7-check/8-policy_time/9-test/10-memory)" << endl; int32_t cmd = atoi(argv[FIRST_NUM]); -- Gitee