2 * Copyright (c) 2023 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #include <bundle_cpp.h>
18 #include <gmock/gmock.h>
19 #include <gtest/gtest.h>
26 #include "debugger_info.hh"
27 #include "launcher_info.hh"
28 #include "loader_info.hh"
30 using ::testing::AtLeast;
31 using namespace launchpad;
33 class LaunchpadTest : public ::testing::Test {
35 virtual void SetUp() {
37 of.open(test_debugger);
41 of.open(test_launcher);
49 of.open(test_debugger_info_file);
55 EXTRA_KEY __DLP_DEBUG_ARG__
58 DEFAULT_OPT OPENSSL_armcap=0
63 of.open(test_launcher_info_file);
69 EXTRA_ARG --PADDING_TO_CHANGE_CMDLINE_PADDING_TO_CHANGE_CMDLINE_PADDING_TO_CHANGE_CMDLINE_PADDING_TO_CHANGE_CMDLINE
75 EXTRA_ARG --standalone
79 of.open(test_loader_info_file);
83 EXE /usr/bin/launchpad-loader
86 DETECTION_METHOD TIMEOUT|VISIBILITY
88 EXTRA loader_type hw-loader
90 EXTRA_ARRAY_VAL /usr/lib/libappcore-efl.so.1
91 EXTRA_ARRAY_VAL /usr/lib/libappcore-common.so.1
92 EXTRA_ARRAY_VAL /usr/lib/libcapi-appfw-application.so.0
93 EXTRA_ARRAY_VAL /usr/lib/ecore_imf/modules/wayland/v-1.25/module.so
94 EXTRA_ARRAY_VAL /usr/lib/libdali-toolkit.so
95 EXTRA_ARRAY_VAL /usr/lib/libcairo.so.2
96 EXTRA_ARRAY_VAL /usr/lib/libcapi-media-player.so.0
97 EXTRA_ARRAY_VAL /usr/lib/libcapi-media-camera.so.0
98 EXTRA_ARRAY_VAL /usr/lib/ecore_evas/engines/extn/v-1.25/module.so
99 ALTERNATIVE_LOADER common-loader1
106 virtual void TearDown() {}
109 const std::string test_debugger = "test_debugger";
110 const std::string test_launcher = "test_launcher";
111 const std::string test_loader = "test_loader";
112 const std::string test_debugger_info_file = "test.debugger";
113 const std::string test_launcher_info_file = "test.launcher";
114 const std::string test_loader_info_file = "test.loader";
117 TEST_F(LaunchpadTest, DebuggerInfoTest) {
118 /* Test debugger info file
123 EXTRA_KEY __DLP_DEBUG_ARG__
124 DEFAULT_OPT --wrapper
126 DEFAULT_OPT OPENSSL_armcap=0
130 DebuggerInfoInflator inflator;
131 auto list = inflator.Inflate(".");
132 EXPECT_EQ(list.size(), 1);
133 auto info = std::move(list.front());
134 EXPECT_EQ(info->GetName(), "DEBUG");
135 EXPECT_EQ(info->GetExe(), "test_debugger");
136 EXPECT_EQ(info->GetAppTypes().size(), 2);
137 EXPECT_EQ(info->GetAppTypes()[0], "capp");
138 EXPECT_EQ(info->GetAppTypes()[1], "c++app");
139 EXPECT_EQ(info->GetExtraKeyList().size(), 1);
140 EXPECT_EQ(info->GetExtraKeyList()[0], "__DLP_DEBUG_ARG__");
141 EXPECT_EQ(info->GetDefaultOptList().size(), 4);
142 EXPECT_EQ(info->GetDefaultOptList()[0], "--wrapper");
143 EXPECT_EQ(info->GetDefaultOptList()[1], "env");
144 EXPECT_EQ(info->GetDefaultOptList()[2], "OPENSSL_armcap=0");
145 EXPECT_EQ(info->GetDefaultOptList()[3], "--");
148 TEST_F(LaunchpadTest, LauncherInfoTest) {
149 /* Test launcher info file
155 --PADDING_TO_CHANGE_CMDLINE_PADDING_TO_CHANGE_CMDLINE_PADDING_TO_CHANGE_CMDLINE_PADDING_TO_CHANGE_CMDLINE
161 EXTRA_ARG --standalone
164 LauncherInfoInflator inflator;
165 auto list = inflator.Inflate(".");
166 EXPECT_EQ(list.size(), 1);
167 auto info = std::move(list.front());
168 EXPECT_EQ(info->GetName(), "dotnet-launcher");
169 EXPECT_EQ(info->GetExe(), "test_launcher");
170 EXPECT_EQ(info->GetAppTypes().size(), 1);
171 EXPECT_EQ(info->GetAppTypes()[0], "dotnet");
172 EXPECT_EQ(info->GetExtraArgs().size(), 7);
173 EXPECT_EQ(info->GetExtraArgs()[0],
174 "--PADDING_TO_CHANGE_CMDLINE_PADDING_TO_CHANGE_CMDLINE_PADDING_TO_"
175 "CHANGE_CMDLINE_PADDING_TO_CHANGE_CMDLINE");
176 EXPECT_EQ(info->GetExtraArgs()[1], "--profile");
177 EXPECT_EQ(info->GetExtraArgs()[2], "--appType");
178 EXPECT_EQ(info->GetExtraArgs()[3], "dotnet");
179 EXPECT_EQ(info->GetExtraArgs()[4], "TIZEN_UIFW");
180 EXPECT_EQ(info->GetExtraArgs()[5], "ElmSharp");
181 EXPECT_EQ(info->GetExtraArgs()[6], "--standalone");
184 TEST_F(LaunchpadTest, LoaderInfoTest) {
185 /* Test loader info file
188 EXE /usr/bin/launchpad-loader
191 DETECTION_METHOD TIMEOUT|VISIBILITY
193 EXTRA loader_type hw-loader
195 EXTRA_ARRAY_VAL /usr/lib/libappcore-efl.so.1
196 EXTRA_ARRAY_VAL /usr/lib/libappcore-common.so.1
197 EXTRA_ARRAY_VAL /usr/lib/libcapi-appfw-application.so.0
198 EXTRA_ARRAY_VAL /usr/lib/ecore_imf/modules/wayland/v-1.25/module.so
199 EXTRA_ARRAY_VAL /usr/lib/libdali-toolkit.so
200 EXTRA_ARRAY_VAL /usr/lib/libcairo.so.2
201 EXTRA_ARRAY_VAL /usr/lib/libcapi-media-player.so.0
202 EXTRA_ARRAY_VAL /usr/lib/libcapi-media-camera.so.0
203 EXTRA_ARRAY_VAL /usr/lib/ecore_evas/engines/extn/v-1.25/module.so
204 ALTERNATIVE_LOADER common-loader1
208 LoaderInfoInflator inflator;
209 auto list = inflator.Inflate(".");
210 EXPECT_EQ(list.size(), 1);
211 auto info = std::move(list.front());
212 EXPECT_EQ(info->GetName(), "hw-loader1");
213 EXPECT_EQ(info->GetExe(), "/usr/bin/launchpad-loader");
214 EXPECT_EQ(info->GetAppTypes().size(), 2);
215 EXPECT_EQ(info->GetAppTypes()[0], "capp");
216 EXPECT_EQ(info->GetAppTypes()[1], "c++app");
217 EXPECT_EQ(info->GetHwAcc(), "ON");
218 EXPECT_EQ(info->GetDetectionMethod(), LoaderMethod::Timeout |
219 LoaderMethod::Visibility |
220 LoaderMethod::Install);
221 EXPECT_EQ(info->GetTimeoutVal(), 5000);
222 auto& b = info->GetExtra();
223 EXPECT_EQ(b.GetString("loader_type"), "hw-loader");
224 EXPECT_EQ(b.GetString("threads"), "7");
225 auto arr = b.GetStringArray("preload");
226 EXPECT_EQ(arr.size(), 9);
227 EXPECT_EQ(arr[0], "/usr/lib/libappcore-efl.so.1");
228 EXPECT_EQ(arr[1], "/usr/lib/libappcore-common.so.1");
229 EXPECT_EQ(arr[2], "/usr/lib/libcapi-appfw-application.so.0");
230 EXPECT_EQ(arr[3], "/usr/lib/ecore_imf/modules/wayland/v-1.25/module.so");
231 EXPECT_EQ(arr[4], "/usr/lib/libdali-toolkit.so");
232 EXPECT_EQ(arr[5], "/usr/lib/libcairo.so.2");
233 EXPECT_EQ(arr[6], "/usr/lib/libcapi-media-player.so.0");
234 EXPECT_EQ(arr[7], "/usr/lib/libcapi-media-camera.so.0");
235 EXPECT_EQ(arr[8], "/usr/lib/ecore_evas/engines/extn/v-1.25/module.so");