1c29fa5a6Sopenharmony_ci/* 2c29fa5a6Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 3c29fa5a6Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4c29fa5a6Sopenharmony_ci * you may not use this file except in compliance with the License. 5c29fa5a6Sopenharmony_ci * You may obtain a copy of the License at 6c29fa5a6Sopenharmony_ci * 7c29fa5a6Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8c29fa5a6Sopenharmony_ci * 9c29fa5a6Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10c29fa5a6Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11c29fa5a6Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12c29fa5a6Sopenharmony_ci * See the License for the specific language governing permissions and 13c29fa5a6Sopenharmony_ci * limitations under the License. 14c29fa5a6Sopenharmony_ci */ 15c29fa5a6Sopenharmony_ci 16c29fa5a6Sopenharmony_ci#include <gtest/gtest.h> 17c29fa5a6Sopenharmony_ci 18c29fa5a6Sopenharmony_ci#include "mmi_log.h" 19c29fa5a6Sopenharmony_ci#include "watchdog_task.h" 20c29fa5a6Sopenharmony_ci 21c29fa5a6Sopenharmony_ci#undef MMI_LOG_TAG 22c29fa5a6Sopenharmony_ci#define MMI_LOG_TAG "WatchdogTaskTest" 23c29fa5a6Sopenharmony_cinamespace OHOS { 24c29fa5a6Sopenharmony_cinamespace MMI { 25c29fa5a6Sopenharmony_cinamespace { 26c29fa5a6Sopenharmony_ciusing namespace testing::ext; 27c29fa5a6Sopenharmony_ci} // namespace 28c29fa5a6Sopenharmony_ci 29c29fa5a6Sopenharmony_ciclass WatchdogTaskTest : public testing::Test { 30c29fa5a6Sopenharmony_cipublic: 31c29fa5a6Sopenharmony_ci static void SetUpTestCase(void) {} 32c29fa5a6Sopenharmony_ci static void TearDownTestCase(void) {} 33c29fa5a6Sopenharmony_ci}; 34c29fa5a6Sopenharmony_ci 35c29fa5a6Sopenharmony_ci/** 36c29fa5a6Sopenharmony_ci * @tc.name: WatchdogTaskTest_GetFirstLine_001 37c29fa5a6Sopenharmony_ci * @tc.desc: Test the function GetFirstLine 38c29fa5a6Sopenharmony_ci * @tc.type: FUNC 39c29fa5a6Sopenharmony_ci * @tc.require: 40c29fa5a6Sopenharmony_ci */ 41c29fa5a6Sopenharmony_ciHWTEST_F(WatchdogTaskTest, WatchdogTaskTest_GetFirstLine_001, TestSize.Level1) 42c29fa5a6Sopenharmony_ci{ 43c29fa5a6Sopenharmony_ci CALL_TEST_DEBUG; 44c29fa5a6Sopenharmony_ci WatchdogTask watchdogtask; 45c29fa5a6Sopenharmony_ci std::string path; 46c29fa5a6Sopenharmony_ci auto ret = watchdogtask.GetFirstLine(path); 47c29fa5a6Sopenharmony_ci EXPECT_EQ(ret, path); 48c29fa5a6Sopenharmony_ci} 49c29fa5a6Sopenharmony_ci 50c29fa5a6Sopenharmony_ci/** 51c29fa5a6Sopenharmony_ci * @tc.name: WatchdogTaskTest_GetProcessNameFromProcCmdline_001 52c29fa5a6Sopenharmony_ci * @tc.desc: Test the function GetProcessNameFromProcCmdline 53c29fa5a6Sopenharmony_ci * @tc.type: FUNC 54c29fa5a6Sopenharmony_ci * @tc.require: 55c29fa5a6Sopenharmony_ci */ 56c29fa5a6Sopenharmony_ciHWTEST_F(WatchdogTaskTest, WatchdogTaskTest_GetProcessNameFromProcCmdline_001, TestSize.Level1) 57c29fa5a6Sopenharmony_ci{ 58c29fa5a6Sopenharmony_ci CALL_TEST_DEBUG; 59c29fa5a6Sopenharmony_ci WatchdogTask watchdogtask; 60c29fa5a6Sopenharmony_ci std::string expectedDescription; 61c29fa5a6Sopenharmony_ci int32_t pid = -1; 62c29fa5a6Sopenharmony_ci auto ret = watchdogtask.GetProcessNameFromProcCmdline(pid); 63c29fa5a6Sopenharmony_ci EXPECT_EQ(ret, expectedDescription); 64c29fa5a6Sopenharmony_ci} 65c29fa5a6Sopenharmony_ci 66c29fa5a6Sopenharmony_ci/** 67c29fa5a6Sopenharmony_ci * @tc.name: WatchdogTaskTest_IsNumberic_001 68c29fa5a6Sopenharmony_ci * @tc.desc: Test the function IsNumberic 69c29fa5a6Sopenharmony_ci * @tc.type: FUNC 70c29fa5a6Sopenharmony_ci * @tc.require: 71c29fa5a6Sopenharmony_ci */ 72c29fa5a6Sopenharmony_ciHWTEST_F(WatchdogTaskTest, WatchdogTaskTest_IsNumberic_001, TestSize.Level1) 73c29fa5a6Sopenharmony_ci{ 74c29fa5a6Sopenharmony_ci CALL_TEST_DEBUG; 75c29fa5a6Sopenharmony_ci WatchdogTask watchdogtask; 76c29fa5a6Sopenharmony_ci std::string testString = "12345"; 77c29fa5a6Sopenharmony_ci bool ret = watchdogtask.IsNumberic(testString); 78c29fa5a6Sopenharmony_ci EXPECT_TRUE(ret); 79c29fa5a6Sopenharmony_ci} 80c29fa5a6Sopenharmony_ci 81c29fa5a6Sopenharmony_ci/** 82c29fa5a6Sopenharmony_ci * @tc.name: WatchdogTaskTest_IsProcessDebug_001 83c29fa5a6Sopenharmony_ci * @tc.desc: Test the function IsProcessDebug 84c29fa5a6Sopenharmony_ci * @tc.type: FUNC 85c29fa5a6Sopenharmony_ci * @tc.require: 86c29fa5a6Sopenharmony_ci */ 87c29fa5a6Sopenharmony_ciHWTEST_F(WatchdogTaskTest, WatchdogTaskTest_IsProcessDebug_001, TestSize.Level1) 88c29fa5a6Sopenharmony_ci{ 89c29fa5a6Sopenharmony_ci CALL_TEST_DEBUG; 90c29fa5a6Sopenharmony_ci WatchdogTask watchdogtask; 91c29fa5a6Sopenharmony_ci int32_t pid = 1; 92c29fa5a6Sopenharmony_ci bool ret = watchdogtask.IsProcessDebug(pid); 93c29fa5a6Sopenharmony_ci EXPECT_FALSE(ret); 94c29fa5a6Sopenharmony_ci} 95c29fa5a6Sopenharmony_ci 96c29fa5a6Sopenharmony_ci/** 97c29fa5a6Sopenharmony_ci * @tc.name: WatchdogTaskTest_GetBlockDescription_001 98c29fa5a6Sopenharmony_ci * @tc.desc: Test the function GetBlockDescription 99c29fa5a6Sopenharmony_ci * @tc.type: FUNC 100c29fa5a6Sopenharmony_ci * @tc.require: 101c29fa5a6Sopenharmony_ci */ 102c29fa5a6Sopenharmony_ciHWTEST_F(WatchdogTaskTest, WatchdogTaskTest_GetBlockDescription_001, TestSize.Level1) 103c29fa5a6Sopenharmony_ci{ 104c29fa5a6Sopenharmony_ci CALL_TEST_DEBUG; 105c29fa5a6Sopenharmony_ci WatchdogTask watchdogtask; 106c29fa5a6Sopenharmony_ci std::string desc = "Watchdog: thread(mmi_service) blocked 5000s"; 107c29fa5a6Sopenharmony_ci uint64_t timeInterval = 5000; 108c29fa5a6Sopenharmony_ci auto ret = watchdogtask.GetBlockDescription(timeInterval); 109c29fa5a6Sopenharmony_ci EXPECT_EQ(ret, desc); 110c29fa5a6Sopenharmony_ci} 111c29fa5a6Sopenharmony_ci 112c29fa5a6Sopenharmony_ci/** 113c29fa5a6Sopenharmony_ci * @tc.name: WatchdogTaskTest_GetSelfProcName_001 114c29fa5a6Sopenharmony_ci * @tc.desc: Test the function GetSelfProcName 115c29fa5a6Sopenharmony_ci * @tc.type: FUNC 116c29fa5a6Sopenharmony_ci * @tc.require: 117c29fa5a6Sopenharmony_ci */ 118c29fa5a6Sopenharmony_ciHWTEST_F(WatchdogTaskTest, WatchdogTaskTest_GetSelfProcName_001, TestSize.Level1) 119c29fa5a6Sopenharmony_ci{ 120c29fa5a6Sopenharmony_ci CALL_TEST_DEBUG; 121c29fa5a6Sopenharmony_ci WatchdogTask watchdogtask; 122c29fa5a6Sopenharmony_ci std::string desc = "ut-mmi-service-"; 123c29fa5a6Sopenharmony_ci auto ret = watchdogtask.GetSelfProcName(); 124c29fa5a6Sopenharmony_ci EXPECT_NE(ret, desc); 125c29fa5a6Sopenharmony_ci} 126c29fa5a6Sopenharmony_ci 127c29fa5a6Sopenharmony_ci/** 128c29fa5a6Sopenharmony_ci * @tc.name: WatchdogTaskTest_SendEvent_001 129c29fa5a6Sopenharmony_ci * @tc.desc: Test the function SendEvent 130c29fa5a6Sopenharmony_ci * @tc.type: FUNC 131c29fa5a6Sopenharmony_ci * @tc.require: 132c29fa5a6Sopenharmony_ci */ 133c29fa5a6Sopenharmony_ciHWTEST_F(WatchdogTaskTest, WatchdogTaskTest_SendEvent_001, TestSize.Level1) 134c29fa5a6Sopenharmony_ci{ 135c29fa5a6Sopenharmony_ci CALL_TEST_DEBUG; 136c29fa5a6Sopenharmony_ci WatchdogTask watchdogtask; 137c29fa5a6Sopenharmony_ci std::string message = "This is a test message"; 138c29fa5a6Sopenharmony_ci std::string event = "TestEvent"; 139c29fa5a6Sopenharmony_ci ASSERT_NO_FATAL_FAILURE(watchdogtask.SendEvent(message, event)); 140c29fa5a6Sopenharmony_ci} 141c29fa5a6Sopenharmony_ci} // namespace MMI 142c29fa5a6Sopenharmony_ci} // namespace OHOS