100600bfbSopenharmony_ci/* 200600bfbSopenharmony_ci * Copyright (c) 2022 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 <gtest/gtest.h> 1600600bfbSopenharmony_ci#include <map> 1700600bfbSopenharmony_ci#include <cstdlib> 1800600bfbSopenharmony_ci#include <unistd.h> 1900600bfbSopenharmony_ci#include <vector> 2000600bfbSopenharmony_ci#include <cerrno> 2100600bfbSopenharmony_ci 2200600bfbSopenharmony_ci#include "iservice_registry.h" 2300600bfbSopenharmony_ci#include "manager/dump_implement.h" 2400600bfbSopenharmony_ci#include "raw_param.h" 2500600bfbSopenharmony_ci#include "dump_utils.h" 2600600bfbSopenharmony_ci 2700600bfbSopenharmony_ciusing namespace testing::ext; 2800600bfbSopenharmony_cinamespace OHOS { 2900600bfbSopenharmony_cinamespace HiviewDFX { 3000600bfbSopenharmony_ciconst int SCORE_ADJ = 1000; 3100600bfbSopenharmony_ciconst std::string SCORE_ADJ_STR = "1000"; 3200600bfbSopenharmony_ciconst std::string TOOL_NAME = "hidumper"; 3300600bfbSopenharmony_cichar g_fileName[] = "/tmp/test.XXXXXX"; 3400600bfbSopenharmony_ciint g_fd = -1; 3500600bfbSopenharmony_ci 3600600bfbSopenharmony_ciconst uint64_t BASELINE_SIZE = 1353 * 1024; 3700600bfbSopenharmony_ci#if defined(__LP64__) 3800600bfbSopenharmony_ciconst std::string LIB_PATH = "lib64/"; 3900600bfbSopenharmony_ci#else 4000600bfbSopenharmony_ciconst std::string LIB_PATH = "lib/"; 4100600bfbSopenharmony_ci#endif 4200600bfbSopenharmony_civector<string> OUTPUT_PATH = { 4300600bfbSopenharmony_ci "/system/etc/init/hidumper_service.cfg", 4400600bfbSopenharmony_ci "/system/etc/hidumper/infos_config.json", 4500600bfbSopenharmony_ci "/system/bin/hidumper", 4600600bfbSopenharmony_ci "/system/" + LIB_PATH + "libhidumperclient.z.so", 4700600bfbSopenharmony_ci "/system/" + LIB_PATH + "libhidumper_client.z.so", 4800600bfbSopenharmony_ci "/system/" + LIB_PATH + "libhidumpermemory.z.so", 4900600bfbSopenharmony_ci "/system/" + LIB_PATH + "libhidumperservice.z.so", 5000600bfbSopenharmony_ci "/system/" + LIB_PATH + "libhidumperservice_cpu_source.z.so", 5100600bfbSopenharmony_ci "/system/" + LIB_PATH + "platformsdk/lib_dump_usage.z.so", 5200600bfbSopenharmony_ci}; 5300600bfbSopenharmony_ciclass HiDumperManagerTest : public testing::Test { 5400600bfbSopenharmony_cipublic: 5500600bfbSopenharmony_ci static void SetUpTestCase(void); 5600600bfbSopenharmony_ci static void TearDownTestCase(void); 5700600bfbSopenharmony_ci void SetUp(); 5800600bfbSopenharmony_ci void TearDown(); 5900600bfbSopenharmony_ci int GetDumpResult(int argc, char *argv[]); 6000600bfbSopenharmony_ci int fd_; 6100600bfbSopenharmony_ci}; 6200600bfbSopenharmony_ci 6300600bfbSopenharmony_civoid HiDumperManagerTest::SetUpTestCase(void) 6400600bfbSopenharmony_ci{ 6500600bfbSopenharmony_ci g_fd = mkstemp(g_fileName); 6600600bfbSopenharmony_ci if (g_fd == -1) { 6700600bfbSopenharmony_ci printf("create tmp file fail! erro = %s", DumpUtils::ErrnoToMsg(errno).c_str()); 6800600bfbSopenharmony_ci return; 6900600bfbSopenharmony_ci } 7000600bfbSopenharmony_ci} 7100600bfbSopenharmony_civoid HiDumperManagerTest::TearDownTestCase(void) 7200600bfbSopenharmony_ci{ 7300600bfbSopenharmony_ci if (g_fd != -1) { 7400600bfbSopenharmony_ci close(g_fd); 7500600bfbSopenharmony_ci g_fd = -1; 7600600bfbSopenharmony_ci } 7700600bfbSopenharmony_ci unlink(g_fileName); 7800600bfbSopenharmony_ci} 7900600bfbSopenharmony_civoid HiDumperManagerTest::SetUp(void) 8000600bfbSopenharmony_ci{ 8100600bfbSopenharmony_ci} 8200600bfbSopenharmony_civoid HiDumperManagerTest::TearDown(void) 8300600bfbSopenharmony_ci{ 8400600bfbSopenharmony_ci} 8500600bfbSopenharmony_ci 8600600bfbSopenharmony_ciint HiDumperManagerTest::GetDumpResult(int argc, char *argv[]) 8700600bfbSopenharmony_ci{ 8800600bfbSopenharmony_ci std::vector<std::u16string> args; 8900600bfbSopenharmony_ci std::shared_ptr<RawParam> rawParam = std::make_shared<RawParam>(0, 1, 0, args, g_fd); 9000600bfbSopenharmony_ci return DumpImplement::GetInstance().Main(argc, argv, rawParam); 9100600bfbSopenharmony_ci} 9200600bfbSopenharmony_ci 9300600bfbSopenharmony_ci/** 9400600bfbSopenharmony_ci * @tc.name: MemoryDumperTest001 9500600bfbSopenharmony_ci * @tc.desc: Test help msg has correct ret. 9600600bfbSopenharmony_ci * @tc.type: FUNC 9700600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 9800600bfbSopenharmony_ci */ 9900600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest001, TestSize.Level0) 10000600bfbSopenharmony_ci{ 10100600bfbSopenharmony_ci char *argv[] = { 10200600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 10300600bfbSopenharmony_ci const_cast<char *>("-h"), 10400600bfbSopenharmony_ci const_cast<char *>(""), 10500600bfbSopenharmony_ci }; 10600600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 10700600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 10800600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_HELP); 10900600bfbSopenharmony_ci} 11000600bfbSopenharmony_ci 11100600bfbSopenharmony_ci/** 11200600bfbSopenharmony_ci * @tc.name: MemoryDumperTest002 11300600bfbSopenharmony_ci * @tc.desc: Test list system has correct ret. 11400600bfbSopenharmony_ci * @tc.type: FUNC 11500600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 11600600bfbSopenharmony_ci */ 11700600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest002, TestSize.Level0) 11800600bfbSopenharmony_ci{ 11900600bfbSopenharmony_ci char *argv[] = { 12000600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 12100600bfbSopenharmony_ci const_cast<char *>("-lc"), 12200600bfbSopenharmony_ci const_cast<char *>(""), 12300600bfbSopenharmony_ci }; 12400600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 12500600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 12600600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 12700600bfbSopenharmony_ci} 12800600bfbSopenharmony_ci 12900600bfbSopenharmony_ci/** 13000600bfbSopenharmony_ci * @tc.name: MemoryDumperTest003 13100600bfbSopenharmony_ci * @tc.desc: Test list aility has correct ret. 13200600bfbSopenharmony_ci * @tc.type: FUNC 13300600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 13400600bfbSopenharmony_ci */ 13500600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest003, TestSize.Level0) 13600600bfbSopenharmony_ci{ 13700600bfbSopenharmony_ci char *argv[] = { 13800600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 13900600bfbSopenharmony_ci const_cast<char *>("-ls"), 14000600bfbSopenharmony_ci const_cast<char *>(""), 14100600bfbSopenharmony_ci }; 14200600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 14300600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 14400600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 14500600bfbSopenharmony_ci} 14600600bfbSopenharmony_ci 14700600bfbSopenharmony_ci/** 14800600bfbSopenharmony_ci * @tc.name: MemoryDumperTest004 14900600bfbSopenharmony_ci * @tc.desc: Test dump base information has correct ret. 15000600bfbSopenharmony_ci * @tc.type: FUNC 15100600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 15200600bfbSopenharmony_ci */ 15300600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest004, TestSize.Level0) 15400600bfbSopenharmony_ci{ 15500600bfbSopenharmony_ci char *argv[] = { 15600600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 15700600bfbSopenharmony_ci const_cast<char *>("-c"), 15800600bfbSopenharmony_ci const_cast<char *>("base"), 15900600bfbSopenharmony_ci const_cast<char *>(""), 16000600bfbSopenharmony_ci }; 16100600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 16200600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 16300600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 16400600bfbSopenharmony_ci} 16500600bfbSopenharmony_ci 16600600bfbSopenharmony_ci/** 16700600bfbSopenharmony_ci * @tc.name: MemoryDumperTest005 16800600bfbSopenharmony_ci * @tc.desc: Test dump system information has correct ret. 16900600bfbSopenharmony_ci * @tc.type: FUNC 17000600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 17100600bfbSopenharmony_ci */ 17200600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest005, TestSize.Level0) 17300600bfbSopenharmony_ci{ 17400600bfbSopenharmony_ci char *argv[] = { 17500600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 17600600bfbSopenharmony_ci const_cast<char *>("-c"), 17700600bfbSopenharmony_ci const_cast<char *>("system"), 17800600bfbSopenharmony_ci const_cast<char *>(""), 17900600bfbSopenharmony_ci }; 18000600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 18100600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 18200600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 18300600bfbSopenharmony_ci} 18400600bfbSopenharmony_ci 18500600bfbSopenharmony_ci/** 18600600bfbSopenharmony_ci * @tc.name: MemoryDumperTest006 18700600bfbSopenharmony_ci * @tc.desc: Test dump all system information has correct ret. 18800600bfbSopenharmony_ci * @tc.type: FUNC 18900600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 19000600bfbSopenharmony_ci */ 19100600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest006, TestSize.Level0) 19200600bfbSopenharmony_ci{ 19300600bfbSopenharmony_ci char *argv[] = { 19400600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 19500600bfbSopenharmony_ci const_cast<char *>("-c"), 19600600bfbSopenharmony_ci const_cast<char *>(""), 19700600bfbSopenharmony_ci }; 19800600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 19900600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 20000600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 20100600bfbSopenharmony_ci} 20200600bfbSopenharmony_ci 20300600bfbSopenharmony_ci/** 20400600bfbSopenharmony_ci * @tc.name: MemoryDumperTest007 20500600bfbSopenharmony_ci * @tc.desc: Test dump all ability has correct ret. 20600600bfbSopenharmony_ci * @tc.type: FUNC 20700600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 20800600bfbSopenharmony_ci */ 20900600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest007, TestSize.Level0) 21000600bfbSopenharmony_ci{ 21100600bfbSopenharmony_ci char *argv[] = { 21200600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 21300600bfbSopenharmony_ci const_cast<char *>("-s"), 21400600bfbSopenharmony_ci const_cast<char *>(""), 21500600bfbSopenharmony_ci }; 21600600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 21700600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 21800600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 21900600bfbSopenharmony_ci} 22000600bfbSopenharmony_ci 22100600bfbSopenharmony_ci/** 22200600bfbSopenharmony_ci * @tc.name: MemoryDumperTest007 22300600bfbSopenharmony_ci * @tc.desc: Test dump one ability has correct ret. 22400600bfbSopenharmony_ci * @tc.type: FUNC 22500600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 22600600bfbSopenharmony_ci */ 22700600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest008, TestSize.Level0) 22800600bfbSopenharmony_ci{ 22900600bfbSopenharmony_ci char *argv[] = { 23000600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 23100600bfbSopenharmony_ci const_cast<char *>("-s"), 23200600bfbSopenharmony_ci const_cast<char *>("1212"), 23300600bfbSopenharmony_ci const_cast<char *>(""), 23400600bfbSopenharmony_ci }; 23500600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 23600600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 23700600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 23800600bfbSopenharmony_ci} 23900600bfbSopenharmony_ci 24000600bfbSopenharmony_ci/** 24100600bfbSopenharmony_ci * @tc.name: MemoryDumperTest009 24200600bfbSopenharmony_ci * @tc.desc: Test dump one ability with arg has correct ret. 24300600bfbSopenharmony_ci * @tc.type: FUNC 24400600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 24500600bfbSopenharmony_ci */ 24600600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest009, TestSize.Level0) 24700600bfbSopenharmony_ci{ 24800600bfbSopenharmony_ci char *argv[] = { 24900600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 25000600bfbSopenharmony_ci const_cast<char *>("-s"), 25100600bfbSopenharmony_ci const_cast<char *>("SensorService"), 25200600bfbSopenharmony_ci const_cast<char *>("-a"), 25300600bfbSopenharmony_ci const_cast<char *>("-h"), 25400600bfbSopenharmony_ci const_cast<char *>(""), 25500600bfbSopenharmony_ci }; 25600600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 25700600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 25800600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 25900600bfbSopenharmony_ci} 26000600bfbSopenharmony_ci 26100600bfbSopenharmony_ci/** 26200600bfbSopenharmony_ci * @tc.name: MemoryDumperTest010 26300600bfbSopenharmony_ci * @tc.desc: Test dump faultlogs of crash history has correct ret. 26400600bfbSopenharmony_ci * @tc.type: FUNC 26500600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 26600600bfbSopenharmony_ci */ 26700600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest010, TestSize.Level0) 26800600bfbSopenharmony_ci{ 26900600bfbSopenharmony_ci char *argv[] = { 27000600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 27100600bfbSopenharmony_ci const_cast<char *>("-e"), 27200600bfbSopenharmony_ci const_cast<char *>(""), 27300600bfbSopenharmony_ci }; 27400600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 27500600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 27600600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 27700600bfbSopenharmony_ci} 27800600bfbSopenharmony_ci 27900600bfbSopenharmony_ci/** 28000600bfbSopenharmony_ci * @tc.name: MemoryDumperTest011 28100600bfbSopenharmony_ci * @tc.desc: Test dump network information has correct ret. 28200600bfbSopenharmony_ci * @tc.type: FUNC 28300600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 28400600bfbSopenharmony_ci */ 28500600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest011, TestSize.Level0) 28600600bfbSopenharmony_ci{ 28700600bfbSopenharmony_ci char *argv[] = { 28800600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 28900600bfbSopenharmony_ci const_cast<char *>("--net"), 29000600bfbSopenharmony_ci const_cast<char *>(""), 29100600bfbSopenharmony_ci }; 29200600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 29300600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 29400600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 29500600bfbSopenharmony_ci} 29600600bfbSopenharmony_ci 29700600bfbSopenharmony_ci/** 29800600bfbSopenharmony_ci * @tc.name: MemoryDumperTest012 29900600bfbSopenharmony_ci * @tc.desc: Test dump storage information has correct ret. 30000600bfbSopenharmony_ci * @tc.type: FUNC 30100600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 30200600bfbSopenharmony_ci */ 30300600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest012, TestSize.Level0) 30400600bfbSopenharmony_ci{ 30500600bfbSopenharmony_ci char *argv[] = { 30600600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 30700600bfbSopenharmony_ci const_cast<char *>("--storage"), 30800600bfbSopenharmony_ci const_cast<char *>(""), 30900600bfbSopenharmony_ci }; 31000600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 31100600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 31200600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 31300600bfbSopenharmony_ci} 31400600bfbSopenharmony_ci 31500600bfbSopenharmony_ci/** 31600600bfbSopenharmony_ci * @tc.name: MemoryDumperTest013 31700600bfbSopenharmony_ci * @tc.desc: Test dump processes information has correct ret. 31800600bfbSopenharmony_ci * @tc.type: FUNC 31900600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 32000600bfbSopenharmony_ci */ 32100600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest013, TestSize.Level0) 32200600bfbSopenharmony_ci{ 32300600bfbSopenharmony_ci char *argv[] = { 32400600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 32500600bfbSopenharmony_ci const_cast<char *>("-p"), 32600600bfbSopenharmony_ci const_cast<char *>(""), 32700600bfbSopenharmony_ci }; 32800600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 32900600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 33000600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 33100600bfbSopenharmony_ci} 33200600bfbSopenharmony_ci 33300600bfbSopenharmony_ci/** 33400600bfbSopenharmony_ci * @tc.name: MemoryDumperTest014 33500600bfbSopenharmony_ci * @tc.desc: Test dump one process information has correct ret. 33600600bfbSopenharmony_ci * @tc.type: FUNC 33700600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 33800600bfbSopenharmony_ci */ 33900600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest014, TestSize.Level0) 34000600bfbSopenharmony_ci{ 34100600bfbSopenharmony_ci char *argv[] = { 34200600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 34300600bfbSopenharmony_ci const_cast<char *>("-p"), 34400600bfbSopenharmony_ci const_cast<char *>(std::to_string(getpid()).c_str()), 34500600bfbSopenharmony_ci const_cast<char *>(""), 34600600bfbSopenharmony_ci }; 34700600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 34800600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 34900600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 35000600bfbSopenharmony_ci} 35100600bfbSopenharmony_ci 35200600bfbSopenharmony_ci#ifdef HIDUMPER_HIVIEWDFX_HIVIEW_ENABLE 35300600bfbSopenharmony_ci/** 35400600bfbSopenharmony_ci * @tc.name: MemoryDumperTest015 35500600bfbSopenharmony_ci * @tc.desc: Test dump all process cpu usage has correct ret. 35600600bfbSopenharmony_ci * @tc.type: FUNC 35700600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 35800600bfbSopenharmony_ci */ 35900600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest015, TestSize.Level0) 36000600bfbSopenharmony_ci{ 36100600bfbSopenharmony_ci char *argv[] = { 36200600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 36300600bfbSopenharmony_ci const_cast<char *>("--cpuusage"), 36400600bfbSopenharmony_ci const_cast<char *>(""), 36500600bfbSopenharmony_ci }; 36600600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 36700600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 36800600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 36900600bfbSopenharmony_ci} 37000600bfbSopenharmony_ci 37100600bfbSopenharmony_ci/** 37200600bfbSopenharmony_ci * @tc.name: MemoryDumperTest016 37300600bfbSopenharmony_ci * @tc.desc: Test dump one process cpu usage has correct ret. 37400600bfbSopenharmony_ci * @tc.type: FUNC 37500600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 37600600bfbSopenharmony_ci */ 37700600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest016, TestSize.Level0) 37800600bfbSopenharmony_ci{ 37900600bfbSopenharmony_ci char *argv[] = { 38000600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 38100600bfbSopenharmony_ci const_cast<char *>("--cpuusage"), 38200600bfbSopenharmony_ci const_cast<char *>(std::to_string(getpid()).c_str()), 38300600bfbSopenharmony_ci const_cast<char *>(""), 38400600bfbSopenharmony_ci }; 38500600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 38600600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 38700600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 38800600bfbSopenharmony_ci} 38900600bfbSopenharmony_ci#endif 39000600bfbSopenharmony_ci 39100600bfbSopenharmony_ci/** 39200600bfbSopenharmony_ci * @tc.name: MemoryDumperTest017 39300600bfbSopenharmony_ci * @tc.desc: Test dumpreal CPU frequency has correct ret. 39400600bfbSopenharmony_ci * @tc.type: FUNC 39500600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 39600600bfbSopenharmony_ci */ 39700600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest017, TestSize.Level0) 39800600bfbSopenharmony_ci{ 39900600bfbSopenharmony_ci char *argv[] = { 40000600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 40100600bfbSopenharmony_ci const_cast<char *>("--cpufreq"), 40200600bfbSopenharmony_ci const_cast<char *>(""), 40300600bfbSopenharmony_ci }; 40400600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 40500600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 40600600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 40700600bfbSopenharmony_ci} 40800600bfbSopenharmony_ci 40900600bfbSopenharmony_ci/** 41000600bfbSopenharmony_ci * @tc.name: MemoryDumperTest018 41100600bfbSopenharmony_ci * @tc.desc: Test dump all processes memory info has correct ret. 41200600bfbSopenharmony_ci * @tc.type: FUNC 41300600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 41400600bfbSopenharmony_ci */ 41500600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest018, TestSize.Level0) 41600600bfbSopenharmony_ci{ 41700600bfbSopenharmony_ci char *argv[] = { 41800600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 41900600bfbSopenharmony_ci const_cast<char *>("--mem"), 42000600bfbSopenharmony_ci const_cast<char *>(""), 42100600bfbSopenharmony_ci }; 42200600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 42300600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 42400600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 42500600bfbSopenharmony_ci} 42600600bfbSopenharmony_ci 42700600bfbSopenharmony_ci/** 42800600bfbSopenharmony_ci * @tc.name: MemoryDumperTest019 42900600bfbSopenharmony_ci * @tc.desc: Test dump one process memory info has correct ret. 43000600bfbSopenharmony_ci * @tc.type: FUNC 43100600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 43200600bfbSopenharmony_ci */ 43300600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest019, TestSize.Level0) 43400600bfbSopenharmony_ci{ 43500600bfbSopenharmony_ci char *argv[] = { 43600600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 43700600bfbSopenharmony_ci const_cast<char *>("--mem"), 43800600bfbSopenharmony_ci const_cast<char *>(std::to_string(getpid()).c_str()), 43900600bfbSopenharmony_ci const_cast<char *>(""), 44000600bfbSopenharmony_ci }; 44100600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 44200600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 44300600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 44400600bfbSopenharmony_ci} 44500600bfbSopenharmony_ci 44600600bfbSopenharmony_ci/** 44700600bfbSopenharmony_ci * @tc.name: MemoryDumperTest020 44800600bfbSopenharmony_ci * @tc.desc: Test compress has correct ret. 44900600bfbSopenharmony_ci * @tc.type: FUNC 45000600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 45100600bfbSopenharmony_ci */ 45200600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest020, TestSize.Level0) 45300600bfbSopenharmony_ci{ 45400600bfbSopenharmony_ci char *argv[] = { 45500600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 45600600bfbSopenharmony_ci const_cast<char *>("-p"), 45700600bfbSopenharmony_ci const_cast<char *>("--zip"), 45800600bfbSopenharmony_ci const_cast<char *>(""), 45900600bfbSopenharmony_ci }; 46000600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 46100600bfbSopenharmony_ci std::vector<std::u16string> args; 46200600bfbSopenharmony_ci std::shared_ptr<RawParam> rawParam = std::make_shared<RawParam>(0, 1, 0, args, g_fd); 46300600bfbSopenharmony_ci std::string srcpath = "/data/log/hilog/"; 46400600bfbSopenharmony_ci rawParam->SetFolder(srcpath); 46500600bfbSopenharmony_ci int ret = DumpImplement::GetInstance().Main(argc, argv, rawParam); 46600600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 46700600bfbSopenharmony_ci} 46800600bfbSopenharmony_ci 46900600bfbSopenharmony_ci/** 47000600bfbSopenharmony_ci * @tc.name: MemoryDumperTest023 47100600bfbSopenharmony_ci * @tc.desc: Test for all infomation. 47200600bfbSopenharmony_ci * @tc.type: FUNC 47300600bfbSopenharmony_ci */ 47400600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest023, TestSize.Level0) 47500600bfbSopenharmony_ci{ 47600600bfbSopenharmony_ci char *argv[] = { 47700600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 47800600bfbSopenharmony_ci const_cast<char *>(""), 47900600bfbSopenharmony_ci }; 48000600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 48100600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 48200600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 48300600bfbSopenharmony_ci} 48400600bfbSopenharmony_ci 48500600bfbSopenharmony_ci/** 48600600bfbSopenharmony_ci * @tc.name: MemoryDumperTest021 48700600bfbSopenharmony_ci * @tc.desc: Test dump statistic in /proc/pid/smaps has correct ret. 48800600bfbSopenharmony_ci * @tc.type: FUNC 48900600bfbSopenharmony_ci */ 49000600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest021, TestSize.Level0) 49100600bfbSopenharmony_ci{ 49200600bfbSopenharmony_ci char *argv[] = { 49300600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 49400600bfbSopenharmony_ci const_cast<char *>("--mem-smaps"), 49500600bfbSopenharmony_ci const_cast<char *>(std::to_string(getpid()).c_str()), 49600600bfbSopenharmony_ci const_cast<char *>(""), 49700600bfbSopenharmony_ci }; 49800600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 49900600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 50000600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 50100600bfbSopenharmony_ci} 50200600bfbSopenharmony_ci 50300600bfbSopenharmony_ci/** 50400600bfbSopenharmony_ci * @tc.name: MemoryDumperTest022 50500600bfbSopenharmony_ci * @tc.desc: Test dump details in /proc/pid/smaps has correct ret. 50600600bfbSopenharmony_ci * @tc.type: FUNC 50700600bfbSopenharmony_ci */ 50800600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest022, TestSize.Level0) 50900600bfbSopenharmony_ci{ 51000600bfbSopenharmony_ci char *argv[] = { 51100600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 51200600bfbSopenharmony_ci const_cast<char *>("--mem-smaps"), 51300600bfbSopenharmony_ci const_cast<char *>(std::to_string(getpid()).c_str()), 51400600bfbSopenharmony_ci const_cast<char *>("-v"), 51500600bfbSopenharmony_ci }; 51600600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 51700600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 51800600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 51900600bfbSopenharmony_ci} 52000600bfbSopenharmony_ci 52100600bfbSopenharmony_ci/** 52200600bfbSopenharmony_ci * @tc.name: MemoryDumperTest024 52300600bfbSopenharmony_ci * @tc.desc: Test ? msg has correct ret. 52400600bfbSopenharmony_ci * @tc.type: FUNC 52500600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 52600600bfbSopenharmony_ci */ 52700600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest024, TestSize.Level0) 52800600bfbSopenharmony_ci{ 52900600bfbSopenharmony_ci char *argv[] = { 53000600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 53100600bfbSopenharmony_ci const_cast<char *>("-?"), 53200600bfbSopenharmony_ci const_cast<char *>(""), 53300600bfbSopenharmony_ci }; 53400600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 53500600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 53600600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_INVALID_ARG); 53700600bfbSopenharmony_ci} 53800600bfbSopenharmony_ci 53900600bfbSopenharmony_ci/** 54000600bfbSopenharmony_ci * @tc.name: MemoryDumperTest025 54100600bfbSopenharmony_ci * @tc.desc: Test ? with -vv msg has correct ret. 54200600bfbSopenharmony_ci * @tc.type: FUNC 54300600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 54400600bfbSopenharmony_ci */ 54500600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest025, TestSize.Level0) 54600600bfbSopenharmony_ci{ 54700600bfbSopenharmony_ci char *argv[] = { 54800600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 54900600bfbSopenharmony_ci const_cast<char *>("-?"), 55000600bfbSopenharmony_ci const_cast<char *>("-v"), 55100600bfbSopenharmony_ci }; 55200600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 55300600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 55400600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_INVALID_ARG); 55500600bfbSopenharmony_ci} 55600600bfbSopenharmony_ci 55700600bfbSopenharmony_ci/** 55800600bfbSopenharmony_ci * @tc.name: MemoryDumperTest026 55900600bfbSopenharmony_ci * @tc.desc: Test cpufreq with ? msg has correct ret. 56000600bfbSopenharmony_ci * @tc.type: FUNC 56100600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 56200600bfbSopenharmony_ci */ 56300600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest026, TestSize.Level0) 56400600bfbSopenharmony_ci{ 56500600bfbSopenharmony_ci char *argv[] = { 56600600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 56700600bfbSopenharmony_ci const_cast<char *>("--cpufreq"), 56800600bfbSopenharmony_ci const_cast<char *>("-?"), 56900600bfbSopenharmony_ci }; 57000600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 57100600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 57200600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 57300600bfbSopenharmony_ci} 57400600bfbSopenharmony_ci 57500600bfbSopenharmony_ci/** 57600600bfbSopenharmony_ci * @tc.name: MemoryDumperTest027 57700600bfbSopenharmony_ci * @tc.desc: Test error msg has correct ret. 57800600bfbSopenharmony_ci * @tc.type: FUNC 57900600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 58000600bfbSopenharmony_ci */ 58100600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest027, TestSize.Level0) 58200600bfbSopenharmony_ci{ 58300600bfbSopenharmony_ci char *argv[] = { 58400600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 58500600bfbSopenharmony_ci const_cast<char *>("--error"), 58600600bfbSopenharmony_ci const_cast<char *>(""), 58700600bfbSopenharmony_ci }; 58800600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 58900600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 59000600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_INVALID_ARG); 59100600bfbSopenharmony_ci} 59200600bfbSopenharmony_ci 59300600bfbSopenharmony_ci/** 59400600bfbSopenharmony_ci * @tc.name: MemoryDumperTest028 59500600bfbSopenharmony_ci * @tc.desc: Test dump error process memory info has correct ret. 59600600bfbSopenharmony_ci * @tc.type: FUNC 59700600bfbSopenharmony_ci * @tc.require: issueI5NWZQ 59800600bfbSopenharmony_ci */ 59900600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest028, TestSize.Level0) 60000600bfbSopenharmony_ci{ 60100600bfbSopenharmony_ci char *argv[] = { 60200600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 60300600bfbSopenharmony_ci const_cast<char *>("--mem"), 60400600bfbSopenharmony_ci const_cast<char *>("-1"), 60500600bfbSopenharmony_ci const_cast<char *>(""), 60600600bfbSopenharmony_ci }; 60700600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 60800600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 60900600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_INVALID_ARG); 61000600bfbSopenharmony_ci} 61100600bfbSopenharmony_ci 61200600bfbSopenharmony_ci/** 61300600bfbSopenharmony_ci * @tc.name: MemoryDumperTest029 61400600bfbSopenharmony_ci * @tc.desc: Test dump statistic in /proc/pid/smaps has correct ret. 61500600bfbSopenharmony_ci * @tc.type: FUNC 61600600bfbSopenharmony_ci */ 61700600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest029, TestSize.Level0) 61800600bfbSopenharmony_ci{ 61900600bfbSopenharmony_ci char *argv[] = { 62000600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 62100600bfbSopenharmony_ci const_cast<char *>("--mem-jsheap"), 62200600bfbSopenharmony_ci const_cast<char *>(std::to_string(getpid()).c_str()), 62300600bfbSopenharmony_ci const_cast<char *>(""), 62400600bfbSopenharmony_ci }; 62500600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 62600600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 62700600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 62800600bfbSopenharmony_ci} 62900600bfbSopenharmony_ci 63000600bfbSopenharmony_ci/** 63100600bfbSopenharmony_ci * @tc.name: MemoryDumperTest030 63200600bfbSopenharmony_ci * @tc.desc: Test dump statistic in /proc/pid/smaps has error ret. 63300600bfbSopenharmony_ci * @tc.type: FUNC 63400600bfbSopenharmony_ci */ 63500600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest030, TestSize.Level0) 63600600bfbSopenharmony_ci{ 63700600bfbSopenharmony_ci char *argv[] = { 63800600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 63900600bfbSopenharmony_ci const_cast<char *>("--mem-smaps"), 64000600bfbSopenharmony_ci const_cast<char *>(""), 64100600bfbSopenharmony_ci }; 64200600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 64300600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 64400600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_FAIL); 64500600bfbSopenharmony_ci} 64600600bfbSopenharmony_ci 64700600bfbSopenharmony_ci/** 64800600bfbSopenharmony_ci * @tc.name: DumpTest031 64900600bfbSopenharmony_ci * @tc.desc: Test too many arguments. 65000600bfbSopenharmony_ci * @tc.type: FUNC 65100600bfbSopenharmony_ci */ 65200600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest031, TestSize.Level0) 65300600bfbSopenharmony_ci{ 65400600bfbSopenharmony_ci char *argv[] = { 65500600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 65600600bfbSopenharmony_ci }; 65700600bfbSopenharmony_ci int argc = ARG_MAX_COUNT + 1; 65800600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 65900600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_FAIL); 66000600bfbSopenharmony_ci} 66100600bfbSopenharmony_ci 66200600bfbSopenharmony_ci/** 66300600bfbSopenharmony_ci * @tc.name: DumpTest032 66400600bfbSopenharmony_ci * @tc.desc: Test empty argument. 66500600bfbSopenharmony_ci * @tc.type: FUNC 66600600bfbSopenharmony_ci */ 66700600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest032, TestSize.Level0) 66800600bfbSopenharmony_ci{ 66900600bfbSopenharmony_ci char *argv[] = { 67000600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 67100600bfbSopenharmony_ci const_cast<char *>("--mem"), 67200600bfbSopenharmony_ci const_cast<char *>("-1"), 67300600bfbSopenharmony_ci const_cast<char *>(""), 67400600bfbSopenharmony_ci const_cast<char *>("--mem"), 67500600bfbSopenharmony_ci }; 67600600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]) - 1; 67700600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 67800600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_FAIL); 67900600bfbSopenharmony_ci} 68000600bfbSopenharmony_ci 68100600bfbSopenharmony_ci/** 68200600bfbSopenharmony_ci * @tc.name: DumpTest033 68300600bfbSopenharmony_ci * @tc.desc: Test too long argument . 68400600bfbSopenharmony_ci * @tc.type: FUNC 68500600bfbSopenharmony_ci */ 68600600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest033, TestSize.Level0) 68700600bfbSopenharmony_ci{ 68800600bfbSopenharmony_ci std::string longArg; 68900600bfbSopenharmony_ci longArg.assign(SINGLE_ARG_MAXLEN + 1, 'c'); 69000600bfbSopenharmony_ci char *argv[] = { 69100600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 69200600bfbSopenharmony_ci const_cast<char *>("-h"), 69300600bfbSopenharmony_ci const_cast<char *>(longArg.c_str()), 69400600bfbSopenharmony_ci }; 69500600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 69600600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 69700600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_FAIL); 69800600bfbSopenharmony_ci} 69900600bfbSopenharmony_ci 70000600bfbSopenharmony_ci/** 70100600bfbSopenharmony_ci * @tc.name: DumpTest034 70200600bfbSopenharmony_ci * @tc.desc: Test null argument. 70300600bfbSopenharmony_ci * @tc.type: FUNC 70400600bfbSopenharmony_ci */ 70500600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest034, TestSize.Level0) 70600600bfbSopenharmony_ci{ 70700600bfbSopenharmony_ci char *argv[] = { 70800600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 70900600bfbSopenharmony_ci nullptr, 71000600bfbSopenharmony_ci }; 71100600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 71200600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 71300600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_FAIL); 71400600bfbSopenharmony_ci} 71500600bfbSopenharmony_ci 71600600bfbSopenharmony_ci/** 71700600bfbSopenharmony_ci * @tc.name: DumpTest035 71800600bfbSopenharmony_ci * @tc.desc: Test DumpUtils 71900600bfbSopenharmony_ci * @tc.type: FUNC 72000600bfbSopenharmony_ci */ 72100600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, DumpTest035, TestSize.Level0) 72200600bfbSopenharmony_ci{ 72300600bfbSopenharmony_ci DumpUtils::SetAdj(SCORE_ADJ); 72400600bfbSopenharmony_ci std::string name = DumpUtils::ConvertSaIdToSaName(SCORE_ADJ_STR); 72500600bfbSopenharmony_ci ASSERT_TRUE(name == SCORE_ADJ_STR); 72600600bfbSopenharmony_ci} 72700600bfbSopenharmony_ci 72800600bfbSopenharmony_ci/** 72900600bfbSopenharmony_ci * @tc.name: IpcStatDumpTest001 73000600bfbSopenharmony_ci * @tc.desc: hidumper --ipc -a --start-stat 73100600bfbSopenharmony_ci * @tc.type: FUNC 73200600bfbSopenharmony_ci */ 73300600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, IpcStatDumpTest001, TestSize.Level0) 73400600bfbSopenharmony_ci{ 73500600bfbSopenharmony_ci char *argv[] = { 73600600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 73700600bfbSopenharmony_ci const_cast<char *>("--ipc"), 73800600bfbSopenharmony_ci const_cast<char *>("-a"), 73900600bfbSopenharmony_ci const_cast<char *>("--start-stat"), 74000600bfbSopenharmony_ci }; 74100600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 74200600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 74300600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 74400600bfbSopenharmony_ci} 74500600bfbSopenharmony_ci 74600600bfbSopenharmony_ci/** 74700600bfbSopenharmony_ci * @tc.name: IpcStatDumpTest002 74800600bfbSopenharmony_ci * @tc.desc: hidumper --ipc -a --stop-stat 74900600bfbSopenharmony_ci * @tc.type: FUNC 75000600bfbSopenharmony_ci */ 75100600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, IpcStatDumpTest002, TestSize.Level0) 75200600bfbSopenharmony_ci{ 75300600bfbSopenharmony_ci char *argv[] = { 75400600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 75500600bfbSopenharmony_ci const_cast<char *>("--ipc"), 75600600bfbSopenharmony_ci const_cast<char *>("-a"), 75700600bfbSopenharmony_ci const_cast<char *>("--stop-stat"), 75800600bfbSopenharmony_ci }; 75900600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 76000600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 76100600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 76200600bfbSopenharmony_ci} 76300600bfbSopenharmony_ci 76400600bfbSopenharmony_ci/** 76500600bfbSopenharmony_ci * @tc.name: IpcStatDumpTest003 76600600bfbSopenharmony_ci * @tc.desc: hidumper --ipc -a --stat 76700600bfbSopenharmony_ci * @tc.type: FUNC 76800600bfbSopenharmony_ci */ 76900600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, IpcStatDumpTest003, TestSize.Level0) 77000600bfbSopenharmony_ci{ 77100600bfbSopenharmony_ci char *argv[] = { 77200600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 77300600bfbSopenharmony_ci const_cast<char *>("--ipc"), 77400600bfbSopenharmony_ci const_cast<char *>("-a"), 77500600bfbSopenharmony_ci const_cast<char *>("--stat"), 77600600bfbSopenharmony_ci }; 77700600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 77800600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 77900600bfbSopenharmony_ci ASSERT_EQ(ret, DumpStatus::DUMP_OK); 78000600bfbSopenharmony_ci} 78100600bfbSopenharmony_ci 78200600bfbSopenharmony_ci/** 78300600bfbSopenharmony_ci * @tc.name: IpcStatDumpTest004 78400600bfbSopenharmony_ci * @tc.desc: hidumper --ipc 78500600bfbSopenharmony_ci * @tc.type: FUNC 78600600bfbSopenharmony_ci */ 78700600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, IpcStatDumpTest004, TestSize.Level0) 78800600bfbSopenharmony_ci{ 78900600bfbSopenharmony_ci char *argv[] = { 79000600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 79100600bfbSopenharmony_ci const_cast<char *>("--ipc"), 79200600bfbSopenharmony_ci }; 79300600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 79400600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 79500600bfbSopenharmony_ci ASSERT_TRUE(ret != DumpStatus::DUMP_OK); 79600600bfbSopenharmony_ci} 79700600bfbSopenharmony_ci 79800600bfbSopenharmony_ci/** 79900600bfbSopenharmony_ci * @tc.name: IpcStatDumpTest005 80000600bfbSopenharmony_ci * @tc.desc: hidumper --ipc -a 80100600bfbSopenharmony_ci * @tc.type: FUNC 80200600bfbSopenharmony_ci */ 80300600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, IpcStatDumpTest005, TestSize.Level0) 80400600bfbSopenharmony_ci{ 80500600bfbSopenharmony_ci char *argv[] = { 80600600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 80700600bfbSopenharmony_ci const_cast<char *>("--ipc"), 80800600bfbSopenharmony_ci const_cast<char *>("-a"), 80900600bfbSopenharmony_ci }; 81000600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 81100600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 81200600bfbSopenharmony_ci ASSERT_TRUE(ret != DumpStatus::DUMP_OK); 81300600bfbSopenharmony_ci} 81400600bfbSopenharmony_ci 81500600bfbSopenharmony_ci/** 81600600bfbSopenharmony_ci * @tc.name: IpcStatDumpTest006 81700600bfbSopenharmony_ci * @tc.desc: hidumper --ipc -a --start-stat --stop-stat 81800600bfbSopenharmony_ci * @tc.type: FUNC 81900600bfbSopenharmony_ci */ 82000600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, IpcStatDumpTest006, TestSize.Level0) 82100600bfbSopenharmony_ci{ 82200600bfbSopenharmony_ci char *argv[] = { 82300600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 82400600bfbSopenharmony_ci const_cast<char *>("--ipc"), 82500600bfbSopenharmony_ci const_cast<char *>("-a"), 82600600bfbSopenharmony_ci const_cast<char *>("--start-stat"), 82700600bfbSopenharmony_ci const_cast<char *>("--stop-stat"), 82800600bfbSopenharmony_ci }; 82900600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 83000600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 83100600bfbSopenharmony_ci ASSERT_TRUE(ret != DumpStatus::DUMP_OK); 83200600bfbSopenharmony_ci} 83300600bfbSopenharmony_ci 83400600bfbSopenharmony_ci/** 83500600bfbSopenharmony_ci * @tc.name: IpcStatDumpTest007 83600600bfbSopenharmony_ci * @tc.desc: hidumper --start-stat 83700600bfbSopenharmony_ci * @tc.type: FUNC 83800600bfbSopenharmony_ci */ 83900600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, IpcStatDumpTest007, TestSize.Level0) 84000600bfbSopenharmony_ci{ 84100600bfbSopenharmony_ci char *argv[] = { 84200600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 84300600bfbSopenharmony_ci const_cast<char *>("--start-stat"), 84400600bfbSopenharmony_ci }; 84500600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 84600600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 84700600bfbSopenharmony_ci ASSERT_TRUE(ret != DumpStatus::DUMP_OK); 84800600bfbSopenharmony_ci} 84900600bfbSopenharmony_ci 85000600bfbSopenharmony_ci/** 85100600bfbSopenharmony_ci * @tc.name: IpcStatDumpTest008 85200600bfbSopenharmony_ci * @tc.desc: hidumper --stop-stat 85300600bfbSopenharmony_ci * @tc.type: FUNC 85400600bfbSopenharmony_ci */ 85500600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, IpcStatDumpTest008, TestSize.Level0) 85600600bfbSopenharmony_ci{ 85700600bfbSopenharmony_ci char *argv[] = { 85800600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 85900600bfbSopenharmony_ci const_cast<char *>("--stop-stat"), 86000600bfbSopenharmony_ci }; 86100600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 86200600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 86300600bfbSopenharmony_ci ASSERT_TRUE(ret != DumpStatus::DUMP_OK); 86400600bfbSopenharmony_ci} 86500600bfbSopenharmony_ci 86600600bfbSopenharmony_ci/** 86700600bfbSopenharmony_ci * @tc.name: IpcStatDumpTest009 86800600bfbSopenharmony_ci * @tc.desc: hidumper --stat 86900600bfbSopenharmony_ci * @tc.type: FUNC 87000600bfbSopenharmony_ci */ 87100600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, IpcStatDumpTest009, TestSize.Level0) 87200600bfbSopenharmony_ci{ 87300600bfbSopenharmony_ci char *argv[] = { 87400600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 87500600bfbSopenharmony_ci const_cast<char *>("--stat"), 87600600bfbSopenharmony_ci }; 87700600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 87800600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 87900600bfbSopenharmony_ci ASSERT_TRUE(ret != DumpStatus::DUMP_OK); 88000600bfbSopenharmony_ci} 88100600bfbSopenharmony_ci 88200600bfbSopenharmony_ci/** 88300600bfbSopenharmony_ci * @tc.name: IpcStatDumpTest010 88400600bfbSopenharmony_ci * @tc.desc: hidumper --ipc -1 --start-stat 88500600bfbSopenharmony_ci * @tc.type: FUNC 88600600bfbSopenharmony_ci */ 88700600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, IpcStatDumpTest010, TestSize.Level0) 88800600bfbSopenharmony_ci{ 88900600bfbSopenharmony_ci char *argv[] = { 89000600bfbSopenharmony_ci const_cast<char *>(TOOL_NAME.c_str()), 89100600bfbSopenharmony_ci const_cast<char *>("--ipc"), 89200600bfbSopenharmony_ci const_cast<char *>("-1"), 89300600bfbSopenharmony_ci const_cast<char *>("--start-stat"), 89400600bfbSopenharmony_ci }; 89500600bfbSopenharmony_ci int argc = sizeof(argv) / sizeof(argv[0]); 89600600bfbSopenharmony_ci int ret = GetDumpResult(argc, argv); 89700600bfbSopenharmony_ci ASSERT_TRUE(ret != DumpStatus::DUMP_OK); 89800600bfbSopenharmony_ci} 89900600bfbSopenharmony_ci 90000600bfbSopenharmony_ci/** 90100600bfbSopenharmony_ci * @tc.name: HidumperRomTest001 90200600bfbSopenharmony_ci * @tc.desc: test hidumper rom 90300600bfbSopenharmony_ci * @tc.type: FUNC 90400600bfbSopenharmony_ci */ 90500600bfbSopenharmony_ciHWTEST_F(HiDumperManagerTest, HidumperRomTest001, TestSize.Level0) 90600600bfbSopenharmony_ci{ 90700600bfbSopenharmony_ci uint64_t realSize = 0; 90800600bfbSopenharmony_ci for (int i = 0; i < OUTPUT_PATH.size(); i++) { 90900600bfbSopenharmony_ci struct stat info = { 0 }; 91000600bfbSopenharmony_ci stat(OUTPUT_PATH[i].c_str(), &info); 91100600bfbSopenharmony_ci std::cout << "path:" << OUTPUT_PATH[i].c_str() << " realSize: " << info.st_size << std::endl; 91200600bfbSopenharmony_ci realSize += static_cast<uint64_t>(info.st_size); 91300600bfbSopenharmony_ci } 91400600bfbSopenharmony_ci std::cout << "total realSize = " << realSize << std::endl; 91500600bfbSopenharmony_ci EXPECT_LT(realSize, BASELINE_SIZE * 1.05); 91600600bfbSopenharmony_ci} 91700600bfbSopenharmony_ci} // namespace HiviewDFX 91800600bfbSopenharmony_ci} // namespace OHOS 919