/* * Copyright (C) 2023 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 #include #include "unittest_log.h" #include #include #include #include #include #include #include "common/status.h" #include "securec.h" #define HST_LOG_TAG "Task" #include "osal/task/task.h" #include "osal/task/condition_variable.h" #include "cpp_ext/memory_ext.h" #include "common/log.h" #include "osal/task/pipeline_threadpool.h" namespace { constexpr OHOS::HiviewDFX::HiLogLabel LABEL = { LOG_CORE, LOG_DOMAIN_FOUNDATION, "TaskFuncUnitTest" }; } using namespace std; using namespace testing::ext; using namespace OHOS; using namespace OHOS::Media; namespace OHOS { namespace Media { namespace MetaFuncUT { class TaskInnerUnitTest : public testing::Test { public: static void SetUpTestCase(void); static void TearDownTestCase(void); void SetUp(void); void TearDown(void); ConditionVariable cv; Mutex mutex_; std::atomic isStop_{false}; std::string modifyMsg_ = ""; }; void TaskInnerUnitTest::SetUpTestCase(void) {} void TaskInnerUnitTest::TearDownTestCase(void) {} void TaskInnerUnitTest::SetUp(void) { std::cout << "[SetUp]: SetUp!!!, test: "; const ::testing::TestInfo *testInfo_ = ::testing::UnitTest::GetInstance()->current_test_info(); std::string testName = testInfo_->name(); std::cout << testName << std::endl; } void TaskInnerUnitTest::TearDown(void) { PipeLineThreadPool::GetInstance().DestroyThread(""); std::cout << "[TearDown]: over!!!" << std::endl; } /** * @tc.name: TaskNotRunning * @tc.desc: TaskNotRunning * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskNotRunning, TestSize.Level1) { std::shared_ptr task1 = std::make_shared("workTask1"); bool rtv = task1->IsTaskRunning(); EXPECT_EQ(false, rtv); } /** * @tc.name: TaskRegisterJobNotRunning * @tc.desc: TaskRegisterJobNotRunning * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskRegisterJobNotRunning, TestSize.Level1) { std::shared_ptr task2 = std::make_shared("workTask2"); task2->RegisterJob([]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskRegisterJobNotRunning running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 10) { //10 second runningState = false; } } return 0; }); bool rtv = task2->IsTaskRunning(); EXPECT_EQ(false, rtv); } /** * @tc.name: TaskRegisterJobRun * @tc.desc: TaskRegisterJobRun * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskRegisterJobRun, TestSize.Level1) { std::shared_ptr task3 = std::make_shared("workTask3"); task3->RegisterJob([]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskRegisterJobRun running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 10) { //10 second runningState = false; } } return 0; }); task3->Start(); sleep(1); bool rtv = task3->IsTaskRunning(); EXPECT_EQ(true, rtv); } /** * @tc.name: TaskRegisterJobPause * @tc.desc: TaskRegisterJobPause * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskRegisterJobPause, TestSize.Level1) { std::shared_ptr task4 = std::make_shared("workTask4"); task4->RegisterJob([]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskRegisterJobPause running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 10) { //10 second runningState = false; } } return 0; }); task4->Start(); task4->Pause(); sleep(1); bool rtv = task4->IsTaskRunning(); EXPECT_EQ(false, rtv); task4->Pause(); sleep(1); rtv = task4->IsTaskRunning(); EXPECT_EQ(false, rtv); } /** * @tc.name: TaskJobPauseResume * @tc.desc: TaskJobPauseResume * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseResume, TestSize.Level1) { std::shared_ptr task5 = std::make_shared("workTask5"); task5->RegisterJob([]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseResume running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 10) { //10 second runningState = false; } } return 0; }); task5->Start(); task5->Pause(); sleep(1); bool rtv = task5->IsTaskRunning(); EXPECT_EQ(false, rtv); task5->Start(); sleep(1); rtv = task5->IsTaskRunning(); EXPECT_EQ(true, rtv); } /** * @tc.name: TaskRegisterJobPauseAsync * @tc.desc: TaskRegisterJobPauseAsync * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskRegisterJobPauseAsync, TestSize.Level1) { std::shared_ptr task6 = std::make_shared("workTask6"); task6->RegisterJob([]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskRegisterJobPauseAsync running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 10) { //10 second runningState = false; } } return 0; }); task6->Start(); task6->PauseAsync(); sleep(1); bool rtv = task6->IsTaskRunning(); EXPECT_EQ(false, rtv); task6->PauseAsync(); sleep(1); rtv = task6->IsTaskRunning(); EXPECT_EQ(false, rtv); } /** * @tc.name: TaskRegisterJobStopAsync * @tc.desc: TaskRegisterJobStopAsync * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskRegisterJobStopAsync, TestSize.Level1) { std::shared_ptr task7 = std::make_shared("workTask7"); task7->RegisterJob([]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskRegisterJobStopAsync running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 10) { //10 second runningState = false; } } return 0; }); task7->Start(); sleep(1); task7->StopAsync(); sleep(1); bool rtv = task7->IsTaskRunning(); EXPECT_EQ(false, rtv); } /** * @tc.name: TaskRegisterJobStop * @tc.desc: TaskRegisterJobStop * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskRegisterJobStop, TestSize.Level1) { std::shared_ptr task8 = std::make_shared("workTask8"); task8->RegisterJob([]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskRegisterJobStop running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 10) { //10 second runningState = false; } } return 0; }); task8->Start(); sleep(2); task8->Stop(); sleep(1); bool rtv = task8->IsTaskRunning(); EXPECT_EQ(false, rtv); } /** * @tc.name: TaskRegisterJobStopResume * @tc.desc: TaskRegisterJobStopResume * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskRegisterJobStopResume, TestSize.Level1) { std::shared_ptr task9 = std::make_shared("workTask9"); task9->RegisterJob([]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskRegisterJobStopResume running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 10) { //10 second runningState = false; } } return 0; }); task9->Start(); sleep(2); task9->Stop(); sleep(1); task9->Start(); sleep(1); bool rtv = task9->IsTaskRunning(); EXPECT_EQ(true, rtv); } /** * @tc.name: TaskJobPauseStopResumeStart * @tc.desc: TaskJobPauseStopResumeStart * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart, TestSize.Level1) { std::shared_ptr task10 = std::make_shared("workTask10"); task10->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task10->Start(); sleep(3); task10->Pause(); sleep(2); task10->Start(); sleep(2); task10->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task10->Start(); sleep(1); bool rtv = task10->IsTaskRunning(); EXPECT_EQ(true, rtv); } /** * @tc.name: WaitFor_Succ * @tc.desc: WaitFor_Succ * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, WaitFor_Succ, TestSize.Level1) { std::shared_ptr task01 = std::make_shared("workTask01"); AutoLock lock(mutex_); task01->RegisterJob([]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task WaitFor_Succ running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 10){ //10 second runningState = false; } } return 0; }); task01->Start(); int timeoutMs = 1000; isStop_.store(true); auto rtv = cv.WaitFor(lock, timeoutMs, [this] { return isStop_.load(); }); EXPECT_EQ(true, rtv); } /** * @tc.name: TaskJobPauseStopResumeStart03 * @tc.desc: TaskJobPauseStopResumeStart03 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart03, TestSize.Level1) { std::shared_ptr task03 = std::make_shared("workTask03", "", TaskType::GLOBAL, TaskPriority::NORMAL, true); task03->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task03->Start(); sleep(3); task03->Pause(); sleep(2); task03->Start(); sleep(2); task03->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task03->Start(); sleep(1); bool rtv = task03->IsTaskRunning(); EXPECT_EQ(true, rtv); task03->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart04 * @tc.desc: TaskJobPauseStopResumeStart04 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart04, TestSize.Level1) { std::shared_ptr task04 = std::make_shared("workTask04", "", TaskType::VIDEO, TaskPriority::NORMAL, true); task04->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task04->Start(); sleep(3); task04->Pause(); sleep(2); task04->Start(); sleep(2); task04->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task04->Start(); sleep(1); bool rtv = task04->IsTaskRunning(); EXPECT_EQ(true, rtv); task04->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart05 * @tc.desc: TaskJobPauseStopResumeStart05 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart05, TestSize.Level1) { std::shared_ptr task05 = std::make_shared("workTask05", "", TaskType::AUDIO, TaskPriority::NORMAL, true); task05->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task05->Start(); sleep(3); task05->Pause(); sleep(2); task05->Start(); sleep(2); task05->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task05->Start(); sleep(1); bool rtv = task05->IsTaskRunning(); EXPECT_EQ(true, rtv); task05->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart06 * @tc.desc: TaskJobPauseStopResumeStart06 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart06, TestSize.Level1) { std::shared_ptr task06 = std::make_shared("workTask06", "", TaskType::SUBTITLE, TaskPriority::NORMAL, true); task06->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task06->Start(); sleep(3); task06->Pause(); sleep(2); task06->Start(); sleep(2); task06->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task06->Start(); sleep(1); bool rtv = task06->IsTaskRunning(); EXPECT_EQ(true, rtv); task06->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart07 * @tc.desc: TaskJobPauseStopResumeStart07 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart07, TestSize.Level1) { std::shared_ptr task07 = std::make_shared("workTask07", "", TaskType::GLOBAL, TaskPriority::LOW, true); task07->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task07->Start(); sleep(3); task07->Pause(); sleep(2); task07->Start(); sleep(2); task07->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task07->Start(); sleep(1); bool rtv = task07->IsTaskRunning(); EXPECT_EQ(true, rtv); task07->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart08 * @tc.desc: TaskJobPauseStopResumeStart08 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart08, TestSize.Level1) { std::shared_ptr task08 = std::make_shared("workTask08", "", TaskType::VIDEO, TaskPriority::LOW, true); task08->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task08->Start(); sleep(3); task08->Pause(); sleep(2); task08->Start(); sleep(2); task08->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task08->Start(); sleep(1); bool rtv = task08->IsTaskRunning(); EXPECT_EQ(true, rtv); task08->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart09 * @tc.desc: TaskJobPauseStopResumeStart09 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart09, TestSize.Level1) { std::shared_ptr task09 = std::make_shared("workTask09", "", TaskType::AUDIO, TaskPriority::LOW, true); task09->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task09->Start(); sleep(3); task09->Pause(); sleep(2); task09->Start(); sleep(2); task09->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task09->Start(); sleep(1); bool rtv = task09->IsTaskRunning(); EXPECT_EQ(true, rtv); task09->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart20 * @tc.desc: TaskJobPauseStopResumeStart20 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart20, TestSize.Level1) { std::shared_ptr task20 = std::make_shared("workTask20", "", TaskType::SUBTITLE, TaskPriority::LOW, true); task20->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task20->Start(); sleep(3); task20->Pause(); sleep(2); task20->Start(); sleep(2); task20->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task20->Start(); sleep(1); bool rtv = task20->IsTaskRunning(); EXPECT_EQ(true, rtv); task20->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart21 * @tc.desc: TaskJobPauseStopResumeStart21 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart21, TestSize.Level1) { std::shared_ptr task21 = std::make_shared("workTask21", "", TaskType::SINGLETON, TaskPriority::LOW, true); task21->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task21->Start(); sleep(3); task21->Pause(); sleep(2); task21->Start(); sleep(2); task21->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task21->Start(); sleep(1); bool rtv = task21->IsTaskRunning(); EXPECT_EQ(true, rtv); } /** * @tc.name: TaskJobPauseStopResumeStart22 * @tc.desc: TaskJobPauseStopResumeStart22 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart22, TestSize.Level1) { std::shared_ptr task22 = std::make_shared("workTask22", "", TaskType::GLOBAL, TaskPriority::MIDDLE, true); task22->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task22->Start(); sleep(3); task22->Pause(); sleep(2); task22->Start(); sleep(2); task22->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task22->Start(); sleep(1); bool rtv = task22->IsTaskRunning(); EXPECT_EQ(true, rtv); task22->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart23 * @tc.desc: TaskJobPauseStopResumeStart23 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart23, TestSize.Level1) { std::shared_ptr task23 = std::make_shared("workTask23", "", TaskType::VIDEO, TaskPriority::MIDDLE, true); task23->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task23->Start(); sleep(3); task23->Pause(); sleep(2); task23->Start(); sleep(2); task23->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task23->Start(); sleep(1); bool rtv = task23->IsTaskRunning(); EXPECT_EQ(true, rtv); task23->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart24 * @tc.desc: TaskJobPauseStopResumeStart24 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart24, TestSize.Level1) { std::shared_ptr task24 = std::make_shared("workTask24", "", TaskType::AUDIO, TaskPriority::MIDDLE, true); task24->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task24->Start(); sleep(3); task24->Pause(); sleep(2); task24->Start(); sleep(2); task24->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task24->Start(); sleep(1); bool rtv = task24->IsTaskRunning(); EXPECT_EQ(true, rtv); task24->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart25 * @tc.desc: TaskJobPauseStopResumeStart25 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart25, TestSize.Level1) { std::shared_ptr task25 = std::make_shared("workTask25", "", TaskType::SUBTITLE, TaskPriority::MIDDLE, true); task25->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task25->Start(); sleep(3); task25->Pause(); sleep(2); task25->Start(); sleep(2); task25->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task25->Start(); sleep(1); bool rtv = task25->IsTaskRunning(); EXPECT_EQ(true, rtv); task25->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart26 * @tc.desc: TaskJobPauseStopResumeStart26 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart26, TestSize.Level1) { std::shared_ptr task26 = std::make_shared("workTask26", "", TaskType::SINGLETON, TaskPriority::MIDDLE, true); task26->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task26->Start(); sleep(3); task26->Pause(); sleep(2); task26->Start(); sleep(2); task26->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task26->Start(); sleep(1); bool rtv = task26->IsTaskRunning(); EXPECT_EQ(true, rtv); } /** * @tc.name: TaskJobPauseStopResumeStart27 * @tc.desc: TaskJobPauseStopResumeStart27 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart27, TestSize.Level1) { std::shared_ptr task27 = std::make_shared("workTask27", "", TaskType::GLOBAL, TaskPriority::HIGH, true); task27->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task27->Start(); sleep(3); task27->Pause(); sleep(2); task27->Start(); sleep(2); task27->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task27->Start(); sleep(1); bool rtv = task27->IsTaskRunning(); EXPECT_EQ(true, rtv); task27->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart28 * @tc.desc: TaskJobPauseStopResumeStart28 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart28, TestSize.Level1) { std::shared_ptr task28 = std::make_shared("workTask28", "", TaskType::VIDEO, TaskPriority::HIGH, true); task28->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task28->Start(); sleep(3); task28->Pause(); sleep(2); task28->Start(); sleep(2); task28->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task28->Start(); sleep(1); bool rtv = task28->IsTaskRunning(); EXPECT_EQ(true, rtv); task28->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart29 * @tc.desc: TaskJobPauseStopResumeStart29 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart29, TestSize.Level1) { std::shared_ptr task29 = std::make_shared("workTask29", "", TaskType::AUDIO, TaskPriority::HIGH, true); task29->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task29->Start(); sleep(3); task29->Pause(); sleep(2); task29->Start(); sleep(2); task29->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task29->Start(); sleep(1); bool rtv = task29->IsTaskRunning(); EXPECT_EQ(true, rtv); task29->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart30 * @tc.desc: TaskJobPauseStopResumeStart30 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart30, TestSize.Level1) { std::shared_ptr task30 = std::make_shared("workTask30", "", TaskType::SUBTITLE, TaskPriority::HIGH, true); task30->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task30->Start(); sleep(3); task30->Pause(); sleep(2); task30->Start(); sleep(2); task30->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task30->Start(); sleep(1); bool rtv = task30->IsTaskRunning(); EXPECT_EQ(true, rtv); task30->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart31 * @tc.desc: TaskJobPauseStopResumeStart31 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart31, TestSize.Level1) { std::shared_ptr task31 = std::make_shared("workTask31", "", TaskType::SINGLETON, TaskPriority::HIGH, true); task31->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task31->Start(); sleep(3); task31->Pause(); sleep(2); task31->Start(); sleep(2); task31->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task31->Start(); sleep(1); bool rtv = task31->IsTaskRunning(); EXPECT_EQ(true, rtv); } /** * @tc.name: TaskJobPauseStopResumeStart32 * @tc.desc: TaskJobPauseStopResumeStart32 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart32, TestSize.Level1) { std::shared_ptr task32 = std::make_shared("workTask32", "", TaskType::GLOBAL, TaskPriority::HIGHEST, true); task32->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task32->Start(); sleep(3); task32->Pause(); sleep(2); task32->Start(); sleep(2); task32->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task32->Start(); sleep(1); bool rtv = task32->IsTaskRunning(); EXPECT_EQ(true, rtv); task32->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart33 * @tc.desc: TaskJobPauseStopResumeStart33 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart33, TestSize.Level1) { std::shared_ptr task33 = std::make_shared("workTask33", "", TaskType::VIDEO, TaskPriority::HIGHEST, true); task33->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task33->Start(); sleep(3); task33->Pause(); sleep(2); task33->Start(); sleep(2); task33->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task33->Start(); sleep(1); bool rtv = task33->IsTaskRunning(); EXPECT_EQ(true, rtv); task33->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart34 * @tc.desc: TaskJobPauseStopResumeStart34 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart34, TestSize.Level1) { std::shared_ptr task34 = std::make_shared("workTask34", "", TaskType::AUDIO, TaskPriority::HIGHEST, true); task34->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task34->Start(); sleep(3); task34->Pause(); sleep(2); task34->Start(); sleep(2); task34->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task34->Start(); sleep(1); bool rtv = task34->IsTaskRunning(); EXPECT_EQ(true, rtv); task34->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart35 * @tc.desc: TaskJobPauseStopResumeStart35 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart35, TestSize.Level1) { std::shared_ptr task35 = std::make_shared("workTask35", "", TaskType::SUBTITLE, TaskPriority::HIGHEST, true); task35->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task35->Start(); sleep(3); task35->Pause(); sleep(2); task35->Start(); sleep(2); task35->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task35->Start(); sleep(1); bool rtv = task35->IsTaskRunning(); EXPECT_EQ(true, rtv); task35->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart36 * @tc.desc: TaskJobPauseStopResumeStart36 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart36, TestSize.Level1) { std::shared_ptr task36 = std::make_shared("workTask36", "", TaskType::SINGLETON, TaskPriority::HIGHEST, true); task36->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task36->Start(); sleep(3); task36->Pause(); sleep(2); task36->Start(); sleep(2); task36->Stop(); sleep(1); EXPECT_EQ("middle", modifyMsg_); task36->Start(); sleep(1); bool rtv = task36->IsTaskRunning(); EXPECT_EQ(true, rtv); } /** * @tc.name: TaskJobPauseStopResumeStart37 * @tc.desc: TaskJobPauseStopResumeStart37 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart37, TestSize.Level1) { std::shared_ptr task37 = std::make_shared("workTask37", "", TaskType::SINGLETON, TaskPriority::NORMAL, false); task37->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task37->Start(); sleep(3); task37->Pause(); sleep(2); task37->Start(); sleep(2); task37->Stop(); sleep(1); EXPECT_EQ("", modifyMsg_); task37->Start(); sleep(1); bool rtv = task37->IsTaskRunning(); EXPECT_EQ(true, rtv); } /** * @tc.name: TaskJobPauseStopResumeStart38 * @tc.desc: TaskJobPauseStopResumeStart38 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart38, TestSize.Level1) { std::shared_ptr task38 = std::make_shared("workTask38", "", TaskType::GLOBAL, TaskPriority::NORMAL, false); task38->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task38->Start(); sleep(3); task38->Pause(); sleep(2); task38->Start(); sleep(2); task38->Stop(); sleep(1); EXPECT_EQ("", modifyMsg_); task38->Start(); sleep(1); bool rtv = task38->IsTaskRunning(); EXPECT_EQ(true, rtv); task38->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart39 * @tc.desc: TaskJobPauseStopResumeStart39 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart39, TestSize.Level1) { std::shared_ptr task39 = std::make_shared("workTask39", "", TaskType::VIDEO, TaskPriority::NORMAL, false); task39->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task39->Start(); sleep(3); task39->Pause(); sleep(2); task39->Start(); sleep(2); task39->Stop(); sleep(1); EXPECT_EQ("", modifyMsg_); task39->Start(); sleep(1); bool rtv = task39->IsTaskRunning(); EXPECT_EQ(true, rtv); task39->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart40 * @tc.desc: TaskJobPauseStopResumeStart40 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart40, TestSize.Level1) { std::shared_ptr task40 = std::make_shared("workTask40", "", TaskType::AUDIO, TaskPriority::NORMAL, false); task40->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task40->Start(); sleep(3); task40->Pause(); sleep(2); task40->Start(); sleep(2); task40->Stop(); sleep(1); EXPECT_EQ("", modifyMsg_); task40->Start(); sleep(1); bool rtv = task40->IsTaskRunning(); EXPECT_EQ(true, rtv); task40->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart41 * @tc.desc: TaskJobPauseStopResumeStart41 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart41, TestSize.Level1) { std::shared_ptr task41 = std::make_shared("workTask41", "", TaskType::SUBTITLE, TaskPriority::NORMAL, false); task41->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task41->Start(); sleep(3); task41->Pause(); sleep(2); task41->Start(); sleep(2); task41->Stop(); sleep(1); EXPECT_EQ("", modifyMsg_); task41->Start(); sleep(1); bool rtv = task41->IsTaskRunning(); EXPECT_EQ(true, rtv); task41->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart42 * @tc.desc: TaskJobPauseStopResumeStart42 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart42, TestSize.Level1) { std::shared_ptr task42 = std::make_shared("workTask42", "", TaskType::GLOBAL, TaskPriority::LOW, false); task42->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task42->Start(); sleep(3); task42->Pause(); sleep(2); task42->Start(); sleep(2); task42->Stop(); sleep(1); EXPECT_EQ("", modifyMsg_); task42->Start(); sleep(1); bool rtv = task42->IsTaskRunning(); EXPECT_EQ(true, rtv); task42->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart43 * @tc.desc: TaskJobPauseStopResumeStart43 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart43, TestSize.Level1) { std::shared_ptr task43 = std::make_shared("workTask43", "", TaskType::VIDEO, TaskPriority::LOW, false); task43->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task43->Start(); sleep(3); task43->Pause(); sleep(2); task43->Start(); sleep(2); task43->Stop(); sleep(1); EXPECT_EQ("", modifyMsg_); task43->Start(); sleep(1); bool rtv = task43->IsTaskRunning(); EXPECT_EQ(true, rtv); task43->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart44 * @tc.desc: TaskJobPauseStopResumeStart44 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart44, TestSize.Level1) { std::shared_ptr task44 = std::make_shared("workTask44", "", TaskType::AUDIO, TaskPriority::LOW, false); task44->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task44->Start(); sleep(3); task44->Pause(); sleep(2); task44->Start(); sleep(2); task44->Stop(); sleep(1); EXPECT_EQ("", modifyMsg_); task44->Start(); sleep(1); bool rtv = task44->IsTaskRunning(); EXPECT_EQ(true, rtv); task44->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart45 * @tc.desc: TaskJobPauseStopResumeStart45 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart45, TestSize.Level1) { std::shared_ptr task45 = std::make_shared("workTask45", "", TaskType::SUBTITLE, TaskPriority::LOW, false); task45->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task45->Start(); sleep(3); task45->Pause(); sleep(2); task45->Start(); sleep(2); task45->Stop(); sleep(1); EXPECT_EQ("", modifyMsg_); task45->Start(); sleep(1); bool rtv = task45->IsTaskRunning(); EXPECT_EQ(true, rtv); task45->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart46 * @tc.desc: TaskJobPauseStopResumeStart46 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart46, TestSize.Level1) { std::shared_ptr task46 = std::make_shared("workTask46", "", TaskType::SINGLETON, TaskPriority::LOW, false); task46->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task46->Start(); sleep(3); task46->Pause(); sleep(2); task46->Start(); sleep(2); task46->Stop(); sleep(1); EXPECT_EQ("", modifyMsg_); task46->Start(); sleep(1); bool rtv = task46->IsTaskRunning(); EXPECT_EQ(true, rtv); } /** * @tc.name: TaskJobPauseStopResumeStart47 * @tc.desc: TaskJobPauseStopResumeStart47 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart47, TestSize.Level1) { std::shared_ptr task47 = std::make_shared("workTask47", "", TaskType::GLOBAL, TaskPriority::MIDDLE, false); task47->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task47->Start(); sleep(3); task47->Pause(); sleep(2); task47->Start(); sleep(2); task47->Stop(); sleep(1); EXPECT_EQ("", modifyMsg_); task47->Start(); sleep(1); bool rtv = task47->IsTaskRunning(); EXPECT_EQ(true, rtv); task47->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart48 * @tc.desc: TaskJobPauseStopResumeStart48 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart48, TestSize.Level1) { std::shared_ptr task48 = std::make_shared("workTask48", "", TaskType::VIDEO, TaskPriority::MIDDLE, false); task48->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task48->Start(); sleep(3); task48->Pause(); sleep(2); task48->Start(); sleep(2); task48->Stop(); sleep(1); EXPECT_EQ("", modifyMsg_); task48->Start(); sleep(1); bool rtv = task48->IsTaskRunning(); EXPECT_EQ(true, rtv); task48->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart49 * @tc.desc: TaskJobPauseStopResumeStart49 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart49, TestSize.Level1) { std::shared_ptr task49 = std::make_shared("workTask49", "", TaskType::AUDIO, TaskPriority::MIDDLE, false); task49->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task49->Start(); sleep(3); task49->Pause(); sleep(2); task49->Start(); sleep(2); task49->Stop(); sleep(1); EXPECT_EQ("", modifyMsg_); task49->Start(); sleep(1); bool rtv = task49->IsTaskRunning(); EXPECT_EQ(true, rtv); task49->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart50 * @tc.desc: TaskJobPauseStopResumeStart50 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart50, TestSize.Level1) { std::shared_ptr task50 = std::make_shared("workTask50", "", TaskType::SUBTITLE, TaskPriority::MIDDLE, false); task50->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task50->Start(); sleep(3); task50->Pause(); sleep(2); task50->Start(); sleep(2); task50->Stop(); sleep(1); EXPECT_EQ("", modifyMsg_); task50->Start(); sleep(1); bool rtv = task50->IsTaskRunning(); EXPECT_EQ(true, rtv); task50->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart51 * @tc.desc: TaskJobPauseStopResumeStart51 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart51, TestSize.Level1) { std::shared_ptr task51 = std::make_shared("workTask51", "", TaskType::SINGLETON, TaskPriority::MIDDLE, false); task51->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task51->Start(); sleep(3); task51->Pause(); sleep(2); task51->Start(); sleep(2); task51->Stop(); sleep(1); EXPECT_EQ("", modifyMsg_); task51->Start(); sleep(1); bool rtv = task51->IsTaskRunning(); EXPECT_EQ(true, rtv); } /** * @tc.name: TaskJobPauseStopResumeStart52 * @tc.desc: TaskJobPauseStopResumeStart52 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart52, TestSize.Level1) { std::shared_ptr task52 = std::make_shared("workTask52", "", TaskType::GLOBAL, TaskPriority::HIGH, false); task52->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task52->Start(); sleep(3); task52->Pause(); sleep(2); task52->Start(); sleep(2); task52->Stop(); sleep(1); EXPECT_EQ("", modifyMsg_); task52->Start(); sleep(1); bool rtv = task52->IsTaskRunning(); EXPECT_EQ(true, rtv); task52->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart53 * @tc.desc: TaskJobPauseStopResumeStart53 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart53, TestSize.Level1) { std::shared_ptr task53 = std::make_shared("workTask53", "", TaskType::VIDEO, TaskPriority::HIGH, false); task53->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task53->Start(); sleep(3); task53->Pause(); sleep(2); task53->Start(); sleep(2); task53->Stop(); sleep(1); EXPECT_EQ("", modifyMsg_); task53->Start(); sleep(1); bool rtv = task53->IsTaskRunning(); EXPECT_EQ(true, rtv); task53->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart54 * @tc.desc: TaskJobPauseStopResumeStart54 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart54, TestSize.Level1) { std::shared_ptr task54 = std::make_shared("workTask54", "", TaskType::AUDIO, TaskPriority::HIGH, false); task54->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task54->Start(); sleep(3); task54->Pause(); sleep(2); task54->Start(); sleep(2); task54->Stop(); sleep(1); EXPECT_EQ("", modifyMsg_); task54->Start(); sleep(1); bool rtv = task54->IsTaskRunning(); EXPECT_EQ(true, rtv); task54->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart55 * @tc.desc: TaskJobPauseStopResumeStart55 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart55, TestSize.Level1) { std::shared_ptr task55 = std::make_shared("workTask55", "", TaskType::SUBTITLE, TaskPriority::HIGH, false); task55->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task55->Start(); sleep(3); task55->Pause(); sleep(2); task55->Start(); sleep(2); task55->Stop(); sleep(1); EXPECT_EQ("", modifyMsg_); task55->Start(); sleep(1); bool rtv = task55->IsTaskRunning(); EXPECT_EQ(true, rtv); task55->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart56 * @tc.desc: TaskJobPauseStopResumeStart56 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart56, TestSize.Level1) { std::shared_ptr task56 = std::make_shared("workTask56", "", TaskType::SINGLETON, TaskPriority::HIGH, false); task56->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task56->Start(); sleep(3); task56->Pause(); sleep(2); task56->Start(); sleep(2); task56->Stop(); sleep(1); EXPECT_EQ("", modifyMsg_); task56->Start(); sleep(1); bool rtv = task56->IsTaskRunning(); EXPECT_EQ(true, rtv); } /** * @tc.name: TaskJobPauseStopResumeStart57 * @tc.desc: TaskJobPauseStopResumeStart57 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart57, TestSize.Level1) { std::shared_ptr task57 = std::make_shared("workTask57", "", TaskType::GLOBAL, TaskPriority::HIGHEST, false); task57->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task57->Start(); sleep(3); task57->Pause(); sleep(2); task57->Start(); sleep(2); task57->Stop(); sleep(1); EXPECT_EQ("", modifyMsg_); task57->Start(); sleep(1); bool rtv = task57->IsTaskRunning(); EXPECT_EQ(true, rtv); task57->Stop(); } /** * @tc.name: TaskJobPauseStopResumeStart58 * @tc.desc: TaskJobPauseStopResumeStart58 * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, TaskJobPauseStopResumeStart58, TestSize.Level1) { std::shared_ptr task58 = std::make_shared("workTask58", "", TaskType::VIDEO, TaskPriority::HIGHEST, false); task58->RegisterJob([this]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task TaskJobPauseStopResumeStart running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 5) { //5 second this->modifyMsg_ = "middle"; } if (count > 20) { //20 second runningState = false; } } return 0; }); task58->Start(); sleep(3); task58->Pause(); sleep(2); task58->Start(); sleep(2); task58->Stop(); sleep(1); EXPECT_EQ("", modifyMsg_); task58->Start(); sleep(1); bool rtv = task58->IsTaskRunning(); EXPECT_EQ(true, rtv); task58->Stop(); } /** * @tc.name: WaitFor_Failed * @tc.desc: WaitFor_Failed * @tc.type: FUNC */ HWTEST_F(TaskInnerUnitTest, WaitFor_Failed, TestSize.Level1) { std::shared_ptr task02 = std::make_shared("workTask02"); AutoLock lock(mutex_); task02->RegisterJob([]() { bool runningState =true; int count = 0; while (runningState) { count++; MEDIA_LOG_I("Task WaitFor_Failed running at " PUBLIC_LOG_U32, count); sleep(1); if (count > 10){ //10 second runningState = false; } } return 0; }); task02->Start(); int timeoutMs = 100; isStop_.store(false); auto rtv = cv.WaitFor(lock, timeoutMs, [this] { return isStop_.load(); }); EXPECT_EQ(false, rtv); } } // namespace MetaFuncUT } // namespace Media } // namespace OHOS