# 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_runtime/js_runtime_config.gni")
import("//arkcompiler/ets_runtime/test/test_helper.gni")

module_output_path = "ets_runtime/ets_runtime"

host_unittest_action("JS_AccessorData_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "accessor_data_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_AssertScope_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "assert_scope_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("Builtins_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "builtins_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_ByteArray_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "byte_array_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_Dump_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "dump_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

if (!is_arkui_x) {
  host_unittest_action("JS_DynamicTypeConverter_Test") {
    module_out_path = module_output_path

    sources = [
      # test file
      "dynamic_type_converter_test.cpp",
    ]

    configs = [
      "../../:asm_interp_enable_config",
      "../../:ecma_test_config",
    ]

    deps = [ "../../:libark_jsruntime_test" ]

    # hiviewdfx libraries
    external_deps = hiviewdfx_ext_deps
    external_deps += [
      "icu:shared_icui18n",
      "icu:shared_icuuc",
      "runtime_core:libarkassembler_static",
      "runtime_core:libarkverifier",
      "zlib:libz",
    ]
    deps += hiviewdfx_deps
  }
}

host_unittest_action("ECMA_StringHash_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "ecma_string_hash_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("BASE_String_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "base_string_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("ECMA_StringAccessor_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "ecma_string_accessor_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("ECMA_StringEquals_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "ecma_string_equals_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("ECMA_StringTable_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "ecma_string_table_test.cpp",
    "base_string_table_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("ECMA_StringTable_Sweeping_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "ecma_string_table_sweeping_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("ECMA_ExternalString_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "ecma_external_string_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_GlueRegs_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "glue_regs_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APIArrayListIterator_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_arraylist_iterator_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APIArrayList_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_arraylist_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APIDequeIterator_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_deque_iterator_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APIDeque_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_deque_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APIHashMapIterator_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_hashmap_iterator_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APIHashMap_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_hashmap_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APIHashSetIterator_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_hashset_iterator_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APIHashSet_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_hashset_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APILightWeightMapIteraotr_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_lightweightmap_iterator_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APILightWeightMap_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_lightweightmap_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APILightWeightSetIterator_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_lightweightset_iterator_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APILightWeightSet_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_lightweightset_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APILinkListIterator_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_linked_list_iterator_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APILinkList_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_linked_list_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APIListIterator_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_list_iterator_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APIList_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_list_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APIPlainArrayIterator_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_plain_array_iterator_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APIPlainArray_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_plain_array_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APIQueueIterator_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_queue_iterator_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APIQueue_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_queue_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APIStackIterator_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_stack_iterator_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APIStack_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_stack_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APITreeMapIterator_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_tree_map_iterator_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APITreeMap_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_tree_map_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APITreeSetIterator_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_tree_set_iterator_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APITreeSet_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_tree_set_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APIVectorIterator_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_vector_iterator_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APIVector_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_vector_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_Arguments_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_arguments_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_ArrayBuffer_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_array_buffer_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_ArrayIterator_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_array_iterator_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_Array_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_array_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_AsyncFunction_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_async_function_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_BigInt_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_bigint_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_AsyncGengeratorObject_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_async_generator_object_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_DisPlayNames_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_displaynames_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_FinalizationRegistry_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_finalization_registry_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_ForinIterator_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_forin_iterator_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_Function_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_function_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_GeneratorObject_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_generator_object_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_Handle_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_handle_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_EcmaHandleScope_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "ecma_handle_scope_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_MapIterator_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_map_iterator_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_Map_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_map_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_NumberFormat_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_number_format_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

if (!is_arkui_x) {
  host_unittest_action("Dynamic_Object_Accessor_Test") {
    module_out_path = module_output_path

    sources = [
      # test file
      "dynamic_object_accessor_test.cpp",
    ]

    configs = [
      "../../:ecma_test_config",
      "../../:icu_path_test_config",
    ]

    deps = [ "../../:libark_jsruntime_test" ]

    # hiviewdfx libraries
    external_deps = hiviewdfx_ext_deps
    external_deps += [
      "icu:shared_icui18n",
      "icu:shared_icuuc",
      "runtime_core:libarkassembler_static",
      "runtime_core:libarkverifier",
    ]
    deps += hiviewdfx_deps
  }
}

host_unittest_action("JS_Object_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_object_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_PluralRules_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_plural_rules_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_PrimitiveRef_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_primitive_ref_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_Promise_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_promise_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_Proxy_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_proxy_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_RegexpIterator_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_regexp_iterator_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_RelativeTimeFormat_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_relative_time_format_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_LocaleHelper_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "locale_helper_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_SetIterator_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_set_iterator_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_Set_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_set_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_StableArray_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_stable_array_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_Symbol_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_symbol_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_TaggedNumber_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_tagged_number_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_TaggedQueue_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_tagged_queue_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_WeakMapComplexScenarios_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_weakmap_complex_scenarios_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_TypedArray_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_typed_array_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_LayoutInfo_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "layout_info_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_LexicalEnv_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "lexical_env_test.cpp",
  ]

  configs = [ "../../:ecma_test_config" ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_LinkHashTable_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "linked_hash_table_test.cpp",
  ]

  configs = [ "../../:ecma_test_config" ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_WeakLinkHashMap_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "weak_linked_hash_map_test.cpp",
  ]

  configs = [ "../../:ecma_test_config" ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_LinkNode_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "linked_node_test.cpp",
  ]

  configs = [ "../../:ecma_test_config" ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_NativePoint_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "native_pointer_test.cpp",
  ]

  configs = [ "../../:ecma_test_config" ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_SymbolTable_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "symbol_table_test.cpp",
  ]

  configs = [ "../../:ecma_test_config" ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_TaggedArray_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "tagged_array_test.cpp",
  ]

  configs = [ "../../:ecma_test_config" ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_TaggedDictionary_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "tagged_dictionary_test.cpp",
  ]

  configs = [ "../../:ecma_test_config" ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_TaggedHashArray_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "tagged_hash_array_test.cpp",
  ]

  configs = [ "../../:ecma_test_config" ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_TaggedTree_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "tagged_tree_test.cpp",
  ]

  configs = [ "../../:ecma_test_config" ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_TaggedValue_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "tagged_value_test.cpp",
  ]

  configs = [ "../../:ecma_test_config" ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_TemplateMap_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "template_map_test.cpp",
  ]

  configs = [ "../../:ecma_test_config" ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_TemplateString_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "template_string_test.cpp",
  ]

  configs = [ "../../:ecma_test_config" ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_TransitionsDictionary_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "transitions_dictionary_test.cpp",
  ]

  configs = [ "../../:ecma_test_config" ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_WaiterList_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "waiter_list_test.cpp",
  ]

  configs = [ "../../:ecma_test_config" ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_Collator_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_collator_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_DateView_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_dataview_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_Date_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_date_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_DateTimeFormat_First_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_date_time_format_first_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_Hclass_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_hclass_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_Iterator_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_iterator_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_ListFormat_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_list_format_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_Locale_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_locale_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("ECMA_VM_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "ecma_vm_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_GlobalDictionary_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "global_dictionary_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_ObjectFactory_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "object_factory_test.cpp",
  ]

  configs = [ "../../:ecma_test_config" ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_ObjectOperator_First_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "object_operator_first_test.cpp",
  ]

  configs = [ "../../:ecma_test_config" ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_RbTreeNode_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "rb_tree_node_test.cpp",
  ]

  configs = [ "../../:ecma_test_config" ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_ObjectOperator_Second_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "object_operator_second_test.cpp",
  ]

  configs = [ "../../:ecma_test_config" ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_DateTimeFormat_Second_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_date_time_format_second_test.cpp",
  ]

  configs = [
    "../../:ecma_test_config",
    "../../:icu_path_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_ObjectOperator_Third_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "object_operator_third_test.cpp",
  ]

  configs = [ "../../:ecma_test_config" ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_ThreadState_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_thread_state_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APIBitVectorIterator_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_bitvector_iterator_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_APIBitVector_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_api_bitvector_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("JS_Barrier_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "barrier_test.cpp",
  ]

  configs = [ "../../:ecma_test_config" ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("CMC_Barrier_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "cmcbarrier_test.cpp",
  ]

  configs = [ "../../:ecma_test_config" ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_ModuleManagerMap_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "module_manager_map_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("MethodLiteralIDMap_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "method_literal_id_map_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_ConcurrentMarking_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "concurrent_marking_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_ConcurrentSweep_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "concurrent_sweep_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_GlobalGC_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "global_gc_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_First_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "gc_first_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_External_Strig_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "gc_external_string_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_ReadOnlySpace_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "read_only_space_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_Second_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "gc_second_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_Taskpool_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "gc_taskpool_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_Third_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "gc_third_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_Daemon_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "gc_daemon_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_Verify_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "gc_verify_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_HandleLeak_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "handle_leak_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_HeapHelper_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "heap_helper_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_HugeObject_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "huge_object_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_IdleGCTrigger_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "idle_gc_trigger_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_JitFort_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "jit_fort_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("Shared_Memory_Reallocator_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "shared_memory_reallocator_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("Sendable_JsSendableArrayBuffer_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_sendable_arraybuffer_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("Sendable_JsSharedArray_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "barrier_test.cpp",
    "ecma_global_storage_test.cpp",
    "ecma_global_storage_generation_test.cpp",
    "js_shared_array_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("Unified_GC_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "unified_gc_multi_vm_test.cpp",
    "unified_gc_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_Verification_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "js_verification_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_MachineCode_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "machine_code_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_MemController_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "mem_controller_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_MemMapAllocator_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "mem_map_allocator_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_NewToOldPromotion_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "gc_region_promotion_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_SharedHeapOOM_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "gc_shared_heap_oom_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_SharedPartialGC_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "gc_shared_partial_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("Sendable_SharedObjectFactory_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "shared_object_factory_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_WeakRefOldGC_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "weak_ref_old_gc_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_WeakRefSemiGC_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "weak_ref_semi_gc_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_LOCAL_CC_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "local_cc_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("Runtime_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "runtime_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("ECMA_VM_Heap_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "ecma_vm_heap_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("ECMA_VM_Heap_Memory_Pressure_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "ecma_vm_heap_memory_pressure_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_SharedHeap_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "shared_heap_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GC_KeyStats_Test") {
  module_out_path = module_output_path

  sources = [
    # test file
    "gc_key_stats_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
    "zlib:libz",
  ]
  deps += hiviewdfx_deps
}

host_unittest_action("GlobalConstants_Test") {
  module_out_path = module_output_path

  sources = [
  # test file
    "global_constants_test.cpp",
  ]

  configs = [
    "../../:asm_interp_enable_config",
    "../../:ecma_test_config",
  ]

  deps = [ "../../:libark_jsruntime_test" ]

  # hiviewdfx libraries
  external_deps = hiviewdfx_ext_deps
  external_deps += [
    "icu:shared_icui18n",
    "icu:shared_icuuc",
    "runtime_core:libarkassembler_static",
    "runtime_core:libarkverifier",
  ]
  deps += hiviewdfx_deps
}

group("unittest") {
  testonly = true

  # deps file
  deps = [
    ":Builtins_Test",
    ":ECMA_StringAccessor_Test",
    ":ECMA_StringEquals_Test",
    ":ECMA_StringHash_Test",
    ":ECMA_StringTable_Test",
    ":ECMA_StringTable_Sweeping_Test",

    ":BASE_String_Test",
    ":ECMA_VM_Test",
    ":GC_ModuleManagerMap_Test",
    ":GC_ConcurrentMarking_Test",
    ":GC_ConcurrentSweep_Test",
    ":GC_GlobalGC_Test",
    ":GC_External_Strig_Test",
    ":GC_First_Test",
    ":GC_HandleLeak_Test",
    ":GC_HeapHelper_Test",
    ":GC_HugeObject_Test",
    ":GC_IdleGCTrigger_Test",
    ":GC_JitFort_Test",
    ":GC_LOCAL_CC_Test",
    ":GC_MachineCode_Test",
    ":GC_MemController_Test",
    ":GC_MemMapAllocator_Test",
    ":GC_NewToOldPromotion_Test",
    ":GC_ReadOnlySpace_Test",
    ":GC_Second_Test",
    ":GC_SharedPartialGC_Test",
    ":GC_Taskpool_Test",
    ":GC_Third_Test",
    ":GC_Daemon_Test",
    ":GC_Verification_Test",
    ":GC_Verify_Test",
    ":GC_WeakRefOldGC_Test",
    ":GC_WeakRefSemiGC_Test",
    ":GC_SharedHeap_Test",
    ":GC_KeyStats_Test",
    ":JS_APIArrayListIterator_Test",
    ":JS_APIArrayList_Test",
    ":JS_APIBitVectorIterator_Test",
    ":JS_APIBitVector_Test",
    ":JS_APIDequeIterator_Test",
    ":JS_APIDeque_Test",
    ":JS_APIHashMapIterator_Test",
    ":JS_APIHashMap_Test",
    ":JS_APIHashSetIterator_Test",
    ":JS_APIHashSet_Test",
    ":JS_APILightWeightMapIteraotr_Test",
    ":JS_APILightWeightMap_Test",
    ":JS_APILightWeightSetIterator_Test",
    ":JS_APILightWeightSet_Test",
    ":JS_APILinkListIterator_Test",
    ":JS_APILinkList_Test",
    ":JS_APIListIterator_Test",
    ":JS_APIList_Test",
    ":JS_APIPlainArrayIterator_Test",
    ":JS_APIPlainArray_Test",
    ":JS_APIQueueIterator_Test",
    ":JS_APIQueue_Test",
    ":JS_APIStackIterator_Test",
    ":JS_APIStack_Test",
    ":JS_APITreeMapIterator_Test",
    ":JS_APITreeMap_Test",
    ":JS_APITreeSetIterator_Test",
    ":JS_APITreeSet_Test",
    ":JS_APIVectorIterator_Test",
    ":JS_APIVector_Test",
    ":JS_AccessorData_Test",
    ":JS_Arguments_Test",
    ":JS_ArrayBuffer_Test",
    ":JS_ArrayIterator_Test",
    ":JS_Array_Test",
    ":JS_AssertScope_Test",
    ":JS_AsyncFunction_Test",
    ":JS_AsyncGengeratorObject_Test",
    ":JS_Barrier_Test",
    ":JS_BigInt_Test",
    ":JS_ByteArray_Test",
    ":JS_Collator_Test",
    ":JS_DateTimeFormat_First_Test",
    ":JS_DateTimeFormat_Second_Test",
    ":JS_DateView_Test",
    ":JS_Date_Test",
    ":JS_DisPlayNames_Test",
    ":JS_Dump_Test",
    ":JS_FinalizationRegistry_Test",
    ":JS_ForinIterator_Test",
    ":JS_Function_Test",
    ":JS_GeneratorObject_Test",
    ":JS_GlobalDictionary_Test",
    ":JS_GlueRegs_Test",
    ":JS_Handle_Test",
    ":JS_EcmaHandleScope_Test",
    ":JS_Hclass_Test",
    ":JS_Iterator_Test",
    ":JS_LayoutInfo_Test",
    ":JS_LexicalEnv_Test",
    ":JS_LinkHashTable_Test",
    ":JS_WeakLinkHashMap_Test",
    ":JS_LinkNode_Test",
    ":JS_ListFormat_Test",
    ":JS_LocaleHelper_Test",
    ":JS_Locale_Test",
    ":JS_MapIterator_Test",
    ":JS_Map_Test",
    ":JS_NativePoint_Test",
    ":JS_NumberFormat_Test",
    ":JS_ObjectFactory_Test",
    ":JS_ObjectOperator_First_Test",
    ":JS_ObjectOperator_Second_Test",
    ":JS_ObjectOperator_Third_Test",
    ":JS_Object_Test",
    ":JS_PluralRules_Test",
    ":JS_PrimitiveRef_Test",
    ":JS_Promise_Test",
    ":JS_Proxy_Test",
    ":JS_RbTreeNode_Test",
    ":JS_RegexpIterator_Test",
    ":JS_RelativeTimeFormat_Test",
    ":JS_SetIterator_Test",
    ":JS_Set_Test",
    ":JS_StableArray_Test",
    ":JS_SymbolTable_Test",
    ":JS_Symbol_Test",
    ":JS_TaggedArray_Test",
    ":JS_TaggedDictionary_Test",
    ":JS_TaggedHashArray_Test",
    ":JS_TaggedNumber_Test",
    ":JS_TaggedQueue_Test",
    ":JS_TaggedTree_Test",
    ":JS_TaggedValue_Test",
    ":JS_TemplateMap_Test",
    ":JS_TemplateString_Test",
    ":JS_ThreadState_Test",
    ":JS_TransitionsDictionary_Test",
    ":JS_TypedArray_Test",
    ":JS_WaiterList_Test",
    ":JS_WeakMapComplexScenarios_Test",
    ":MethodLiteralIDMap_Test",
    ":Sendable_JsSendableArrayBuffer_Test",
    ":Sendable_JsSharedArray_Test",
    ":Sendable_SharedObjectFactory_Test",
    ":Shared_Memory_Reallocator_Test",
    ":Runtime_Test",
    ":ECMA_VM_Heap_Test",
    ":ECMA_VM_Heap_Memory_Pressure_Test",
    ":GlobalConstants_Test",
  ]

 # TODO: CMC-GC UT FIX LATER
  if (ets_runtime_enable_cmc_gc) {
    deps -= [
      ":GC_ConcurrentMarking_Test",
      ":GC_GlobalGC_Test",
      ":GC_External_Strig_Test",
      ":GC_First_Test",
      ":GC_HeapHelper_Test",
      ":GC_IdleGCTrigger_Test",
      ":GC_LOCAL_CC_Test",
      ":GC_MachineCode_Test",
      ":GC_MemController_Test",
      ":GC_NewToOldPromotion_Test",
      ":GC_ReadOnlySpace_Test",
      ":GC_Second_Test",
      ":GC_SharedPartialGC_Test",
      ":GC_Third_Test",
      ":GC_Daemon_Test",
      ":GC_Verification_Test",
      ":GC_Verify_Test",
      ":GC_WeakRefOldGC_Test",
      ":GC_WeakRefSemiGC_Test",
      ":GC_SharedHeap_Test",
      ":GC_KeyStats_Test",
      ":JS_Barrier_Test",
      ":JS_FinalizationRegistry_Test",
      ":JS_GlueRegs_Test",
      ":JS_Handle_Test",
      ":JS_Object_Test",
      ":JS_TaggedArray_Test",
      ":JS_ThreadState_Test",
      ":Sendable_JsSharedArray_Test",
      ":Shared_Memory_Reallocator_Test",
      ":Runtime_Test",
    ]

    deps += [ ":CMC_Barrier_Test" ]
    if (!is_arkui_x) {
      deps += [ ":JS_DynamicTypeConverter_Test" ]
    }
    if (!is_arkui_x) {
      deps += [ ":Dynamic_Object_Accessor_Test" ]
    }
  }
}

group("host_unittest") {
  testonly = true

  # deps file
  deps = [
    ":Builtins_TestAction",
    ":ECMA_StringAccessor_TestAction",
    ":ECMA_StringEquals_TestAction",
    ":ECMA_StringHash_TestAction",
    ":ECMA_StringTable_TestAction",
    ":ECMA_StringTable_Sweeping_TestAction",

    ":BASE_String_TestAction",
    ":ECMA_VM_TestAction",
    ":GC_ModuleManagerMap_TestAction",
    ":GC_ConcurrentMarking_TestAction",
    ":GC_ConcurrentSweep_TestAction",
    ":GC_GlobalGC_TestAction",
    ":GC_External_Strig_TestAction",
    ":GC_First_TestAction",
    ":GC_HandleLeak_TestAction",
    ":GC_HeapHelper_TestAction",
    ":GC_HugeObject_TestAction",
    ":GC_IdleGCTrigger_TestAction",
    ":GC_JitFort_TestAction",
    ":GC_LOCAL_CC_TestAction",
    ":GC_MachineCode_TestAction",
    ":GC_MemController_TestAction",
    ":GC_MemMapAllocator_TestAction",
    ":GC_NewToOldPromotion_TestAction",
    ":GC_ReadOnlySpace_TestAction",
    ":GC_Second_TestAction",
    ":GC_SharedPartialGC_TestAction",
    ":GC_Taskpool_TestAction",
    ":GC_Third_TestAction",
    ":GC_Verification_TestAction",
    ":GC_Verify_TestAction",
    ":GC_WeakRefOldGC_TestAction",
    ":GC_WeakRefSemiGC_TestAction",
    ":GC_SharedHeap_TestAction",
    ":GC_KeyStats_TestAction",
    ":JS_APIArrayListIterator_TestAction",
    ":JS_APIArrayList_TestAction",
    ":JS_APIBitVectorIterator_TestAction",
    ":JS_APIBitVector_TestAction",
    ":JS_APIDequeIterator_TestAction",
    ":JS_APIDeque_TestAction",
    ":JS_APIHashMapIterator_TestAction",
    ":JS_APIHashMap_TestAction",
    ":JS_APIHashSetIterator_TestAction",
    ":JS_APIHashSet_TestAction",
    ":JS_APILightWeightMapIteraotr_TestAction",
    ":JS_APILightWeightMap_TestAction",
    ":JS_APILightWeightSetIterator_TestAction",
    ":JS_APILightWeightSet_TestAction",
    ":JS_APILinkListIterator_TestAction",
    ":JS_APILinkList_TestAction",
    ":JS_APIListIterator_TestAction",
    ":JS_APIList_TestAction",
    ":JS_APIPlainArrayIterator_TestAction",
    ":JS_APIPlainArray_TestAction",
    ":JS_APIQueueIterator_TestAction",
    ":JS_APIQueue_TestAction",
    ":JS_APIStackIterator_TestAction",
    ":JS_APIStack_TestAction",
    ":JS_APITreeMapIterator_TestAction",
    ":JS_APITreeMap_TestAction",
    ":JS_APITreeSetIterator_TestAction",
    ":JS_APITreeSet_TestAction",
    ":JS_APIVectorIterator_TestAction",
    ":JS_APIVector_TestAction",
    ":JS_AccessorData_TestAction",
    ":JS_Arguments_TestAction",
    ":JS_ArrayBuffer_TestAction",
    ":JS_ArrayIterator_TestAction",
    ":JS_Array_TestAction",
    ":JS_AssertScope_TestAction",
    ":JS_AsyncFunction_TestAction",
    ":JS_AsyncGengeratorObject_TestAction",
    ":JS_Barrier_TestAction",
    ":JS_BigInt_TestAction",
    ":JS_ByteArray_TestAction",
    ":JS_Collator_TestAction",
    ":JS_DateTimeFormat_First_TestAction",
    ":JS_DateTimeFormat_Second_TestAction",
    ":JS_DateView_TestAction",
    ":JS_Date_TestAction",
    ":JS_DisPlayNames_TestAction",
    ":JS_Dump_TestAction",
    ":JS_FinalizationRegistry_TestAction",
    ":JS_ForinIterator_TestAction",
    ":JS_Function_TestAction",
    ":JS_GeneratorObject_TestAction",
    ":JS_GlobalDictionary_TestAction",
    ":JS_GlueRegs_TestAction",
    ":JS_Handle_TestAction",
    ":JS_EcmaHandleScope_TestAction",
    ":JS_Hclass_TestAction",
    ":JS_Iterator_TestAction",
    ":JS_LayoutInfo_TestAction",
    ":JS_LexicalEnv_TestAction",
    ":JS_LinkHashTable_TestAction",
    ":JS_WeakLinkHashMap_TestAction",
    ":JS_LinkNode_TestAction",
    ":JS_ListFormat_TestAction",
    ":JS_LocaleHelper_TestAction",
    ":JS_Locale_TestAction",
    ":JS_MapIterator_TestAction",
    ":JS_Map_TestAction",
    ":JS_NativePoint_TestAction",
    ":JS_NumberFormat_TestAction",
    ":JS_ObjectFactory_TestAction",
    ":JS_ObjectOperator_First_TestAction",
    ":JS_ObjectOperator_Second_TestAction",
    ":JS_ObjectOperator_Third_TestAction",
    ":JS_Object_TestAction",
    ":JS_PluralRules_TestAction",
    ":JS_PrimitiveRef_TestAction",
    ":JS_Promise_TestAction",
    ":JS_Proxy_TestAction",
    ":JS_RbTreeNode_TestAction",
    ":JS_RegexpIterator_TestAction",
    ":JS_RelativeTimeFormat_TestAction",
    ":JS_SetIterator_TestAction",
    ":JS_Set_TestAction",
    ":JS_StableArray_TestAction",
    ":JS_SymbolTable_TestAction",
    ":JS_Symbol_TestAction",
    ":JS_TaggedArray_TestAction",
    ":JS_TaggedDictionary_TestAction",
    ":JS_TaggedHashArray_TestAction",
    ":JS_TaggedNumber_TestAction",
    ":JS_TaggedQueue_TestAction",
    ":JS_TaggedTree_TestAction",
    ":JS_TaggedValue_TestAction",
    ":JS_TemplateMap_TestAction",
    ":JS_TemplateString_TestAction",
    ":JS_ThreadState_TestAction",
    ":JS_TransitionsDictionary_TestAction",
    ":JS_TypedArray_TestAction",
    ":JS_WaiterList_TestAction",
    ":JS_WeakMapComplexScenarios_TestAction",
    ":MethodLiteralIDMap_TestAction",
    ":Sendable_JsSendableArrayBuffer_TestAction",
    ":Sendable_JsSharedArray_TestAction",
    ":Sendable_SharedObjectFactory_TestAction",
    ":Shared_Memory_Reallocator_TestAction",
    ":Runtime_TestAction",
    ":ECMA_VM_Heap_TestAction",
    ":ECMA_VM_Heap_Memory_Pressure_TestAction",
    ":GlobalConstants_TestAction",
  ]

  if (is_mac) {
    deps -= [
      ":Builtins_TestAction",
      ":ECMA_StringAccessor_TestAction",
      ":ECMA_StringEquals_TestAction",
      ":ECMA_StringHash_TestAction",
      ":ECMA_StringTable_TestAction",
      ":ECMA_StringTable_Sweeping_TestAction",

      ":BASE_String_TestAction",
      ":ECMA_VM_TestAction",
      ":GC_ConcurrentMarking_TestAction",
      ":GC_ConcurrentSweep_TestAction",
      ":GC_GlobalGC_TestAction",
      ":GC_External_Strig_TestAction",
      ":GC_First_TestAction",
      ":GC_HandleLeak_TestAction",
      ":GC_HeapHelper_TestAction",
      ":GC_HugeObject_TestAction",
      ":GC_IdleGCTrigger_TestAction",
      ":GC_JitFort_TestAction",
      ":GC_LOCAL_CC_TestAction",
      ":GC_MachineCode_TestAction",
      ":GC_MemController_TestAction",
      ":GC_MemMapAllocator_TestAction",
      ":GC_NewToOldPromotion_TestAction",
      ":GC_ReadOnlySpace_TestAction",
      ":GC_Second_TestAction",
      ":GC_SharedPartialGC_TestAction",
      ":GC_Taskpool_TestAction",
      ":GC_Third_TestAction",
      ":GC_Verification_TestAction",
      ":GC_Verify_TestAction",
      ":GC_WeakRefOldGC_TestAction",
      ":GC_WeakRefSemiGC_TestAction",
      ":GC_SharedHeap_TestAction",
      ":GC_KeyStats_TestAction",
      ":JS_APIArrayListIterator_TestAction",
      ":JS_APIArrayList_TestAction",
      ":JS_APIBitVectorIterator_TestAction",
      ":JS_APIBitVector_TestAction",
      ":JS_APIDequeIterator_TestAction",
      ":JS_APIDeque_TestAction",
      ":JS_APIHashMapIterator_TestAction",
      ":JS_APIHashMap_TestAction",
      ":JS_APIHashSetIterator_TestAction",
      ":JS_APIHashSet_TestAction",
      ":JS_APILightWeightMapIteraotr_TestAction",
      ":JS_APILightWeightMap_TestAction",
      ":JS_APILightWeightSetIterator_TestAction",
      ":JS_APILightWeightSet_TestAction",
      ":JS_APILinkListIterator_TestAction",
      ":JS_APILinkList_TestAction",
      ":JS_APIListIterator_TestAction",
      ":JS_APIList_TestAction",
      ":JS_APIPlainArrayIterator_TestAction",
      ":JS_APIPlainArray_TestAction",
      ":JS_APIQueueIterator_TestAction",
      ":JS_APIQueue_TestAction",
      ":JS_APIStackIterator_TestAction",
      ":JS_APIStack_TestAction",
      ":JS_APITreeMapIterator_TestAction",
      ":JS_APITreeMap_TestAction",
      ":JS_APITreeSetIterator_TestAction",
      ":JS_APITreeSet_TestAction",
      ":JS_APIVectorIterator_TestAction",
      ":JS_APIVector_TestAction",
      ":JS_AccessorData_TestAction",
      ":JS_Arguments_TestAction",
      ":JS_ArrayBuffer_TestAction",
      ":JS_ArrayIterator_TestAction",
      ":JS_Array_TestAction",
      ":JS_AssertScope_TestAction",
      ":JS_AsyncFunction_TestAction",
      ":JS_AsyncGengeratorObject_TestAction",
      ":JS_Barrier_TestAction",
      ":JS_BigInt_TestAction",
      ":JS_ByteArray_TestAction",
      ":JS_Collator_TestAction",
      ":JS_DateTimeFormat_First_TestAction",
      ":JS_DateTimeFormat_Second_TestAction",
      ":JS_DateView_TestAction",
      ":JS_Date_TestAction",
      ":JS_DisPlayNames_TestAction",
      ":JS_Dump_TestAction",
      ":JS_FinalizationRegistry_TestAction",
      ":JS_ForinIterator_TestAction",
      ":JS_Function_TestAction",
      ":JS_GeneratorObject_TestAction",
      ":JS_GlobalDictionary_TestAction",
      ":JS_GlueRegs_TestAction",
      ":JS_Handle_TestAction",
      ":JS_Hclass_TestAction",
      ":JS_Iterator_TestAction",
      ":JS_LayoutInfo_TestAction",
      ":JS_LexicalEnv_TestAction",
      ":JS_LinkHashTable_TestAction",
      ":JS_WeakLinkHashMap_TestAction",
      ":JS_LinkNode_TestAction",
      ":JS_ListFormat_TestAction",
      ":JS_LocaleHelper_TestAction",
      ":JS_Locale_TestAction",
      ":JS_MapIterator_TestAction",
      ":JS_Map_TestAction",
      ":JS_NativePoint_TestAction",
      ":JS_NumberFormat_TestAction",
      ":JS_ObjectFactory_TestAction",
      ":JS_ObjectOperator_First_TestAction",
      ":JS_ObjectOperator_Second_TestAction",
      ":JS_ObjectOperator_Third_TestAction",
      ":JS_Object_TestAction",
      ":JS_PluralRules_TestAction",
      ":JS_PrimitiveRef_TestAction",
      ":JS_Promise_TestAction",
      ":JS_Proxy_TestAction",
      ":JS_RbTreeNode_TestAction",
      ":JS_RegexpIterator_TestAction",
      ":JS_RelativeTimeFormat_TestAction",
      ":JS_SetIterator_TestAction",
      ":JS_Set_TestAction",
      ":JS_StableArray_TestAction",
      ":JS_SymbolTable_TestAction",
      ":JS_Symbol_TestAction",
      ":JS_WeakMapComplexScenarios_TestAction",
      ":JS_TaggedArray_TestAction",
      ":JS_TaggedDictionary_TestAction",
      ":JS_TaggedHashArray_TestAction",
      ":JS_TaggedNumber_TestAction",
      ":JS_TaggedQueue_TestAction",
      ":JS_TaggedTree_TestAction",
      ":JS_TaggedValue_TestAction",
      ":JS_TemplateMap_TestAction",
      ":JS_TemplateString_TestAction",
      ":JS_ThreadState_TestAction",
      ":JS_TransitionsDictionary_TestAction",
      ":JS_TypedArray_TestAction",
      ":JS_WaiterList_TestAction",
      ":Sendable_JsSendableArrayBuffer_TestAction",
      ":Sendable_JsSharedArray_TestAction",
      ":Sendable_SharedObjectFactory_TestAction",
      ":Shared_Memory_Reallocator_TestAction",
      ":Runtime_TestAction",
    ]
  } else if (ets_runtime_enable_cmc_gc) {
    # TODO: CMC-GC UT FIX LATER
    deps -= [
      ":GC_ConcurrentMarking_TestAction",
      ":GC_GlobalGC_TestAction",
      ":GC_External_Strig_TestAction",
      ":GC_First_TestAction",
      ":GC_HeapHelper_TestAction",
      ":GC_IdleGCTrigger_TestAction",
      ":GC_LOCAL_CC_TestAction",
      ":GC_MachineCode_TestAction",
      ":GC_MemController_TestAction",
      ":GC_NewToOldPromotion_TestAction",
      ":GC_Second_TestAction",
      ":GC_SharedPartialGC_TestAction",
      ":GC_KeyStats_TestAction",
      ":GC_Third_TestAction",
      ":GC_Verification_TestAction",
      ":GC_Verify_TestAction",
      ":GC_WeakRefOldGC_TestAction",
      ":GC_WeakRefSemiGC_TestAction",
      ":GC_SharedHeap_TestAction",
      ":JS_Barrier_TestAction",
      ":JS_FinalizationRegistry_TestAction",
      ":JS_GlueRegs_TestAction",
      ":JS_Handle_TestAction",
      ":JS_ObjectFactory_TestAction",
      ":JS_Object_TestAction",
      ":JS_TaggedArray_TestAction",
      ":JS_ThreadState_TestAction",
      ":Sendable_JsSharedArray_TestAction",
      ":Shared_Memory_Reallocator_TestAction",
      ":Runtime_TestAction",
    ]

    deps += [ ":CMC_Barrier_TestAction" ]
    if (!is_arkui_x) {
      deps += [ ":JS_DynamicTypeConverter_TestAction" ]
    }
    if (!is_arkui_x) {
      deps += [ ":Dynamic_Object_Accessor_TestAction" ]
    }
  }
}