1570af302Sopenharmony_ci# Copyright (c) 2022 Huawei Device Co., Ltd.
2570af302Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
3570af302Sopenharmony_ci# you may not use this file except in compliance with the License.
4570af302Sopenharmony_ci# You may obtain a copy of the License at
5570af302Sopenharmony_ci#
6570af302Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
7570af302Sopenharmony_ci#
8570af302Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
9570af302Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
10570af302Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11570af302Sopenharmony_ci# See the License for the specific language governing permissions and
12570af302Sopenharmony_ci# limitations under the License.
13570af302Sopenharmony_ci
14570af302Sopenharmony_ciimport("../../../test_template.gni")
15570af302Sopenharmony_ci
16570af302Sopenharmony_cigroup("dlns_test") {
17570af302Sopenharmony_ci  testonly = true
18570af302Sopenharmony_ci  deps = [
19570af302Sopenharmony_ci    ":dlns_dlopen_ext_test",
20570af302Sopenharmony_ci    ":dlns_dlopen_test",
21570af302Sopenharmony_ci    ":dlns_dlsym_dep_a",
22570af302Sopenharmony_ci    ":dlns_dlsym_test",
23570af302Sopenharmony_ci    ":dlns_inherit_test",
24570af302Sopenharmony_ci    ":dlns_separated_test",
25570af302Sopenharmony_ci    ":dlns_set_fun_test",
26570af302Sopenharmony_ci    ":dlns_special_scene_test",
27570af302Sopenharmony_ci    ":dlopen_fill_random",
28570af302Sopenharmony_ci    ":dlopen_hash_sysv",
29570af302Sopenharmony_ci  ]
30570af302Sopenharmony_ci}
31570af302Sopenharmony_ci
32570af302Sopenharmony_ciohos_executable("dlns_dlopen_test") {
33570af302Sopenharmony_ci  subsystem_name = "musl"
34570af302Sopenharmony_ci  part_name = "libc-test"
35570af302Sopenharmony_ci  include_dirs = [
36570af302Sopenharmony_ci    "../common",
37570af302Sopenharmony_ci    "//third_party/musl/porting/linux/user/include",
38570af302Sopenharmony_ci    "//third_party/musl/libc-test/src/common",
39570af302Sopenharmony_ci  ]
40570af302Sopenharmony_ci  if (musl_arch == "arm") {
41570af302Sopenharmony_ci    defines = [ "MUSL_ARM" ]
42570af302Sopenharmony_ci  }
43570af302Sopenharmony_ci  sources = [ "dlns_dlopen.c" ]
44570af302Sopenharmony_ci  configs = [ "//third_party/musl/libc-test/src/common:config_runtest" ]
45570af302Sopenharmony_ci
46570af302Sopenharmony_ci  ldflags = [ "-Wl,-rpath=/data/tests/libc-test/src/" ]
47570af302Sopenharmony_ci}
48570af302Sopenharmony_ci
49570af302Sopenharmony_ciohos_executable("dlns_set_fun_test") {
50570af302Sopenharmony_ci  subsystem_name = "musl"
51570af302Sopenharmony_ci  part_name = "libc-test"
52570af302Sopenharmony_ci  include_dirs = [
53570af302Sopenharmony_ci    "../common",
54570af302Sopenharmony_ci    "//third_party/musl/porting/linux/user/include",
55570af302Sopenharmony_ci    "//third_party/musl/libc-test/src/common",
56570af302Sopenharmony_ci  ]
57570af302Sopenharmony_ci
58570af302Sopenharmony_ci  sources = [ "dlns_set_fun.c" ]
59570af302Sopenharmony_ci  configs = [ "//third_party/musl/libc-test/src/common:config_runtest" ]
60570af302Sopenharmony_ci  if (!musl_unit_test_flag) {
61570af302Sopenharmony_ci    libs = [ "${musl_lib_dir}/libc.a" ]
62570af302Sopenharmony_ci    libs += [ "${musl_lib_dir}/libc_ldso.a" ]
63570af302Sopenharmony_ci  }
64570af302Sopenharmony_ci}
65570af302Sopenharmony_ci
66570af302Sopenharmony_ciohos_executable("dlns_inherit_test") {
67570af302Sopenharmony_ci  subsystem_name = "musl"
68570af302Sopenharmony_ci  part_name = "libc-test"
69570af302Sopenharmony_ci  include_dirs = [
70570af302Sopenharmony_ci    "../common",
71570af302Sopenharmony_ci    "//third_party/musl/porting/linux/user/include",
72570af302Sopenharmony_ci    "//third_party/musl/libc-test/src/common",
73570af302Sopenharmony_ci  ]
74570af302Sopenharmony_ci
75570af302Sopenharmony_ci  sources = [ "dlns_inherit.c" ]
76570af302Sopenharmony_ci  configs = [ "//third_party/musl/libc-test/src/common:config_runtest" ]
77570af302Sopenharmony_ci  if (!musl_unit_test_flag) {
78570af302Sopenharmony_ci    libs = [ "${musl_lib_dir}/libc.a" ]
79570af302Sopenharmony_ci    libs += [ "${musl_lib_dir}/libc_ldso.a" ]
80570af302Sopenharmony_ci  }
81570af302Sopenharmony_ci}
82570af302Sopenharmony_ci
83570af302Sopenharmony_ciohos_executable("dlns_separated_test") {
84570af302Sopenharmony_ci  subsystem_name = "musl"
85570af302Sopenharmony_ci  part_name = "libc-test"
86570af302Sopenharmony_ci  include_dirs = [
87570af302Sopenharmony_ci    "../common",
88570af302Sopenharmony_ci    "//third_party/musl/porting/linux/user/include",
89570af302Sopenharmony_ci    "//third_party/musl/libc-test/src/common",
90570af302Sopenharmony_ci  ]
91570af302Sopenharmony_ci
92570af302Sopenharmony_ci  sources = [ "dlns_separated.c" ]
93570af302Sopenharmony_ci  configs = [ "//third_party/musl/libc-test/src/common:config_runtest" ]
94570af302Sopenharmony_ci  if (!musl_unit_test_flag) {
95570af302Sopenharmony_ci    libs = [ "${musl_lib_dir}/libc.a" ]
96570af302Sopenharmony_ci    libs += [ "${musl_lib_dir}/libc_ldso.a" ]
97570af302Sopenharmony_ci  }
98570af302Sopenharmony_ci}
99570af302Sopenharmony_ci
100570af302Sopenharmony_ciohos_executable("dlns_special_scene_test") {
101570af302Sopenharmony_ci  subsystem_name = "musl"
102570af302Sopenharmony_ci  part_name = "libc-test"
103570af302Sopenharmony_ci  include_dirs = [
104570af302Sopenharmony_ci    "../common",
105570af302Sopenharmony_ci    "//third_party/musl/porting/linux/user/include",
106570af302Sopenharmony_ci    "//third_party/musl/libc-test/src/common",
107570af302Sopenharmony_ci  ]
108570af302Sopenharmony_ci
109570af302Sopenharmony_ci  sources = [ "dlns_special_scene.c" ]
110570af302Sopenharmony_ci  configs = [ "//third_party/musl/libc-test/src/common:config_runtest" ]
111570af302Sopenharmony_ci}
112570af302Sopenharmony_ci
113570af302Sopenharmony_ciohos_executable("dlns_dlsym_test") {
114570af302Sopenharmony_ci  subsystem_name = "musl"
115570af302Sopenharmony_ci  part_name = "libc-test"
116570af302Sopenharmony_ci  include_dirs = [
117570af302Sopenharmony_ci    "../common",
118570af302Sopenharmony_ci    "//third_party/musl/porting/linux/user/include",
119570af302Sopenharmony_ci    "//third_party/musl/libc-test/src/common",
120570af302Sopenharmony_ci  ]
121570af302Sopenharmony_ci
122570af302Sopenharmony_ci  sources = [ "dlns_dlsym.c" ]
123570af302Sopenharmony_ci  configs = [ "//third_party/musl/libc-test/src/common:config_runtest" ]
124570af302Sopenharmony_ci}
125570af302Sopenharmony_ci
126570af302Sopenharmony_ciohos_executable("dlns_dlopen_ext_test") {
127570af302Sopenharmony_ci  subsystem_name = "musl"
128570af302Sopenharmony_ci  part_name = "libc-test"
129570af302Sopenharmony_ci  include_dirs = [ "../common" ]
130570af302Sopenharmony_ci
131570af302Sopenharmony_ci  sources = [ "dlns_dlopen_ext.c" ]
132570af302Sopenharmony_ci  configs = [ "//third_party/musl/libc-test/src/common:config_runtest" ]
133570af302Sopenharmony_ci}
134570af302Sopenharmony_ci
135570af302Sopenharmony_ciohos_shared_library("dlns_dlsym_dep_c") {
136570af302Sopenharmony_ci  include_dirs = [ "." ]
137570af302Sopenharmony_ci
138570af302Sopenharmony_ci  sources = [ "dlns_dlsym_dep_c.c" ]
139570af302Sopenharmony_ci
140570af302Sopenharmony_ci  output_name = "dlns_dlsym_dep_c"
141570af302Sopenharmony_ci
142570af302Sopenharmony_ci  output_extension = "so"
143570af302Sopenharmony_ci
144570af302Sopenharmony_ci  subsystem_name = "musl"
145570af302Sopenharmony_ci  part_name = "libc-test-lib"
146570af302Sopenharmony_ci}
147570af302Sopenharmony_ci
148570af302Sopenharmony_ciohos_shared_library("dlns_dlsym_dep_b") {
149570af302Sopenharmony_ci  include_dirs = [ "." ]
150570af302Sopenharmony_ci
151570af302Sopenharmony_ci  sources = [ "dlns_dlsym_dep_b.c" ]
152570af302Sopenharmony_ci
153570af302Sopenharmony_ci  output_name = "dlns_dlsym_dep_b"
154570af302Sopenharmony_ci
155570af302Sopenharmony_ci  output_extension = "so"
156570af302Sopenharmony_ci
157570af302Sopenharmony_ci  deps = [ ":dlns_dlsym_dep_c" ]
158570af302Sopenharmony_ci
159570af302Sopenharmony_ci  subsystem_name = "musl"
160570af302Sopenharmony_ci  part_name = "libc-test-lib"
161570af302Sopenharmony_ci}
162570af302Sopenharmony_ci
163570af302Sopenharmony_ciohos_shared_library("dlns_dlsym_dep_a") {
164570af302Sopenharmony_ci  include_dirs = [ "." ]
165570af302Sopenharmony_ci
166570af302Sopenharmony_ci  sources = [ "dlns_dlsym_dep_a.c" ]
167570af302Sopenharmony_ci
168570af302Sopenharmony_ci  output_name = "dlns_dlsym_dep_a"
169570af302Sopenharmony_ci
170570af302Sopenharmony_ci  output_extension = "so"
171570af302Sopenharmony_ci
172570af302Sopenharmony_ci  deps = [ ":dlns_dlsym_dep_b" ]
173570af302Sopenharmony_ci
174570af302Sopenharmony_ci  subsystem_name = "musl"
175570af302Sopenharmony_ci  part_name = "libc-test-lib"
176570af302Sopenharmony_ci}
177570af302Sopenharmony_ci
178570af302Sopenharmony_ciohos_shared_library("dlopen_hash_sysv") {
179570af302Sopenharmony_ci  include_dirs = [ "." ]
180570af302Sopenharmony_ci
181570af302Sopenharmony_ci  sources = [ "dlns_dlsym_dep_c.c" ]
182570af302Sopenharmony_ci
183570af302Sopenharmony_ci  output_name = "dlopen_hash_sysv"
184570af302Sopenharmony_ci
185570af302Sopenharmony_ci  output_extension = "so"
186570af302Sopenharmony_ci
187570af302Sopenharmony_ci  subsystem_name = "musl"
188570af302Sopenharmony_ci  part_name = "libc-test-lib"
189570af302Sopenharmony_ci
190570af302Sopenharmony_ci  ldflags = [ "-Wl,--hash-style=sysv" ]
191570af302Sopenharmony_ci}
192570af302Sopenharmony_ci
193570af302Sopenharmony_ciohos_shared_library("dlopen_fill_random") {
194570af302Sopenharmony_ci  include_dirs = [ "." ]
195570af302Sopenharmony_ci
196570af302Sopenharmony_ci  sources = [ "dlns_dlsym_dep_c.c" ]
197570af302Sopenharmony_ci
198570af302Sopenharmony_ci  stack_protector_ret = true
199570af302Sopenharmony_ci
200570af302Sopenharmony_ci  output_name = "dlopen_fill_random"
201570af302Sopenharmony_ci
202570af302Sopenharmony_ci  output_extension = "so"
203570af302Sopenharmony_ci
204570af302Sopenharmony_ci  subsystem_name = "musl"
205570af302Sopenharmony_ci  part_name = "libc-test-lib"
206570af302Sopenharmony_ci}
207