• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023 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 
18 #define private public
19 #define protected public
20 #include "native_args_child_process.h"
21 #undef protected
22 #undef private
23 
24 #include "hilog_tag_wrapper.h"
25 
26 using namespace testing;
27 using namespace testing::ext;
28 
29 namespace OHOS {
30 namespace AbilityRuntime {
31 using namespace AAFwk;
32 using namespace AppExecFwk;
33 class NativeArgsChildProcessTest : public testing::Test {
34 public:
35     static void SetUpTestCase();
36     static void TearDownTestCase();
37     void SetUp() override;
38     void TearDown() override;
39 };
40 
SetUpTestCase()41 void NativeArgsChildProcessTest::SetUpTestCase()
42 {}
43 
TearDownTestCase()44 void NativeArgsChildProcessTest::TearDownTestCase()
45 {}
46 
SetUp()47 void NativeArgsChildProcessTest::SetUp()
48 {}
49 
TearDown()50 void NativeArgsChildProcessTest::TearDown()
51 {}
52 
53 /**
54  * @tc.number: NativeArgsChildProcess_0100
55  * @tc.desc: Test NativeArgsChildProcess Create works
56  * @tc.type: FUNC
57  */
58 HWTEST_F(NativeArgsChildProcessTest, NativeArgsChildProcess_0100, TestSize.Level2)
59 {
60     TAG_LOGD(AAFwkTag::TEST, "NativeArgsChildProcess_0100 called.");
61     auto process = NativeArgsChildProcess::Create();
62     EXPECT_TRUE(process != nullptr);
63 }
64 
65 /**
66  * @tc.number: NativeArgsChildProcess_0200
67  * @tc.desc: Test NativeArgsChildProcess Init works
68  * @tc.type: FUNC
69  */
70 HWTEST_F(NativeArgsChildProcessTest, NativeArgsChildProcess_0200, TestSize.Level2)
71 {
72     TAG_LOGD(AAFwkTag::TEST, "NativeArgsChildProcess_0200 called.");
73     auto process = NativeArgsChildProcess::Create();
74     EXPECT_TRUE(process != nullptr);
75 
76     std::shared_ptr<ChildProcessStartInfo> info = std::make_shared<ChildProcessStartInfo>();
77     info->name = "AProcess";
78     info->srcEntry = "libentry.so:Main";
79     info->moduleName = "entry";
80 
81     process->Init(info);
82     EXPECT_TRUE(process->processStartInfo_ != nullptr);
83 }
84 
85 /**
86  * @tc.number: NativeArgsChildProcess_0300
87  * @tc.desc: Test NativeArgsChildProcess Init works
88  * @tc.type: FUNC
89  */
90 HWTEST_F(NativeArgsChildProcessTest, NativeArgsChildProcess_0300, TestSize.Level2)
91 {
92     TAG_LOGD(AAFwkTag::TEST, "NativeArgsChildProcess_0300 called.");
93     auto process = NativeArgsChildProcess::Create();
94     EXPECT_TRUE(process != nullptr);
95 
96     auto ret = process->Init(nullptr);
97     EXPECT_FALSE(ret);
98 }
99 
100 /**
101  * @tc.number: NativeArgsChildProcess_0400
102  * @tc.desc: Test NativeArgsChildProcess OnStart works
103  * @tc.type: FUNC
104  */
105 HWTEST_F(NativeArgsChildProcessTest, NativeArgsChildProcess_0400, TestSize.Level2)
106 {
107     TAG_LOGD(AAFwkTag::TEST, "NativeArgsChildProcess_0400 called.");
108     auto process = NativeArgsChildProcess::Create();
109     EXPECT_TRUE(process != nullptr);
110 
111     std::shared_ptr<ChildProcessStartInfo> info = std::make_shared<ChildProcessStartInfo>();
112     info->name = "AProcess";
113     info->srcEntry = "entry/./ets/process/AProcess.ts";
114     info->moduleName = "entry";
115 
116     process->Init(info);
117     process->OnStart();
118     EXPECT_TRUE(process->processStartInfo_ != nullptr);
119 }
120 
121 /**
122  * @tc.number: NativeArgsChildProcess_0500
123  * @tc.desc: Test NativeArgsChildProcess OnStart works
124  * @tc.type: FUNC
125  */
126 HWTEST_F(NativeArgsChildProcessTest, NativeArgsChildProcess_0500, TestSize.Level2)
127 {
128     TAG_LOGD(AAFwkTag::TEST, "NativeArgsChildProcess_0500 called.");
129     auto process = NativeArgsChildProcess::Create();
130     EXPECT_TRUE(process != nullptr);
131 
132     std::shared_ptr<ChildProcessStartInfo> info = std::make_shared<ChildProcessStartInfo>();
133     info->name = "AProcess";
134     info->srcEntry = "entry/./ets/process/AProcess.ts";
135     info->moduleName = "entry";
136     std::shared_ptr<ChildProcessArgs> args = std::make_shared<ChildProcessArgs>();
137     process->Init(info);
138     process->OnStart(args);
139     EXPECT_TRUE(process->processStartInfo_ != nullptr);
140 }
141 
142 /**
143  * @tc.number: NativeArgsChildProcess_0600
144  * @tc.desc: Test NativeArgsChildProcess LoadNativeLib works
145  * @tc.type: FUNC
146  */
147 HWTEST_F(NativeArgsChildProcessTest, NativeArgsChildProcess_0600, TestSize.Level2)
148 {
149     TAG_LOGD(AAFwkTag::TEST, "NativeArgsChildProcess_0600 called.");
150     auto process = std::make_shared<NativeArgsChildProcess>();
151     EXPECT_TRUE(process != nullptr);
152 
153     auto ret = process->LoadNativeLib(nullptr);
154     EXPECT_FALSE(ret);
155 }
156 
157 /**
158  * @tc.number: NativeArgsChildProcess_0700
159  * @tc.desc: Test NativeArgsChildProcess LoadNativeLib works
160  * @tc.type: FUNC
161  */
162 HWTEST_F(NativeArgsChildProcessTest, NativeArgsChildProcess_0700, TestSize.Level2)
163 {
164     TAG_LOGD(AAFwkTag::TEST, "NativeArgsChildProcess_0700 called.");
165     auto process = std::make_shared<NativeArgsChildProcess>();
166     EXPECT_TRUE(process != nullptr);
167 
168     std::shared_ptr<ChildProcessStartInfo> info = std::make_shared<ChildProcessStartInfo>();
169     info->name = "AProcess";
170     info->srcEntry = "entry/./ets/process/AProcess.ts";
171     info->moduleName = "entry";
172 
173     auto ret = process->LoadNativeLib(info);
174     EXPECT_FALSE(ret);
175 }
176 
177 /**
178  * @tc.number: NativeArgsChildProcess_0800
179  * @tc.desc: Test NativeArgsChildProcess LoadNativeLib works
180  * @tc.type: FUNC
181  */
182 HWTEST_F(NativeArgsChildProcessTest, NativeArgsChildProcess_0800, TestSize.Level2) {
183     TAG_LOGD(AAFwkTag::TEST, "NativeArgsChildProcess_0800 called.");
184     auto process = std::make_shared<NativeArgsChildProcess>();
185     EXPECT_TRUE(process != nullptr);
186 
187     std::shared_ptr<ChildProcessStartInfo> info = std::make_shared<ChildProcessStartInfo>();
188     info->name = "AProcess";
189     info->srcEntry = "entry/./ets/process/AProcess.ts";
190     info->moduleName = "";
191 
192     auto ret = process->LoadNativeLib(info);
193     EXPECT_FALSE(ret);
194 }
195 
196 /**
197  * @tc.number: NativeArgsChildProcess_0900
198  * @tc.desc: Test NativeArgsChildProcess LoadNativeLib works
199  * @tc.type: FUNC
200  */
201 HWTEST_F(NativeArgsChildProcessTest, NativeArgsChildProcess_0900, TestSize.Level2) {
202     TAG_LOGD(AAFwkTag::TEST, "NativeArgsChildProcess_0900 called.");
203     auto process = std::make_shared<NativeArgsChildProcess>();
204     EXPECT_TRUE(process != nullptr);
205 
206     std::shared_ptr<ChildProcessStartInfo> info = std::make_shared<ChildProcessStartInfo>();
207     info->moduleName = "";
208 
209     bool ret = process->LoadNativeLib(info);
210     EXPECT_FALSE(ret);
211 }
212 
213 /**
214  * @tc.number: NativeArgsChildProcess_1000
215  * @tc.desc: Test NativeArgsChildProcess LoadNativeLib works
216  * @tc.type: FUNC
217  */
218 HWTEST_F(NativeArgsChildProcessTest, NativeArgsChildProcess_1000, TestSize.Level2) {
219     TAG_LOGD(AAFwkTag::TEST, "NativeArgsChildProcess_1000 called.");
220     auto process = std::make_shared<NativeArgsChildProcess>();
221     EXPECT_TRUE(process != nullptr);
222 
223     std::shared_ptr<ChildProcessStartInfo> info = std::make_shared<ChildProcessStartInfo>();
224     info->srcEntry = "";
225 
226     bool ret = process->LoadNativeLib(info);
227     EXPECT_FALSE(ret);
228 }
229 
230 /**
231  * @tc.number: NativeArgsChildProcess_1100
232  * @tc.desc: Test NativeArgsChildProcess LoadNativeLib works
233  * @tc.type: FUNC
234  */
235 HWTEST_F(NativeArgsChildProcessTest, NativeArgsChildProcess_1100, TestSize.Level2) {
236     TAG_LOGD(AAFwkTag::TEST, "NativeArgsChildProcess_1000 called.");
237     auto process = std::make_shared<NativeArgsChildProcess>();
238     auto info = std::make_shared<ChildProcessStartInfo>();
239     info->moduleName = "entry";
240     info->entryFunc = "";
241 
242     bool ret = process->LoadNativeLib(info);
243     EXPECT_FALSE(ret);
244 }
245 }  // namespace AbilityRuntime
246 }  // namespace OHOS