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
63 /**
64 * @tc.name: CjEnvironmentTestPostTask_001
65 * @tc.desc: CjEnvironmentTest test for PostTask.
66 * @tc.type: FUNC
67 */
68 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestPostTask_001, TestSize.Level0)
69 {
70 auto cjEnv = std::make_shared<CJEnvironment>(CJEnvironment::NSMode::APP);
71 cjEnv->PostTask(nullptr);
72 void (*func)() = TestFunc;
73 auto ret = cjEnv->PostTask(func);
74 EXPECT_EQ(ret, true);
75 }
76
77 /**
78 * @tc.name: CjEnvironmentTestHasHigherPriorityTask_001
79 * @tc.desc: CjEnvironmentTest test for HasHigherPriorityTask.
80 * @tc.type: FUNC
81 */
82 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestHasHigherPriorityTask_001, TestSize.Level0)
83 {
84 auto cjEnv = std::make_shared<CJEnvironment>(CJEnvironment::NSMode::APP);
85 auto ret = cjEnv->HasHigherPriorityTask();
86 EXPECT_EQ(ret, false);
87 }
88
89 /**
90 * @tc.name: CjEnvironmentTestInitCJChipSDKNS_001
91 * @tc.desc: CjEnvironmentTest test for InitCJChipSDKNS.
92 * @tc.type: FUNC
93 */
94 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestInitCJChipSDKNS_001, TestSize.Level0)
95 {
96 auto cjEnv = std::make_shared<CJEnvironment>(CJEnvironment::NSMode::APP);
97 cjEnv->InitCJChipSDKNS("path/to/hap");
98 EXPECT_NE(cjEnv->cjAppNSName, nullptr);
99 }
100
101 /**
102 * @tc.name: CjEnvironmentTestInitCJAppNS_001
103 * @tc.desc: CjEnvironmentTest test for InitCJAppNS.
104 * @tc.type: FUNC
105 */
106 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestInitCJAppNS_001, TestSize.Level0)
107 {
108 auto cjEnv = std::make_shared<CJEnvironment>(CJEnvironment::NSMode::APP);
109 cjEnv->InitCJAppNS("path/to/hap");
110 EXPECT_NE(cjEnv->cjAppNSName, nullptr);
111 }
112
113 /**
114 * @tc.name: CjEnvironmentTestInitCJSDKNS_001
115 * @tc.desc: CjEnvironmentTest test for InitCJSDKNS.
116 * @tc.type: FUNC
117 */
118 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestInitCJSDKNS_001, TestSize.Level0)
119 {
120 auto cjEnv = std::make_shared<CJEnvironment>(CJEnvironment::NSMode::APP);
121 cjEnv->InitCJSDKNS("path/to/hap");
122 EXPECT_NE(cjEnv->cjAppNSName, nullptr);
123 }
124
125 /**
126 * @tc.name: CjEnvironmentTestInitCJSysNS_001
127 * @tc.desc: CjEnvironmentTest test for InitCJSysNS.
128 * @tc.type: FUNC
129 */
130 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestInitCJSysNS_001, TestSize.Level0)
131 {
132 auto cjEnv = std::make_shared<CJEnvironment>(CJEnvironment::NSMode::APP);
133 cjEnv->InitCJSysNS("path/to/hap");
134 EXPECT_NE(cjEnv->cjAppNSName, nullptr);
135 }
136
137 /**
138 * @tc.name: CjEnvironmentTestStartRuntime_001
139 * @tc.desc: CjEnvironmentTest test for StartRuntime.
140 * @tc.type: FUNC
141 */
142 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestStartRuntime_001, TestSize.Level0)
143 {
144 auto cjEnv = std::make_shared<CJEnvironment>(CJEnvironment::NSMode::APP);
145 auto ret = cjEnv->StartRuntime();
146 EXPECT_EQ(ret, false);
147 }
148
149 /**
150 * @tc.name: CjEnvironmentTestStopRuntime_001
151 * @tc.desc: CjEnvironmentTest test for StopRuntime.
152 * @tc.type: FUNC
153 */
154 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestStopRuntime_001, TestSize.Level0)
155 {
156 auto cjEnv = std::make_shared<CJEnvironment>(CJEnvironment::NSMode::APP);
157 cjEnv->StopRuntime();
158 EXPECT_NE(cjEnv, nullptr);
159 }
160
161 /**
162 * @tc.name: CjEnvironmentTestStopUIScheduler_001
163 * @tc.desc: CjEnvironmentTest test for StopUIScheduler.
164 * @tc.type: FUNC
165 */
166 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestStopUIScheduler_001, TestSize.Level0)
167 {
168 auto cjEnv = std::make_shared<CJEnvironment>(CJEnvironment::NSMode::APP);
169 cjEnv->StopUIScheduler();
170 EXPECT_NE(cjEnv, nullptr);
171 }
172
173 /**
174 * @tc.name: CjEnvironmentTestLoadCJLibrary_001
175 * @tc.desc: CjEnvironmentTest test for LoadCJLibrary.
176 * @tc.type: FUNC
177 */
178 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestLoadCJLibrary_001, TestSize.Level0)
179 {
180 auto cjEnv = std::make_shared<CJEnvironment>(CJEnvironment::NSMode::APP);
181 auto ret = cjEnv->LoadCJLibrary("dlName");
182 EXPECT_EQ(ret, nullptr);
183 }
184
185 /**
186 * @tc.name: CjEnvironmentTestLoadCJLibrary_001
187 * @tc.desc: CjEnvironmentTest test for LoadCJLibrary.
188 * @tc.type: FUNC
189 */
190 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestLoadCJLibrary_002, TestSize.Level0)
191 {
192 auto cjEnv = std::make_shared<CJEnvironment>(CJEnvironment::NSMode::APP);
193 cjEnv->LoadCJLibrary(cjEnv->LibraryKind::APP, "dlName");
194 cjEnv->LoadCJLibrary(cjEnv->LibraryKind::SYSTEM, "dlName");
195 cjEnv->LoadCJLibrary(cjEnv->LibraryKind::SDK, "dlName");
196 EXPECT_NE(cjEnv, nullptr);
197 }
198
199 /**
200 * @tc.name: CjEnvironmentTestStartDebugger_001
201 * @tc.desc: CjEnvironmentTest test for StartDebugger.
202 * @tc.type: FUNC
203 */
204 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestStartDebugger_001, TestSize.Level0)
205 {
206 auto cjEnv = std::make_shared<CJEnvironment>(CJEnvironment::NSMode::APP);
207 auto ret = cjEnv->StartDebugger();
208 EXPECT_EQ(ret, false);
209 }
210
211 /**
212 * @tc.name: CjEnvironmentTestGetSymbol_001
213 * @tc.desc: CjEnvironmentTest test for GetSymbol.
214 * @tc.type: FUNC
215 */
216 HWTEST_F(CjEnvironmentTest, CjEnvironmentTestGetSymbol_001, TestSize.Level0)
217 {
218 auto cjEnv = std::make_shared<CJEnvironment>(CJEnvironment::NSMode::APP);
219 auto ret = cjEnv->GetSymbol(nullptr, "dlName");
220 EXPECT_EQ(ret, nullptr);
221 }
222