# Copyright (c) 2022 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import("//arkcompiler/ets_runtime/js_runtime_config.gni") import("//arkcompiler/ets_runtime/test/test_helper.gni") test_js_path = "//arkcompiler/ets_runtime/ecmascript/jspandafile/tests/quickfix/single_file/" test_js_files = [ "base/index", "patch/index", ] foreach(file, test_js_files) { es2abc_gen_abc("gen_${file}_abc") { test_js = "${test_js_path}${file}.js" test_abc = "$target_out_dir/single_file/${file}.abc" # Only targets in this file can depend on this. extra_visibility = [ ":*" ] src_js = rebase_path(test_js) dst_file = rebase_path(test_abc) extra_args = [ "--module", "--merge-abc", ] in_puts = [ test_js ] out_puts = [ test_abc ] } } test_multi_files = [ "quickfix/multi_file/base/index.js", "quickfix/multi_file/base/module.js", "quickfix/multi_file/patch/index.js", "quickfix/multi_file/patch/module.js", ] _test_js_file_name_ = [ "base", "patch", ] _merge_file_raw_ = "//arkcompiler/ets_runtime/ecmascript/jspandafile/tests/quickfix/multi_file/merge.txt" foreach(filename, _test_js_file_name_) { merge_file = "$target_out_dir/multi_file/${filename}.txt" merge_file_prefix = "//arkcompiler/ets_runtime/ecmascript/jspandafile/tests/quickfix/multi_file/${filename}/" action("gen_${filename}_merge_file") { script = "//arkcompiler/ets_runtime/test/quickfix/generate_merge_file.py" args = [ "--input", rebase_path(_merge_file_raw_), "--output", rebase_path(merge_file), "--prefix", rebase_path(merge_file_prefix), ] inputs = [ _merge_file_raw_ ] outputs = [ merge_file ] } abc_path = "$target_out_dir/multi_file/${filename}/merge.abc" es2abc_gen_abc("gen_${filename}_abc") { extra_visibility = [ ":*" ] # Only targets in this file can depend on this. extra_dependencies = [ ":gen_${filename}_merge_file" ] src_js = "@" + rebase_path(merge_file) dst_file = rebase_path(abc_path) extra_args = [ "--module", "--merge-abc", ] in_puts = test_multi_files out_puts = [ abc_path ] } } module_output_path = "arkcompiler/ets_runtime" host_unittest_action("JSPandaFileTest") { module_out_path = module_output_path sources = [ # test file "js_pandafile_executor_test.cpp", "js_pandafile_manager_test.cpp", "js_pandafile_test.cpp", "panda_file_translator_test.cpp", "quick_fix_test.cpp", ] configs = [ "//arkcompiler/ets_runtime:ecma_test_config", "$ark_root/assembler:arkassembler_public_config", "$ark_root/libpandafile:arkfile_public_config", ] deps = [ "$ark_third_party_root/icu/icu4c:shared_icui18n", "$ark_third_party_root/icu/icu4c:shared_icuuc", "//arkcompiler/ets_runtime:libark_jsruntime_test", "//arkcompiler/runtime_core/assembler:libarkassembler_static", sdk_libc_secshared_dep, ] foreach(file, test_js_files) { deps += [ ":gen_${file}_abc" ] } deps += [ ":gen_base_abc", ":gen_patch_abc", ] if (is_ohos && is_standard_system) { test_abc_dir = "/data/test" } else { test_abc_dir = rebase_path(target_out_dir) } defines = [ "QUICKFIX_ABC_PATH=\"${test_abc_dir}/\"" ] # hiviewdfx libraries external_deps = hiviewdfx_ext_deps deps += hiviewdfx_deps } group("unittest") { testonly = true # deps file deps = [ ":JSPandaFileTest" ] } group("host_unittest") { testonly = true # deps file deps = [ ":JSPandaFileTestAction" ] }