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