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 #include <csignal>
18
19 #include "devicedebug_base.h"
20 #include "devicedebug_kill.h"
21 #include "devicedebug_stub.h"
22
23 using namespace testing;
24 using namespace testing::ext;
25
26 namespace OHOS {
27 class DevicedebugKillTest : public testing::Test {
28 public:
29 static void SetUpTestCase();
30 static void TearDownTestCase();
31 void SetUp();
32 void TearDown();
33 };
34
SetUpTestCase()35 void DevicedebugKillTest::SetUpTestCase()
36 {
37 GTEST_LOG_(INFO) << "Devicedebug_Kill_TEST SetUpTestCase";
38 }
39
TearDownTestCase()40 void DevicedebugKillTest::TearDownTestCase()
41 {
42 GTEST_LOG_(INFO) << "Devicedebug_Kill_TEST TearDownTestCase";
43 }
44
SetUp()45 void DevicedebugKillTest::SetUp()
46 {
47 GTEST_LOG_(INFO) << "Devicedebug_Kill_TEST SetUp";
48 }
49
TearDown()50 void DevicedebugKillTest::TearDown()
51 {
52 GTEST_LOG_(INFO) << "Devicedebug_Kill_TEST TearDown";
53 }
54
55 /**
56 * @tc.name: DevicedebugCmdKill_001
57 * @tc.desc: Verify develop mode and argc validate.
58 * @tc.type: FUNC
59 * @tc.require:issueIASN4F
60 * @tc.author:
61 */
62 HWTEST_F(DevicedebugKillTest, DevicedebugCmdKill_001, TestSize.Level0)
63 {
64 GTEST_LOG_(INFO) << "DevicedebugCmdKill_001 test....";
65 {
66 int argc = 3;
67 char argv0[] = "devicedebug";
68 char argv1[] = "kill";
69 char argv2[] = "-9";
70 char* argv[] = {argv0, argv1, argv2};
71 EXPECT_EQ(DeviceDebugCmdKill(argc, argv), DEVICEDEBUG_ERRNO_NOT_IN_DEVELOPER_MODE);
72 DeveloperModeOpenSet(1);
73 EXPECT_EQ(DeviceDebugCmdKill(argc, argv), DEVICEDEBUG_ERRNO_OPERATOR_ARGV_MISS);
74 }
75 {
76 int argc = 2;
77 char argv0[] = "devicedebug";
78 char argv1[] = "-h";
79 char* argv[] = {argv0, argv1};
80 EXPECT_EQ(DeviceDebugCmdKill(argc, argv), 0);
81 }
82 {
83 DeveloperModeOpenSet(1);
84 int argc = 3;
85 char argv0[] = "devicedebug";
86 char argv1[] = "kill";
87 char argv2[] = "-9";
88 char* argv[] = {argv0, argv1, argv2};
89 EXPECT_EQ(DeviceDebugCmdKill(argc, argv), DEVICEDEBUG_ERRNO_OPERATOR_ARGV_MISS);
90 }
91 }
92
93 /**
94 * @tc.name: DevicedebugCmdKill_002
95 * @tc.desc: Verify signal validate.
96 * @tc.type: FUNC
97 * @tc.require:issueIASN4F
98 * @tc.author:
99 */
100 HWTEST_F(DevicedebugKillTest, DevicedebugCmdKill_002, TestSize.Level0)
101 {
102 GTEST_LOG_(INFO) << "DevicedebugCmdKill_002 test....";
103
104 DeveloperModeOpenSet(1);
105 {
106 int argc = 4;
107 char argv0[] = "devicedebug";
108 char argv1[] = "kill";
109 char argv2[] = "-0";
110 char argv3[] = "12111";
111 char* argv[] = {argv0, argv1, argv2, argv3};
112 EXPECT_EQ(DeviceDebugCmdKill(argc, argv), DEVICEDEBUG_ERRNO_PARAM_INVALID);
113 }
114 {
115 int argc = 4;
116 char argv0[] = "devicedebug";
117 char argv1[] = "kill";
118 char argv2[] = "-65";
119 char argv3[] = "12111";
120 char* argv[] = {argv0, argv1, argv2, argv3};
121 EXPECT_EQ(DeviceDebugCmdKill(argc, argv), DEVICEDEBUG_ERRNO_PARAM_INVALID);
122 }
123 }
124
125 /**
126 * @tc.name: DevicedebugCmdKill_003
127 * @tc.desc: Verify devicedebug kill success.
128 * @tc.type: FUNC
129 * @tc.require:issueIASN4F
130 * @tc.author:
131 */
132 HWTEST_F(DevicedebugKillTest, DevicedebugCmdKill_003, TestSize.Level0)
133 {
134 GTEST_LOG_(INFO) << "DevicedebugCmdKill_003 test....";
135
136 DeveloperModeOpenSet(1);
137 int argc = 4;
138 char argv0[] = "devicedebug";
139 char argv1[] = "kill";
140 char argv2[] = "-9";
141 char argv3[] = "12111";
142 char* argv[] = {argv0, argv1, argv2, argv3};
143 {
144 AppSpawnClientInitRetSet(-1);
145 EXPECT_EQ(DeviceDebugCmdKill(argc, argv), -1);
146 }
147 AppSpawnClientInitRetSet(0);
148 {
149 AppSpawnReqMsgCreateRetSet(-2);
150 EXPECT_EQ(DeviceDebugCmdKill(argc, argv), -2);
151 }
152 AppSpawnReqMsgCreateRetSet(0);
153 {
154 AppSpawnReqMsgAddExtInfoRetSet(-3);
155 EXPECT_EQ(DeviceDebugCmdKill(argc, argv), -3);
156 }
157 AppSpawnReqMsgAddExtInfoRetSet(0);
158 {
159 AppSpawnClientSendMsgRetSet(-4);
160 EXPECT_EQ(DeviceDebugCmdKill(argc, argv), -4);
161 }
162 AppSpawnClientSendMsgRetSet(0);
163 {
164 AppSpawnClientSendMsgResultSet(-5);
165 EXPECT_EQ(DeviceDebugCmdKill(argc, argv), -5);
166 }
167 AppSpawnClientSendMsgResultSet(0);
168 {
169 EXPECT_EQ(DeviceDebugCmdKill(argc, argv), 0);
170 }
171 }
172
173 }