100600bfbSopenharmony_ci/*
200600bfbSopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd.
300600bfbSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
400600bfbSopenharmony_ci * you may not use this file except in compliance with the License.
500600bfbSopenharmony_ci * You may obtain a copy of the License at
600600bfbSopenharmony_ci *
700600bfbSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
800600bfbSopenharmony_ci *
900600bfbSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1000600bfbSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1100600bfbSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1200600bfbSopenharmony_ci * See the License for the specific language governing permissions and
1300600bfbSopenharmony_ci * limitations under the License.
1400600bfbSopenharmony_ci */
1500600bfbSopenharmony_ci#include <vector>
1600600bfbSopenharmony_ci#include "hidumper_configutils_test.h"
1700600bfbSopenharmony_ci#include "dump_common_utils.h"
1800600bfbSopenharmony_ci#include "dumper_opts.h"
1900600bfbSopenharmony_ci#include "raw_param.h"
2000600bfbSopenharmony_ciusing namespace std;
2100600bfbSopenharmony_ciusing namespace testing::ext;
2200600bfbSopenharmony_ciusing namespace OHOS;
2300600bfbSopenharmony_ciusing namespace OHOS::HiviewDFX;
2400600bfbSopenharmony_cinamespace OHOS {
2500600bfbSopenharmony_cinamespace HiviewDFX {
2600600bfbSopenharmony_ciconst int HidumperConfigUtilsTest::PID_EMPTY = -1;
2700600bfbSopenharmony_ciconst int HidumperConfigUtilsTest::UID_EMPTY = -1;
2800600bfbSopenharmony_ciconst int HidumperConfigUtilsTest::PID_TEST = 100;
2900600bfbSopenharmony_ciconst std::string HidumperConfigUtilsTest::DUMPER_NAME = "dumper_kernel_version";
3000600bfbSopenharmony_ciconst OHOS::HiviewDFX::DumpCommonUtils DUMP_COMMON_UTILS = *(std::make_shared<OHOS::HiviewDFX::DumpCommonUtils>());
3100600bfbSopenharmony_civoid HidumperConfigUtilsTest::SetUpTestCase(void)
3200600bfbSopenharmony_ci{
3300600bfbSopenharmony_ci}
3400600bfbSopenharmony_ci
3500600bfbSopenharmony_civoid HidumperConfigUtilsTest::TearDownTestCase(void)
3600600bfbSopenharmony_ci{
3700600bfbSopenharmony_ci}
3800600bfbSopenharmony_ci
3900600bfbSopenharmony_civoid HidumperConfigUtilsTest::SetUp(void)
4000600bfbSopenharmony_ci{
4100600bfbSopenharmony_ci}
4200600bfbSopenharmony_ci
4300600bfbSopenharmony_civoid HidumperConfigUtilsTest::TearDown(void)
4400600bfbSopenharmony_ci{
4500600bfbSopenharmony_ci}
4600600bfbSopenharmony_ci
4700600bfbSopenharmony_ci/**
4800600bfbSopenharmony_ci * @tc.name: HidumperConfigUtils001
4900600bfbSopenharmony_ci * @tc.desc: Test GetDumper by index
5000600bfbSopenharmony_ci * @tc.type: FUNC
5100600bfbSopenharmony_ci */
5200600bfbSopenharmony_ciHWTEST_F(HidumperConfigUtilsTest, HidumperConfigUtils001, TestSize.Level3)
5300600bfbSopenharmony_ci{
5400600bfbSopenharmony_ci    int index = -1;
5500600bfbSopenharmony_ci    std::vector<std::shared_ptr<DumpCfg>> result;
5600600bfbSopenharmony_ci    ConfigUtils configUtils(nullptr);
5700600bfbSopenharmony_ci    auto args = OptionArgs::Create();
5800600bfbSopenharmony_ci    args->SetPid(PID_EMPTY, UID_EMPTY);
5900600bfbSopenharmony_ci    DumpStatus ret = configUtils.GetDumper(index, result, args);
6000600bfbSopenharmony_ci    EXPECT_NE(ret, DumpStatus::DUMP_OK);
6100600bfbSopenharmony_ci
6200600bfbSopenharmony_ci    index = 100000;
6300600bfbSopenharmony_ci    result.clear();
6400600bfbSopenharmony_ci    ret = configUtils.GetDumper(index, result, args);
6500600bfbSopenharmony_ci    EXPECT_NE(ret, DumpStatus::DUMP_OK);
6600600bfbSopenharmony_ci
6700600bfbSopenharmony_ci    index = 0;
6800600bfbSopenharmony_ci    result.clear();
6900600bfbSopenharmony_ci    ret = configUtils.GetDumper(index, result, args);
7000600bfbSopenharmony_ci    EXPECT_EQ(ret, DumpStatus::DUMP_OK);
7100600bfbSopenharmony_ci
7200600bfbSopenharmony_ci    ASSERT_TRUE(!result.empty());
7300600bfbSopenharmony_ci    ASSERT_TRUE(!result[0]->name_.empty());
7400600bfbSopenharmony_ci    ASSERT_TRUE(result[0]->target_.empty());
7500600bfbSopenharmony_ci    ASSERT_TRUE(result[0]->args_ == args);
7600600bfbSopenharmony_ci}
7700600bfbSopenharmony_ci
7800600bfbSopenharmony_ci/**
7900600bfbSopenharmony_ci * @tc.name: HidumperConfigUtils002
8000600bfbSopenharmony_ci * @tc.desc: Test GetDumper by index.
8100600bfbSopenharmony_ci * @tc.type: FUNC
8200600bfbSopenharmony_ci */
8300600bfbSopenharmony_ciHWTEST_F(HidumperConfigUtilsTest, HidumperConfigUtils002, TestSize.Level3)
8400600bfbSopenharmony_ci{
8500600bfbSopenharmony_ci    int index = 1;
8600600bfbSopenharmony_ci    std::vector<std::shared_ptr<DumpCfg>> result;
8700600bfbSopenharmony_ci    ConfigUtils configUtils(nullptr);
8800600bfbSopenharmony_ci    auto args = OptionArgs::Create();
8900600bfbSopenharmony_ci    args->SetPid(PID_EMPTY, UID_EMPTY);
9000600bfbSopenharmony_ci    DumpStatus ret = configUtils.GetDumper(index, result, args);
9100600bfbSopenharmony_ci    EXPECT_EQ(ret, DumpStatus::DUMP_OK);
9200600bfbSopenharmony_ci
9300600bfbSopenharmony_ci    std::size_t allSum = result.size();
9400600bfbSopenharmony_ci    index = 1;
9500600bfbSopenharmony_ci    result.clear();
9600600bfbSopenharmony_ci    ret = configUtils.GetDumper(index, result, args);
9700600bfbSopenharmony_ci    EXPECT_EQ(ret, DumpStatus::DUMP_OK);
9800600bfbSopenharmony_ci    std::size_t highSum = result.size();
9900600bfbSopenharmony_ci
10000600bfbSopenharmony_ci    index = 1;
10100600bfbSopenharmony_ci    result.clear();
10200600bfbSopenharmony_ci    ret = configUtils.GetDumper(index, result, args);
10300600bfbSopenharmony_ci    EXPECT_EQ(ret, DumpStatus::DUMP_OK);
10400600bfbSopenharmony_ci    std::size_t middleSum = result.size();
10500600bfbSopenharmony_ci
10600600bfbSopenharmony_ci    index = 1;
10700600bfbSopenharmony_ci    result.clear();
10800600bfbSopenharmony_ci    ret = configUtils.GetDumper(index, result, args);
10900600bfbSopenharmony_ci    EXPECT_EQ(ret, DumpStatus::DUMP_OK);
11000600bfbSopenharmony_ci    std::size_t lowSum = result.size();
11100600bfbSopenharmony_ci
11200600bfbSopenharmony_ci    index = 1;
11300600bfbSopenharmony_ci    result.clear();
11400600bfbSopenharmony_ci    ret = configUtils.GetDumper(index, result, args);
11500600bfbSopenharmony_ci    EXPECT_EQ(ret, DumpStatus::DUMP_OK);
11600600bfbSopenharmony_ci    std::size_t noneSum = result.size();
11700600bfbSopenharmony_ci
11800600bfbSopenharmony_ci    ASSERT_TRUE(highSum <= allSum);
11900600bfbSopenharmony_ci    ASSERT_TRUE(middleSum <= allSum);
12000600bfbSopenharmony_ci    ASSERT_TRUE(lowSum <= allSum);
12100600bfbSopenharmony_ci    ASSERT_TRUE(noneSum <= allSum);
12200600bfbSopenharmony_ci}
12300600bfbSopenharmony_ci
12400600bfbSopenharmony_ci/**
12500600bfbSopenharmony_ci * @tc.name: HidumperConfigUtils003
12600600bfbSopenharmony_ci * @tc.desc: Test GetDumper by name.
12700600bfbSopenharmony_ci * @tc.type: FUNC
12800600bfbSopenharmony_ci */
12900600bfbSopenharmony_ciHWTEST_F(HidumperConfigUtilsTest, HidumperConfigUtils003, TestSize.Level3)
13000600bfbSopenharmony_ci{
13100600bfbSopenharmony_ci    std::string name;
13200600bfbSopenharmony_ci    std::vector<std::shared_ptr<DumpCfg>> result;
13300600bfbSopenharmony_ci    ConfigUtils configUtils(nullptr);
13400600bfbSopenharmony_ci    auto args = OptionArgs::Create();
13500600bfbSopenharmony_ci    args->SetPid(PID_EMPTY, UID_EMPTY);
13600600bfbSopenharmony_ci    DumpStatus ret = configUtils.GetDumper(name, result, args);
13700600bfbSopenharmony_ci    EXPECT_NE(ret, DumpStatus::DUMP_OK);
13800600bfbSopenharmony_ci
13900600bfbSopenharmony_ci    name = DUMPER_NAME;
14000600bfbSopenharmony_ci    result.clear();
14100600bfbSopenharmony_ci    ret = configUtils.GetDumper(name, result, args);
14200600bfbSopenharmony_ci    EXPECT_EQ(ret, DumpStatus::DUMP_OK);
14300600bfbSopenharmony_ci
14400600bfbSopenharmony_ci    ASSERT_TRUE(!result.empty());
14500600bfbSopenharmony_ci    ASSERT_TRUE(result[0]->name_ == name);
14600600bfbSopenharmony_ci}
14700600bfbSopenharmony_ci
14800600bfbSopenharmony_ci/**
14900600bfbSopenharmony_ci * @tc.name: HidumperConfigUtils004
15000600bfbSopenharmony_ci * @tc.desc: Test configUtil HandleDumpLog.
15100600bfbSopenharmony_ci * @tc.type: FUNC
15200600bfbSopenharmony_ci */
15300600bfbSopenharmony_ciHWTEST_F(HidumperConfigUtilsTest, HidumperConfigUtils004, TestSize.Level3)
15400600bfbSopenharmony_ci{
15500600bfbSopenharmony_ci    std::vector<shared_ptr<DumpCfg>> dumpCfgs;
15600600bfbSopenharmony_ci    auto parameter = std::make_shared<DumperParameter>();
15700600bfbSopenharmony_ci    DumperOpts opts;
15800600bfbSopenharmony_ci    opts.isDumpLog_ = true;
15900600bfbSopenharmony_ci    opts.logArgs_.push_back("hidumper");
16000600bfbSopenharmony_ci    parameter->SetOpts(opts);
16100600bfbSopenharmony_ci    ConfigUtils configUtils(parameter);
16200600bfbSopenharmony_ci    bool ret = configUtils.HandleDumpLog(dumpCfgs);
16300600bfbSopenharmony_ci    ASSERT_TRUE(ret);
16400600bfbSopenharmony_ci}
16500600bfbSopenharmony_ci
16600600bfbSopenharmony_ci/**
16700600bfbSopenharmony_ci * @tc.name: HidumperConfigUtils005
16800600bfbSopenharmony_ci * @tc.desc: Test configUtil HandleDumpLog.
16900600bfbSopenharmony_ci * @tc.type: FUNC
17000600bfbSopenharmony_ci */
17100600bfbSopenharmony_ciHWTEST_F(HidumperConfigUtilsTest, HidumperConfigUtils005, TestSize.Level3)
17200600bfbSopenharmony_ci{
17300600bfbSopenharmony_ci    std::vector<shared_ptr<DumpCfg>> dumpCfgs;
17400600bfbSopenharmony_ci    auto parameter = std::make_shared<DumperParameter>();
17500600bfbSopenharmony_ci    DumperOpts opts;
17600600bfbSopenharmony_ci    opts.isDumpLog_ = true;
17700600bfbSopenharmony_ci    opts.logArgs_.push_back("hidumper");
17800600bfbSopenharmony_ci    parameter->SetOpts(opts);
17900600bfbSopenharmony_ci    ConfigUtils configUtils(parameter);
18000600bfbSopenharmony_ci    bool ret = configUtils.HandleDumpLog(dumpCfgs);
18100600bfbSopenharmony_ci    ASSERT_TRUE(ret);
18200600bfbSopenharmony_ci}
18300600bfbSopenharmony_ci
18400600bfbSopenharmony_ci/**
18500600bfbSopenharmony_ci * @tc.name: HidumperConfigUtils006
18600600bfbSopenharmony_ci * @tc.desc: Test configUtil isDumpSystemSystem.
18700600bfbSopenharmony_ci * @tc.type: FUNC
18800600bfbSopenharmony_ci */
18900600bfbSopenharmony_ciHWTEST_F(HidumperConfigUtilsTest, HidumperConfigUtils006, TestSize.Level3)
19000600bfbSopenharmony_ci{
19100600bfbSopenharmony_ci    std::vector<shared_ptr<DumpCfg>> dumpCfgs;
19200600bfbSopenharmony_ci    auto parameter = std::make_shared<DumperParameter>();
19300600bfbSopenharmony_ci    DumperOpts opts;
19400600bfbSopenharmony_ci    opts.isDumpSystem_ = true;
19500600bfbSopenharmony_ci    opts.isDumpService_ = true;
19600600bfbSopenharmony_ci    opts.isDumpList_ = false;
19700600bfbSopenharmony_ci    opts.isDumpCpuFreq_ = true;
19800600bfbSopenharmony_ci    opts.isDumpCpuUsage_ = true;
19900600bfbSopenharmony_ci    opts.isDumpMem_ = true;
20000600bfbSopenharmony_ci    opts.isShowSmaps_ = true;
20100600bfbSopenharmony_ci    opts.isDumpStorage_ = true;
20200600bfbSopenharmony_ci    opts.isDumpNet_ = true;
20300600bfbSopenharmony_ci    opts.isAppendix_ = true;
20400600bfbSopenharmony_ci    opts.logArgs_.push_back("hidumper");
20500600bfbSopenharmony_ci    parameter->SetOpts(opts);
20600600bfbSopenharmony_ci    ConfigUtils configUtils(parameter);
20700600bfbSopenharmony_ci    configUtils.HandleDumpSystem(dumpCfgs);
20800600bfbSopenharmony_ci    bool ret = true;
20900600bfbSopenharmony_ci    ret = configUtils.HandleDumpCpuFreq(dumpCfgs);
21000600bfbSopenharmony_ci    ASSERT_FALSE(ret);
21100600bfbSopenharmony_ci    ret = configUtils.HandleDumpCpuUsage(dumpCfgs);
21200600bfbSopenharmony_ci    ASSERT_FALSE(ret);
21300600bfbSopenharmony_ci    ret = configUtils.HandleDumpMem(dumpCfgs);
21400600bfbSopenharmony_ci    ASSERT_FALSE(ret);
21500600bfbSopenharmony_ci    ret = configUtils.HandleDumpMemShowMaps(dumpCfgs);
21600600bfbSopenharmony_ci    ASSERT_FALSE(ret);
21700600bfbSopenharmony_ci    ret = configUtils.HandleDumpStorage(dumpCfgs);
21800600bfbSopenharmony_ci    ASSERT_FALSE(ret);
21900600bfbSopenharmony_ci    ret = configUtils.HandleDumpNet(dumpCfgs);
22000600bfbSopenharmony_ci    ASSERT_FALSE(ret);
22100600bfbSopenharmony_ci    ret = configUtils.HandleDumpAppendix(dumpCfgs);
22200600bfbSopenharmony_ci    ASSERT_TRUE(ret);
22300600bfbSopenharmony_ci}
22400600bfbSopenharmony_ci
22500600bfbSopenharmony_ci/**
22600600bfbSopenharmony_ci * @tc.name: HidumperConfigUtils007
22700600bfbSopenharmony_ci * @tc.desc: Test configUtil HandleDumpService.
22800600bfbSopenharmony_ci * @tc.type: FUNC
22900600bfbSopenharmony_ci */
23000600bfbSopenharmony_ciHWTEST_F(HidumperConfigUtilsTest, HidumperConfigUtils007, TestSize.Level3)
23100600bfbSopenharmony_ci{
23200600bfbSopenharmony_ci    std::vector<shared_ptr<DumpCfg>> dumpCfgs;
23300600bfbSopenharmony_ci    auto parameter = std::make_shared<DumperParameter>();
23400600bfbSopenharmony_ci    DumperOpts opts;
23500600bfbSopenharmony_ci    opts.isDumpList_ = false;
23600600bfbSopenharmony_ci    opts.isDumpService_ = true;
23700600bfbSopenharmony_ci    opts.logArgs_.push_back("hidumper");
23800600bfbSopenharmony_ci    parameter->SetOpts(opts);
23900600bfbSopenharmony_ci    ConfigUtils configUtils(parameter);
24000600bfbSopenharmony_ci    bool ret = configUtils.HandleDumpService(dumpCfgs);
24100600bfbSopenharmony_ci    ASSERT_TRUE(ret);
24200600bfbSopenharmony_ci}
24300600bfbSopenharmony_ci
24400600bfbSopenharmony_ci/**
24500600bfbSopenharmony_ci * @tc.name: HidumperConfigUtils008
24600600bfbSopenharmony_ci * @tc.desc: Test configUtil HandleDumpList.
24700600bfbSopenharmony_ci * @tc.type: FUNC
24800600bfbSopenharmony_ci */
24900600bfbSopenharmony_ciHWTEST_F(HidumperConfigUtilsTest, HidumperConfigUtils008, TestSize.Level3)
25000600bfbSopenharmony_ci{
25100600bfbSopenharmony_ci    std::vector<shared_ptr<DumpCfg>> dumpCfgs;
25200600bfbSopenharmony_ci    auto parameter = std::make_shared<DumperParameter>();
25300600bfbSopenharmony_ci    DumperOpts opts;
25400600bfbSopenharmony_ci    opts.isDumpSystemAbility_ = false;
25500600bfbSopenharmony_ci    opts.isDumpList_ = true;
25600600bfbSopenharmony_ci    opts.isDumpService_ = true;
25700600bfbSopenharmony_ci    opts.logArgs_.push_back("hidumper");
25800600bfbSopenharmony_ci    parameter->SetOpts(opts);
25900600bfbSopenharmony_ci    ConfigUtils configUtils(parameter);
26000600bfbSopenharmony_ci    bool ret = configUtils.HandleDumpList(dumpCfgs);
26100600bfbSopenharmony_ci    ASSERT_TRUE(ret);
26200600bfbSopenharmony_ci}
26300600bfbSopenharmony_ci
26400600bfbSopenharmony_ci/**
26500600bfbSopenharmony_ci * @tc.name: HidumperConfigUtils009
26600600bfbSopenharmony_ci * @tc.desc: Test configUtil HandleDumpJsHeapMem.
26700600bfbSopenharmony_ci * @tc.type: FUNC
26800600bfbSopenharmony_ci */
26900600bfbSopenharmony_ciHWTEST_F(HidumperConfigUtilsTest, HidumperConfigUtils009, TestSize.Level3)
27000600bfbSopenharmony_ci{
27100600bfbSopenharmony_ci    std::vector<shared_ptr<DumpCfg>> dumpCfgs;
27200600bfbSopenharmony_ci    auto parameter = std::make_shared<DumperParameter>();
27300600bfbSopenharmony_ci    DumperOpts opts;
27400600bfbSopenharmony_ci    opts.isDumpJsHeapMem_ = true;
27500600bfbSopenharmony_ci    opts.dumpJsHeapMemPid_ = PID_EMPTY;
27600600bfbSopenharmony_ci    parameter->SetOpts(opts);
27700600bfbSopenharmony_ci    ConfigUtils configUtils(parameter);
27800600bfbSopenharmony_ci    bool ret = configUtils.HandleDumpJsHeapMem(dumpCfgs);
27900600bfbSopenharmony_ci    ASSERT_FALSE(ret);
28000600bfbSopenharmony_ci}
28100600bfbSopenharmony_ci
28200600bfbSopenharmony_ci/**
28300600bfbSopenharmony_ci * @tc.name: HidumperConfigUtils010
28400600bfbSopenharmony_ci * @tc.desc: Test configUtil HandleDumpStorage.
28500600bfbSopenharmony_ci * @tc.type: FUNC
28600600bfbSopenharmony_ci */
28700600bfbSopenharmony_ciHWTEST_F(HidumperConfigUtilsTest, HidumperConfigUtils010, TestSize.Level3)
28800600bfbSopenharmony_ci{
28900600bfbSopenharmony_ci    std::vector<shared_ptr<DumpCfg>> dumpCfgs;
29000600bfbSopenharmony_ci    auto parameter = std::make_shared<DumperParameter>();
29100600bfbSopenharmony_ci    DumperOpts opts;
29200600bfbSopenharmony_ci    opts.isDumpStorage_ = true;
29300600bfbSopenharmony_ci    opts.storagePid_ = PID_EMPTY;
29400600bfbSopenharmony_ci    parameter->SetOpts(opts);
29500600bfbSopenharmony_ci    ConfigUtils configUtils(parameter);
29600600bfbSopenharmony_ci    bool ret = configUtils.HandleDumpStorage(dumpCfgs);
29700600bfbSopenharmony_ci    ASSERT_TRUE(ret);
29800600bfbSopenharmony_ci}
29900600bfbSopenharmony_ci
30000600bfbSopenharmony_ci/**
30100600bfbSopenharmony_ci * @tc.name: HidumperConfigUtils011
30200600bfbSopenharmony_ci * @tc.desc: Test configUtil Nest overceed NEST_MAX.
30300600bfbSopenharmony_ci * @tc.type: FUNC
30400600bfbSopenharmony_ci */
30500600bfbSopenharmony_ciHWTEST_F(HidumperConfigUtilsTest, HidumperConfigUtils011, TestSize.Level3)
30600600bfbSopenharmony_ci{
30700600bfbSopenharmony_ci    std::string name = "configUtil test";
30800600bfbSopenharmony_ci    std::vector<shared_ptr<DumpCfg>> result;
30900600bfbSopenharmony_ci    std::shared_ptr<OptionArgs> args;
31000600bfbSopenharmony_ci    ConfigUtils configUtils(nullptr);
31100600bfbSopenharmony_ci    DumpStatus ret = configUtils.GetGroup(name, result, args, DumperConstant::LEVEL_HIGH, 11);
31200600bfbSopenharmony_ci    ASSERT_EQ(ret, DumpStatus::DUMP_INVALID_ARG);
31300600bfbSopenharmony_ci    ret = configUtils.GetGroup(0, result, args, DumperConstant::LEVEL_HIGH, 11);
31400600bfbSopenharmony_ci    ASSERT_EQ(ret, DumpStatus::DUMP_INVALID_ARG);
31500600bfbSopenharmony_ci}
31600600bfbSopenharmony_ci
31700600bfbSopenharmony_ci/**
31800600bfbSopenharmony_ci * @tc.name: HidumperConfigUtils012
31900600bfbSopenharmony_ci * @tc.desc: Test configUtil CopySmaps.
32000600bfbSopenharmony_ci * @tc.type: FUNC
32100600bfbSopenharmony_ci */
32200600bfbSopenharmony_ciHWTEST_F(HidumperConfigUtilsTest, HidumperConfigUtils012, TestSize.Level3)
32300600bfbSopenharmony_ci{
32400600bfbSopenharmony_ci    DumperOpts opts;
32500600bfbSopenharmony_ci    auto parameter = std::make_shared<DumperParameter>();
32600600bfbSopenharmony_ci    parameter->SetOpts(opts);
32700600bfbSopenharmony_ci    ConfigUtils configUtils(parameter);
32800600bfbSopenharmony_ci    bool ret = configUtils.CopySmaps();
32900600bfbSopenharmony_ci    ASSERT_TRUE(ret == false);
33000600bfbSopenharmony_ci}
33100600bfbSopenharmony_ci
33200600bfbSopenharmony_ciHWTEST_F(HidumperConfigUtilsTest, HidumperZipWriter001, TestSize.Level3)
33300600bfbSopenharmony_ci{
33400600bfbSopenharmony_ci    string testfile = "/data/log/hidumpertest.txt";
33500600bfbSopenharmony_ci    string testzipfile = "/data/log/hidumpertest.zip";
33600600bfbSopenharmony_ci    system("touch /data/log/hidumpertest.txt");
33700600bfbSopenharmony_ci    system("echo hidumpertest > /data/log/hidumpertest.txt");
33800600bfbSopenharmony_ci    auto zipwriter = std::make_shared<ZipWriter>(testzipfile);
33900600bfbSopenharmony_ci    ASSERT_TRUE(zipwriter->Open());
34000600bfbSopenharmony_ci    ASSERT_TRUE(zipwriter->Close());
34100600bfbSopenharmony_ci    auto testzip = zipwriter->OpenForZipping(testfile, APPEND_STATUS_CREATE);
34200600bfbSopenharmony_ci    zipwriter->AddFileEntryToZip(testzip, testzipfile, testzipfile);
34300600bfbSopenharmony_ci    system("rm -rf /data/log/hidumpertest.txt");
34400600bfbSopenharmony_ci    system("rm -rf /data/log/hidumpertest.zip");
34500600bfbSopenharmony_ci}
34600600bfbSopenharmony_ci
34700600bfbSopenharmony_ciHWTEST_F(HidumperConfigUtilsTest, HidumperFileUtils001, TestSize.Level3)
34800600bfbSopenharmony_ci{
34900600bfbSopenharmony_ci    auto fileutils = std::make_shared<FileUtils>();
35000600bfbSopenharmony_ci    string testpath = "/data";
35100600bfbSopenharmony_ci    ASSERT_TRUE(fileutils->CreateFolder(testpath));
35200600bfbSopenharmony_ci    testpath = "";
35300600bfbSopenharmony_ci    ASSERT_TRUE(fileutils->CreateFolder(testpath));
35400600bfbSopenharmony_ci    testpath = "test";
35500600bfbSopenharmony_ci    ASSERT_TRUE(!(fileutils->CreateFolder(testpath)));
35600600bfbSopenharmony_ci    testpath = "/data/log/testhidumper";
35700600bfbSopenharmony_ci    ASSERT_TRUE(fileutils->CreateFolder(testpath));
35800600bfbSopenharmony_ci    ASSERT_TRUE(access(testpath.c_str(), F_OK) == 0);
35900600bfbSopenharmony_ci    system("rm -rf /data/log/testhidumper");
36000600bfbSopenharmony_ci}
36100600bfbSopenharmony_ci
36200600bfbSopenharmony_ciHWTEST_F(HidumperConfigUtilsTest, HidumpCommonUtils001, TestSize.Level3)
36300600bfbSopenharmony_ci{
36400600bfbSopenharmony_ci    system("mkdir /data/log/hidumpertest/");
36500600bfbSopenharmony_ci    system("touch /data/log/hidumpertest/1");
36600600bfbSopenharmony_ci    system("touch /data/log/hidumpertest/a");
36700600bfbSopenharmony_ci    const std::string path = "/data/log/hidumpertest";
36800600bfbSopenharmony_ci    bool digit = true;
36900600bfbSopenharmony_ci    std::vector<std::string> strs = DUMP_COMMON_UTILS.GetSubNodes(path, digit);
37000600bfbSopenharmony_ci    ASSERT_TRUE(strs.size() == 1);
37100600bfbSopenharmony_ci
37200600bfbSopenharmony_ci    digit = false;
37300600bfbSopenharmony_ci    strs = DUMP_COMMON_UTILS.GetSubNodes(path, digit);
37400600bfbSopenharmony_ci    ASSERT_TRUE(strs.size() == 2);
37500600bfbSopenharmony_ci    system("rm -rf /data/log/hidumpertest");
37600600bfbSopenharmony_ci}
37700600bfbSopenharmony_ci
37800600bfbSopenharmony_ciHWTEST_F(HidumperConfigUtilsTest, HidumpCommonUtils002, TestSize.Level3)
37900600bfbSopenharmony_ci{
38000600bfbSopenharmony_ci    const std::string pathTest = "/data";
38100600bfbSopenharmony_ci    ASSERT_TRUE(DUMP_COMMON_UTILS.IsDirectory(pathTest));
38200600bfbSopenharmony_ci
38300600bfbSopenharmony_ci    system("touch /data/log/hidumpertest.txt");
38400600bfbSopenharmony_ci    const std::string pathTest2 = "/data/log/hidumpertest.txt";
38500600bfbSopenharmony_ci    ASSERT_FALSE(DUMP_COMMON_UTILS.IsDirectory(pathTest2));
38600600bfbSopenharmony_ci    system("rm -rf /data/log/hidumpertest.txt");
38700600bfbSopenharmony_ci}
38800600bfbSopenharmony_ci
38900600bfbSopenharmony_ciHWTEST_F(HidumperConfigUtilsTest, HidumpCommonUtils003, TestSize.Level3)
39000600bfbSopenharmony_ci{
39100600bfbSopenharmony_ci    std::vector<int32_t> pids = DUMP_COMMON_UTILS.GetAllPids();
39200600bfbSopenharmony_ci    ASSERT_FALSE(pids.empty()) << "GetAllPids result is empty.";
39300600bfbSopenharmony_ci}
39400600bfbSopenharmony_ci
39500600bfbSopenharmony_ciHWTEST_F(HidumperConfigUtilsTest, HidumpCommonUtils004, TestSize.Level3)
39600600bfbSopenharmony_ci{
39700600bfbSopenharmony_ci    std::vector<DumpCommonUtils::CpuInfo> infos;
39800600bfbSopenharmony_ci    ASSERT_TRUE(DUMP_COMMON_UTILS.GetCpuInfos(infos));
39900600bfbSopenharmony_ci}
40000600bfbSopenharmony_ci
40100600bfbSopenharmony_ciHWTEST_F(HidumperConfigUtilsTest, HidumpCommonUtils005, TestSize.Level3)
40200600bfbSopenharmony_ci{
40300600bfbSopenharmony_ci    std::vector<DumpCommonUtils::PidInfo> infos;
40400600bfbSopenharmony_ci    ASSERT_TRUE(DUMP_COMMON_UTILS.GetPidInfos(infos));
40500600bfbSopenharmony_ci    ASSERT_FALSE(infos.empty()) << "GetPidInfos result is empty.";
40600600bfbSopenharmony_ci
40700600bfbSopenharmony_ci    std::vector<DumpCommonUtils::PidInfo> infosAll;
40800600bfbSopenharmony_ci    ASSERT_TRUE(DUMP_COMMON_UTILS.GetPidInfos(infosAll, true));
40900600bfbSopenharmony_ci}
41000600bfbSopenharmony_ci
41100600bfbSopenharmony_ciHWTEST_F(HidumperConfigUtilsTest, HidumpCommonUtils006, TestSize.Level3)
41200600bfbSopenharmony_ci{
41300600bfbSopenharmony_ci    std::vector<int> pids;
41400600bfbSopenharmony_ci    ASSERT_TRUE(DUMP_COMMON_UTILS.GetUserPids(pids));
41500600bfbSopenharmony_ci}
41600600bfbSopenharmony_ci} // namespace HiviewDFX
41700600bfbSopenharmony_ci} // namespace OHOS