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