1# Copyright (c) 2024 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/ets_frontend/es2panda/es2abc_config.gni") 15import("//arkcompiler/ets_frontend/ets2panda/ets2abc_config.gni") 16import("//arkcompiler/runtime_core/ark_config.gni") 17import("//arkcompiler/runtime_core/libabckit/abckit_config.gni") 18 19template("create_merge_file") { 20 assert(defined(invoker.input_file), "input_file is required!") 21 assert(defined(invoker.output_file), "output_file is required!") 22 assert(defined(invoker.source_lang), "source_lang is required!") 23 24 extra_dependencies = [] 25 if (defined(invoker.extra_dependencies)) { 26 extra_dependencies += invoker.extra_dependencies 27 } 28 29 action("$target_name") { 30 script = "./../scripts/create_merge_file.sh" 31 32 args = [ 33 rebase_path(target_gen_dir), 34 rebase_path(invoker.input_file), 35 rebase_path(invoker.output_file), 36 invoker.source_lang, 37 ] 38 39 deps = extra_dependencies 40 41 outputs = [ invoker.output_file ] 42 } 43} 44 45clean_scenario_js_from_ets_files = [ 46 "clean_scenarios/c_api/dynamic/add_log/add_log_dynamic", 47 "clean_scenarios/c_api/dynamic/scan_subclasses/scan_subclasses", 48 "clean_scenarios/c_api/dynamic/parameter_check/parameter_check", 49 "clean_scenarios/c_api/dynamic/api_scanner/api_scanner", 50 "clean_scenarios/c_api/dynamic/branch_eliminator/branch_eliminator", 51 "clean_scenarios/c_api/dynamic/add_try_catch/add_try_catch", 52 "clean_scenarios/cpp_api/dynamic/add_log/add_log_dynamic", 53 "clean_scenarios/cpp_api/dynamic/branch_eliminator/branch_eliminator", 54 "clean_scenarios/cpp_api/dynamic/api_scanner/api_scanner", 55 "clean_scenarios/cpp_api/dynamic/add_try_catch/add_try_catch", 56 "clean_scenarios/cpp_api/dynamic/parameter_check/parameter_check", 57 "clean_scenarios/cpp_api/dynamic/scan_subclasses/scan_subclasses", 58] 59 60clean_scenario_ts_files = [ 61 "clean_scenarios/c_api/dynamic/replace_call_site/replace_call_site", 62 "clean_scenarios/c_api/dynamic/router_table/router_table", 63 64 "clean_scenarios/cpp_api/dynamic/replace_call_site/replace_call_site", 65 "clean_scenarios/cpp_api/dynamic/router_table/router_table", 66] 67 68clean_scenario_ets_files = 69 [ "clean_scenarios/c_api/static/add_log/add_log_static" ] 70 71test_js_path = "//arkcompiler/runtime_core/libabckit/tests/" 72 73test_js_files = [ 74 "ut/metadata_core/inspect_api/modules/targets/JS_target", 75 "ut/extensions/js/inspect_api/api_casts/JSapi_casts", 76 "ut/extensions/js/inspect_api/modules/JSmodules_dynamic", 77 "ut/extensions/js/inspect_api/modules/JSmodules_dynamic_external", 78 "ut/extensions/js/inspect_api/enumerators/JSenumerators0_dynamic", 79 "ut/extensions/js/modify_api/modules/JSmodules_dynamic_modify", 80] 81 82test_js_from_ets_files = [ 83 "cpp/tests/cpp_test_dynamic_js", 84 85 "ut/metadata_core/inspect_api/classes/classes_dynamic", 86 "ut/metadata_core/inspect_api/classes/classes_empty_dynamic", 87 "ut/metadata_core/inspect_api/literals/literals_dynamic", 88 "ut/metadata_core/inspect_api/values/values_dynamic", 89 "ut/metadata_core/inspect_api/modules/modules_dynamic", 90 "ut/metadata_core/inspect_api/modules/modules_dynamic_external", 91 "ut/metadata_core/inspect_api/types/types_dynamic", 92 "ut/metadata_core/modify_api/strings/strings_dynamic", 93 "ut/metadata_core/modify_api/literals/literals_dynamic", 94 "ut/metadata_core/modify_api/values/values_dynamic", 95 "ut/metadata_core/modify_api/types/types_dynamic", 96 "ut/metadata_core/inspect_api/files/file_dynamic", 97 "ut/extensions/arkts/modify_api/modules/modules_dynamic_modify", 98 "ut/extensions/arkts/inspect_api/modules/modules_dynamic", 99 "ut/extensions/js/modify_api/super_this/store_super", 100 "ut/extensions/js/modify_api/super_this/load_super", 101 "ut/extensions/js/modify_api/super_this/store_this", 102 "ut/extensions/js/modify_api/super_this/load_this", 103 "ut/extensions/js/modify_api/patch/patch_test", 104 "ut/extensions/js/modify_api/obj/newobj", 105 "ut/extensions/js/modify_api/obj/delobjprop", 106 "ut/extensions/js/modify_api/obj/privateprop", 107 "ut/extensions/js/modify_api/obj/callruntime_private", 108 "ut/extensions/js/modify_api/obj/proto", 109 "ut/extensions/js/modify_api/bigint/load_bigint", 110 "ut/isa/isa_dynamic/load_string/load_string_dynamic", 111 "ut/extensions/js/modify_api/arrays/starrayspread", 112 "ut/extensions/js/modify_api/copy/copyrestargs_test", 113 "ut/extensions/js/modify_api/copy/copy_properties_test", 114 "ut/isa/isa_dynamic/modules/isa_dynamic_modules", 115 "ut/isa/isa_dynamic/objects/objects_dynamic", 116 "ut/isa/isa_dynamic/return/return_dynamic", 117 "ut/isa/isa_dynamic/arithmetic/bininst_dynamic", 118 "ut/isa/isa_dynamic/arithmetic/bininst_logical_dynamic", 119 "ut/isa/isa_dynamic/arithmetic/bininst_shifts_dynamic", 120 "ut/isa/isa_dynamic/arithmetic/unaryinst_dynamic", 121 "ut/isa/isa_dynamic/get_insts/getnextpropname_dynamic", 122 "ut/isa/isa_dynamic/get_insts/getresumemode_dynamic", 123 "ut/isa/isa_dynamic/get_insts/gettemplateobject_dynamic", 124 "ut/isa/isa_dynamic/get_insts/getunmappedargs_dynamic", 125 "ut/isa/isa_dynamic/import/dynamicimport_dynamic", 126 "ut/isa/isa_dynamic/loadstore/emptyobj", 127 "ut/isa/isa_dynamic/loadstore/ld_dynamic", 128 "ut/isa/isa_dynamic/loadstore/stownbyindex", 129 "ut/isa/isa_dynamic/loadstore/stobjbyindex", 130 "ut/isa/isa_dynamic/loadstore/ldobjbyvalue", 131 "ut/isa/isa_dynamic/loadstore/ldobjbyname", 132 "ut/isa/isa_dynamic/loadstore/ldobjbyindex", 133 "ut/isa/isa_dynamic/loadstore/ldglobalvar", 134 "ut/isa/isa_dynamic/loadstore/stglobalvar", 135 "ut/isa/isa_dynamic/loadstore/tryldglobalbyname", 136 "ut/isa/isa_dynamic/loadstore/trystglobalbyname", 137 "ut/isa/isa_dynamic/create_if/create_if_dynamic", 138 "ut/isa/isa_dynamic/create/createobjectwithbuffer_dynamic", 139 "ut/isa/isa_dynamic/create/createdebugger_dynamic", 140 "ut/isa/isa_dynamic/create/createobjectwithexcludedkeys_dynamic", 141 "ut/isa/isa_dynamic/define/defineclasswithbuffer_dynamic", 142 "ut/isa/isa_dynamic/define/definefieldbyname_dynamic", 143 "ut/isa/isa_dynamic/define/definefieldruntime_dynamic", 144 "ut/isa/isa_dynamic/define/definefunc_dynamic", 145 "ut/isa/isa_dynamic/define/definemethod_dynamic", 146 "ut/isa/isa_dynamic/define/definegettersetterbyvalue_dynamic", 147 "ut/isa/isa_dynamic/dyn_call/call_dynamic", 148 "ut/isa/isa_dynamic/dyn_call_this/call_this_dynamic", 149 "ut/isa/isa_dynamic/call_runtime/topropertykey_dynamic", 150 "ut/isa/isa_dynamic/call_runtime/callinit_dynamic", 151 "ut/isa/isa_dynamic/throw/throw_dynamic", 152 "ut/isa/isa_dynamic/instanceof/instanceof_dynamic", 153 "ut/isa/isa_dynamic/isin/isin_dynamic", 154 "ut/isa/isa_dynamic/sendable/ldsendableclass_dynamic", 155 "ut/isa/isa_dynamic/sendable/makesendableclass_dynamic", 156 "ut/isa/isa_dynamic/supercall/supercall_dynamic", 157 "ut/isa/isa_dynamic/supercall/supercallarrow_dynamic", 158 "ut/isa/isa_dynamic/supercall/supercallspread_dynamic", 159 "ut/isa/isa_dynamic/testin/testin_dynamic", 160 "ut/isa/isa_dynamic/generators/creategeneratorobj_dynamic", 161 "ut/isa/isa_dynamic/iterators/createiterresultobj_dynamic", 162 "ut/isa/isa_dynamic/iterators/getiterator_dynamic", 163 "ut/isa/isa_dynamic/iterators/getpropiterator_dynamic", 164 "ut/isa/isa_dynamic/lexenv/lexenv_dynamic", 165 "ut/isa/isa_dynamic/lexenv/poplexenv_dynamic", 166 "ut/isa/isa_dynamic/arrays/create_array_dynamic", 167 "ut/isa/isa_dynamic/async/enter_resolve_reject_dynamic", 168 "ut/isa/isa_dynamic/async/awaituncaught_dynamic", 169 "ut/isa/isa_dynamic/async/asyncgenerator_dynamic", 170 "ut/isa/isa_dynamic/async/asyncgeneratorobj_dynamic", 171 "ut/isa/isa_dynamic/async/asyncuseconcurrent_dynamic", 172 "ut/isa/isa_dynamic/async/asynciterator_dynamic", 173 "ut/isa/isa_dynamic/apply/apply_dynamic", 174 "ut/isa/isa_dynamic/apply/newobjapply_dynamic", 175 "ut/isa/isa_dynamic/immsize/immsize_dynamic", 176 177 "ut/ir_core/graph/graph_dynamic", 178 "ut/ir_core/inst_manipulation/inst_manipulation_dynamic", 179 "ut/ir_core/graph_basic_block/graph_basic_block_dynamic", 180 "ut/ir_core/graph_basic_block/graph_basic_block_simple", 181 "ut/ir_core/basic_blocks/basic_blocks_dynamic", 182 "ut/ir_core/basic_blocks/js_src/create_empty_dynamic", 183 "ut/ir_core/basic_blocks/js_src/visit_succ_dynamic", 184 "ut/ir_core/basic_blocks/js_src/try_catch_blocks_dynamic", 185 "ut/ir_core/get_constant_value/get_constant_value_dynamic", 186 "ut/ir_core/create_constant/create_constant_dynamic", 187 "ut/ir_core/inst_inputs/inst_inputs_dynamic", 188 "ut/ir_core/string/string_dynamic", 189 "ut/ir_core/method/method_dynamic", 190 "ut/ir_core/loops/loop_dynamic", 191 "ut/ir_core/types_api/get_type_dynamic", 192 "ut/ir_core/insert_try_catch/insert_try_catch_dynamic", 193 "ut/ir_core/insert_try_catch/insert_try_catch_dynamic_wrapper", 194 195 "scenarios/add_try_catch/dynamic/add_try_catch", 196 "scenarios/add_log/add_log_dynamic", 197 "scenarios/api_scanner/dynamic/api_scanner", 198 "scenarios/branch_eliminator/dynamic/branch_eliminator", 199 "scenarios/scan_subclasses/dynamic/scan_subclasses", 200 "scenarios/parameter_check/dynamic/parameter_check", 201 202 "internal/ICSlotAllocator/ICSlotAllocator", 203 "internal/implementation_api/abc_dynamic", 204 "internal/mem_manager/abc_dynamic_1", 205 "internal/mem_manager/abc_dynamic_2", 206 207 "wrong_mode_tests/mode_test_dynamic", 208 "wrong_imm_tests/wrong_imm_test_dynamic", 209] 210test_js_from_ets_files += clean_scenario_js_from_ets_files 211 212test_ts_files = [ 213 "cpp/tests/cpp_test_dynamic", 214 215 "scenarios/router_table/dynamic/router_table", 216 "scenarios/replace_call_site/dynamic/replace_call_site", 217 218 "ut/ir_core/catchphi/catchphi_dynamic", 219 220 "ut/ir_core/phi/phi_dynamic", 221 222 "ut/metadata_core/inspect_api/enumerators/enumerators0_dynamic", 223 "ut/metadata_core/inspect_api/modules/targets/TS_target", 224 "ut/metadata_core/inspect_api/methods/methods_dynamic", 225 "ut/metadata_core/inspect_api/annotations/annotations_inspect_dynamic", 226 "ut/metadata_core/inspect_api/namespaces/namespaces_dynamic", 227 228 "ut/extensions/arkts/inspect_api/api_casts/api_casts", 229 "ut/extensions/arkts/inspect_api/namespace/namespace_arkts_dynamic", 230 "ut/extensions/arkts/modify_api/annotations/annotations_dynamic", 231 232 "regression/issue_IB1YEI/issue_IB1YEI", 233 "regression/issue_IB2T4M/issue_IB2T4M", 234] 235test_ts_files += clean_scenario_ts_files 236 237test_ets_files = [ 238 "ut/metadata_core/inspect_api/modules/targets/ArkTS2_target", 239 "ut/metadata_core/inspect_api/classes/classes_static", 240 "ut/metadata_core/inspect_api/classes/classes_empty_static", 241 "ut/metadata_core/inspect_api/methods/methods_static", 242 "ut/metadata_core/inspect_api/methods/native_method", 243 "ut/metadata_core/inspect_api/enumerators/enumerators_static", 244 "ut/metadata_core/inspect_api/files/file_static", 245 "ut/metadata_core/inspect_api/literals/literals_static", 246 "ut/metadata_core/inspect_api/values/values_static", 247 "ut/metadata_core/inspect_api/types/types_static", 248 "ut/metadata_core/modify_api/strings/strings_static", 249 "ut/metadata_core/modify_api/types/types_static", 250 "ut/metadata_core/modify_api/literals/literals_static", 251 "ut/metadata_core/modify_api/values/values_static", 252 253 "ut/isa/isa_static/arithmetic/bininst_imm_static", 254 "ut/isa/isa_static/arithmetic/bininst_logical_static", 255 "ut/isa/isa_static/arithmetic/bininst_logical_imm_static", 256 "ut/isa/isa_static/arithmetic/bininst_shifts_imm_static", 257 "ut/isa/isa_static/arithmetic/bininst_shifts_static", 258 "ut/isa/isa_static/arithmetic/bininst_static", 259 "ut/isa/isa_static/arithmetic/unaryinst_static", 260 "ut/isa/isa_static/arrays/load_array", 261 "ut/isa/isa_static/arrays/load_const_array", 262 "ut/isa/isa_static/arrays/new_array", 263 "ut/isa/isa_static/arrays/store_array", 264 "ut/isa/isa_static/arrays/store_array_wide", 265 "ut/isa/isa_static/arrays/len_array", 266 "ut/isa/isa_static/cast/cast_static", 267 "ut/isa/isa_static/cast/checkcast_static", 268 "ut/isa/isa_static/cast/target_type_static", 269 "ut/isa/isa_static/call/call_static_static", 270 "ut/isa/isa_static/call/call_virtual_static", 271 "ut/isa/isa_static/cmp/create_cmp_static", 272 "ut/isa/isa_static/load_string/load_string_static", 273 "ut/isa/isa_static/load_undefined/load_undefined_static", 274 "ut/isa/isa_static/equals/equals_static", 275 "ut/isa/isa_static/get_opcode/get_opcode_static", 276 "ut/isa/isa_static/is_instance/is_instance_static", 277 "ut/isa/isa_static/is_undefined/is_undefined_static", 278 "ut/isa/isa_static/create_if/create_if_static", 279 "ut/isa/isa_static/objects/objects", 280 "ut/isa/isa_static/throw/throw_static", 281 "ut/isa/isa_static/classes/classes_api", 282 "ut/isa/isa_static/return/return_static", 283 "ut/isa/isa_static/create_nullptr/create_nullptr_static", 284 285 "ut/ir_core/catchphi/catchphi_static", 286 "ut/ir_core/graph/graph_static", 287 "ut/ir_core/inst_manipulation/inst_manipulation_static", 288 "ut/ir_core/basic_blocks/basic_blocks_static", 289 "ut/ir_core/graph_basic_block/graph_basic_block", 290 "ut/ir_core/create_constant/create_constant_static", 291 "ut/ir_core/string/string_static", 292 "ut/ir_core/method/method_static", 293 "ut/ir_core/inst_inputs/inst_inputs_static", 294 "ut/ir_core/types_api/get_type_static", 295 "ut/ir_core/get_constant_value/get_constant_value_static", 296 "ut/ir_core/phi/phi_static", 297 "ut/ir_core/loops/loop_static", 298 "ut/ir_core/insert_try_catch/insert_try_catch_static", 299 "ut/ir_core/graph_verifier/graph_verifier", 300 "ut/extensions/arkts/modify_api/modules/modules_static_modify", 301 302 "internal/implementation_api/abc_static", 303 "internal/mem_manager/abc_static_1", 304 "internal/mem_manager/abc_static_2", 305 306 "wrong_mode_tests/mode_test_static", 307 308 "scenarios/add_log/add_log_static", 309 "scenarios/parameter_check/parameter_check_static", 310 "scenarios/replace_callsite/replace_callsite_static", 311 "scenarios/api_scanner/static/api_scanner_static", 312 "scenarios/static_branch_elimination/static_branch_elimination", 313] 314test_ets_files += clean_scenario_ets_files 315 316module_output_path = "arkcompiler/runtime_core/libabckit" 317 318foreach(file, test_js_files) { 319 test_js = "${test_js_path}${file}.js" 320 test_merge_file = "$target_out_dir/${file}_merge.txt" 321 test_abc = "$target_out_dir/${file}.abc" 322 323 create_merge_file("${file}_merge") { 324 input_file = "$test_js" 325 output_file = "$test_merge_file" 326 source_lang = "js" 327 } 328 es2abc_gen_abc("gen_${file}_abc") { 329 # Only targets in this file can depend on this. 330 extra_visibility = [ ":*" ] 331 extra_dependencies = [ ":${file}_merge" ] 332 src_js = "@" + rebase_path(test_merge_file) 333 dst_file = rebase_path(test_abc) 334 extra_args = [ 335 "--module", 336 "--merge-abc", 337 ] 338 339 in_puts = [ test_js ] 340 out_puts = [ test_abc ] 341 } 342} 343 344foreach(file, test_js_from_ets_files) { 345 test_js = "${test_js_path}${file}.js" 346 test_merge_file = "$target_out_dir/${file}_merge.txt" 347 test_abc = "$target_out_dir/${file}.abc" 348 349 create_merge_file("${file}_merge") { 350 input_file = "$test_js" 351 output_file = "$test_merge_file" 352 source_lang = "ets" 353 } 354 es2abc_gen_abc("gen_${file}_abc") { 355 # Only targets in this file can depend on this. 356 extra_visibility = [ ":*" ] 357 extra_dependencies = [ ":${file}_merge" ] 358 src_js = "@" + rebase_path(test_merge_file) 359 dst_file = rebase_path(test_abc) 360 extra_args = [ 361 "--module", 362 "--merge-abc", 363 ] 364 365 in_puts = [ test_js ] 366 out_puts = [ test_abc ] 367 } 368} 369 370foreach(file, test_ts_files) { 371 test_ts = "${test_js_path}${file}.ts" 372 test_merge_file = "$target_out_dir/${file}_merge.txt" 373 test_abc = "$target_out_dir/${file}.abc" 374 375 create_merge_file("${file}_merge") { 376 input_file = "$test_ts" 377 output_file = "$test_merge_file" 378 source_lang = "ets" 379 } 380 es2abc_gen_abc("gen_${file}_abc") { 381 # Only targets in this file can depend on this. 382 extra_visibility = [ ":*" ] 383 extra_dependencies = [ ":${file}_merge" ] 384 src_js = "@" + rebase_path(test_merge_file) 385 dst_file = rebase_path(test_abc) 386 extra_args = [ 387 "--module", 388 "--merge-abc", 389 "--enable-annotations", 390 ] 391 392 extension = "ts" 393 in_puts = [ test_ts ] 394 out_puts = [ test_abc ] 395 } 396} 397 398foreach(file, test_ets_files) { 399 ets2abc_gen_abc("gen_${file}_abc") { 400 test_ets = "${test_js_path}${file}.sts" 401 test_abc = "$target_out_dir/${file}.abc" 402 403 # Only targets in this file can depend on this. 404 extra_visibility = [ ":*" ] 405 src_ets = rebase_path(test_ets) 406 dst_file = rebase_path(test_abc) 407 408 in_puts = [ test_ets ] 409 out_puts = [ test_abc ] 410 } 411} 412 413template("libabckit_host_unittest_action") { 414 _target_name_ = "${target_name}" 415 416 # unittest for phone running 417 ohos_unittest(_target_name_) { 418 forward_variables_from(invoker, "*") 419 } 420 421 _module_out_path_ = invoker.module_out_path 422 423 # unittest for host running 424 action("${_target_name_}_action") { 425 testonly = true 426 427 defines = [ "HOST_UT" ] 428 429 _host_test_target_ = ":${_target_name_}(${host_toolchain})" 430 _root_out_dir_ = get_label_info(_host_test_target_, "root_out_dir") 431 432 deps = [ _host_test_target_ ] 433 434 script = "$abckit_root/scripts/run_script.sh" 435 436 args = [ 437 "--script=" + rebase_path(_root_out_dir_) + 438 "/tests/unittest/${_module_out_path_}/${_target_name_}", 439 "--ret-code=0", 440 "--env=LD_LIBRARY_PATH=" + rebase_path(_root_out_dir_) + 441 "/arkcompiler/runtime_core:" + rebase_path(_root_out_dir_) + 442 "/arkcompiler/ets_runtime:" + rebase_path(_root_out_dir_) + 443 "/thirdparty/icu:" + rebase_path(_root_out_dir_) + 444 "/thirdparty/zlib:", 445 ] 446 447 if (abckit_with_sanitizers) { 448 args += [ "--env=ASAN_OPTIONS=verify_asan_link_order=0" ] 449 args += 450 [ "--env=LSAN_OPTIONS=suppressions=" + rebase_path("$abckit_root") + 451 "/tests/sanitizers/ignored_leaks.supp" ] 452 } 453 454 print(script, string_join(" ", args)) 455 456 inputs = [ 457 "$_root_out_dir_/tests/unittest/${_module_out_path_}/${_target_name_}", 458 ] 459 outputs = [ "$target_out_dir/${_target_name_}/" ] 460 } 461} 462 463libabckit_host_unittest_action("abckit_mock_gtests") { 464 module_out_path = module_output_path 465 466 sources = [ 467 # mock infrastructure 468 "mock/abckit_api_mock.cpp", 469 "mock/abckit_values_mock.cpp", 470 "mock/arkts_inspect_api_impl_mock.cpp", 471 "mock/arkts_modify_api_impl_mock.cpp", 472 "mock/check_mock.cpp", 473 "mock/graph_api_impl_mock.cpp", 474 "mock/isa_api_dynamic_impl_mock.cpp", 475 "mock/isa_api_static_impl_mock.cpp", 476 "mock/js_inspect_api_impl_mock.cpp", 477 "mock/js_modify_api_impl_mock.cpp", 478 "mock/metadata_inspect_impl_mock.cpp", 479 "mock/metadata_modify_impl_mock.cpp", 480 481 #mock tests 482 "mock/tests/arkts/cpp_api_annotation.cpp", 483 "mock/tests/arkts/cpp_api_annotation_element.cpp", 484 "mock/tests/arkts/cpp_api_annotation_interface.cpp", 485 "mock/tests/arkts/cpp_api_class.cpp", 486 "mock/tests/arkts/cpp_api_function.cpp", 487 "mock/tests/arkts/cpp_api_module.cpp", 488 "mock/tests/arkts/cpp_api_namespace.cpp", 489 "mock/tests/core/cpp_api_annotation.cpp", 490 "mock/tests/core/cpp_api_annotation_element.cpp", 491 "mock/tests/core/cpp_api_annotation_interface.cpp", 492 "mock/tests/core/cpp_api_annotation_interface_field.cpp", 493 "mock/tests/core/cpp_api_class.cpp", 494 "mock/tests/core/cpp_api_export_descriptor.cpp", 495 "mock/tests/core/cpp_api_function.cpp", 496 "mock/tests/core/cpp_api_import_descriptor.cpp", 497 "mock/tests/core/cpp_api_module.cpp", 498 "mock/tests/core/cpp_api_namespace.cpp", 499 "mock/tests/cpp_api_file.cpp", 500 "mock/tests/cpp_api_literal_array.cpp", 501 "mock/tests/cpp_mock_bb.cpp", 502 "mock/tests/cpp_mock_dyn_isa_0.cpp", 503 "mock/tests/cpp_mock_dyn_isa_1.cpp", 504 "mock/tests/cpp_mock_file.cpp", 505 "mock/tests/cpp_mock_graph.cpp", 506 "mock/tests/cpp_mock_instruction.cpp", 507 "mock/tests/cpp_mock_literal.cpp", 508 "mock/tests/cpp_mock_type.cpp", 509 "mock/tests/cpp_mock_value.cpp", 510 ] 511 512 include_dirs = [ 513 "$abckit_root", 514 "$abckit_root/src", 515 ] 516 517 configs = [ "$abckit_root:abckit_mock_config" ] 518 519 deps = [ "$abckit_root/src:libabckit_mock" ] 520} 521 522libabckit_host_unittest_action("abckit_gtests") { 523 module_out_path = module_output_path 524 525 sources = [ 526 "clean_scenarios/c_api/dynamic/add_log/add_log_dynamic_test.cpp", 527 "clean_scenarios/c_api/dynamic/add_try_catch/add_try_catch_test.cpp", 528 "clean_scenarios/c_api/dynamic/api_scanner/api_scanner_test.cpp", 529 "clean_scenarios/c_api/dynamic/branch_eliminator/branch_eliminator_test.cpp", 530 "clean_scenarios/c_api/dynamic/parameter_check/parameter_check_test.cpp", 531 "clean_scenarios/c_api/dynamic/replace_call_site/replace_call_site_test.cpp", 532 "clean_scenarios/c_api/dynamic/router_table/router_table_test.cpp", 533 "clean_scenarios/c_api/dynamic/scan_subclasses/scan_subclasses_test.cpp", 534 "clean_scenarios/c_api/static/add_log/add_log_static_test.cpp", 535 "clean_scenarios/cpp_api/dynamic/add_log/add_log_dynamic_test.cpp", 536 "clean_scenarios/cpp_api/dynamic/add_try_catch/add_try_catch.cpp", 537 "clean_scenarios/cpp_api/dynamic/api_scanner/api_scanner_test.cpp", 538 "clean_scenarios/cpp_api/dynamic/branch_eliminator/branch_eliminator_test.cpp", 539 "clean_scenarios/cpp_api/dynamic/parameter_check/parameter_check_test.cpp", 540 "clean_scenarios/cpp_api/dynamic/replace_call_site/replace_call_site_test.cpp", 541 "clean_scenarios/cpp_api/dynamic/router_table/router_table_test.cpp", 542 "clean_scenarios/cpp_api/dynamic/scan_subclasses/scan_subclasses_test.cpp", 543 "cpp/tests/cpp_test.cpp", 544 "helpers/helpers.cpp", 545 "helpers/helpers_mode.cpp", 546 "helpers/helpers_nullptr.cpp", 547 "helpers/helpers_wrong_ctx.cpp", 548 "helpers/helpers_wrong_imm.cpp", 549 "helpers/visit_helper/visit_helper.cpp", 550 "internal/ICSlotAllocator/ICSlotAllocator.cpp", 551 "internal/implementation_api/abc_stuff.cpp", 552 "internal/implementation_api/graph_stuff.cpp", 553 "internal/mem_manager/several_abc.cpp", 554 "null_args_tests/null_args_tests_ApiImpl_0.cpp", 555 "null_args_tests/null_args_tests_ArktsInspectApiImpl_0.cpp", 556 "null_args_tests/null_args_tests_ArktsModifyApiImpl_0.cpp", 557 "null_args_tests/null_args_tests_GraphApiImpl_0.cpp", 558 "null_args_tests/null_args_tests_InspectApiImpl_0.cpp", 559 "null_args_tests/null_args_tests_IsaApiDynamicImpl_0.cpp", 560 "null_args_tests/null_args_tests_IsaApiDynamicImpl_1.cpp", 561 "null_args_tests/null_args_tests_IsaApiStaticImpl_0.cpp", 562 "null_args_tests/null_args_tests_JsInspectApiImpl_0.cpp", 563 "null_args_tests/null_args_tests_JsModifyApiImpl_0.cpp", 564 "null_args_tests/null_args_tests_ModifyApiImpl_0.cpp", 565 "regression/issue_IB1YEI/c_api/issue_IB1YEI.cpp", 566 "regression/issue_IB1YEI/cpp_api/issue_IB1YEI.cpp", 567 "regression/issue_IB2T4M/c_api/issue_IB2T4M.cpp", 568 "scenarios/add_log/add_log_dynamic_test.cpp", 569 "scenarios/add_log/add_log_static_test.cpp", 570 "scenarios/add_try_catch/dynamic/add_try_catch_test.cpp", 571 "scenarios/api_scanner/dynamic/api_scanner.cpp", 572 "scenarios/api_scanner/dynamic/api_scanner_test.cpp", 573 "scenarios/api_scanner/static/api_scanner_static.cpp", 574 "scenarios/branch_eliminator/dynamic/branch_eliminator.cpp", 575 "scenarios/branch_eliminator/dynamic/branch_eliminator_test.cpp", 576 "scenarios/parameter_check/dynamic/api_modifier.cpp", 577 "scenarios/parameter_check/dynamic/parameter_check_test.cpp", 578 "scenarios/parameter_check/parameter_check_static.cpp", 579 "scenarios/replace_call_site/dynamic/replace_call_site_test.cpp", 580 "scenarios/replace_callsite/replace_callsite_static.cpp", 581 "scenarios/router_table/dynamic/router_table_test.cpp", 582 "scenarios/scan_subclasses/dynamic/scan_subclasses_test.cpp", 583 "scenarios/scan_subclasses/dynamic/subclasses_scanner.cpp", 584 "scenarios/static_branch_elimination/static_branch_elimination.cpp", 585 "ut/extensions/arkts/inspect_api/api_casts/api_casts.cpp", 586 "ut/extensions/arkts/inspect_api/modules/modules_dynamic_test.cpp", 587 "ut/extensions/arkts/inspect_api/namespace/namespace_arkts.cpp", 588 "ut/extensions/arkts/modify_api/annotations/annotations_test.cpp", 589 "ut/extensions/arkts/modify_api/modules/modules_dynamic_modify_test.cpp", 590 "ut/extensions/js/inspect_api/api_casts/api_casts.cpp", 591 "ut/extensions/js/inspect_api/enumerators/enumerators_test.cpp", 592 "ut/extensions/js/inspect_api/modules/modules_dynamic_test.cpp", 593 "ut/extensions/js/modify_api/arrays/array_modify_test.cpp", 594 "ut/extensions/js/modify_api/bigint/load_bigint_test.cpp", 595 "ut/extensions/js/modify_api/copy/copy_modify_test.cpp", 596 "ut/extensions/js/modify_api/modules/modules_dynamic_modify_test.cpp", 597 "ut/extensions/js/modify_api/obj/obj_modify.cpp", 598 "ut/extensions/js/modify_api/patch/patch_modify.cpp", 599 "ut/extensions/js/modify_api/super_this/super_this_modify.cpp", 600 "ut/ir_core/basic_blocks/basic_blocks_dynamic.cpp", 601 "ut/ir_core/basic_blocks/basic_blocks_static.cpp", 602 "ut/ir_core/catchphi/catchphi_dynamic.cpp", 603 "ut/ir_core/catchphi/catchphi_static.cpp", 604 "ut/ir_core/create_constant/create_constant_dynamic.cpp", 605 "ut/ir_core/create_constant/create_constant_static.cpp", 606 "ut/ir_core/get_constant_value/get_constant_value.cpp", 607 "ut/ir_core/graph/graph.cpp", 608 "ut/ir_core/graph_basic_block/graph_basic_block_dynamic.cpp", 609 "ut/ir_core/graph_basic_block/graph_basic_block_static.cpp", 610 "ut/ir_core/graph_verifier/graph_verifier.cpp", 611 "ut/ir_core/insert_try_catch/insert_try_catch_dynamic.cpp", 612 "ut/ir_core/insert_try_catch/insert_try_catch_static.cpp", 613 "ut/ir_core/inst_inputs/inst_inputs_test.cpp", 614 "ut/ir_core/inst_manipulation/inst_manipulation.cpp", 615 "ut/ir_core/loops/loops.cpp", 616 "ut/ir_core/method/method_dynamic.cpp", 617 "ut/ir_core/method/method_static.cpp", 618 "ut/ir_core/phi/phi.cpp", 619 "ut/ir_core/string/string_dynamic.cpp", 620 "ut/ir_core/string/string_static.cpp", 621 "ut/ir_core/types_api/get_type_dynamic.cpp", 622 "ut/ir_core/types_api/get_type_static.cpp", 623 "ut/isa/isa_dynamic/apply/apply_dynamic.cpp", 624 "ut/isa/isa_dynamic/arithmetic/bininst_dynamic.cpp", 625 "ut/isa/isa_dynamic/arithmetic/bininst_logical_dynamic.cpp", 626 "ut/isa/isa_dynamic/arithmetic/bininst_shifts_dynamic.cpp", 627 "ut/isa/isa_dynamic/arithmetic/helpers_arithmetic.cpp", 628 "ut/isa/isa_dynamic/arithmetic/unaryinst_dynamic.cpp", 629 "ut/isa/isa_dynamic/arrays/create_array_dynamic.cpp", 630 "ut/isa/isa_dynamic/async/async_dynamic.cpp", 631 "ut/isa/isa_dynamic/call_runtime/call_runtime_dynamic.cpp", 632 "ut/isa/isa_dynamic/create/createdebugger.cpp", 633 "ut/isa/isa_dynamic/create/createobjectwithbuffer_dynamic.cpp", 634 "ut/isa/isa_dynamic/create/createobjectwithexcludedkeys_dynamic.cpp", 635 "ut/isa/isa_dynamic/create_if/create_if_dynamic.cpp", 636 "ut/isa/isa_dynamic/define/defineclasswithbuffer_dynamic.cpp", 637 "ut/isa/isa_dynamic/define/definefieldbyname_dynamic.cpp", 638 "ut/isa/isa_dynamic/define/definefieldruntime_dynamic.cpp", 639 "ut/isa/isa_dynamic/define/definefunc_dynamic.cpp", 640 "ut/isa/isa_dynamic/define/definegettersetterbyvalue_dynamic.cpp", 641 "ut/isa/isa_dynamic/define/definemethod_dynamic.cpp", 642 "ut/isa/isa_dynamic/dyn_call/call_dynamic.cpp", 643 "ut/isa/isa_dynamic/dyn_call_this/call_this_dynamic.cpp", 644 "ut/isa/isa_dynamic/generators/creategeneratorobj_dynamic.cpp", 645 "ut/isa/isa_dynamic/get_insts/getnextpropname_dynamic.cpp", 646 "ut/isa/isa_dynamic/get_insts/getresumemode_dynamic.cpp", 647 "ut/isa/isa_dynamic/get_insts/gettemplateobject_dynamic.cpp", 648 "ut/isa/isa_dynamic/get_insts/getunmappedargs_dynamic.cpp", 649 "ut/isa/isa_dynamic/immsize/immsize_dynamic.cpp", 650 "ut/isa/isa_dynamic/import/dynamicimport_dynamic.cpp", 651 "ut/isa/isa_dynamic/instanceof/instanceof_dynamic.cpp", 652 "ut/isa/isa_dynamic/isin/isin_dynamic.cpp", 653 "ut/isa/isa_dynamic/iterators/createiterresultobj_dynamic.cpp", 654 "ut/isa/isa_dynamic/iterators/getiterator_dynamic.cpp", 655 "ut/isa/isa_dynamic/iterators/getpropiterator_dynamic.cpp", 656 "ut/isa/isa_dynamic/lexenv/lexenv_dynamic.cpp", 657 "ut/isa/isa_dynamic/load_string/load_string_dynamic.cpp", 658 "ut/isa/isa_dynamic/loadstore/ld_dynamic.cpp", 659 "ut/isa/isa_dynamic/loadstore/loadstore.cpp", 660 "ut/isa/isa_dynamic/modules/isa_dynamic_modules.cpp", 661 "ut/isa/isa_dynamic/objects/objects_dynamic.cpp", 662 "ut/isa/isa_dynamic/return/return_dynamic.cpp", 663 "ut/isa/isa_dynamic/sendable/sendable_dynamic.cpp", 664 "ut/isa/isa_dynamic/supercall/supercall_dynamic.cpp", 665 "ut/isa/isa_dynamic/testin/testin_dynamic.cpp", 666 "ut/isa/isa_dynamic/throw/throw_dynamic.cpp", 667 "ut/isa/isa_static/arithmetic/bininst_imm_static.cpp", 668 "ut/isa/isa_static/arithmetic/bininst_logical_imm_static.cpp", 669 "ut/isa/isa_static/arithmetic/bininst_logical_static.cpp", 670 "ut/isa/isa_static/arithmetic/bininst_shifts_imm_static.cpp", 671 "ut/isa/isa_static/arithmetic/bininst_shifts_static.cpp", 672 "ut/isa/isa_static/arithmetic/bininst_static.cpp", 673 "ut/isa/isa_static/arithmetic/unaryinst_static.cpp", 674 "ut/isa/isa_static/arrays/arrays_static.cpp", 675 "ut/isa/isa_static/call/call_static_static.cpp", 676 "ut/isa/isa_static/call/call_virtual_static.cpp", 677 "ut/isa/isa_static/cast/cast_static.cpp", 678 "ut/isa/isa_static/classes/classes_api.cpp", 679 "ut/isa/isa_static/cmp/create_cmp_static.cpp", 680 "ut/isa/isa_static/create_if/create_if_static.cpp", 681 "ut/isa/isa_static/create_nullptr/create_nullptr_static.cpp", 682 "ut/isa/isa_static/equals/equals_static.cpp", 683 "ut/isa/isa_static/get_opcode/get_opcode_static.cpp", 684 "ut/isa/isa_static/is_instance/is_instance.cpp", 685 "ut/isa/isa_static/is_undefined/is_undefined.cpp", 686 "ut/isa/isa_static/load_string/load_string_static.cpp", 687 "ut/isa/isa_static/load_undefined/load_undefined_static.cpp", 688 "ut/isa/isa_static/objects/objects.cpp", 689 "ut/isa/isa_static/return/return_static.cpp", 690 "ut/isa/isa_static/throw/throw_static.cpp", 691 "ut/metadata_core/inspect_api/annotations/annotations_test.cpp", 692 "ut/metadata_core/inspect_api/classes/classes_test.cpp", 693 "ut/metadata_core/inspect_api/enumerators/enumerators_test.cpp", 694 "ut/metadata_core/inspect_api/files/files_test.cpp", 695 "ut/metadata_core/inspect_api/literals/literals_test.cpp", 696 "ut/metadata_core/inspect_api/methods/methods_test.cpp", 697 "ut/metadata_core/inspect_api/modules/modules_dynamic_test.cpp", 698 "ut/metadata_core/inspect_api/namespaces/namespaces_test.cpp", 699 "ut/metadata_core/inspect_api/strings/strings_test.cpp", 700 "ut/metadata_core/inspect_api/types/types_test.cpp", 701 "ut/metadata_core/inspect_api/values/values_test.cpp", 702 "ut/metadata_core/modify_api/literals/literals_test.cpp", 703 "ut/metadata_core/modify_api/strings/strings_test.cpp", 704 "ut/metadata_core/modify_api/types/types_test.cpp", 705 "ut/metadata_core/modify_api/values/values_test.cpp", 706 707 # "wrong_ctx_tests/wrong_ctx_tests_ArktsInspectApiImpl_0.cpp", 708 # "wrong_ctx_tests/wrong_ctx_tests_ArktsModifyApiImpl_0.cpp", 709 "wrong_ctx_tests/wrong_ctx_tests_GraphApiImpl_0.cpp", 710 "wrong_ctx_tests/wrong_ctx_tests_IsaApiDynamicImpl_0.cpp", 711 "wrong_ctx_tests/wrong_ctx_tests_IsaApiDynamicImpl_1.cpp", 712 "wrong_ctx_tests/wrong_ctx_tests_IsaApiStaticImpl_0.cpp", 713 "wrong_ctx_tests/wrong_ctx_tests_ModifyApiImpl_0.cpp", 714 "wrong_imm_tests/wrong_imm_tests_IsaApiDynamicImpl_0.cpp", 715 "wrong_mode_tests/wrong_mode_tests_IsaApiDynamicImpl_0.cpp", 716 "wrong_mode_tests/wrong_mode_tests_IsaApiDynamicImpl_1.cpp", 717 "wrong_mode_tests/wrong_mode_tests_IsaApiStaticImpl_0.cpp", 718 ] 719 720 include_dirs = [ 721 "$ark_root_dynamic", 722 "$abckit_root", 723 "$abckit_root/include", 724 "$abckit_root/src", 725 "$abckit_root/tests", 726 ] 727 728 configs = [ "$abckit_root:abckit_config" ] 729 730 deps = [ 731 ":abckit_ets_vm_helpers", 732 ":abckit_js_vm_helpers", 733 "$abckit_root/src:libabckit", 734 ] 735 736 foreach(file, test_js_files) { 737 deps += [ ":gen_${file}_abc" ] 738 } 739 740 foreach(file, test_js_from_ets_files) { 741 deps += [ ":gen_${file}_abc" ] 742 } 743 744 foreach(file, test_ts_files) { 745 deps += [ ":gen_${file}_abc" ] 746 } 747 748 foreach(file, test_ets_files) { 749 deps += [ ":gen_${file}_abc" ] 750 } 751 752 if (is_ohos && is_standard_system) { 753 test_abc_dir = "/data/test" 754 } else { 755 test_abc_dir = rebase_path(target_out_dir) 756 } 757 758 test_js_dir = rebase_path(test_js_path) 759 760 defines = [ 761 "ABCKIT_ABC_DIR=\"${test_abc_dir}/\"", 762 "ABCKIT_TEST_DIR=\"${test_js_dir}\"", 763 ] 764} 765 766libabckit_host_unittest_action("abckit_clean_scenarios") { 767 module_out_path = module_output_path 768 769 sources = [ 770 "clean_scenarios/c_api/dynamic/add_log/add_log_dynamic_test.cpp", 771 "clean_scenarios/c_api/dynamic/add_try_catch/add_try_catch_test.cpp", 772 "clean_scenarios/c_api/dynamic/api_scanner/api_scanner_test.cpp", 773 "clean_scenarios/c_api/dynamic/branch_eliminator/branch_eliminator_test.cpp", 774 "clean_scenarios/c_api/dynamic/parameter_check/parameter_check_test.cpp", 775 "clean_scenarios/c_api/dynamic/replace_call_site/replace_call_site_test.cpp", 776 "clean_scenarios/c_api/dynamic/router_table/router_table_test.cpp", 777 "clean_scenarios/c_api/dynamic/scan_subclasses/scan_subclasses_test.cpp", 778 "clean_scenarios/c_api/static/add_log/add_log_static_test.cpp", 779 "clean_scenarios/cpp_api/dynamic/add_log/add_log_dynamic_test.cpp", 780 "clean_scenarios/cpp_api/dynamic/add_try_catch/add_try_catch.cpp", 781 "clean_scenarios/cpp_api/dynamic/api_scanner/api_scanner_test.cpp", 782 "clean_scenarios/cpp_api/dynamic/branch_eliminator/branch_eliminator_test.cpp", 783 "clean_scenarios/cpp_api/dynamic/parameter_check/parameter_check_test.cpp", 784 "clean_scenarios/cpp_api/dynamic/replace_call_site/replace_call_site_test.cpp", 785 "clean_scenarios/cpp_api/dynamic/router_table/router_table_test.cpp", 786 "clean_scenarios/cpp_api/dynamic/scan_subclasses/scan_subclasses_test.cpp", 787 "helpers/helpers.cpp", 788 "helpers/helpers_mode.cpp", 789 "helpers/visit_helper/visit_helper.cpp", 790 ] 791 792 include_dirs = [ 793 "$ark_root_dynamic", 794 "$abckit_root", 795 "$abckit_root/include", 796 "$abckit_root/src", 797 "$abckit_root/tests", 798 ] 799 800 configs = [ "$abckit_root:abckit_config" ] 801 802 deps = [ 803 ":abckit_ets_vm_helpers", 804 ":abckit_js_vm_helpers", 805 "$abckit_root/src:libabckit", 806 ] 807 808 foreach(file, clean_scenario_js_from_ets_files) { 809 deps += [ ":gen_${file}_abc" ] 810 } 811 812 foreach(file, clean_scenario_ts_files) { 813 deps += [ ":gen_${file}_abc" ] 814 } 815 816 foreach(file, clean_scenario_ets_files) { 817 deps += [ ":gen_${file}_abc" ] 818 } 819 820 if (is_ohos && is_standard_system) { 821 test_abc_dir = "/data/test" 822 } else { 823 test_abc_dir = rebase_path(target_out_dir) 824 } 825 826 test_js_dir = rebase_path(test_js_path) 827 828 defines = [ 829 "ABCKIT_ABC_DIR=\"${test_abc_dir}/\"", 830 "ABCKIT_TEST_DIR=\"${test_js_dir}\"", 831 ] 832} 833 834group("abckit_stress_tests_package") { 835 deps = [ 836 "$abckit_root/abckit:abckit(${host_toolchain})", 837 "$abckit_root/tests/stress/abckit_plugin:abckit_stress_plugin(${host_toolchain})", 838 "$ark_root_static/verification/verifier:verifier_bin(${host_toolchain})", 839 ] 840} 841 842group("abckit_stress_tests_apps") { 843 testonly = true 844 if (abckit_enable) { 845 deps = [ 846 "apps:abckit_test_apps_build", 847 "apps:abckit_test_apps_run_stress", 848 ] 849 } 850} 851 852ohos_source_set("abckit_js_vm_helpers") { 853 sources = [ "helpers/helpers_js_runtime.cpp" ] 854 855 deps = [ 856 "$ark_root_dynamic/assembler:libarkassembler", 857 "$js_root:libark_jsruntime_test_set", 858 ] 859 860 include_dirs = [ 861 "$ark_root_dynamic", 862 "$abckit_root/src", 863 ] 864 865 output_extension = "so" 866 part_name = "runtime_core" 867 subsystem_name = "arkcompiler" 868} 869 870ohos_source_set("abckit_ets_vm_helpers") { 871 sources = [ "helpers/helpers_ets_runtime.cpp" ] 872 873 include_dirs = [ 874 "$ark_root_dynamic", 875 "$abckit_root/src", 876 ] 877 878 etsstdlib = 879 rebase_path(get_label_info("$ark_root_static/plugins/ets:etsstdlib", 880 "target_gen_dir")) + "/etsstdlib.abc" 881 defines = [ "ABCKIT_ETS_STD_LIB=\"${etsstdlib}\"" ] 882 883 deps = [ 884 "$ark_root_static/plugins/ets:etsstdlib", 885 "$ark_root_static/runtime:libarkruntime", 886 ] 887 888 output_extension = "so" 889 part_name = "runtime_core" 890 subsystem_name = "arkcompiler" 891} 892