# Copyright (c) 2021 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_frontend/es2panda/es2abc_config.gni") import("$build_root/test.gni") import("../toolchain.gni") if (is_standard_system || ark_standalone_build) { _icu_path_ = "thirdparty/icu" } else { _icu_path_ = "global/i18n" } template("host_unittest_action") { _target_name_ = "${target_name}" # unittest for running on OpenHarmony device ohos_unittest(_target_name_) { resource_config_file = "//arkcompiler/toolchain/test/resource/tooling/ohos_test.xml" forward_variables_from(invoker, "*") } _module_out_path_ = invoker.module_out_path # unittest for running on host action("${_target_name_}ActionWithoutQemu") { testonly = true _host_test_target_ = ":${_target_name_}(${host_toolchain})" _root_out_dir_ = get_label_info(_host_test_target_, "root_out_dir") deps = [ _host_test_target_ ] script = "//arkcompiler/ets_runtime/script/run_ark_executable.py" args = [ "--script-file", rebase_path(_root_out_dir_) + "/tests/unittest/${_module_out_path_}/${_target_name_}", "--expect-output", "0", "--env-path", rebase_path(_root_out_dir_) + "/arkcompiler/ets_runtime:" + rebase_path(_root_out_dir_) + "/test/test:" + rebase_path(_root_out_dir_) + "/${_icu_path_}:" + rebase_path(_root_out_dir_) + "/thirdparty/cJSON:" + rebase_path(_root_out_dir_) + "/thirdparty/libuv:" + rebase_path(_root_out_dir_) + "/thirdparty/bounds_checking_function:" + rebase_path(_root_out_dir_) + "/thirdparty/openssl:" + rebase_path(_root_out_dir_) + "/thirdparty/zlib:" + rebase_path("//prebuilts/clang/ohos/linux-x86_64/llvm/lib/"), "--timeout-limit", "1200", ] inputs = [ "$_root_out_dir_/tests/unittest/${_module_out_path_}/${_target_name_}", ] outputs = [ "$target_out_dir/${_target_name_}/" ] } if (ark_standalone_build && host_os == "linux" && target_os == "ohos") { import("$ark_third_party_root/musl/musl_template.gni") import("$build_root/config/qemu/config.gni") action("${_target_name_}ActionWithQemu") { testonly = true _host_test_target_ = ":${_target_name_}" # path of root_out_dir based on root_src_dir _root_out_dir_ = get_label_info(_host_test_target_, "root_out_dir") deps = [ "$ark_third_party_root/musl:soft_create_linker_for_qemu", _host_test_target_, ] script = "${js_root}/script/run_ark_executable.py" args = [ "--script-file", rebase_path( "$_root_out_dir_/tests/unittest/${_module_out_path_}/${_target_name_}", root_build_dir), "--expect-output", "0", "--clang-lib-path", rebase_path("${clang_base_path}/lib/${musl_arch}-linux-ohos", root_build_dir), "--qemu-binary-path", rebase_path("${QEMU_INSTALLATION_PATH}/bin/qemu-${musl_arch}", root_build_dir), "--qemu-ld-prefix", rebase_path(musl_linker_so_out_dir, root_build_dir), "--timeout-limit", "1200", ] inputs = [ "$_root_out_dir_/tests/unittest/${_module_out_path_}/${_target_name_}", ] outputs = [ "$target_out_dir/${_target_name_}WithQemu/" ] } } group("${_target_name_}Action") { testonly = true deps = [] if (ark_standalone_build && host_os == "linux" && target_os == "ohos" && run_with_qemu) { deps += [ ":${_target_name_}ActionWithQemu" ] } else { deps += [ ":${_target_name_}ActionWithoutQemu" ] } } }