长时任务多类型测试用例

Signed-off-by: lipengfei <lipengfei53@huawei.com>
This commit is contained in:
lipengfei 2024-02-29 16:18:47 +08:00
parent 95e12e159d
commit 36c53560a6
3 changed files with 81 additions and 5 deletions

View File

@ -160,6 +160,12 @@ public:
{
BgTaskClientUnitTest::bgtaskSubscriberRet_ = "interface14";
}
void OnContinuousTaskUpdate(const std::shared_ptr<ContinuousTaskCallbackInfo>
&continuousTaskCallbackInfo) override
{
BgTaskClientUnitTest::bgtaskSubscriberRet_ = "interface15";
}
};
class TestExpiredCallback : public ExpiredCallback {
@ -203,6 +209,18 @@ HWTEST_F(BgTaskClientUnitTest, RequestStartBackgroundRunning_001, TestSize.Level
EXPECT_NE(BackgroundTaskMgrHelper::RequestStartBackgroundRunning(taskParam), ERR_OK);
}
/**
* @tc.name: RequestUpdateBackgroundRunning_001
* @tc.desc: test RequestUpdateBackgroundRunning interface.
* @tc.type: FUNC
* @tc.require: issueI94UH9
*/
HWTEST_F(BgTaskClientUnitTest, RequestUpdateBackgroundRunning_001, TestSize.Level1)
{
ContinuousTaskParam taskParam = ContinuousTaskParam();
EXPECT_NE(BackgroundTaskMgrHelper::RequestUpdateBackgroundRunning(taskParam), ERR_OK);
}
/**
* @tc.name: RequestStopBackgroundRunning_001
* @tc.desc: test RequestStopBackgroundRunning interface.
@ -347,6 +365,8 @@ HWTEST_F(BgTaskClientUnitTest, BackgroundTaskSubscriber_001, TestSize.Level1)
EXPECT_EQ(bgtaskSubscriberRet_, "interface13");
subscriberImpl->OnProcEfficiencyResourcesReset(nullptr);
EXPECT_EQ(bgtaskSubscriberRet_, "interface14");
subscriberImpl->OnContinuousTaskUpdate(nullptr);
EXPECT_EQ(bgtaskSubscriberRet_, "interface15");
}
/**
@ -365,6 +385,7 @@ HWTEST_F(BgTaskClientUnitTest, BackgroundTaskSubscriber_002, TestSize.Level1)
subscriber.OnAppTransientTaskStart(nullptr);
subscriber.OnAppTransientTaskEnd(nullptr);
subscriber.OnContinuousTaskStart(nullptr);
subscriber.OnContinuousTaskUpdate(nullptr);
subscriber.OnContinuousTaskStop(nullptr);
subscriber.OnAppContinuousTaskStop(1);
subscriber.OnRemoteDied(nullptr);

View File

@ -693,16 +693,15 @@ ErrCode BgContinuousTaskMgr::UpdateBackgroundRunningInner(const std::string &tas
ErrCode BgContinuousTaskMgr::StartBackgroundRunningInner(std::shared_ptr<ContinuousTaskRecord> &continuousTaskRecord)
{
BGTASK_LOGI("continuous task mode: %{public}u, modes %{public}s, isBatchApi %{public}d",
continuousTaskRecord->bgModeId_, continuousTaskRecord->ToString(continuousTaskRecord->bgModeIds_).c_str(),
continuousTaskRecord->isBatchApi_);
std::string taskInfoMapKey = std::to_string(continuousTaskRecord->uid_) + SEPARATOR
+ continuousTaskRecord->abilityName_;
if (continuousTaskInfosMap_.find(taskInfoMapKey) != continuousTaskInfosMap_.end()) {
BGTASK_LOGW("continuous task is already exist: %{public}s", taskInfoMapKey.c_str());
return ERR_BGTASK_OBJECT_EXISTS;
}
BGTASK_LOGI("continuous task mode: %{public}u, modes %{public}s, isBatchApi %{public}d, uid %{public}d",
continuousTaskRecord->bgModeId_, continuousTaskRecord->ToString(continuousTaskRecord->bgModeIds_).c_str(),
continuousTaskRecord->isBatchApi_, continuousTaskRecord->uid_);
if (!continuousTaskRecord->isFromWebview_
&& cachedBundleInfos_.find(continuousTaskRecord->uid_) == cachedBundleInfos_.end()) {
std::string mainAbilityLabel = GetMainAbilityLabel(continuousTaskRecord->bundleName_,

View File

@ -54,6 +54,7 @@ static constexpr uint32_t TEST_NUM_UONE = 1;
static constexpr int32_t TEST_NUM_TWO = 2;
static constexpr uint32_t TEST_NUM_UTWO = 2;
static constexpr int32_t TEST_NUM_THREE = 3;
static constexpr uint32_t CONFIGURE_ALL_MODES = 0x1FF;
}
class BgContinuousTaskMgrTest : public testing::Test {
public:
@ -149,6 +150,61 @@ HWTEST_F(BgContinuousTaskMgrTest, StartBackgroundRunning_002, TestSize.Level1)
EXPECT_EQ((int32_t)bgContinuousTaskMgr_->StartBackgroundRunning(taskParam), (int32_t)ERR_OK);
}
/**
* @tc.name: StartAndUpdateBackgroundRunning_001
* @tc.desc: use batch api.
* @tc.type: FUNC
* @tc.require: issueI94UH9
*/
HWTEST_F(BgContinuousTaskMgrTest, StartAndUpdateBackgroundRunning_001, TestSize.Level1)
{
// 1 modes is empty
sptr<ContinuousTaskParam> taskParam1 = new (std::nothrow) ContinuousTaskParam(true, 0,
std::make_shared<AbilityRuntime::WantAgent::WantAgent>(),
"ability1", nullptr, "Entry", true, {});
EXPECT_NE(taskParam1, nullptr);
EXPECT_EQ((int32_t)bgContinuousTaskMgr_->StartBackgroundRunning(taskParam1), (int32_t)ERR_BGTASK_CHECK_TASK_PARAM);
// 2 set configure mode is CONFIGURE_ALL_MODES
bgContinuousTaskMgr_->cachedBundleInfos_.clear();
EXPECT_EQ(bgContinuousTaskMgr_->GetBackgroundModeInfo(1, "abilityName"), 0u);
CachedBundleInfo info = CachedBundleInfo();
info.abilityBgMode_["ability1"] = CONFIGURE_ALL_MODES;
info.appName_ = "Entry";
bgContinuousTaskMgr_->cachedBundleInfos_.emplace(1, info);
// 3 start ok
sptr<ContinuousTaskParam> taskParam2 = new (std::nothrow) ContinuousTaskParam(true, 0,
std::make_shared<AbilityRuntime::WantAgent::WantAgent>(),
"ability1", nullptr, "Entry", true, {1, 2, 3});
EXPECT_NE(taskParam2, nullptr);
EXPECT_EQ((int32_t)bgContinuousTaskMgr_->StartBackgroundRunning(taskParam2), (int32_t)ERR_OK);
// 4 update ok
sptr<ContinuousTaskParam> taskParam3 = new (std::nothrow) ContinuousTaskParam(true, 0,
std::make_shared<AbilityRuntime::WantAgent::WantAgent>(),
"ability1", nullptr, "Entry", true, {4});
EXPECT_NE(taskParam3, nullptr);
EXPECT_EQ((int32_t)bgContinuousTaskMgr_->UpdateBackgroundRunning(taskParam3), (int32_t)ERR_OK);
// 5 update invalid
sptr<ContinuousTaskParam> taskParam4 = new (std::nothrow) ContinuousTaskParam(true, 0,
std::make_shared<AbilityRuntime::WantAgent::WantAgent>(),
"ability1", nullptr, "Entry", true, {10});
EXPECT_NE(taskParam4, nullptr);
EXPECT_EQ((int32_t)bgContinuousTaskMgr_->UpdateBackgroundRunning(taskParam4), (int32_t)ERR_BGTASK_INVALID_BGMODE);
// 6 stop ok
EXPECT_EQ((int32_t)bgContinuousTaskMgr_->StopBackgroundRunning(taskParam2->abilityName_), (int32_t)ERR_OK);
// 7 no start then update error
sptr<ContinuousTaskParam> taskParam5 = new (std::nothrow) ContinuousTaskParam(true, 0,
std::make_shared<AbilityRuntime::WantAgent::WantAgent>(),
"ability1", nullptr, "Entry", true, {1, 2});
EXPECT_NE(taskParam5, nullptr);
EXPECT_EQ((int32_t)bgContinuousTaskMgr_->UpdateBackgroundRunning(taskParam5), (int32_t)ERR_BGTASK_OBJECT_EXISTS);
}
/**
* @tc.name: StopBackgroundRunning_001
* @tc.desc: stop background runnging test.
@ -880,7 +936,7 @@ HWTEST_F(BgContinuousTaskMgrTest, BgTaskManagerUnitTest_046, TestSize.Level1)
info.abilityBgMode_["abilityName"] = 2;
info.appName_ = "appName";
bgContinuousTaskMgr_->cachedBundleInfos_.emplace(1, info);
EXPECT_EQ(bgContinuousTaskMgr_->SendContinuousTaskNotification(continuousTaskRecord), ERR_OK);
}
} // namespace BackgroundTaskMgr