• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2023 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6#     http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14import("//arkcompiler/runtime_core/ark_config.gni")
15import("$ark_root/tests/test_helper.gni")
16import("$build_root/config/components/ets_frontend/es2abc_config.gni")
17
18disasm_test_configs = [
19  "$ark_root:ark_config",
20  "$ark_root/libpandabase:arkbase_public_config",
21  "$ark_root/libpandafile:arkfile_public_config",
22]
23
24disasm_test_deps = [
25  "$ark_root/disassembler:arkdisassembler",
26  "$ark_root/libpandabase:libarkbase_static",
27  "$ark_root/libpandafile:libarkfile_static",
28]
29
30disasm_column_test_js_files = [
31  "column-number1",
32  "column-number2",
33  "column-number3",
34  "column-number4",
35  "column-number5",
36  "column-number6",
37  "line-number1",
38  "line-number2",
39  "line-number3",
40  "line-number4",
41  "line-number5",
42]
43
44disasm_line_release_test_ts_files = [ "line_number_release" ]
45
46disasm_test_js_files = [
47  "slot-number-annotation",
48  "script-string1",
49  "script-string2",
50]
51
52test_js_path = "//arkcompiler/runtime_core/disassembler/tests/js/"
53
54foreach(file, disasm_column_test_js_files) {
55  es2abc_gen_abc("gen_${file}_abc") {
56    test_js = "${test_js_path}${file}.js"
57    test_abc = "$target_out_dir/${file}.abc"
58    src_js = rebase_path(test_js)
59    dst_file = rebase_path(test_abc)
60    extra_args = [
61      "--debug",
62      "--module",
63    ]
64    in_puts = [ test_js ]
65    out_puts = [ test_abc ]
66  }
67}
68
69test_ts_path = "//arkcompiler/runtime_core/disassembler/tests/ts/"
70
71foreach(file, disasm_line_release_test_ts_files) {
72  es2abc_gen_abc("gen_${file}_abc") {
73    test_ts = "${test_ts_path}${file}.ts"
74    test_abc = "$target_out_dir/${file}.abc"
75    src_js = rebase_path(test_ts)
76    dst_file = rebase_path(test_abc)
77    extra_args = [ "--module" ]
78    in_puts = [ test_ts ]
79    out_puts = [ test_abc ]
80  }
81}
82
83disasm_annotation_test_files = [
84  "declaration-3d-array-boolean",
85  "declaration-3d-array-enum-number",
86  "declaration-3d-array-enum-string",
87  "declaration-3d-array-number",
88  "declaration-3d-array-string",
89  "declaration-array-boolean",
90  "declaration-array-enum-number",
91  "declaration-array-enum-string",
92  "declaration-array-number",
93  "declaration-array-string",
94  "declaration-boolean",
95  "declaration-combination",
96  "declaration-empty",
97  "declaration-enum-number",
98  "declaration-enum-string",
99  "declaration-number",
100  "declaration-string",
101  "declaration-usage-3d-array-boolean",
102  "declaration-usage-3d-array-enum-number",
103  "declaration-usage-3d-array-enum-string",
104  "declaration-usage-3d-array-number",
105  "declaration-usage-3d-array-string",
106  "declaration-usage-array-boolean",
107  "declaration-usage-array-enum-number",
108  "declaration-usage-array-enum-string",
109  "declaration-usage-array-number",
110  "declaration-usage-array-string",
111  "declaration-usage-boolean",
112  "declaration-usage-combination",
113  "declaration-usage-empty",
114  "declaration-usage-enum-number",
115  "declaration-usage-enum-string",
116  "declaration-usage-number",
117  "declaration-usage-string",
118  "export",
119  "import-qualified",
120  "import-unqualified",
121  "multiple-annotations",
122]
123
124test_annotation_path =
125    "//arkcompiler/runtime_core/disassembler/tests/annotations/"
126
127foreach(file, disasm_annotation_test_files) {
128  es2abc_gen_abc("gen_${file}_abc") {
129    test_ts = "${test_annotation_path}${file}.ts"
130    test_abc = "$target_out_dir/${file}.abc"
131    src_js = rebase_path(test_ts)
132    dst_file = rebase_path(test_abc)
133    extra_args = [
134      "--enable-annotations",
135      "--module",
136      "--merge-abc",
137    ]
138    in_puts = [ test_ts ]
139    out_puts = [ test_abc ]
140  }
141}
142
143disasm_module_test_js_files = [
144  "module-requests-annotation-import",
145  "module-regular-import",
146  "module-namespace-import",
147  "module-local-export",
148  "module-indirect-export",
149  "module-start-export",
150  "module-regular-import-local-export",
151]
152
153module_test_js_path = "//arkcompiler/runtime_core/disassembler/tests/module/"
154
155foreach(file, disasm_module_test_js_files) {
156  es2abc_gen_abc("gen_${file}_abc") {
157    test_js = "${module_test_js_path}${file}.js"
158    test_abc = "$target_out_dir/${file}.abc"
159    src_js = rebase_path(test_js)
160
161    dst_file = rebase_path(test_abc)
162    extra_args = [
163      "--module",
164      "--merge-abc",
165    ]
166    in_puts = [ test_js ]
167    out_puts = [ test_abc ]
168  }
169}
170
171foreach(file, disasm_test_js_files) {
172  es2abc_gen_abc("gen_${file}_abc") {
173    test_js = "${test_js_path}${file}.js"
174    test_abc = "$target_out_dir/${file}.abc"
175    src_js = rebase_path(test_js)
176
177    dst_file = rebase_path(test_abc)
178    in_puts = [ test_js ]
179    out_puts = [ test_abc ]
180  }
181}
182
183sourceLang_file = "sourceLang"
184action("gen_filesinfo_action") {
185  script = "handle_fileinfo.py"
186
187  inputs = [ "${sourceLang_file}/filesInfo.txt" ]
188  outputs = [ "${target_out_dir}/${sourceLang_file}/filesInfo.txt" ]
189  args = [
190    rebase_path("${sourceLang_file}/filesInfo.txt"),
191    rebase_path("${target_out_dir}/${sourceLang_file}/filesInfo.txt"),
192    rebase_path("./"),
193  ]
194}
195
196es2abc_gen_abc("gen_${sourceLang_file}_abc") {
197  test_abc = "$target_out_dir/${sourceLang_file}.abc"
198  fileinfo_path =
199      rebase_path("${target_out_dir}/${sourceLang_file}/filesInfo.txt")
200  src_js = "@${fileinfo_path}"
201  dst_file = rebase_path(test_abc)
202  extra_args = [
203    "--module",
204    "--merge-abc",
205    "--enable-annotations",
206  ]
207  out_puts = [ test_abc ]
208}
209
210disasm_include_dirs = [
211  "$ark_root/disassembler",
212  "$ark_root/assembler",
213  "$target_gen_dir",
214  "$target_gen_dir/../",
215  "$target_gen_dir/../../assembler",
216]
217
218script_sources = [
219  "disassembler_column_number_test.cpp",
220  "disassembler_get_file_name_test.cpp",
221  "disassembler_line_number_test.cpp",
222  "disassembler_source_lang_test.cpp",
223  "disassembler_string_test.cpp",
224  "disassembler_system_annotations_test.cpp",
225]
226
227module_sources = [
228  "disassembler_module_literal_test.cpp",
229  "disassembler_system_annotations_test.cpp",
230]
231
232disasm_module_test_action_files = [
233  "module-requests-annotation-import",
234  "module-regular-import",
235  "module-namespace-import",
236  "module-local-export",
237  "module-indirect-export",
238  "module-start-export",
239  "module-regular-import-local-export",
240  "slot-number-annotation",
241]
242
243host_unittest_action("DisasmModuleTest") {
244  module_out_path = module_output_path
245  sources = module_sources
246  include_dirs = disasm_include_dirs
247  configs = disasm_test_configs
248  external_deps = [ sdk_libc_secshared_dep ]
249  deps = disasm_test_deps
250  test_abc_dir = rebase_path(target_out_dir)
251  defines = [ "GRAPH_TEST_ABC_DIR=\"${test_abc_dir}/\"" ]
252
253  foreach(file, disasm_module_test_action_files) {
254    deps += [ ":gen_${file}_abc" ]
255  }
256}
257
258disasm_debug_script_test_action_files = [
259  "column-number1",
260  "column-number2",
261  "column-number3",
262  "column-number4",
263  "column-number5",
264  "column-number6",
265  "line-number1",
266  "line-number2",
267  "line-number3",
268  "line-number4",
269  "line-number5",
270  "module-requests-annotation-import",
271  "script-string1",
272  "script-string2",
273  "slot-number-annotation",
274]
275
276host_unittest_action("DisasmDebugTest") {
277  module_out_path = module_output_path
278  sources = script_sources
279  include_dirs = disasm_include_dirs
280  configs = disasm_test_configs
281  external_deps = [ sdk_libc_secshared_dep ]
282  deps = disasm_test_deps
283  test_abc_dir = rebase_path(target_out_dir)
284  defines = [ "GRAPH_TEST_ABC_DIR=\"${test_abc_dir}/\"" ]
285
286  foreach(file, disasm_debug_script_test_action_files) {
287    deps += [ ":gen_${file}_abc" ]
288  }
289}
290
291host_unittest_action("DisasmReleaseTest") {
292  module_out_path = module_output_path
293  sources = [ "disassembler_line_number_release_test.cpp" ]
294  include_dirs = disasm_include_dirs
295  configs = disasm_test_configs
296  external_deps = [ sdk_libc_secshared_dep ]
297  deps = disasm_test_deps
298  test_abc_dir = rebase_path(target_out_dir)
299  defines = [ "GRAPH_TEST_ABC_DIR=\"${test_abc_dir}/\"" ]
300
301  foreach(file, disasm_line_release_test_ts_files) {
302    deps += [ ":gen_${file}_abc" ]
303  }
304}
305
306annotations_sources = [ "disassembler_user_annotations_test.cpp" ]
307
308host_unittest_action("DisasmUserAnnotationsTest") {
309  module_out_path = module_output_path
310  sources = annotations_sources
311  include_dirs = disasm_include_dirs
312  configs = disasm_test_configs
313  external_deps = [ sdk_libc_secshared_dep ]
314  deps = disasm_test_deps
315  test_abc_dir = rebase_path(target_out_dir)
316  defines = [ "GRAPH_TEST_ABC_DIR=\"${test_abc_dir}/\"" ]
317
318  foreach(file, disasm_annotation_test_files) {
319    deps += [ ":gen_${file}_abc" ]
320  }
321}
322
323host_unittest_action("DisasmScriptTest") {
324  module_out_path = module_output_path
325  sources = script_sources
326  include_dirs = disasm_include_dirs
327  configs = disasm_test_configs
328  external_deps = [ sdk_libc_secshared_dep ]
329  deps = disasm_test_deps
330  test_abc_dir = rebase_path(target_out_dir)
331  defines = [ "GRAPH_TEST_ABC_DIR=\"${test_abc_dir}/\"" ]
332
333  foreach(file, disasm_debug_script_test_action_files) {
334    deps += [ ":gen_${file}_abc" ]
335  }
336}
337
338host_unittest_action("DisasmImmTest") {
339  module_out_path = module_output_path
340  sources = [ "disassembler_imm_tests.cpp" ]
341  include_dirs = disasm_include_dirs
342  configs = disasm_test_configs
343  external_deps = [ sdk_libc_secshared_dep ]
344  deps = disasm_test_deps
345}
346
347host_unittest_action("DisasmSourceLangTest") {
348  module_out_path = module_output_path
349  sources = [ "disassembler_source_lang_test.cpp" ]
350  include_dirs = disasm_include_dirs
351  configs = disasm_test_configs
352  external_deps = [ sdk_libc_secshared_dep ]
353  deps = disasm_test_deps
354  test_abc_dir = rebase_path(target_out_dir)
355  defines = [ "GRAPH_TEST_ABC_DIR=\"${test_abc_dir}/\"" ]
356  deps += [
357    ":gen_${sourceLang_file}_abc",
358    ":gen_filesinfo_action",
359  ]
360}
361
362group("host_unittest") {
363  testonly = true
364  deps = [
365    ":DisasmDebugTestAction",
366    ":DisasmImmTestAction",
367    ":DisasmModuleTestAction",
368    ":DisasmReleaseTestAction",
369    ":DisasmScriptTestAction",
370    ":DisasmSourceLangTestAction",
371    ":DisasmUserAnnotationsTest",
372  ]
373}
374