1800b99b8Sopenharmony_ci/*
2800b99b8Sopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd.
3800b99b8Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4800b99b8Sopenharmony_ci * you may not use this file except in compliance with the License.
5800b99b8Sopenharmony_ci * You may obtain a copy of the License at
6800b99b8Sopenharmony_ci *
7800b99b8Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8800b99b8Sopenharmony_ci *
9800b99b8Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10800b99b8Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11800b99b8Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12800b99b8Sopenharmony_ci * See the License for the specific language governing permissions and
13800b99b8Sopenharmony_ci * limitations under the License.
14800b99b8Sopenharmony_ci */
15800b99b8Sopenharmony_ci
16800b99b8Sopenharmony_ci#include <ctime>
17800b99b8Sopenharmony_ci#include <gtest/gtest.h>
18800b99b8Sopenharmony_ci#include <securec.h>
19800b99b8Sopenharmony_ci#include <string>
20800b99b8Sopenharmony_ci#include <vector>
21800b99b8Sopenharmony_ci
22800b99b8Sopenharmony_ci#include "crash_exception.h"
23800b99b8Sopenharmony_ci#include "crash_exception_listener.h"
24800b99b8Sopenharmony_ci#include "dfx_errors.h"
25800b99b8Sopenharmony_ci#include "dfx_util.h"
26800b99b8Sopenharmony_ci#include "hisysevent_manager.h"
27800b99b8Sopenharmony_ci
28800b99b8Sopenharmony_ciusing namespace OHOS::HiviewDFX;
29800b99b8Sopenharmony_ciusing namespace testing::ext;
30800b99b8Sopenharmony_ciusing namespace std;
31800b99b8Sopenharmony_ci
32800b99b8Sopenharmony_cinamespace OHOS {
33800b99b8Sopenharmony_cinamespace HiviewDFX {
34800b99b8Sopenharmony_ciclass CrashExceptionTest : public testing::Test {
35800b99b8Sopenharmony_cipublic:
36800b99b8Sopenharmony_ci    static void SetUpTestCase(void) {}
37800b99b8Sopenharmony_ci    static void TearDownTestCase(void) {}
38800b99b8Sopenharmony_ci    void SetUp() {}
39800b99b8Sopenharmony_ci    void TearDown() {}
40800b99b8Sopenharmony_ci};
41800b99b8Sopenharmony_ci
42800b99b8Sopenharmony_cistatic constexpr int32_t TEST_PROCESS_ID = 1234;
43800b99b8Sopenharmony_cistatic constexpr int32_t TEST_UID = 5678;
44800b99b8Sopenharmony_ci
45800b99b8Sopenharmony_ci/**
46800b99b8Sopenharmony_ci * @tc.name: CrashExceptionTest001
47800b99b8Sopenharmony_ci * @tc.desc: test ReportCrashException
48800b99b8Sopenharmony_ci * @tc.type: FUNC
49800b99b8Sopenharmony_ci */
50800b99b8Sopenharmony_ciHWTEST_F(CrashExceptionTest, CrashExceptionTest001, TestSize.Level2)
51800b99b8Sopenharmony_ci{
52800b99b8Sopenharmony_ci    GTEST_LOG_(INFO) << "CrashExceptionTest001: start.";
53800b99b8Sopenharmony_ci    char testProcessName[] = "process_name_ptr";
54800b99b8Sopenharmony_ci    std::shared_ptr<CrashExceptionListener> crashListener = std::make_shared<CrashExceptionListener>();
55800b99b8Sopenharmony_ci    ListenerRule tagRule("RELIABILITY", "CPP_CRASH_EXCEPTION", RuleType::WHOLE_WORD);
56800b99b8Sopenharmony_ci    std::vector<ListenerRule> sysRules;
57800b99b8Sopenharmony_ci    sysRules.push_back(tagRule);
58800b99b8Sopenharmony_ci    HiSysEventManager::AddListener(crashListener, sysRules);
59800b99b8Sopenharmony_ci    crashListener->SetKeyWord(testProcessName);
60800b99b8Sopenharmony_ci    ReportCrashException(testProcessName, TEST_PROCESS_ID, TEST_UID, CrashExceptionCode::CRASH_UNKNOWN);
61800b99b8Sopenharmony_ci    ASSERT_TRUE(crashListener->CheckKeywordInReasons());
62800b99b8Sopenharmony_ci    HiSysEventManager::RemoveListener(crashListener);
63800b99b8Sopenharmony_ci    GTEST_LOG_(INFO) << "CrashExceptionTest001: end.";
64800b99b8Sopenharmony_ci}
65800b99b8Sopenharmony_ci
66800b99b8Sopenharmony_ci/**
67800b99b8Sopenharmony_ci * @tc.name: CrashExceptionTest002
68800b99b8Sopenharmony_ci * @tc.desc: test ReportCrashException, error code is success.
69800b99b8Sopenharmony_ci * @tc.type: FUNC
70800b99b8Sopenharmony_ci */
71800b99b8Sopenharmony_ciHWTEST_F(CrashExceptionTest, CrashExceptionTest002, TestSize.Level2)
72800b99b8Sopenharmony_ci{
73800b99b8Sopenharmony_ci    GTEST_LOG_(INFO) << "CrashExceptionTest002: start.";
74800b99b8Sopenharmony_ci    char testProcessName[] = "process_name_ptr";
75800b99b8Sopenharmony_ci    std::shared_ptr<CrashExceptionListener> crashListener = std::make_shared<CrashExceptionListener>();
76800b99b8Sopenharmony_ci    ListenerRule tagRule("RELIABILITY", "CPP_CRASH_EXCEPTION", RuleType::WHOLE_WORD);
77800b99b8Sopenharmony_ci    std::vector<ListenerRule> sysRules;
78800b99b8Sopenharmony_ci    sysRules.push_back(tagRule);
79800b99b8Sopenharmony_ci    HiSysEventManager::AddListener(crashListener, sysRules);
80800b99b8Sopenharmony_ci    crashListener->SetKeyWord(testProcessName);
81800b99b8Sopenharmony_ci    ReportCrashException(testProcessName, TEST_PROCESS_ID, TEST_UID, CrashExceptionCode::CRASH_ESUCCESS);
82800b99b8Sopenharmony_ci    ASSERT_FALSE(crashListener->CheckKeywordInReasons());
83800b99b8Sopenharmony_ci    HiSysEventManager::RemoveListener(crashListener);
84800b99b8Sopenharmony_ci    GTEST_LOG_(INFO) << "CrashExceptionTest002: end.";
85800b99b8Sopenharmony_ci}
86800b99b8Sopenharmony_ci
87800b99b8Sopenharmony_ci/**
88800b99b8Sopenharmony_ci * @tc.name: CrashExceptionTest003
89800b99b8Sopenharmony_ci * @tc.desc: test ReportCrashException, process name length is more than 128 bytes.
90800b99b8Sopenharmony_ci * @tc.type: FUNC
91800b99b8Sopenharmony_ci */
92800b99b8Sopenharmony_ciHWTEST_F(CrashExceptionTest, CrashExceptionTest003, TestSize.Level2)
93800b99b8Sopenharmony_ci{
94800b99b8Sopenharmony_ci    GTEST_LOG_(INFO) << "CrashExceptionTest003: start.";
95800b99b8Sopenharmony_ci    char testProcessName[] = "process_name_ptr_1111111111111111111111111111111111111"
96800b99b8Sopenharmony_ci    "11111111111111111111111111111111111111111111111111111111111111111111111111111111"
97800b99b8Sopenharmony_ci    "11111111111111111111111111111111111111111111111111111111111111111111111111111111";
98800b99b8Sopenharmony_ci    std::shared_ptr<CrashExceptionListener> crashListener = std::make_shared<CrashExceptionListener>();
99800b99b8Sopenharmony_ci    ListenerRule tagRule("RELIABILITY", "CPP_CRASH_EXCEPTION", RuleType::WHOLE_WORD);
100800b99b8Sopenharmony_ci    std::vector<ListenerRule> sysRules;
101800b99b8Sopenharmony_ci    sysRules.push_back(tagRule);
102800b99b8Sopenharmony_ci    HiSysEventManager::AddListener(crashListener, sysRules);
103800b99b8Sopenharmony_ci    crashListener->SetKeyWord(testProcessName);
104800b99b8Sopenharmony_ci    ReportCrashException(testProcessName, TEST_PROCESS_ID, TEST_UID, CrashExceptionCode::CRASH_UNKNOWN);
105800b99b8Sopenharmony_ci    ASSERT_FALSE(crashListener->CheckKeywordInReasons());
106800b99b8Sopenharmony_ci    HiSysEventManager::RemoveListener(crashListener);
107800b99b8Sopenharmony_ci    GTEST_LOG_(INFO) << "CrashExceptionTest003: end.";
108800b99b8Sopenharmony_ci}
109800b99b8Sopenharmony_ci
110800b99b8Sopenharmony_ci/**
111800b99b8Sopenharmony_ci * @tc.name: CrashExceptionTest004
112800b99b8Sopenharmony_ci * @tc.desc: test ReportCrashException
113800b99b8Sopenharmony_ci * @tc.type: FUNC
114800b99b8Sopenharmony_ci */
115800b99b8Sopenharmony_ciHWTEST_F(CrashExceptionTest, CrashExceptionTest004, TestSize.Level2)
116800b99b8Sopenharmony_ci{
117800b99b8Sopenharmony_ci    GTEST_LOG_(INFO) << "CrashExceptionTest004: start.";
118800b99b8Sopenharmony_ci    std::string keyWord = "process_name_string";
119800b99b8Sopenharmony_ci    std::shared_ptr<CrashExceptionListener> crashListener = std::make_shared<CrashExceptionListener>();
120800b99b8Sopenharmony_ci    ListenerRule tagRule("RELIABILITY", "CPP_CRASH_EXCEPTION", RuleType::WHOLE_WORD);
121800b99b8Sopenharmony_ci    std::vector<ListenerRule> sysRules;
122800b99b8Sopenharmony_ci    sysRules.push_back(tagRule);
123800b99b8Sopenharmony_ci    HiSysEventManager::AddListener(crashListener, sysRules);
124800b99b8Sopenharmony_ci    crashListener->SetKeyWord(keyWord);
125800b99b8Sopenharmony_ci    ReportCrashException(keyWord, TEST_PROCESS_ID, TEST_UID, CrashExceptionCode::CRASH_UNKNOWN);
126800b99b8Sopenharmony_ci    ASSERT_TRUE(crashListener->CheckKeywordInReasons());
127800b99b8Sopenharmony_ci    HiSysEventManager::RemoveListener(crashListener);
128800b99b8Sopenharmony_ci    GTEST_LOG_(INFO) << "CrashExceptionTest004: end.";
129800b99b8Sopenharmony_ci}
130800b99b8Sopenharmony_ci
131800b99b8Sopenharmony_ci/**
132800b99b8Sopenharmony_ci * @tc.name: CrashExceptionTest005
133800b99b8Sopenharmony_ci * @tc.desc: test ReportCrashException, error code is success.
134800b99b8Sopenharmony_ci * @tc.type: FUNC
135800b99b8Sopenharmony_ci */
136800b99b8Sopenharmony_ciHWTEST_F(CrashExceptionTest, CrashExceptionTest005, TestSize.Level2)
137800b99b8Sopenharmony_ci{
138800b99b8Sopenharmony_ci    GTEST_LOG_(INFO) << "CrashExceptionTest005: start.";
139800b99b8Sopenharmony_ci    std::string keyWord = "process_name_string";
140800b99b8Sopenharmony_ci    std::shared_ptr<CrashExceptionListener> crashListener = std::make_shared<CrashExceptionListener>();
141800b99b8Sopenharmony_ci    ListenerRule tagRule("RELIABILITY", "CPP_CRASH_EXCEPTION", RuleType::WHOLE_WORD);
142800b99b8Sopenharmony_ci    std::vector<ListenerRule> sysRules;
143800b99b8Sopenharmony_ci    sysRules.push_back(tagRule);
144800b99b8Sopenharmony_ci    HiSysEventManager::AddListener(crashListener, sysRules);
145800b99b8Sopenharmony_ci    crashListener->SetKeyWord(keyWord);
146800b99b8Sopenharmony_ci    ReportCrashException(keyWord, TEST_PROCESS_ID, TEST_UID, CrashExceptionCode::CRASH_ESUCCESS);
147800b99b8Sopenharmony_ci    ASSERT_FALSE(crashListener->CheckKeywordInReasons());
148800b99b8Sopenharmony_ci    HiSysEventManager::RemoveListener(crashListener);
149800b99b8Sopenharmony_ci    GTEST_LOG_(INFO) << "CrashExceptionTest005: end.";
150800b99b8Sopenharmony_ci}
151800b99b8Sopenharmony_ci
152800b99b8Sopenharmony_ci/**
153800b99b8Sopenharmony_ci * @tc.name: CrashExceptionTest006
154800b99b8Sopenharmony_ci * @tc.desc: test ReportUnwinderException
155800b99b8Sopenharmony_ci * @tc.type: FUNC
156800b99b8Sopenharmony_ci */
157800b99b8Sopenharmony_ciHWTEST_F(CrashExceptionTest, CrashExceptionTest006, TestSize.Level2)
158800b99b8Sopenharmony_ci{
159800b99b8Sopenharmony_ci    GTEST_LOG_(INFO) << "CrashExceptionTest006: start.";
160800b99b8Sopenharmony_ci    std::string keyWord = "process_name_unwind";
161800b99b8Sopenharmony_ci    std::shared_ptr<CrashExceptionListener> crashListener = std::make_shared<CrashExceptionListener>();
162800b99b8Sopenharmony_ci    ListenerRule tagRule("RELIABILITY", "CPP_CRASH_EXCEPTION", RuleType::WHOLE_WORD);
163800b99b8Sopenharmony_ci    std::vector<ListenerRule> sysRules;
164800b99b8Sopenharmony_ci    sysRules.push_back(tagRule);
165800b99b8Sopenharmony_ci    HiSysEventManager::AddListener(crashListener, sysRules);
166800b99b8Sopenharmony_ci    crashListener->SetKeyWord(keyWord);
167800b99b8Sopenharmony_ci    SetCrashProcInfo(keyWord, TEST_PROCESS_ID, TEST_UID);
168800b99b8Sopenharmony_ci    ReportUnwinderException(UnwindErrorCode::UNW_ERROR_STEP_ARK_FRAME);
169800b99b8Sopenharmony_ci    ASSERT_TRUE(crashListener->CheckKeywordInReasons());
170800b99b8Sopenharmony_ci    HiSysEventManager::RemoveListener(crashListener);
171800b99b8Sopenharmony_ci    GTEST_LOG_(INFO) << "CrashExceptionTest006: end.";
172800b99b8Sopenharmony_ci}
173800b99b8Sopenharmony_ci
174800b99b8Sopenharmony_ci/**
175800b99b8Sopenharmony_ci * @tc.name: CrashExceptionTest007
176800b99b8Sopenharmony_ci * @tc.desc: test ReportUnwinderException, invalid unwind error code.
177800b99b8Sopenharmony_ci * @tc.type: FUNC
178800b99b8Sopenharmony_ci */
179800b99b8Sopenharmony_ciHWTEST_F(CrashExceptionTest, CrashExceptionTest007, TestSize.Level2)
180800b99b8Sopenharmony_ci{
181800b99b8Sopenharmony_ci    GTEST_LOG_(INFO) << "CrashExceptionTest007: start.";
182800b99b8Sopenharmony_ci    std::string keyWord = "process_name_unwind";
183800b99b8Sopenharmony_ci    std::shared_ptr<CrashExceptionListener> crashListener = std::make_shared<CrashExceptionListener>();
184800b99b8Sopenharmony_ci    ListenerRule tagRule("RELIABILITY", "CPP_CRASH_EXCEPTION", RuleType::WHOLE_WORD);
185800b99b8Sopenharmony_ci    std::vector<ListenerRule> sysRules;
186800b99b8Sopenharmony_ci    sysRules.push_back(tagRule);
187800b99b8Sopenharmony_ci    HiSysEventManager::AddListener(crashListener, sysRules);
188800b99b8Sopenharmony_ci    crashListener->SetKeyWord(keyWord);
189800b99b8Sopenharmony_ci    SetCrashProcInfo(keyWord, TEST_PROCESS_ID, TEST_UID);
190800b99b8Sopenharmony_ci    ReportUnwinderException(0);
191800b99b8Sopenharmony_ci    ASSERT_FALSE(crashListener->CheckKeywordInReasons());
192800b99b8Sopenharmony_ci    HiSysEventManager::RemoveListener(crashListener);
193800b99b8Sopenharmony_ci    GTEST_LOG_(INFO) << "CrashExceptionTest007: end.";
194800b99b8Sopenharmony_ci}
195800b99b8Sopenharmony_ci
196800b99b8Sopenharmony_ci/**
197800b99b8Sopenharmony_ci * @tc.name: CrashExceptionTest08
198800b99b8Sopenharmony_ci * @tc.desc: test CheckFaultSummaryValid, valid Fault Summary.
199800b99b8Sopenharmony_ci * @tc.type: FUNC
200800b99b8Sopenharmony_ci */
201800b99b8Sopenharmony_ciHWTEST_F(CrashExceptionTest, CrashExceptionTest08, TestSize.Level2)
202800b99b8Sopenharmony_ci{
203800b99b8Sopenharmony_ci    GTEST_LOG_(INFO) << "CrashExceptionTest08: start.";
204800b99b8Sopenharmony_ci    std::string summary = std::string("Thread name:sensors\n") +
205800b99b8Sopenharmony_ci        "#00 pc 000c5738 /system/lib/ld-musl-arm.so.1(ioctl+72)(b985d2b9b22c3e542388f5803bac6a56)\n" +
206800b99b8Sopenharmony_ci        "#01 pc 00007fcf /system/lib/chipset-pub-sdk/libipc_common.z.so(OHOS::BinderConnector::WriteBinder(\n" +
207800b99b8Sopenharmony_ci        "#02 pc 00034f35 /system/lib/platformsdk/libipc_core.z.so(OHOS::BinderInvoker::TransactWithDriver(\n" +
208800b99b8Sopenharmony_ci        "#03 pc 000350a5 /system/lib/platformsdk/libipc_core.z.so(OHOS::BinderInvoker::StartWorkLoop(\n" +
209800b99b8Sopenharmony_ci        "#04 pc 000363df /system/lib/platformsdk/libipc_core.z.so(OHOS::BinderInvoker::JoinThread(\n" +
210800b99b8Sopenharmony_ci        "#05 pc 00010955 /system/lib/platformsdk/libsystem_ability_fwk.z.so(\n" +
211800b99b8Sopenharmony_ci        "#06 pc 0000391b /system/bin/sa_main(main.cfi+1986)(c626ef160394bf644c17e6769318dc7d)\n" +
212800b99b8Sopenharmony_ci        "#07 pc 00073560 /system/lib/ld-musl-arm.so.1(libc_start_main_stage2+56)(\n" +
213800b99b8Sopenharmony_ci        "#08 pc 00003078 /system/bin/sa_main(_start_c+84)(c626ef160394bf644c17e6769318dc7d)\n" +
214800b99b8Sopenharmony_ci        "#09 pc 0000301c /system/bin/sa_main(c626ef160394bf644c17e6769318dc7d)\n";
215800b99b8Sopenharmony_ci    ASSERT_TRUE(CheckFaultSummaryValid(summary));
216800b99b8Sopenharmony_ci    GTEST_LOG_(INFO) << "CrashExceptionTest08: end.";
217800b99b8Sopenharmony_ci}
218800b99b8Sopenharmony_ci
219800b99b8Sopenharmony_ci/**
220800b99b8Sopenharmony_ci * @tc.name: CrashExceptionTest09
221800b99b8Sopenharmony_ci * @tc.desc: test CheckFaultSummaryValid, valid Fault Summary.
222800b99b8Sopenharmony_ci * @tc.type: FUNC
223800b99b8Sopenharmony_ci */
224800b99b8Sopenharmony_ciHWTEST_F(CrashExceptionTest, CrashExceptionTest09, TestSize.Level2)
225800b99b8Sopenharmony_ci{
226800b99b8Sopenharmony_ci    GTEST_LOG_(INFO) << "CrashExceptionTest09: start.";
227800b99b8Sopenharmony_ci    std::string summary = std::string("Thread name:sensors\n") +
228800b99b8Sopenharmony_ci        "#00 pc 000c5738 /system/lib/ld-musl-arm.so.1(ioctl+72)(b985d2b9b22c3e542388f5803bac6a56)\n" +
229800b99b8Sopenharmony_ci        "#01 pc 00007fcf Not mapped\n" +
230800b99b8Sopenharmony_ci        "#02 pc 00034f35 /system/lib/platformsdk/libipc_core.z.so(OHOS::BinderInvoker::TransactWithDriver(\n" +
231800b99b8Sopenharmony_ci        "#03 pc 000350a5 /system/lib/platformsdk/libipc_core.z.so(OHOS::BinderInvoker::StartWorkLoop(\n" +
232800b99b8Sopenharmony_ci        "#04 pc 000363df /system/lib/platformsdk/libipc_core.z.so(OHOS::BinderInvoker::JoinThread(\n" +
233800b99b8Sopenharmony_ci        "#05 pc 00010955 /system/lib/platformsdk/libsystem_ability_fwk.z.so(\n" +
234800b99b8Sopenharmony_ci        "#06 pc 0000391b /system/bin/sa_main(main.cfi+1986)(c626ef160394bf644c17e6769318dc7d)\n" +
235800b99b8Sopenharmony_ci        "#07 pc 00073560 /system/lib/ld-musl-arm.so.1(libc_start_main_stage2+56)(\n" +
236800b99b8Sopenharmony_ci        "#08 pc 00003078 /system/bin/sa_main(_start_c+84)(c626ef160394bf644c17e6769318dc7d)\n" +
237800b99b8Sopenharmony_ci        "#09 pc 0000301c /system/bin/sa_main(c626ef160394bf644c17e6769318dc7d)\n";
238800b99b8Sopenharmony_ci    ASSERT_TRUE(CheckFaultSummaryValid(summary));
239800b99b8Sopenharmony_ci    GTEST_LOG_(INFO) << "CrashExceptionTest09: end.";
240800b99b8Sopenharmony_ci}
241800b99b8Sopenharmony_ci
242800b99b8Sopenharmony_ci/**
243800b99b8Sopenharmony_ci * @tc.name: CrashExceptionTest010
244800b99b8Sopenharmony_ci * @tc.desc: test CheckFaultSummaryValid, invalid Fault Summary.
245800b99b8Sopenharmony_ci * @tc.type: FUNC
246800b99b8Sopenharmony_ci */
247800b99b8Sopenharmony_ciHWTEST_F(CrashExceptionTest, CrashExceptionTest010, TestSize.Level2)
248800b99b8Sopenharmony_ci{
249800b99b8Sopenharmony_ci    GTEST_LOG_(INFO) << "CrashExceptionTest010: start.";
250800b99b8Sopenharmony_ci    std::string summary = std::string("Thread name:sensors\n") +
251800b99b8Sopenharmony_ci        "#00 pc 000c5738 /system/lib/ld-musl-arm.so.1(ioctl+72)(b985d2b9b22c3e542388f5803bac6a56)\n" +
252800b99b8Sopenharmony_ci        "#01 pc 00007fcf /system/lib/chipset-pub-sdk/libipc_common.z.so(OHOS::BinderConnector::WriteBinder(\n";
253800b99b8Sopenharmony_ci    ASSERT_FALSE(CheckFaultSummaryValid(summary));
254800b99b8Sopenharmony_ci    GTEST_LOG_(INFO) << "CrashExceptionTest010: end.";
255800b99b8Sopenharmony_ci}
256800b99b8Sopenharmony_ci
257800b99b8Sopenharmony_ci/**
258800b99b8Sopenharmony_ci * @tc.name: CrashExceptionTest011
259800b99b8Sopenharmony_ci * @tc.desc: test SetCrashProcInfo functions
260800b99b8Sopenharmony_ci * @tc.type: FUNC
261800b99b8Sopenharmony_ci */
262800b99b8Sopenharmony_ciHWTEST_F(CrashExceptionTest, CrashExceptionTest011, TestSize.Level2)
263800b99b8Sopenharmony_ci{
264800b99b8Sopenharmony_ci    GTEST_LOG_(INFO) << "CrashExceptionTest011: start.";
265800b99b8Sopenharmony_ci    std::string name = "";
266800b99b8Sopenharmony_ci    const int32_t pid = -1;
267800b99b8Sopenharmony_ci    SetCrashProcInfo(name, pid, 0);
268800b99b8Sopenharmony_ci    ReportUnwinderException(0);
269800b99b8Sopenharmony_ci    ASSERT_EQ(name, "");
270800b99b8Sopenharmony_ci    GTEST_LOG_(INFO) << "CrashExceptionTest011: end.";
271800b99b8Sopenharmony_ci}
272800b99b8Sopenharmony_ci} // namespace HiviewDFX
273800b99b8Sopenharmony_ci} // namespace OHOS