• 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 
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