1 /*
2 * Copyright (c) 2021 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 #include <gtest/gtest.h>
16 #define private public
17 #include "executor/memory_dumper.h"
18 #include "executor/api_dumper.h"
19 #include "executor/cmd_dumper.h"
20 #include "executor/cpu_dumper.h"
21 #include "executor/file_stream_dumper.h"
22 #include "executor/list_dumper.h"
23 #include "executor/sa_dumper.h"
24 #include "executor/version_dumper.h"
25 #include "util/config_utils.h"
26 #undef private
27
28 using namespace std;
29 using namespace testing::ext;
30 using namespace OHOS;
31 using namespace OHOS::HiviewDFX;
32 namespace OHOS {
33 namespace HiviewDFX {
34 class HidumperDumpersTest : public testing::Test {
35 public:
36 static void SetUpTestCase(void);
37 static void TearDownTestCase(void);
38 void SetUp();
39 void TearDown();
40
41 protected:
42 static constexpr auto& FILE_CPUINFO = "/proc/cpuinfo";
43 static constexpr auto DEFAULT_PID = 1;
44 static constexpr auto DEFAULT_UID = 0;
45 };
46
SetUpTestCase(void)47 void HidumperDumpersTest::SetUpTestCase(void)
48 {
49 }
50
TearDownTestCase(void)51 void HidumperDumpersTest::TearDownTestCase(void)
52 {
53 }
54
SetUp(void)55 void HidumperDumpersTest::SetUp(void)
56 {
57 }
58
TearDown(void)59 void HidumperDumpersTest::TearDown(void)
60 {
61 }
62
63 /**
64 * @tc.name: FileDumperTest001
65 * @tc.desc: Test FileDumper base function with loop = TRUE.
66 * @tc.type: FUNC
67 */
68 HWTEST_F(HidumperDumpersTest, FileDumperTest001, TestSize.Level3)
69 {
70 auto parameter = std::make_shared<DumperParameter>();
71 auto dump_datas = std::make_shared<std::vector<std::vector<std::string>>>();
72 auto file_dumper = make_shared<FileStreamDumper>();
73 auto config = std::make_shared<DumpCfg>();
74 config->name_ = "FileDumperTest";
75 std::string file_name = FILE_CPUINFO;
76 config->target_ = file_name;
77 config->loop_ = DumperConstant::LOOP;
78 config->args_ = OptionArgs::Create();
79 config->args_->SetPid(DEFAULT_PID, DEFAULT_UID);
80 file_dumper->SetDumpConfig(config);
81 DumpStatus ret = file_dumper->DoPreExecute(parameter, dump_datas);
82 ASSERT_TRUE(ret == DumpStatus::DUMP_OK) << "PreExecute failed.";
83
84 ret = DumpStatus::DUMP_MORE_DATA;
85 while (ret == DumpStatus::DUMP_MORE_DATA) {
86 // loop for all lines
87 ret = file_dumper->DoExecute();
88 ASSERT_TRUE(ret == DumpStatus::DUMP_OK || ret == DumpStatus::DUMP_MORE_DATA) << "Execute failed.";
89 ret = file_dumper->DoAfterExecute();
90 ASSERT_TRUE(ret == DumpStatus::DUMP_OK || ret == DumpStatus::DUMP_MORE_DATA) << "Execute failed.";
91 }
92 }
93
94 /**
95 * @tc.name: FileDumperTest002
96 * @tc.desc: Test FileDumper base function with loop = FALSE.
97 * @tc.type: FUNC
98 */
99 HWTEST_F(HidumperDumpersTest, FileDumperTest002, TestSize.Level3)
100 {
101 auto parameter = std::make_shared<DumperParameter>();
102 auto dump_datas = std::make_shared<std::vector<std::vector<std::string>>>();
103 auto file_dumper = make_shared<FileStreamDumper>();
104 auto config = std::make_shared<DumpCfg>();
105 config->name_ = "FileDumperTest";
106 std::string file_name = FILE_CPUINFO;
107 config->target_ = file_name;
108 config->loop_ = DumperConstant::NONE;
109 file_dumper->SetDumpConfig(config);
110 DumpStatus ret = file_dumper->DoPreExecute(parameter, dump_datas);
111 ASSERT_TRUE(ret == DumpStatus::DUMP_OK) << "PreExecute failed.";
112
113 ret = DumpStatus::DUMP_MORE_DATA;
114 while (ret == DumpStatus::DUMP_MORE_DATA) {
115 // loop for all lines
116 ret = file_dumper->DoExecute();
117 ASSERT_TRUE(ret == DumpStatus::DUMP_OK || ret == DumpStatus::DUMP_MORE_DATA) << "Execute failed.";
118 ret = file_dumper->DoAfterExecute();
119 ASSERT_TRUE(ret == DumpStatus::DUMP_OK || ret == DumpStatus::DUMP_MORE_DATA) << "Execute failed.";
120 }
121 }
122
123 /**
124 * @tc.name: FileDumperTest003
125 * @tc.desc: Test FileDumper base function with inputing dir(end with /) and LOOP = TRUE.
126 * @tc.type: FUNC
127 */
128 HWTEST_F(HidumperDumpersTest, FileDumperTest003, TestSize.Level3)
129 {
130 auto parameter = std::make_shared<DumperParameter>();
131 auto dump_datas = std::make_shared<std::vector<std::vector<std::string>>>();
132 auto file_dumper = make_shared<FileStreamDumper>();
133 auto config = std::make_shared<DumpCfg>();
134 config->name_ = "FileDumperTest";
135 std::string file_name = "/data/log/faultlog/temp/";
136 config->target_ = file_name;
137 config->loop_ = DumperConstant::LOOP;
138 file_dumper->SetDumpConfig(config);
139 DumpStatus ret = file_dumper->DoPreExecute(parameter, dump_datas);
140 ASSERT_TRUE(ret == DumpStatus::DUMP_OK) << "PreExecute failed.";
141
142 ret = DumpStatus::DUMP_MORE_DATA;
143 while (ret == DumpStatus::DUMP_MORE_DATA) {
144 // loop for all lines
145 ret = file_dumper->DoExecute();
146 ASSERT_TRUE(ret == DumpStatus::DUMP_OK || ret == DumpStatus::DUMP_MORE_DATA) << "Execute failed.";
147 ret = file_dumper->DoAfterExecute();
148 ASSERT_TRUE(ret == DumpStatus::DUMP_OK || ret == DumpStatus::DUMP_MORE_DATA) << "Execute failed.";
149 }
150 }
151
152 /**
153 * @tc.name: FileDumperTest004
154 * @tc.desc: Test FileDumper base function with inputing dir.
155 * @tc.type: FUNC
156 */
157 HWTEST_F(HidumperDumpersTest, FileDumperTest004, TestSize.Level3)
158 {
159 auto parameter = std::make_shared<DumperParameter>();
160 auto dump_datas = std::make_shared<std::vector<std::vector<std::string>>>();
161 auto file_dumper = make_shared<FileStreamDumper>();
162 auto config = std::make_shared<DumpCfg>();
163 config->name_ = "FileDumperTest";
164 std::string file_name = "/data/log/faultlog/temp";
165 config->target_ = file_name;
166 config->loop_ = DumperConstant::NONE;
167 file_dumper->SetDumpConfig(config);
168 DumpStatus ret = file_dumper->DoPreExecute(parameter, dump_datas);
169 ASSERT_TRUE(ret == DumpStatus::DUMP_OK) << "PreExecute failed.";
170
171 ret = DumpStatus::DUMP_MORE_DATA;
172 while (ret == DumpStatus::DUMP_MORE_DATA) {
173 // loop for all lines
174 ret = file_dumper->DoExecute();
175 ASSERT_TRUE(ret == DumpStatus::DUMP_OK || ret == DumpStatus::DUMP_MORE_DATA) << "Execute failed.";
176 ret = file_dumper->DoAfterExecute();
177 ASSERT_TRUE(ret == DumpStatus::DUMP_OK || ret == DumpStatus::DUMP_MORE_DATA) << "Execute failed.";
178 }
179 }
180 /**
181 * @tc.name: FileDumperTest005
182 * @tc.desc: Test FileDumper base function with replacing PID in file paths.
183 * @tc.type: FUNC
184 */
185 HWTEST_F(HidumperDumpersTest, FileDumperTest005, TestSize.Level0)
186 {
187 auto parameter = std::make_shared<DumperParameter>();
188 auto dump_datas = std::make_shared<std::vector<std::vector<std::string>>>();
189 auto file_dumper = make_shared<FileStreamDumper>();
190 auto config = std::make_shared<DumpCfg>();
191 config->name_ = "FileDumperTest";
192 std::string file_name = "/proc/%pid/smaps";
193 config->target_ = file_name;
194 config->loop_ = DumperConstant::LOOP;
195 config->args_ = OptionArgs::Create();
196 config->args_->SetPid(DEFAULT_PID, DEFAULT_UID);
197 file_dumper->SetDumpConfig(config);
198 DumpStatus ret = file_dumper->DoPreExecute(parameter, dump_datas);
199 ASSERT_TRUE(ret == DumpStatus::DUMP_OK) << "PreExecute failed.";
200
201 ret = DumpStatus::DUMP_MORE_DATA;
202 while (ret == DumpStatus::DUMP_MORE_DATA) {
203 // loop for all lines
204 ret = file_dumper->DoExecute();
205 ASSERT_TRUE(ret == DumpStatus::DUMP_OK || ret == DumpStatus::DUMP_MORE_DATA) << "Execute failed.";
206 ret = file_dumper->DoAfterExecute();
207 ASSERT_TRUE(ret == DumpStatus::DUMP_OK || ret == DumpStatus::DUMP_MORE_DATA) << "Execute failed.";
208 }
209 }
210
211 /**
212 * @tc.name: APIDumperTest001
213 * @tc.desc: Test APIDumper target is build_version.
214 * @tc.type: FUNC
215 */
216 HWTEST_F(HidumperDumpersTest, APIDumperTest001, TestSize.Level3)
217 {
218 auto parameter = std::make_shared<DumperParameter>();
219 auto dump_datas = std::make_shared<std::vector<std::vector<std::string>>>();
220 auto fapi_dumper = make_shared<APIDumper>();
221 auto config = std::make_shared<DumpCfg>();
222 config->name_ = "dumper_build_id";
223 config->target_ = "build_version";
224 fapi_dumper->SetDumpConfig(config);
225 DumpStatus ret = fapi_dumper->DoPreExecute(parameter, dump_datas);
226 ASSERT_TRUE(ret == DumpStatus::DUMP_OK) << "PreExecute failed.";
227 ret = fapi_dumper->DoExecute();
228 ASSERT_TRUE(ret == DumpStatus::DUMP_OK) << "Execute failed.";
229 ret = fapi_dumper->DoAfterExecute();
230 ASSERT_TRUE(ret == DumpStatus::DUMP_OK) << "AfterExecute failed.";
231 }
232
233 /**
234 * @tc.name: APIDumperTest002
235 * @tc.desc: Test APIDumper target is hw_sc.build.os.releasetype.
236 * @tc.type: FUNC
237 */
238 HWTEST_F(HidumperDumpersTest, APIDumperTest002, TestSize.Level3)
239 {
240 auto parameter = std::make_shared<DumperParameter>();
241 auto dump_datas = std::make_shared<std::vector<std::vector<std::string>>>();
242 auto fapi_dumper = make_shared<APIDumper>();
243 auto config = std::make_shared<DumpCfg>();
244 config->name_ = "dumper_release_type";
245 config->target_ = "hw_sc.build.os.releasetype";
246 fapi_dumper->SetDumpConfig(config);
247 DumpStatus ret = fapi_dumper->DoPreExecute(parameter, dump_datas);
248 ASSERT_TRUE(ret == DumpStatus::DUMP_OK) << "PreExecute failed.";
249 ret = fapi_dumper->DoExecute();
250 ASSERT_TRUE(ret == DumpStatus::DUMP_OK) << "Execute failed.";
251 ret = fapi_dumper->DoAfterExecute();
252 ASSERT_TRUE(ret == DumpStatus::DUMP_OK) << "AfterExecute failed.";
253 }
254
255 /**
256 * @tc.name: APIDumperTest003
257 * @tc.desc: Test APIDumper target is hw_sc.build.os.version.
258 * @tc.type: FUNC
259 */
260 HWTEST_F(HidumperDumpersTest, APIDumperTest003, TestSize.Level3)
261 {
262 auto parameter = std::make_shared<DumperParameter>();
263 auto dump_datas = std::make_shared<std::vector<std::vector<std::string>>>();
264 auto fapi_dumper = make_shared<APIDumper>();
265 auto config = std::make_shared<DumpCfg>();
266 config->name_ = "dumper_os_version";
267 config->target_ = "hw_sc.build.os.version";
268 fapi_dumper->SetDumpConfig(config);
269 DumpStatus ret = fapi_dumper->DoPreExecute(parameter, dump_datas);
270 ASSERT_TRUE(ret == DumpStatus::DUMP_OK) << "PreExecute failed.";
271 ret = fapi_dumper->DoExecute();
272 ASSERT_TRUE(ret == DumpStatus::DUMP_OK) << "Execute failed.";
273 ret = fapi_dumper->DoAfterExecute();
274 ASSERT_TRUE(ret == DumpStatus::DUMP_OK) << "AfterExecute failed.";
275 }
276
277 /**
278 * @tc.name: APIDumperTest004
279 * @tc.desc: Test APIDumper target is system_param.
280 * @tc.type: FUNC
281 */
282 HWTEST_F(HidumperDumpersTest, APIDumperTest004, TestSize.Level3)
283 {
284 auto parameter = std::make_shared<DumperParameter>();
285 auto dump_datas = std::make_shared<std::vector<std::vector<std::string>>>();
286 auto fapi_dumper = make_shared<APIDumper>();
287 auto config = std::make_shared<DumpCfg>();
288 config->name_ = "dumper_system_param";
289 config->target_ = "system_param";
290 fapi_dumper->SetDumpConfig(config);
291 DumpStatus ret = fapi_dumper->DoPreExecute(parameter, dump_datas);
292 ASSERT_TRUE(ret == DumpStatus::DUMP_OK) << "PreExecute failed.";
293 ret = fapi_dumper->DoExecute();
294 ASSERT_TRUE(ret == DumpStatus::DUMP_OK) << "Execute failed.";
295 ret = fapi_dumper->DoAfterExecute();
296 ASSERT_TRUE(ret == DumpStatus::DUMP_OK) << "AfterExecute failed.";
297 }
298
299 /**
300 * @tc.name: APIDumperTest005
301 * @tc.desc: Test VersionDumper.
302 * @tc.type: FUNC
303 */
304 HWTEST_F(HidumperDumpersTest, VersionDumperTest001, TestSize.Level3)
305 {
306 auto parameter = std::make_shared<DumperParameter>();
307 auto dump_datas = std::make_shared<std::vector<std::vector<std::string>>>();
308 auto fapi_dumper = make_shared<VersionDumper>();
309 DumpStatus ret = fapi_dumper->DoPreExecute(parameter, dump_datas);
310 ASSERT_TRUE(ret == DumpStatus::DUMP_OK) << "PreExecute failed.";
311 ret = fapi_dumper->DoExecute();
312 ASSERT_TRUE(ret == DumpStatus::DUMP_OK) << "Execute failed.";
313 ret = fapi_dumper->DoAfterExecute();
314 ASSERT_TRUE(ret == DumpStatus::DUMP_OK) << "AfterExecute failed.";
315 }
316
317 /**
318 * @tc.name: CMDDumperTest001
319 * @tc.desc: CMD Dumper base function with loop = TRUE.
320 * @tc.type: FUNC
321 */
322 HWTEST_F(HidumperDumpersTest, CMDDumperTest001, TestSize.Level3)
323 {
324 auto parameter = std::make_shared<DumperParameter>();
325 auto dump_datas = std::make_shared<std::vector<std::vector<std::string>>>();
326 auto cmd_dumper = make_shared<CMDDumper>();
327 auto config = std::make_shared<DumpCfg>();
328 config->name_ = "CmdDumperTest";
329 std::string cmd = "ps -ef";
330 config->target_ = cmd;
331 config->loop_ = DumperConstant::LOOP;
332 cmd_dumper->SetDumpConfig(config);
333 DumpStatus ret = cmd_dumper->DoPreExecute(parameter, dump_datas);
334 ASSERT_TRUE(ret == DumpStatus::DUMP_OK) << "PreExecute failed.";
335
336 ret = DumpStatus::DUMP_MORE_DATA;
337 while (ret == DumpStatus::DUMP_MORE_DATA) {
338 // loop for all lines
339 ret = cmd_dumper->DoExecute();
340 ASSERT_TRUE(ret == DumpStatus::DUMP_OK || ret == DumpStatus::DUMP_MORE_DATA) << "Execute failed.";
341 ret = cmd_dumper->DoAfterExecute();
342 ASSERT_TRUE(ret == DumpStatus::DUMP_OK || ret == DumpStatus::DUMP_MORE_DATA) << "Execute failed.";
343 }
344 }
345
346 /**
347 * @tc.name: CMDDumperTest002
348 * @tc.desc: CMD Dumper base function with loop = False.
349 * @tc.type: FUNC
350 */
351 HWTEST_F(HidumperDumpersTest, CMDDumperTest002, TestSize.Level3)
352 {
353 auto parameter = std::make_shared<DumperParameter>();
354 auto dump_datas = std::make_shared<std::vector<std::vector<std::string>>>();
355 auto cmd_dumper = make_shared<CMDDumper>();
356 auto config = std::make_shared<DumpCfg>();
357 config->name_ = "CmdDumperTest";
358 std::string cmd = "ps -ef";
359 config->target_ = cmd;
360 config->loop_ = DumperConstant::NONE;
361 cmd_dumper->SetDumpConfig(config);
362 DumpStatus ret = cmd_dumper->DoPreExecute(parameter, dump_datas);
363 ASSERT_TRUE(ret == DumpStatus::DUMP_OK) << "PreExecute failed.";
364
365 ret = DumpStatus::DUMP_MORE_DATA;
366 while (ret == DumpStatus::DUMP_MORE_DATA) {
367 // loop for all lines
368 ret = cmd_dumper->DoExecute();
369 ASSERT_TRUE(ret == DumpStatus::DUMP_OK || ret == DumpStatus::DUMP_MORE_DATA) << "Execute failed.";
370 ret = cmd_dumper->DoAfterExecute();
371 ASSERT_TRUE(ret == DumpStatus::DUMP_OK || ret == DumpStatus::DUMP_MORE_DATA) << "Execute failed.";
372 }
373 }
374
375 /**
376 * @tc.name: MemoryDumperTest001
377 * @tc.desc: Test MemoryDumper one process has correct ret.
378 * @tc.type: FUNC
379 */
380 HWTEST_F(HidumperDumpersTest, MemoryDumperTest001, TestSize.Level1)
381 {
382 auto memoryDumper = std::make_shared<MemoryDumper>();
383 memoryDumper->pid_ = 1;
384 auto dumpDatas = std::make_shared<std::vector<std::vector<std::string>>>();
385 memoryDumper->dumpDatas_ = dumpDatas;
386 int ret = DumpStatus::DUMP_MORE_DATA;
387 while (ret == DumpStatus::DUMP_MORE_DATA) {
388 ret = memoryDumper->Execute();
389 }
390 ASSERT_EQ(ret, DumpStatus::DUMP_OK);
391 }
392
393 /**
394 * @tc.name: MemoryDumperTest002
395 * @tc.desc: Test MemoryDumper all process has correct ret.
396 * @tc.type: FUNC
397 */
398 HWTEST_F(HidumperDumpersTest, MemoryDumperTest002, TestSize.Level1)
399 {
400 auto memoryDumper = std::make_shared<MemoryDumper>();
401 memoryDumper->pid_ = -1;
402 auto dumpDatas = std::make_shared<std::vector<std::vector<std::string>>>();
403 memoryDumper->dumpDatas_ = dumpDatas;
404 int ret = DumpStatus::DUMP_MORE_DATA;
405 while (ret == DumpStatus::DUMP_MORE_DATA) {
406 ret = memoryDumper->Execute();
407 }
408 ASSERT_EQ(ret, DumpStatus::DUMP_OK);
409 }
410
411 /**
412 * @tc.name: SADumperTest001
413 * @tc.desc: Test SADumper no saname has correct ret.
414 * @tc.type: FUNC
415 */
416 HWTEST_F(HidumperDumpersTest, SADumperTest001, TestSize.Level1)
417 {
418 auto parameter = std::make_shared<DumperParameter>();
419 auto dumpDatas = std::make_shared<std::vector<std::vector<std::string>>>();
420 auto saDumper = std::make_shared<SADumper>();
421 auto config = std::make_shared<DumpCfg>();
422 config->args_ = OptionArgs::Create();
423 saDumper->SetDumpConfig(config);
424 int ret = DumpStatus::DUMP_FAIL;
425 ret = saDumper->PreExecute(parameter, dumpDatas);
426 ASSERT_EQ(ret, DumpStatus::DUMP_OK);
427 ret = saDumper->Execute();
428 ASSERT_EQ(ret, DumpStatus::DUMP_OK);
429 }
430
431 /**
432 * @tc.name: SADumperTest002
433 * @tc.desc: Test SADumper one saname has correct ret.
434 * @tc.type: FUNC
435 */
436 HWTEST_F(HidumperDumpersTest, SADumperTest002, TestSize.Level1)
437 {
438 auto parameter = std::make_shared<DumperParameter>();
439 auto dumpDatas = std::make_shared<std::vector<std::vector<std::string>>>();
440 auto saDumper = std::make_shared<SADumper>();
441 auto config = std::make_shared<DumpCfg>();
442 config->args_ = OptionArgs::Create();
443 const std::vector<std::string> names = {"1202"};
444 const std::vector<std::string> args;
445 config->args_->SetNamesAndArgs(names, args);
446 saDumper->SetDumpConfig(config);
447 int ret = DumpStatus::DUMP_FAIL;
448 ret = saDumper->PreExecute(parameter, dumpDatas);
449 ASSERT_EQ(ret, DumpStatus::DUMP_OK);
450 ret = saDumper->Execute();
451 ASSERT_EQ(ret, DumpStatus::DUMP_OK);
452 }
453
454 /**
455 * @tc.name: CpuDumperTest001
456 * @tc.desc: Test CpuDumper dump all process has correct ret.
457 * @tc.type: FUNC
458 */
459 HWTEST_F(HidumperDumpersTest, CpuDumperTest001, TestSize.Level1)
460 {
461 auto parameter = std::make_shared<DumperParameter>();
462 DumperOpts opts;
463 opts.isDumpCpuUsage_ = true;
464 opts.cpuUsagePid_ = -1;
465 parameter->SetOpts(opts);
466 auto dumpDatas = std::make_shared<std::vector<std::vector<std::string>>>();
467 auto cpuDumper = std::make_shared<CPUDumper>();
468 int ret = DumpStatus::DUMP_FAIL;
469 ret = cpuDumper->PreExecute(parameter, dumpDatas);
470 ASSERT_EQ(ret, DumpStatus::DUMP_OK);
471 ret = cpuDumper->Execute();
472 ASSERT_EQ(ret, DumpStatus::DUMP_OK);
473 ret = cpuDumper->AfterExecute();
474 ASSERT_EQ(ret, DumpStatus::DUMP_OK);
475 }
476
477 /**
478 * @tc.name: CpuDumperTest002
479 * @tc.desc: Test CpuDumper has correct ret when opts is vaild.
480 * @tc.type: FUNC
481 */
482 HWTEST_F(HidumperDumpersTest, CpuDumperTest002, TestSize.Level1)
483 {
484 auto parameter = std::make_shared<DumperParameter>();
485 DumperOpts opts;
486 opts.isDumpCpuUsage_ = false;
487 opts.cpuUsagePid_ = getpid();
488 parameter->SetOpts(opts);
489 auto dumpDatas = std::make_shared<std::vector<std::vector<std::string>>>();
490 auto cpuDumper = std::make_shared<CPUDumper>();
491 int ret = DumpStatus::DUMP_FAIL;
492 ret = cpuDumper->PreExecute(parameter, dumpDatas);
493 ASSERT_EQ(ret, DumpStatus::DUMP_OK);
494 ret = cpuDumper->Execute();
495 ASSERT_EQ(ret, DumpStatus::DUMP_FAIL);
496 }
497
498 /**
499 * @tc.name: ListDumperTest001
500 * @tc.desc: Test ListDumper dump ABILITY has correct ret.
501 * @tc.type: FUNC
502 */
503 HWTEST_F(HidumperDumpersTest, ListDumperTest001, TestSize.Level1)
504 {
505 auto parameter = std::make_shared<DumperParameter>();
506 auto dumpDatas = std::make_shared<std::vector<std::vector<std::string>>>();
507 auto listDumper = std::make_shared<ListDumper>();
508 auto config = std::make_shared<DumpCfg>();
509 config->target_ = ConfigUtils::STR_ABILITY;
510 listDumper->SetDumpConfig(config);
511
512 int ret = DumpStatus::DUMP_FAIL;
513 ret = listDumper->PreExecute(parameter, dumpDatas);
514 ASSERT_EQ(ret, DumpStatus::DUMP_OK);
515 ret = listDumper->Execute();
516 ASSERT_EQ(ret, DumpStatus::DUMP_OK);
517 ret = listDumper->AfterExecute();
518 ASSERT_EQ(ret, DumpStatus::DUMP_OK);
519 }
520
521 /**
522 * @tc.name: ListDumperTest002
523 * @tc.desc: Test ListDumper dump SYSTEM has correct ret.
524 * @tc.type: FUNC
525 */
526 HWTEST_F(HidumperDumpersTest, ListDumperTest002, TestSize.Level1)
527 {
528 auto parameter = std::make_shared<DumperParameter>();
529 auto dumpDatas = std::make_shared<std::vector<std::vector<std::string>>>();
530 auto listDumper = std::make_shared<ListDumper>();
531 auto config = std::make_shared<DumpCfg>();
532 config->target_ = ConfigUtils::STR_SYSTEM;
533 listDumper->SetDumpConfig(config);
534
535 int ret = DumpStatus::DUMP_FAIL;
536 ret = listDumper->PreExecute(parameter, dumpDatas);
537 ASSERT_EQ(ret, DumpStatus::DUMP_OK);
538 ret = listDumper->Execute();
539 ASSERT_EQ(ret, DumpStatus::DUMP_OK);
540 ret = listDumper->AfterExecute();
541 ASSERT_EQ(ret, DumpStatus::DUMP_OK);
542 }
543 } // namespace HiviewDFX
544 } // namespace OHOS