• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include <gtest/gtest.h>
17 #include "cj_environment.h"
18 #include "dynamic_loader.h"
19 
20 #include <string>
21 
22 #include "cj_invoker.h"
23 #ifdef __OHOS__
24 #include <dlfcn.h>
25 #endif
26 #include "dynamic_loader.h"
27 #ifdef WITH_EVENT_HANDLER
28 #include "event_handler.h"
29 #endif
30 
31 using namespace OHOS;
32 using namespace testing;
33 using namespace testing::ext;
34 
35 
36 class CjEnvironmentTest : public testing::Test {
37 public:
CjEnvironmentTest()38     CjEnvironmentTest()
39     {}
~CjEnvironmentTest()40     ~CjEnvironmentTest()
41     {}
42     static void SetUpTestCase(void);
43     static void TearDownTestCase(void);
44     void SetUp() override;
45     void TearDown() override;
46 };
47 
SetUpTestCase(void)48 void CjEnvironmentTest::SetUpTestCase(void)
49 {}
50 
TearDownTestCase(void)51 void CjEnvironmentTest::TearDownTestCase(void)
52 {}
53 
SetUp(void)54 void CjEnvironmentTest::SetUp(void)
55 {}
56 
TearDown(void)57 void CjEnvironmentTest::TearDown(void)
58 {}
59 
TestFunc()60 void TestFunc()
61 {}
62 
RegisterCJUncaughtExceptionHandlerTest(const CJUncaughtExceptionInfo & handle)63 void RegisterCJUncaughtExceptionHandlerTest(const CJUncaughtExceptionInfo &handle)
64 {}
65 
DumpHeapSnapshot(int fd)66 void DumpHeapSnapshot(int fd)
67 {}
68 
ForceFullGC()69 void ForceFullGC()
70 {}
71 
InitCJLibrary(const char * dlName)72 int InitCJLibrary(const char* dlName)
73 {
74     return E_OK;
75 }
76 
RegisterStackInfoCallbacks(UpdateStackInfoFuncType uFunc)77 void RegisterStackInfoCallbacks(UpdateStackInfoFuncType uFunc)
78 {}
79 
RegisterArkVMInRuntime(unsigned long long externalVM)80 void RegisterArkVMInRuntime(unsigned long long externalVM)
81 {}
82 
InitUIScheduler()83 void* InitUIScheduler()
84 {
85     return nullptr;
86 }
87 
RegisterEventHandlerCallbacks(PostTaskType,HasHigherPriorityType)88 void RegisterEventHandlerCallbacks(PostTaskType, HasHigherPriorityType)
89 {}
90 
91 /**
92  * @tc.name: CjEnvironmentTestPostTask_001
93  * @tc.desc: CjEnvironmentTest test for PostTask.
94  * @tc.type: FUNC
95  */
96 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestPostTask_001, TestSize.Level2)
97 {
98     CJEnvironment::GetInstance()->PostTask(nullptr);
99     void (*func)() = TestFunc;
100     auto ret = CJEnvironment::GetInstance()->PostTask(func);
101     EXPECT_EQ(ret, true);
102 }
103 
104 /**
105  * @tc.name: CjEnvironmentTestHasHigherPriorityTask_001
106  * @tc.desc: CjEnvironmentTest test for HasHigherPriorityTask.
107  * @tc.type: FUNC
108  */
109 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestHasHigherPriorityTask_001, TestSize.Level2)
110 {
111     auto ret = CJEnvironment::GetInstance()->HasHigherPriorityTask();
112     EXPECT_EQ(ret, false);
113 }
114 
115 /**
116  * @tc.name: CjEnvironmentTestStartRuntime_001
117  * @tc.desc: CjEnvironmentTest test for StartRuntime.
118  * @tc.type: FUNC
119  */
120 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestStartRuntime_001, TestSize.Level2)
121 {
122     CJEnvironment cJEnvironment(CJEnvironment::NSMode::APP);
123     CJUncaughtExceptionInfo handle;
124     handle.hapPath = "/test1/";
__anon07869acc0102(const char* summary, const CJErrorObject errorObj) 125     handle.uncaughtTask = [](const char* summary, const CJErrorObject errorObj) {};
126 
127     CJRuntimeAPI api;
128     api.RegisterCJUncaughtExceptionHandler = RegisterCJUncaughtExceptionHandlerTest;
129     CJRuntimeAPI* lazyApis_ = new CJRuntimeAPI(api);
130     cJEnvironment.SetLazyApis(lazyApis_);
131     cJEnvironment.RegisterCJUncaughtExceptionHandler(handle);
132     auto ret = cJEnvironment.StartRuntime();
133     EXPECT_EQ(ret, false);
134 }
135 
136 /**
137  * @tc.name: CjEnvironmentTestStopRuntime_001
138  * @tc.desc: CjEnvironmentTest test for StopRuntime.
139  * @tc.type: FUNC
140  */
141 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestStopRuntime_001, TestSize.Level2)
142 {
143     CJEnvironment cJEnvironment(CJEnvironment::NSMode::APP);
144     CJUncaughtExceptionInfo handle;
145     handle.hapPath = "/test1/";
__anon07869acc0202(const char* summary, const CJErrorObject errorObj) 146     handle.uncaughtTask = [](const char* summary, const CJErrorObject errorObj) {};
147 
148     CJRuntimeAPI api;
149     api.RegisterCJUncaughtExceptionHandler = RegisterCJUncaughtExceptionHandlerTest;
150     CJRuntimeAPI* lazyApis_ = new CJRuntimeAPI(api);
151     cJEnvironment.SetLazyApis(lazyApis_);
152     cJEnvironment.RegisterCJUncaughtExceptionHandler(handle);
153     cJEnvironment.StopRuntime();
154     EXPECT_EQ(CJEnvironment::GetInstance(), nullptr);
155 }
156 
157 /**
158  * @tc.name: CjEnvironmentTestStopUIScheduler_001
159  * @tc.desc: CjEnvironmentTest test for StopUIScheduler.
160  * @tc.type: FUNC
161  */
162 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestStopUIScheduler_001, TestSize.Level2)
163 {
164     CJEnvironment cJEnvironment(CJEnvironment::NSMode::APP);
165     CJUncaughtExceptionInfo handle;
166     handle.hapPath = "/test1/";
__anon07869acc0302(const char* summary, const CJErrorObject errorObj) 167     handle.uncaughtTask = [](const char* summary, const CJErrorObject errorObj) {};
168 
169     CJRuntimeAPI api;
170     api.RegisterCJUncaughtExceptionHandler = RegisterCJUncaughtExceptionHandlerTest;
171     CJRuntimeAPI* lazyApis_ = new CJRuntimeAPI(api);
172     cJEnvironment.SetLazyApis(lazyApis_);
173     cJEnvironment.RegisterCJUncaughtExceptionHandler(handle);
174     cJEnvironment.StopUIScheduler();
175     EXPECT_EQ(CJEnvironment::GetInstance(), nullptr);
176 }
177 
178 /**
179  * @tc.name: CjEnvironmentTestLoadCJLibrary_001
180  * @tc.desc: CjEnvironmentTest test for LoadCJLibrary.
181  * @tc.type: FUNC
182  */
183 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestLoadCJLibrary_001, TestSize.Level2)
184 {
185     CJEnvironment cJEnvironment(CJEnvironment::NSMode::APP);
186     auto ret = cJEnvironment.LoadCJLibrary("dlName");
187     EXPECT_EQ(ret, nullptr);
188 }
189 
190 /**
191  * @tc.name: CjEnvironmentTestLoadCJLibrary_002
192  * @tc.desc: CjEnvironmentTest test for LoadCJLibrary.
193  * @tc.type: FUNC
194  */
195 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestLoadCJLibrary_002, TestSize.Level2)
196 {
197     CJEnvironment cJEnvironment(CJEnvironment::NSMode::APP);
198     cJEnvironment.LoadCJLibrary(CJEnvironment::GetInstance()->LibraryKind::APP, "dlName");
199     cJEnvironment.LoadCJLibrary(CJEnvironment::GetInstance()->LibraryKind::SYSTEM, "dlName");
200     cJEnvironment.LoadCJLibrary(CJEnvironment::GetInstance()->LibraryKind::SDK, "dlName");
201     EXPECT_EQ(CJEnvironment::GetInstance(), nullptr);
202 }
203 
204 /**
205  * @tc.name: CjEnvironmentTestLoadCJLibrary_003
206  * @tc.desc: CjEnvironmentTest test for LoadCJLibrary.
207  * @tc.type: FUNC
208  */
209 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestLoadCJLibrary_003, TestSize.Level2)
210 {
211     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
212     auto result = cJEnvironment.LoadCJLibrary(CJEnvironment::GetInstance()->LibraryKind::SDK, "dlName");
213     EXPECT_EQ(result, nullptr);
214 }
215 
216 /**
217  * @tc.name: CjEnvironmentTestStartDebugger_001
218  * @tc.desc: CjEnvironmentTest test for StartDebugger.
219  * @tc.type: FUNC
220  */
221 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestStartDebugger_001, TestSize.Level2)
222 {
223     CJEnvironment cJEnvironment(CJEnvironment::NSMode::APP);
224     auto ret = cJEnvironment.StartDebugger();
225     EXPECT_EQ(ret, false);
226 }
227 
228 /**
229  * @tc.name: CjEnvironmentTestGetSymbol_001
230  * @tc.desc: CjEnvironmentTest test for GetSymbol.
231  * @tc.type: FUNC
232  */
233 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestGetSymbol_001, TestSize.Level2)
234 {
235     CJEnvironment cJEnvironment(CJEnvironment::NSMode::APP);
236     auto ret = cJEnvironment.GetSymbol(nullptr, "dlName");
237     EXPECT_EQ(ret, nullptr);
238 }
239 
240 /**
241  * @tc.name: InitCJNS_0100
242  * @tc.desc: Test InitCJNS.
243  * @tc.type: FUNC
244  */
245 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestInitCJNS_0100, TestSize.Level2)
246 {
247     CJEnvironment cJEnvironment(CJEnvironment::NSMode::APP);
248     std::string appPath = "com/ohos/unittest/test/";
249     cJEnvironment.InitCJNS(appPath);
250     EXPECT_EQ(CJEnvironment::GetInstance(), nullptr);
251 }
252 
253 /**
254  * @tc.name: SanitizerKindRuntimeVersion_001
255  * @tc.desc: Test SanitizerKindRuntimeVersion.
256  * @tc.type: FUNC
257  */
258 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestSanitizerKindRuntimeVersion_001, TestSize.Level2)
259 {
260     CJEnvMethods* cjEnv = CJEnvironment::CreateEnvMethods();
261     SanitizerKind kind = SanitizerKind::ASAN;
262     cjEnv->setSanitizerKindRuntimeVersion(kind);
263     EXPECT_NE(OHOS::CJEnvironment::sanitizerKind, SanitizerKind::NONE);
264 }
265 
266 /**
267  * @tc.name: SanitizerKindRuntimeVersion_002
268  * @tc.desc: Test SanitizerKindRuntimeVersion.
269  * @tc.type: FUNC
270  */
271 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestSanitizerKindRuntimeVersion_002, TestSize.Level2)
272 {
273     CJEnvMethods* cjEnv = CJEnvironment::CreateEnvMethods();
274     SanitizerKind kind = SanitizerKind::NONE;
275     cjEnv->setSanitizerKindRuntimeVersion(kind);
276     EXPECT_EQ(OHOS::CJEnvironment::sanitizerKind, SanitizerKind::NONE);
277 }
278 
279 /**
280  * @tc.name: CjEnvironmentTestDetectAppNSMode_001
281  * @tc.desc: Test DetectAppNSMode.
282  * @tc.type: FUNC
283  */
284 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestDetectAppNSMode_001, TestSize.Level2)
285 {
286     EXPECT_EQ(OHOS::CJEnvironment::DetectAppNSMode(), OHOS::CJEnvironment::NSMode::SINK);
287 }
288 
289 /**
290  * @tc.name: CjEnvironmentTestDynamicInherit_001
291  * @tc.desc: Test DynamicInherit.
292  * @tc.type: FUNC
293  */
294 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestDynamicInherit_001, TestSize.Level2)
295 {
296     Dl_namespace ns;
297     dlns_get("cj_test_namespace", &ns);
298     DynamicInherit(&ns, "cj_test_namespace_2", "allow_all_shared_libs");
299     DynamicInheritByName("cj_test_namespace", "cj_test_namespace_2", "allow_all_shared_libs");
300     EXPECT_EQ(CJEnvironment::GetInstance(), nullptr);
301 }
302 
303 /**
304  * @tc.name: CjEnvironmentTestDynamicInherit_002
305  * @tc.desc: Test DynamicInherit.
306  * @tc.type: FUNC
307  */
308 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestDynamicInherit_002, TestSize.Level2)
309 {
310     Dl_namespace ns;
311     dlns_get("cj_test_namespace", &ns);
312     DynamicInherit(&ns, "default", "allow_all_shared_libs");
313     DynamicInheritByName("cj_test_namespace", "default", "allow_all_shared_libs");
314     DynamicInheritByName("default", "cj_test_namespace", "allow_all_shared_libs");
315     EXPECT_EQ(CJEnvironment::GetInstance(), nullptr);
316 }
317 
318 /**
319  * @tc.name: CjEnvironmentTestDynamicInherit_003
320  * @tc.desc: Test DynamicInherit.
321  * @tc.type: FUNC
322  */
323 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestDynamicInherit_003, TestSize.Level2)
324 {
325     Dl_namespace ns;
326     dlns_get("cj_test_namespace", &ns);
327     DynamicInherit(&ns, nullptr, nullptr);
328     DynamicInheritByName(nullptr, nullptr, nullptr);
329     DynamicInheritByName("cj_test_namespace", nullptr, nullptr);
330     DynamicInheritByName("cj_test_namespace", "cj_test_namespace", nullptr);
331     EXPECT_EQ(CJEnvironment::GetInstance(), nullptr);
332 }
333 
334 /**
335  * @tc.name: CjEnvironmentTestSetAppPath_001
336  * @tc.desc: CjEnvironmentTest test for SetAppPath.
337  * @tc.type: FUNC
338  */
339 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestSetAppPath_001, TestSize.Level2)
340 {
341     CJEnvironment::SetSanitizerKindRuntimeVersion(OHOS::SanitizerKind::ASAN);
342     CJEnvironment::SetAppPath("path/to/hap");
343     EXPECT_NE(CJEnvironment::GetInstance()->cjAppNSName, nullptr);
344 }
345 
346 /**
347  * @tc.name: CjEnvironmentTestLoadRuntimeLib_001
348  * @tc.desc: CjEnvironmentTest test for LoadRuntimeLib.
349  * @tc.type: FUNC
350  */
351 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestLoadRuntimeLib_001, TestSize.Level2)
352 {
353     CJEnvironment::SetAppPath("");
354     EXPECT_EQ(CJEnvironment::GetInstance()->LoadRuntimeLib("test.so"), nullptr);
355 }
356 
357 /**
358  * @tc.name: CjEnvironmentTestInitCJLibrary_001
359  * @tc.desc: CjEnvironmentTest test for InitCJLibrary.
360  * @tc.type: FUNC
361  */
362 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestInitCJLibrary_001, TestSize.Level2)
363 {
364     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
365     auto res = cJEnvironment.InitCJLibrary(nullptr);
366     EXPECT_EQ(res, E_FAILED);
367 }
368 
369 /**
370  * @tc.name: CjEnvironmentTestInitCJLibrary_002
371  * @tc.desc: CjEnvironmentTest test for InitCJLibrary.
372  * @tc.type: FUNC
373  */
374 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestInitCJLibrary_002, TestSize.Level2)
375 {
376     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
377     cJEnvironment.UnLoadRuntimeApis();
378     auto res = cJEnvironment.InitCJLibrary("lib_cj_test.so");
379     EXPECT_EQ(res, E_FAILED);
380 }
381 
382 /**
383  * @tc.name: CjEnvironmentTestInitCJLibrary_003
384  * @tc.desc: CjEnvironmentTest test for InitCJLibrary.
385  * @tc.type: FUNC
386  */
387 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestInitCJLibrary_003, TestSize.Level2)
388 {
389     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
390     CJRuntimeAPI api;
391     api.InitCJLibrary = InitCJLibrary;
392     CJRuntimeAPI* lazyApis_ = new CJRuntimeAPI(api);
393     cJEnvironment.SetLazyApis(lazyApis_);
394     auto res = cJEnvironment.InitCJLibrary("lib_cj_test.so");
395     EXPECT_EQ(res, E_OK);
396 }
397 
398 /**
399  * @tc.name: CjEnvironmentTestInitCJLibrary_004
400  * @tc.desc: CjEnvironmentTest test for InitCJLibrary.
401  * @tc.type: FUNC
402  */
403 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestInitCJLibrary_004, TestSize.Level2)
404 {
405     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
406     CJRuntimeAPI* lazyApis_ = new CJRuntimeAPI();
407     cJEnvironment.SetLazyApis(lazyApis_);
408     auto res = cJEnvironment.InitCJLibrary("lib_cj_test.so");
409     EXPECT_EQ(res, E_FAILED);
410 }
411 
412 /**
413  * @tc.name: CjEnvironmentTestFiniCJRuntime_001
414  * @tc.desc: CjEnvironmentTest test for FiniCJRuntime.
415  * @tc.type: FUNC
416  */
417 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestFiniCJRuntime_001, TestSize.Level2)
418 {
419     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
420     cJEnvironment.UnLoadRuntimeApis();
421     auto res = cJEnvironment.FiniCJRuntime();
422     EXPECT_EQ(res, E_FAILED);
423 }
424 
425 /**
426  * @tc.name: CjEnvironmentTestFiniCJRuntime_002
427  * @tc.desc: CjEnvironmentTest test for FiniCJRuntime.
428  * @tc.type: FUNC
429  */
430 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestFiniCJRuntime_002, TestSize.Level2)
431 {
432     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
433     CJRuntimeAPI* lazyApis_ = new CJRuntimeAPI();
434     cJEnvironment.SetLazyApis(lazyApis_);
435     auto res = cJEnvironment.FiniCJRuntime();
436     EXPECT_EQ(res, E_FAILED);
437 }
438 
439 /**
440  * @tc.name: CjEnvironmentTestInitUIScheduler_001
441  * @tc.desc: CjEnvironmentTest test for InitUIScheduler.
442  * @tc.type: FUNC
443  */
444 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestInitUIScheduler_001, TestSize.Level2)
445 {
446     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
447     cJEnvironment.UnLoadRuntimeApis();
448     auto res = cJEnvironment.InitUIScheduler();
449     EXPECT_EQ(res, nullptr);
450 }
451 
452 /**
453  * @tc.name: CjEnvironmentTestInitUIScheduler_002
454  * @tc.desc: CjEnvironmentTest test for InitUIScheduler.
455  * @tc.type: FUNC
456  */
457 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestInitUIScheduler_002, TestSize.Level2)
458 {
459     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
460     CJRuntimeAPI api;
461     api.InitUIScheduler = InitUIScheduler;
462     CJRuntimeAPI* lazyApis_ = new CJRuntimeAPI(api);
463     cJEnvironment.SetLazyApis(lazyApis_);
464     auto res = cJEnvironment.InitUIScheduler();
465     EXPECT_EQ(res, nullptr);
466 }
467 
468 /**
469  * @tc.name: CjEnvironmentTestInitUIScheduler_003
470  * @tc.desc: CjEnvironmentTest test for InitUIScheduler.
471  * @tc.type: FUNC
472  */
473 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestInitUIScheduler_003, TestSize.Level2)
474 {
475     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
476     CJRuntimeAPI* lazyApis_ = new CJRuntimeAPI();
477     cJEnvironment.SetLazyApis(lazyApis_);
478     auto res = cJEnvironment.InitUIScheduler();
479     EXPECT_EQ(res, nullptr);
480 }
481 
482 /**
483  * @tc.name: CjEnvironmentTestDumpHeapSnapshot_001
484  * @tc.desc: CjEnvironmentTest test for DumpHeapSnapshot.
485  * @tc.type: FUNC
486  */
487 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestDumpHeapSnapshot_001, TestSize.Level2)
488 {
489     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
490     cJEnvironment.UnLoadRuntimeApis();
491     cJEnvironment.DumpHeapSnapshot(0);
492     EXPECT_NE(CJEnvironment::GetInstance(), nullptr);
493 }
494 
495 /**
496  * @tc.name: CjEnvironmentTestDumpHeapSnapshot_002
497  * @tc.desc: CjEnvironmentTest test for DumpHeapSnapshot.
498  * @tc.type: FUNC
499  */
500 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestDumpHeapSnapshot_002, TestSize.Level2)
501 {
502     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
503     CJRuntimeAPI api;
504     api.DumpHeapSnapshot = DumpHeapSnapshot;
505     CJRuntimeAPI* lazyApis_ = new CJRuntimeAPI(api);
506     cJEnvironment.SetLazyApis(lazyApis_);
507     cJEnvironment.DumpHeapSnapshot(0);
508     EXPECT_NE(CJEnvironment::GetInstance(), nullptr);
509 }
510 
511 /**
512  * @tc.name: CjEnvironmentTestDumpHeapSnapshot_003
513  * @tc.desc: CjEnvironmentTest test for DumpHeapSnapshot.
514  * @tc.type: FUNC
515  */
516 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestDumpHeapSnapshot_003, TestSize.Level2)
517 {
518     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
519     CJRuntimeAPI* lazyApis_ = new CJRuntimeAPI();
520     cJEnvironment.SetLazyApis(lazyApis_);
521     cJEnvironment.DumpHeapSnapshot(0);
522     EXPECT_NE(CJEnvironment::GetInstance(), nullptr);
523 }
524 
525 /**
526  * @tc.name: CjEnvironmentTestForceFullGC_001
527  * @tc.desc: CjEnvironmentTest test for ForceFullGC.
528  * @tc.type: FUNC
529  */
530 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestForceFullGC_001, TestSize.Level2)
531 {
532     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
533     cJEnvironment.UnLoadRuntimeApis();
534     cJEnvironment.ForceFullGC();
535     EXPECT_NE(CJEnvironment::GetInstance(), nullptr);
536 }
537 
538 /**
539  * @tc.name: CjEnvironmentTestForceFullGC_002
540  * @tc.desc: CjEnvironmentTest test for ForceFullGC.
541  * @tc.type: FUNC
542  */
543 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestForceFullGC_002, TestSize.Level2)
544 {
545     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
546     CJRuntimeAPI api;
547     api.ForceFullGC = ForceFullGC;
548     CJRuntimeAPI* lazyApis_ = new CJRuntimeAPI(api);
549     cJEnvironment.SetLazyApis(lazyApis_);
550     cJEnvironment.ForceFullGC();
551     EXPECT_NE(CJEnvironment::GetInstance(), nullptr);
552 }
553 
554 /**
555  * @tc.name: CjEnvironmentTestForceFullGC_003
556  * @tc.desc: CjEnvironmentTest test for ForceFullGC.
557  * @tc.type: FUNC
558  */
559 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestForceFullGC_003, TestSize.Level2)
560 {
561     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
562     CJRuntimeAPI* lazyApis_ = new CJRuntimeAPI();
563     cJEnvironment.SetLazyApis(lazyApis_);
564     cJEnvironment.ForceFullGC();
565     EXPECT_NE(CJEnvironment::GetInstance(), nullptr);
566 }
567 
568 /**
569  * @tc.name: CjEnvironmentTestRegisterStackInfoCallbacks_001
570  * @tc.desc: CjEnvironmentTest test for RegisterStackInfoCallbacks.
571  * @tc.type: FUNC
572  */
573 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestRegisterStackInfoCallbacks_001, TestSize.Level2)
574 {
575     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
576     cJEnvironment.UnLoadRuntimeApis();
577     cJEnvironment.RegisterStackInfoCallbacks(nullptr);
578     EXPECT_NE(CJEnvironment::GetInstance(), nullptr);
579 }
580 
581 /**
582  * @tc.name: CjEnvironmentTestRegisterStackInfoCallbacks_002
583  * @tc.desc: CjEnvironmentTest test for RegisterStackInfoCallbacks.
584  * @tc.type: FUNC
585  */
586 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestRegisterStackInfoCallbacks_002, TestSize.Level2)
587 {
588     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
589     CJRuntimeAPI api;
590     api.RegisterStackInfoCallbacks = RegisterStackInfoCallbacks;
591     CJRuntimeAPI* lazyApis_ = new CJRuntimeAPI(api);
592     cJEnvironment.SetLazyApis(lazyApis_);
593     cJEnvironment.RegisterStackInfoCallbacks(nullptr);
594     EXPECT_NE(CJEnvironment::GetInstance(), nullptr);
595 }
596 
597 /**
598  * @tc.name: CjEnvironmentTestRegisterStackInfoCallbacks_003
599  * @tc.desc: CjEnvironmentTest test for RegisterStackInfoCallbacks.
600  * @tc.type: FUNC
601  */
602 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestRegisterStackInfoCallbacks_003, TestSize.Level2)
603 {
604     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
605     CJRuntimeAPI* lazyApis_ = new CJRuntimeAPI();
606     cJEnvironment.SetLazyApis(lazyApis_);
607     cJEnvironment.RegisterStackInfoCallbacks(nullptr);
608     EXPECT_NE(CJEnvironment::GetInstance(), nullptr);
609 }
610 
611 /**
612  * @tc.name: CjEnvironmentTestRegisterArkVMInRuntime_001
613  * @tc.desc: CjEnvironmentTest test for RegisterArkVMInRuntime.
614  * @tc.type: FUNC
615  */
616 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestRegisterArkVMInRuntime_001, TestSize.Level2)
617 {
618     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
619     cJEnvironment.UnLoadRuntimeApis();
620     cJEnvironment.RegisterArkVMInRuntime(0);
621     EXPECT_NE(CJEnvironment::GetInstance(), nullptr);
622 }
623 
624 /**
625  * @tc.name: CjEnvironmentTestRegisterArkVMInRuntime_002
626  * @tc.desc: CjEnvironmentTest test for RegisterArkVMInRuntime.
627  * @tc.type: FUNC
628  */
629 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestRegisterArkVMInRuntime_002, TestSize.Level2)
630 {
631     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
632     CJRuntimeAPI api;
633     api.RegisterArkVMInRuntime = RegisterArkVMInRuntime;
634     CJRuntimeAPI* lazyApis_ = new CJRuntimeAPI(api);
635     cJEnvironment.SetLazyApis(lazyApis_);
636     cJEnvironment.RegisterArkVMInRuntime(0);
637     EXPECT_NE(CJEnvironment::GetInstance(), nullptr);
638 }
639 
640 /**
641  * @tc.name: CjEnvironmentTestRegisterArkVMInRuntime_003
642  * @tc.desc: CjEnvironmentTest test for RegisterArkVMInRuntime.
643  * @tc.type: FUNC
644  */
645 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestRegisterArkVMInRuntime_003, TestSize.Level2)
646 {
647     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
648     CJRuntimeAPI* lazyApis_ = new CJRuntimeAPI();
649     cJEnvironment.SetLazyApis(lazyApis_);
650     cJEnvironment.RegisterArkVMInRuntime(0);
651     EXPECT_NE(CJEnvironment::GetInstance(), nullptr);
652 }
653 
654 /**
655  * @tc.name: CjEnvironmentTestRegisterEventHandlerCallbacks_001
656  * @tc.desc: CjEnvironmentTest test for RegisterEventHandlerCallbacks.
657  * @tc.type: FUNC
658  */
659 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestRegisterEventHandlerCallbacks_001, TestSize.Level2)
660 {
661     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
662     cJEnvironment.UnLoadRuntimeApis();
663     cJEnvironment.RegisterEventHandlerCallbacks();
664     EXPECT_NE(CJEnvironment::GetInstance(), nullptr);
665 }
666 
667 /**
668  * @tc.name: CjEnvironmentTestRegisterEventHandlerCallbacks_002
669  * @tc.desc: CjEnvironmentTest test for RegisterEventHandlerCallbacks.
670  * @tc.type: FUNC
671  */
672 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestRegisterEventHandlerCallbacks_002, TestSize.Level2)
673 {
674     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
675     CJRuntimeAPI api;
676     api.RegisterEventHandlerCallbacks = RegisterEventHandlerCallbacks;
677     CJRuntimeAPI* lazyApis_ = new CJRuntimeAPI(api);
678     cJEnvironment.SetLazyApis(lazyApis_);
679     cJEnvironment.RegisterEventHandlerCallbacks();
680     EXPECT_NE(CJEnvironment::GetInstance(), nullptr);
681 }
682 
683 /**
684  * @tc.name: CjEnvironmentTestRegisterEventHandlerCallbacks_003
685  * @tc.desc: CjEnvironmentTest test for RegisterEventHandlerCallbacks.
686  * @tc.type: FUNC
687  */
688 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestRegisterEventHandlerCallbacks_003, TestSize.Level2)
689 {
690     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
691     CJRuntimeAPI* lazyApis_ = new CJRuntimeAPI();
692     cJEnvironment.SetLazyApis(lazyApis_);
693     cJEnvironment.RegisterEventHandlerCallbacks();
694     EXPECT_NE(CJEnvironment::GetInstance(), nullptr);
695 }
696 
697 /**
698  * @tc.name: CjEnvironmentTestRegisterCJUncaughtExceptionHandler_001
699  * @tc.desc: CjEnvironmentTest test for RegisterCJUncaughtExceptionHandler.
700  * @tc.type: FUNC
701  */
702 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestRegisterCJUncaughtExceptionHandler_001, TestSize.Level2)
703 {
704     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
705     CJUncaughtExceptionInfo handle;
706     handle.hapPath = "/test1/";
__anon07869acc0402(const char* summary, const CJErrorObject errorObj) 707     handle.uncaughtTask = [](const char* summary, const CJErrorObject errorObj) {};
708     cJEnvironment.UnLoadRuntimeApis();
709     cJEnvironment.RegisterCJUncaughtExceptionHandler(handle);
710     EXPECT_NE(CJEnvironment::GetInstance(), nullptr);
711 }
712 
713 /**
714  * @tc.name: CjEnvironmentTestRegisterCJUncaughtExceptionHandler_002
715  * @tc.desc: CjEnvironmentTest test for RegisterCJUncaughtExceptionHandler.
716  * @tc.type: FUNC
717  */
718 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestRegisterCJUncaughtExceptionHandler_002, TestSize.Level2)
719 {
720     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
721     CJUncaughtExceptionInfo handle;
722     handle.hapPath = "/test1/";
__anon07869acc0502(const char* summary, const CJErrorObject errorObj) 723     handle.uncaughtTask = [](const char* summary, const CJErrorObject errorObj) {};
724 
725     CJRuntimeAPI api;
726     api.RegisterCJUncaughtExceptionHandler = RegisterCJUncaughtExceptionHandlerTest;
727     CJRuntimeAPI* lazyApis_ = new CJRuntimeAPI(api);
728     cJEnvironment.SetLazyApis(lazyApis_);
729     cJEnvironment.RegisterCJUncaughtExceptionHandler(handle);
730     EXPECT_NE(CJEnvironment::GetInstance(), nullptr);
731 }
732 
733 /**
734  * @tc.name: CjEnvironmentTestRegisterCJUncaughtExceptionHandler_003
735  * @tc.desc: CjEnvironmentTest test for RegisterCJUncaughtExceptionHandler.
736  * @tc.type: FUNC
737  */
738 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestRegisterCJUncaughtExceptionHandler_003, TestSize.Level2)
739 {
740     CJEnvironment cJEnvironment(CJEnvironment::NSMode::SINK);
741     CJUncaughtExceptionInfo handle;
742     handle.hapPath = "/test1/";
__anon07869acc0602(const char* summary, const CJErrorObject errorObj) 743     handle.uncaughtTask = [](const char* summary, const CJErrorObject errorObj) {};
744     CJRuntimeAPI* lazyApis_ = new CJRuntimeAPI();
745     cJEnvironment.SetLazyApis(lazyApis_);
746     cJEnvironment.RegisterCJUncaughtExceptionHandler(handle);
747     EXPECT_NE(CJEnvironment::GetInstance(), nullptr);
748 }