14514f5e3Sopenharmony_ci# Copyright (c) 2021-2023 Huawei Device Co., Ltd.
24514f5e3Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
34514f5e3Sopenharmony_ci# you may not use this file except in compliance with the License.
44514f5e3Sopenharmony_ci# You may obtain a copy of the License at
54514f5e3Sopenharmony_ci#
64514f5e3Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
74514f5e3Sopenharmony_ci#
84514f5e3Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
94514f5e3Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
104514f5e3Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
114514f5e3Sopenharmony_ci# See the License for the specific language governing permissions and
124514f5e3Sopenharmony_ci# limitations under the License.
134514f5e3Sopenharmony_ci
144514f5e3Sopenharmony_ciimport("//arkcompiler/ets_runtime/js_runtime_config.gni")
154514f5e3Sopenharmony_ciimport("//arkcompiler/ets_runtime/test/test_helper.gni")
164514f5e3Sopenharmony_ci
174514f5e3Sopenharmony_cimodule_output_path = "arkcompiler/ets_runtime"
184514f5e3Sopenharmony_ci
194514f5e3Sopenharmony_citest_js_path = "//arkcompiler/ets_runtime/ecmascript/dfx/hprof/tests/js_files/"
204514f5e3Sopenharmony_ci
214514f5e3Sopenharmony_citest_js_files = [
224514f5e3Sopenharmony_ci  "heapdump",
234514f5e3Sopenharmony_ci  "allocation",
244514f5e3Sopenharmony_ci]
254514f5e3Sopenharmony_ci
264514f5e3Sopenharmony_ciforeach(file, test_js_files) {
274514f5e3Sopenharmony_ci  es2abc_gen_abc("gen_${file}_abc") {
284514f5e3Sopenharmony_ci    test_js = "${test_js_path}${file}.js"
294514f5e3Sopenharmony_ci    test_abc = "$target_out_dir/abc_files/${file}.abc"
304514f5e3Sopenharmony_ci
314514f5e3Sopenharmony_ci    # Only targets in this file can depend on this.
324514f5e3Sopenharmony_ci    extra_visibility = [ ":*" ]
334514f5e3Sopenharmony_ci    src_js = rebase_path(test_js)
344514f5e3Sopenharmony_ci    dst_file = rebase_path(test_abc)
354514f5e3Sopenharmony_ci    extra_args = [ "--module" ]
364514f5e3Sopenharmony_ci    extra_args += [ "--merge-abc" ]
374514f5e3Sopenharmony_ci
384514f5e3Sopenharmony_ci    in_puts = [ test_js ]
394514f5e3Sopenharmony_ci    out_puts = [ test_abc ]
404514f5e3Sopenharmony_ci  }
414514f5e3Sopenharmony_ci}
424514f5e3Sopenharmony_ci
434514f5e3Sopenharmony_cihost_unittest_action("HeapDumpTest") {
444514f5e3Sopenharmony_ci  module_out_path = module_output_path
454514f5e3Sopenharmony_ci
464514f5e3Sopenharmony_ci  sources = [
474514f5e3Sopenharmony_ci    # test file
484514f5e3Sopenharmony_ci    "heap_dump_test.cpp",
494514f5e3Sopenharmony_ci  ]
504514f5e3Sopenharmony_ci
514514f5e3Sopenharmony_ci  configs = [ "../../../../:ecma_test_config" ]
524514f5e3Sopenharmony_ci
534514f5e3Sopenharmony_ci  deps = [
544514f5e3Sopenharmony_ci    "$ark_third_party_root/icu/icu4c:shared_icui18n",
554514f5e3Sopenharmony_ci    "$ark_third_party_root/icu/icu4c:shared_icuuc",
564514f5e3Sopenharmony_ci    "../../../../:libark_jsruntime_test",
574514f5e3Sopenharmony_ci    sdk_libc_secshared_dep,
584514f5e3Sopenharmony_ci  ]
594514f5e3Sopenharmony_ci
604514f5e3Sopenharmony_ci  foreach(file, test_js_files) {
614514f5e3Sopenharmony_ci    deps += [ ":gen_${file}_abc" ]
624514f5e3Sopenharmony_ci  }
634514f5e3Sopenharmony_ci
644514f5e3Sopenharmony_ci  if (is_ohos && is_standard_system) {
654514f5e3Sopenharmony_ci    test_abc_dir = "/data/test/"
664514f5e3Sopenharmony_ci  } else {
674514f5e3Sopenharmony_ci    test_abc_dir = rebase_path(target_out_dir + "/abc_files/")
684514f5e3Sopenharmony_ci  }
694514f5e3Sopenharmony_ci
704514f5e3Sopenharmony_ci  test_js_dir = rebase_path(test_js_path)
714514f5e3Sopenharmony_ci  defines = [
724514f5e3Sopenharmony_ci    "HPROF_TEST_JS_FILES_DIR=\"${test_js_dir}\"",
734514f5e3Sopenharmony_ci    "HPROF_TEST_ABC_FILES_DIR=\"${test_abc_dir}\"",
744514f5e3Sopenharmony_ci  ]
754514f5e3Sopenharmony_ci
764514f5e3Sopenharmony_ci  # hiviewdfx libraries
774514f5e3Sopenharmony_ci  external_deps = hiviewdfx_ext_deps
784514f5e3Sopenharmony_ci  deps += hiviewdfx_deps
794514f5e3Sopenharmony_ci}
804514f5e3Sopenharmony_ci
814514f5e3Sopenharmony_cihost_unittest_action("HeapTrackerFirstTest") {
824514f5e3Sopenharmony_ci  module_out_path = module_output_path
834514f5e3Sopenharmony_ci
844514f5e3Sopenharmony_ci  sources = [
854514f5e3Sopenharmony_ci    # test file
864514f5e3Sopenharmony_ci    "heap_tracker_first_test.cpp",
874514f5e3Sopenharmony_ci  ]
884514f5e3Sopenharmony_ci
894514f5e3Sopenharmony_ci  configs = [ "../../../../:ecma_test_config" ]
904514f5e3Sopenharmony_ci
914514f5e3Sopenharmony_ci  deps = [
924514f5e3Sopenharmony_ci    "$ark_third_party_root/icu/icu4c:shared_icui18n",
934514f5e3Sopenharmony_ci    "$ark_third_party_root/icu/icu4c:shared_icuuc",
944514f5e3Sopenharmony_ci    "../../../../:libark_jsruntime_test",
954514f5e3Sopenharmony_ci    sdk_libc_secshared_dep,
964514f5e3Sopenharmony_ci  ]
974514f5e3Sopenharmony_ci
984514f5e3Sopenharmony_ci  # hiviewdfx libraries
994514f5e3Sopenharmony_ci  external_deps = hiviewdfx_ext_deps
1004514f5e3Sopenharmony_ci  deps += hiviewdfx_deps
1014514f5e3Sopenharmony_ci}
1024514f5e3Sopenharmony_ci
1034514f5e3Sopenharmony_cihost_unittest_action("HeapTrackerSecondTest") {
1044514f5e3Sopenharmony_ci  module_out_path = module_output_path
1054514f5e3Sopenharmony_ci
1064514f5e3Sopenharmony_ci  sources = [
1074514f5e3Sopenharmony_ci    # test file
1084514f5e3Sopenharmony_ci    "heap_tracker_second_test.cpp",
1094514f5e3Sopenharmony_ci  ]
1104514f5e3Sopenharmony_ci
1114514f5e3Sopenharmony_ci  configs = [ "../../../../:ecma_test_config" ]
1124514f5e3Sopenharmony_ci
1134514f5e3Sopenharmony_ci  deps = [
1144514f5e3Sopenharmony_ci    "$ark_third_party_root/icu/icu4c:shared_icui18n",
1154514f5e3Sopenharmony_ci    "$ark_third_party_root/icu/icu4c:shared_icuuc",
1164514f5e3Sopenharmony_ci    "../../../../:libark_jsruntime_test",
1174514f5e3Sopenharmony_ci    sdk_libc_secshared_dep,
1184514f5e3Sopenharmony_ci  ]
1194514f5e3Sopenharmony_ci
1204514f5e3Sopenharmony_ci  # hiviewdfx libraries
1214514f5e3Sopenharmony_ci  external_deps = hiviewdfx_ext_deps
1224514f5e3Sopenharmony_ci  deps += hiviewdfx_deps
1234514f5e3Sopenharmony_ci}
1244514f5e3Sopenharmony_ci
1254514f5e3Sopenharmony_cihost_unittest_action("HeapTrackerThirdTest") {
1264514f5e3Sopenharmony_ci  module_out_path = module_output_path
1274514f5e3Sopenharmony_ci
1284514f5e3Sopenharmony_ci  sources = [
1294514f5e3Sopenharmony_ci    # test file
1304514f5e3Sopenharmony_ci    "heap_tracker_third_test.cpp",
1314514f5e3Sopenharmony_ci  ]
1324514f5e3Sopenharmony_ci
1334514f5e3Sopenharmony_ci  configs = [ "../../../../:ecma_test_config" ]
1344514f5e3Sopenharmony_ci
1354514f5e3Sopenharmony_ci  deps = [
1364514f5e3Sopenharmony_ci    "$ark_third_party_root/icu/icu4c:shared_icui18n",
1374514f5e3Sopenharmony_ci    "$ark_third_party_root/icu/icu4c:shared_icuuc",
1384514f5e3Sopenharmony_ci    "../../../../:libark_jsruntime_test",
1394514f5e3Sopenharmony_ci    sdk_libc_secshared_dep,
1404514f5e3Sopenharmony_ci  ]
1414514f5e3Sopenharmony_ci
1424514f5e3Sopenharmony_ci  # hiviewdfx libraries
1434514f5e3Sopenharmony_ci  external_deps = hiviewdfx_ext_deps
1444514f5e3Sopenharmony_ci  deps += hiviewdfx_deps
1454514f5e3Sopenharmony_ci}
1464514f5e3Sopenharmony_ci
1474514f5e3Sopenharmony_cihost_unittest_action("HProfTest") {
1484514f5e3Sopenharmony_ci  module_out_path = module_output_path
1494514f5e3Sopenharmony_ci
1504514f5e3Sopenharmony_ci  sources = [
1514514f5e3Sopenharmony_ci    # test file
1524514f5e3Sopenharmony_ci    "hprof_test.cpp",
1534514f5e3Sopenharmony_ci  ]
1544514f5e3Sopenharmony_ci
1554514f5e3Sopenharmony_ci  configs = [ "//arkcompiler/ets_runtime:ecma_test_config" ]
1564514f5e3Sopenharmony_ci
1574514f5e3Sopenharmony_ci  deps = [
1584514f5e3Sopenharmony_ci    "$ark_third_party_root/icu/icu4c:shared_icui18n",
1594514f5e3Sopenharmony_ci    "$ark_third_party_root/icu/icu4c:shared_icuuc",
1604514f5e3Sopenharmony_ci    "//arkcompiler/ets_runtime:libark_jsruntime_test",
1614514f5e3Sopenharmony_ci    sdk_libc_secshared_dep,
1624514f5e3Sopenharmony_ci  ]
1634514f5e3Sopenharmony_ci
1644514f5e3Sopenharmony_ci  # hiviewdfx libraries
1654514f5e3Sopenharmony_ci  external_deps = hiviewdfx_ext_deps
1664514f5e3Sopenharmony_ci  external_deps += [ "zlib:libz" ]
1674514f5e3Sopenharmony_ci  deps += hiviewdfx_deps
1684514f5e3Sopenharmony_ci}
1694514f5e3Sopenharmony_ci
1704514f5e3Sopenharmony_cihost_unittest_action("HeapSamplingTest") {
1714514f5e3Sopenharmony_ci  module_out_path = module_output_path
1724514f5e3Sopenharmony_ci
1734514f5e3Sopenharmony_ci  sources = [
1744514f5e3Sopenharmony_ci    # test file
1754514f5e3Sopenharmony_ci    "heap_sampling_test.cpp",
1764514f5e3Sopenharmony_ci  ]
1774514f5e3Sopenharmony_ci
1784514f5e3Sopenharmony_ci  configs = [ "$js_root:ecma_test_config" ]
1794514f5e3Sopenharmony_ci
1804514f5e3Sopenharmony_ci  deps = [
1814514f5e3Sopenharmony_ci    "$ark_third_party_root/icu/icu4c:shared_icui18n",
1824514f5e3Sopenharmony_ci    "$ark_third_party_root/icu/icu4c:shared_icuuc",
1834514f5e3Sopenharmony_ci    "$js_root:libark_jsruntime_test",
1844514f5e3Sopenharmony_ci    sdk_libc_secshared_dep,
1854514f5e3Sopenharmony_ci  ]
1864514f5e3Sopenharmony_ci
1874514f5e3Sopenharmony_ci  # hiviewdfx libraries
1884514f5e3Sopenharmony_ci  external_deps = hiviewdfx_ext_deps
1894514f5e3Sopenharmony_ci  deps += hiviewdfx_deps
1904514f5e3Sopenharmony_ci}
1914514f5e3Sopenharmony_ci
1924514f5e3Sopenharmony_cigroup("unittest") {
1934514f5e3Sopenharmony_ci  testonly = true
1944514f5e3Sopenharmony_ci  deps = [
1954514f5e3Sopenharmony_ci    ":HProfTest",
1964514f5e3Sopenharmony_ci    ":HeapDumpTest",
1974514f5e3Sopenharmony_ci    ":HeapSamplingTest",
1984514f5e3Sopenharmony_ci    ":HeapTrackerFirstTest",
1994514f5e3Sopenharmony_ci    ":HeapTrackerSecondTest",
2004514f5e3Sopenharmony_ci    ":HeapTrackerThirdTest",
2014514f5e3Sopenharmony_ci  ]
2024514f5e3Sopenharmony_ci}
2034514f5e3Sopenharmony_ci
2044514f5e3Sopenharmony_cigroup("host_unittest") {
2054514f5e3Sopenharmony_ci  testonly = true
2064514f5e3Sopenharmony_ci  deps = [
2074514f5e3Sopenharmony_ci    ":HProfTestAction",
2084514f5e3Sopenharmony_ci    ":HeapDumpTestAction",
2094514f5e3Sopenharmony_ci    ":HeapSamplingTestAction",
2104514f5e3Sopenharmony_ci    ":HeapTrackerFirstTestAction",
2114514f5e3Sopenharmony_ci    ":HeapTrackerSecondTestAction",
2124514f5e3Sopenharmony_ci    ":HeapTrackerThirdTestAction",
2134514f5e3Sopenharmony_ci  ]
2144514f5e3Sopenharmony_ci  if (is_mac) {
2154514f5e3Sopenharmony_ci    deps -= [
2164514f5e3Sopenharmony_ci      ":HProfTestAction",
2174514f5e3Sopenharmony_ci      ":HeapDumpTestAction",
2184514f5e3Sopenharmony_ci      ":HeapSamplingTestAction",
2194514f5e3Sopenharmony_ci      ":HeapTrackerFirstTestAction",
2204514f5e3Sopenharmony_ci      ":HeapTrackerSecondTestAction",
2214514f5e3Sopenharmony_ci      ":HeapTrackerThirdTestAction",
2224514f5e3Sopenharmony_ci    ]
2234514f5e3Sopenharmony_ci  }
2244514f5e3Sopenharmony_ci}
225