1 /*
2 * Copyright (c) 2022-2023 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 <cstdlib>
17 #include <string>
18
19 #include <sys/stat.h>
20
21 #include <gtest/gtest.h>
22
23 #include "b_process/b_process.h"
24
25 namespace OHOS::FileManagement::Backup {
26 using namespace std;
27
28 class BProcessTest : public testing::Test {
29 public:
SetUpTestCase()30 static void SetUpTestCase() {};
TearDownTestCase()31 static void TearDownTestCase() {};
SetUp()32 void SetUp() override {};
TearDown()33 void TearDown() override {};
34 };
35
DetectFatalLog(string_view output)36 static bool DetectFatalLog(string_view output)
37 {
38 GTEST_LOG_(INFO) << "DetectFatalLog " << output;
39 if (output.find("empty archive") != string_view::npos) {
40 return true;
41 }
42 return false;
43 }
44
45 /**
46 * @tc.number: SUB_backup_tool_BProcess_0100
47 * @tc.name: SUB_backup_tool_BProcess_0100
48 * @tc.desc: 测试ExecuteCmd
49 * @tc.size: MEDIUM
50 * @tc.type: FUNC
51 * @tc.level Level 0
52 * @tc.require: I6F3GV
53 */
54 HWTEST_F(BProcessTest, SUB_backup_tool_BProcess_0100, testing::ext::TestSize.Level0)
55 {
56 GTEST_LOG_(INFO) << "BProcessTest-begin SUB_backup_tool_BProcess_0100";
57 try {
58 vector<string_view> argvCf = {
59 "/system/bin/tar",
60 "-cf",
61 "/data/backup/",
62 };
63 auto [bFatalError, ret] = BProcess::ExecuteCmd(argvCf, DetectFatalLog);
64 EXPECT_NE(ret, 0);
65
66 vector<string_view> argvTvf = {
67 "/system/bin/tar",
68 "-tvf",
69 "/data/backup/",
70 };
71 auto [bFatalErro1r, retTvf] = BProcess::ExecuteCmd(argvTvf, DetectFatalLog);
72 EXPECT_NE(retTvf, 0);
73 } catch (...) {
74 EXPECT_TRUE(false);
75 GTEST_LOG_(INFO) << "BProcessTest-an exception occurred.";
76 }
77 GTEST_LOG_(INFO) << "BProcessTest-end SUB_backup_tool_BProcess_0100";
78 }
79
80 /**
81 * @tc.number: SUB_backup_tool_BProcess_0200
82 * @tc.name: SUB_backup_tool_BProcess_0200
83 * @tc.desc: 测试ExecuteCmd
84 * @tc.size: MEDIUM
85 * @tc.type: FUNC
86 * @tc.level Level 0
87 * @tc.require: I6F3GV
88 */
89 HWTEST_F(BProcessTest, SUB_backup_tool_BProcess_0200, testing::ext::TestSize.Level0)
90 {
91 GTEST_LOG_(INFO) << "BProcessTest-begin SUB_backup_tool_BProcess_0200";
92 try {
93 vector<string_view> argvCf = {
94 "",
95 "-cf",
96 "/data/backup/",
97 };
98 auto [bFatalError, ret] = BProcess::ExecuteCmd(argvCf, DetectFatalLog);
99 EXPECT_EQ(ret, 2);
100
101 } catch (...) {
102 EXPECT_TRUE(false);
103 GTEST_LOG_(INFO) << "BProcessTest-an exception occurred.";
104 }
105 GTEST_LOG_(INFO) << "BProcessTest-end SUB_backup_tool_BProcess_0200";
106 }
107
108 /**
109 * @tc.number: SUB_backup_tool_BProcess_0300
110 * @tc.name: SUB_backup_tool_BProcess_0300
111 * @tc.desc: 测试ExecuteCmd
112 * @tc.size: MEDIUM
113 * @tc.type: FUNC
114 * @tc.level Level 0
115 * @tc.require: I6F3GV
116 */
117 HWTEST_F(BProcessTest, SUB_backup_tool_BProcess_0300, testing::ext::TestSize.Level0)
118 {
119 GTEST_LOG_(INFO) << "BProcessTest-begin SUB_backup_tool_BProcess_0300";
120 try {
121 vector<string_view> argvCf = {
122 "/system/bin/tar",
123 "",
124 "/data/backup/",
125 };
126 auto [bFatalError, ret] = BProcess::ExecuteCmd(argvCf, DetectFatalLog);
127 EXPECT_EQ(ret, 1);
128 } catch (...) {
129 EXPECT_TRUE(false);
130 GTEST_LOG_(INFO) << "BProcessTest-an exception occurred.";
131 }
132 GTEST_LOG_(INFO) << "BProcessTest-end SUB_backup_tool_BProcess_0300";
133 }
134
135 /**
136 * @tc.number: SUB_backup_tool_BProcess_0400
137 * @tc.name: SUB_backup_tool_BProcess_0400
138 * @tc.desc: 测试ExecuteCmd
139 * @tc.size: MEDIUM
140 * @tc.type: FUNC
141 * @tc.level Level 0
142 * @tc.require: I6F3GV
143 */
144 HWTEST_F(BProcessTest, SUB_backup_tool_BProcess_0400, testing::ext::TestSize.Level0)
145 {
146 GTEST_LOG_(INFO) << "BProcessTest-begin SUB_backup_tool_BProcess_0400";
147 try {
148 vector<string_view> argvCf = {
149 "/system/bin/tar",
150 "-cf",
151 "",
152 };
153 auto [bFatalError, ret] = BProcess::ExecuteCmd(argvCf, DetectFatalLog);
154 EXPECT_EQ(ret, 1);
155 } catch (...) {
156 EXPECT_TRUE(false);
157 GTEST_LOG_(INFO) << "BProcessTest-an exception occurred.";
158 }
159 GTEST_LOG_(INFO) << "BProcessTest-end SUB_backup_tool_BProcess_0400";
160 }
161
162 /**
163 * @tc.number: SUB_backup_tool_BProcess_0500
164 * @tc.name: SUB_backup_tool_BProcess_0500
165 * @tc.desc: 测试ExecuteCmd
166 * @tc.size: MEDIUM
167 * @tc.type: FUNC
168 * @tc.level Level 0
169 * @tc.require: I6F3GV
170 */
171 HWTEST_F(BProcessTest, SUB_backup_tool_BProcess_0500, testing::ext::TestSize.Level0)
172 {
173 GTEST_LOG_(INFO) << "BProcessTest-begin SUB_backup_tool_BProcess_0500";
174 try {
175 vector<string_view> argvCf = {
176 "",
177 "",
178 "/data/backup/",
179 };
180 auto [bFatalError, ret] = BProcess::ExecuteCmd(argvCf, DetectFatalLog);
181 EXPECT_EQ(ret, 2);
182 } catch (...) {
183 EXPECT_TRUE(false);
184 GTEST_LOG_(INFO) << "BProcessTest-an exception occurred.";
185 }
186 GTEST_LOG_(INFO) << "BProcessTest-end SUB_backup_tool_BProcess_0500";
187 }
188
189 /**
190 * @tc.number: SUB_backup_tool_BProcess_0600
191 * @tc.name: SUB_backup_tool_BProcess_0600
192 * @tc.desc: 测试ExecuteCmd
193 * @tc.size: MEDIUM
194 * @tc.type: FUNC
195 * @tc.level Level 0
196 * @tc.require: I6F3GV
197 */
198 HWTEST_F(BProcessTest, SUB_backup_tool_BProcess_0600, testing::ext::TestSize.Level0)
199 {
200 GTEST_LOG_(INFO) << "BProcessTest-begin SUB_backup_tool_BProcess_0600";
201 try {
202 vector<string_view> argvCf = {
203 "",
204 "-cf",
205 "",
206 };
207 auto [bFatalError, ret] = BProcess::ExecuteCmd(argvCf, DetectFatalLog);
208 EXPECT_EQ(ret, 2);
209 } catch (...) {
210 EXPECT_TRUE(false);
211 GTEST_LOG_(INFO) << "BProcessTest-an exception occurred.";
212 }
213 GTEST_LOG_(INFO) << "BProcessTest-end SUB_backup_tool_BProcess_0600";
214 }
215
216 /**
217 * @tc.number: SUB_backup_tool_BProcess_0700
218 * @tc.name: SUB_backup_tool_BProcess_0700
219 * @tc.desc: 测试ExecuteCmd
220 * @tc.size: MEDIUM
221 * @tc.type: FUNC
222 * @tc.level Level 0
223 * @tc.require: I6F3GV
224 */
225 HWTEST_F(BProcessTest, SUB_backup_tool_BProcess_0700, testing::ext::TestSize.Level0)
226 {
227 GTEST_LOG_(INFO) << "BProcessTest-begin SUB_backup_tool_BProcess_0700";
228 try {
229 vector<string_view> argvCf = {
230 "/system/bin/tar",
231 "",
232 "",
233 };
234 auto [bFatalError, ret] = BProcess::ExecuteCmd(argvCf, DetectFatalLog);
235 EXPECT_EQ(ret, 1);
236 } catch (...) {
237 EXPECT_TRUE(false);
238 GTEST_LOG_(INFO) << "BProcessTest-an exception occurred.";
239 }
240 GTEST_LOG_(INFO) << "BProcessTest-end SUB_backup_tool_BProcess_0700";
241 }
242
243 /**
244 * @tc.number: SUB_backup_tool_BProcess_0800
245 * @tc.name: SUB_backup_tool_BProcess_0800
246 * @tc.desc: 测试ExecuteCmd
247 * @tc.size: MEDIUM
248 * @tc.type: FUNC
249 * @tc.level Level 0
250 * @tc.require: I6F3GV
251 */
252 HWTEST_F(BProcessTest, SUB_backup_tool_BProcess_0800, testing::ext::TestSize.Level0)
253 {
254 GTEST_LOG_(INFO) << "BProcessTest-begin SUB_backup_tool_BProcess_0800";
255 try {
256 vector<string_view> argvCf = {
257 "",
258 "",
259 "",
260 };
261 auto [bFatalError, ret] = BProcess::ExecuteCmd(argvCf, DetectFatalLog);
262 EXPECT_EQ(ret, 2);
263 } catch (...) {
264 EXPECT_TRUE(false);
265 GTEST_LOG_(INFO) << "BProcessTest-an exception occurred.";
266 }
267 GTEST_LOG_(INFO) << "BProcessTest-end SUB_backup_tool_BProcess_0800";
268 }
269
270 /**
271 * @tc.number: SUB_backup_tool_BProcess_0900
272 * @tc.name: SUB_backup_tool_BProcess_0900
273 * @tc.desc: 测试ExecuteCmd
274 * @tc.size: MEDIUM
275 * @tc.type: FUNC
276 * @tc.level Level 0
277 * @tc.require: I6F3GV
278 */
279 HWTEST_F(BProcessTest, SUB_backup_tool_BProcess_0900, testing::ext::TestSize.Level0)
280 {
281 GTEST_LOG_(INFO) << "BProcessTest-begin SUB_backup_tool_BProcess_0900";
282 try {
283 vector<string_view> argvCf = {
284 "/system/bin/tar",
285 };
286 auto [bFatalError, ret] = BProcess::ExecuteCmd(argvCf, DetectFatalLog);
287 EXPECT_EQ(ret, 1);
288 } catch (...) {
289 EXPECT_TRUE(false);
290 GTEST_LOG_(INFO) << "BProcessTest-an exception occurred.";
291 }
292 GTEST_LOG_(INFO) << "BProcessTest-end SUB_backup_tool_BProcess_0900";
293 }
294
295 /**
296 * @tc.number: SUB_backup_tool_BProcess_1000
297 * @tc.name: SUB_backup_tool_BProcess_1000
298 * @tc.desc: 测试ExecuteCmd
299 * @tc.size: MEDIUM
300 * @tc.type: FUNC
301 * @tc.level Level 0
302 * @tc.require: I6F3GV
303 */
304 HWTEST_F(BProcessTest, SUB_backup_tool_BProcess_1000, testing::ext::TestSize.Level0)
305 {
306 GTEST_LOG_(INFO) << "BProcessTest-begin SUB_backup_tool_BProcess_1000";
307 try {
308 vector<string_view> argvCf = {
309 "/system/bin/tar",
310 "-cf",
311 };
312 auto [bFatalError, ret] = BProcess::ExecuteCmd(argvCf, DetectFatalLog);
313 EXPECT_EQ(ret, 1);
314 } catch (...) {
315 EXPECT_TRUE(false);
316 GTEST_LOG_(INFO) << "BProcessTest-an exception occurred.";
317 }
318 GTEST_LOG_(INFO) << "BProcessTest-end SUB_backup_tool_BProcess_1000";
319 }
320 } // namespace OHOS::FileManagement::Backup
321