# Copyright (c) 2021-2023 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 = "arkcompiler/ets_runtime" metadata_file_path = "//arkcompiler/ets_runtime/ecmascript/js_type_metadata/" test_js_path = "//arkcompiler/ets_runtime/ecmascript/dfx/hprof/tests/js_files/" target_test_path = "/tests/unittest/arkcompiler/ets_runtime/resource/obj/arkcompiler/ets_runtime/ecmascript/dfx/hprof/tests" test_js_files = [ "heapdump", "allocation", "heap_snapshot", ] foreach(file, test_js_files) { es2abc_gen_abc("gen_${file}_abc") { test_js = "${test_js_path}${file}.js" test_abc = "$target_out_dir/abc_files/${file}.abc" # Only targets in this file can depend on this. extra_visibility = [ ":*" ] src_js = rebase_path(test_js) dst_file = rebase_path(test_abc) extra_args = [ "--module" ] extra_args += [ "--merge-abc" ] in_puts = [ test_js ] out_puts = [ test_abc ] } } host_unittest_action("HeapDumpTest") { module_out_path = module_output_path sources = [ # test file "heap_dump_test.cpp", ] configs = [ "../../../../:ecma_test_config" ] deps = [ "$ark_third_party_root/icu/icu4c:shared_icui18n", "$ark_third_party_root/icu/icu4c:shared_icuuc", "../../../../:libark_jsruntime_test", sdk_libc_secshared_dep, ] foreach(file, test_js_files) { deps += [ ":gen_${file}_abc" ] } if (is_ohos && is_standard_system) { test_abc_dir = "/data/test/" } else { test_abc_dir = rebase_path(target_out_dir + "/abc_files/") } test_js_dir = rebase_path(test_js_path) defines = [ "HPROF_TEST_JS_FILES_DIR=\"${test_js_dir}\"", "HPROF_TEST_ABC_FILES_DIR=\"${test_abc_dir}\"", ] # hiviewdfx libraries external_deps = hiviewdfx_ext_deps deps += hiviewdfx_deps } host_unittest_action("HeapSnapShotTest") { module_out_path = module_output_path sources = [ # test file "heap_snapshot_test.cpp", ] configs = [ "../../../../:ecma_test_config" ] deps = [ "$ark_third_party_root/icu/icu4c:shared_icui18n", "$ark_third_party_root/icu/icu4c:shared_icuuc", "../../../../:libark_jsruntime_test", sdk_libc_secshared_dep, ] foreach(file, test_js_files) { deps += [ ":gen_${file}_abc" ] } if (is_ohos && is_standard_system) { test_abc_dir = "/data/test/" } else { test_abc_dir = rebase_path(target_out_dir + "/abc_files/") } test_js_dir = rebase_path(test_js_path) defines = [ "HPROF_TEST_JS_FILES_DIR=\"${test_js_dir}\"", "HPROF_TEST_ABC_FILES_DIR=\"${test_abc_dir}\"", ] # hiviewdfx libraries external_deps = hiviewdfx_ext_deps deps += hiviewdfx_deps } host_unittest_action("HeapTrackerFirstTest") { module_out_path = module_output_path sources = [ # test file "heap_tracker_first_test.cpp", ] configs = [ "../../../../:ecma_test_config" ] deps = [ "$ark_third_party_root/icu/icu4c:shared_icui18n", "$ark_third_party_root/icu/icu4c:shared_icuuc", "../../../../:libark_jsruntime_test", sdk_libc_secshared_dep, ] # hiviewdfx libraries external_deps = hiviewdfx_ext_deps deps += hiviewdfx_deps } host_unittest_action("HeapTrackerSecondTest") { module_out_path = module_output_path sources = [ # test file "heap_tracker_second_test.cpp", ] configs = [ "../../../../:ecma_test_config" ] deps = [ "$ark_third_party_root/icu/icu4c:shared_icui18n", "$ark_third_party_root/icu/icu4c:shared_icuuc", "../../../../:libark_jsruntime_test", sdk_libc_secshared_dep, ] # hiviewdfx libraries external_deps = hiviewdfx_ext_deps deps += hiviewdfx_deps } host_unittest_action("HeapTrackerThirdTest") { module_out_path = module_output_path sources = [ # test file "heap_tracker_third_test.cpp", ] configs = [ "../../../../:ecma_test_config" ] deps = [ "$ark_third_party_root/icu/icu4c:shared_icui18n", "$ark_third_party_root/icu/icu4c:shared_icuuc", "../../../../:libark_jsruntime_test", sdk_libc_secshared_dep, ] # hiviewdfx libraries external_deps = hiviewdfx_ext_deps deps += hiviewdfx_deps } host_unittest_action("HProfTest") { module_out_path = module_output_path sources = [ # test file "hprof_test.cpp", ] configs = [ "//arkcompiler/ets_runtime:ecma_test_config" ] deps = [ "$ark_third_party_root/icu/icu4c:shared_icui18n", "$ark_third_party_root/icu/icu4c:shared_icuuc", "//arkcompiler/ets_runtime:libark_jsruntime_test", sdk_libc_secshared_dep, ] # hiviewdfx libraries external_deps = hiviewdfx_ext_deps external_deps += [ "zlib:libz" ] deps += hiviewdfx_deps } host_unittest_action("HeapSamplingTest") { module_out_path = module_output_path sources = [ # test file "heap_sampling_test.cpp", ] configs = [ "$js_root:ecma_test_config" ] deps = [ "$ark_third_party_root/icu/icu4c:shared_icui18n", "$ark_third_party_root/icu/icu4c:shared_icuuc", "$js_root:libark_jsruntime_test", sdk_libc_secshared_dep, ] # hiviewdfx libraries external_deps = hiviewdfx_ext_deps deps += hiviewdfx_deps } host_unittest_action("RawHeapTranslateTest") { module_out_path = module_output_path sources = [ # test file "../rawheap_translate/metadata_parse.cpp", "../rawheap_translate/utils.cpp", "rawheap_translate_test.cpp", ] configs = [ "$js_root:ecma_test_config" ] deps = [ "$ark_third_party_root/icu/icu4c:shared_icui18n", "$ark_third_party_root/icu/icu4c:shared_icuuc", "$js_root:libark_jsruntime_test", sdk_libc_secshared_dep, ] cflags_cc = [ "-std=c++17" ] external_deps = [ "bounds_checking_function:libsec_static", "cJSON:cjson_static", ] # hiviewdfx libraries external_deps += hiviewdfx_ext_deps deps += hiviewdfx_deps } action("copy_metadata_for_test") { script = "$js_root/script/metadata_copy_for_test.py" target_path = rebase_path(root_out_dir) + "$target_test_path/metadata" args = [ "--metadata", rebase_path("$js_root/ecmascript/js_type_metadata"), "--outputs", rebase_path("$target_path"), ] outputs = [ "$root_gen_dir/arkcompiler/ets_runtime/metadata_copy_dummy.txt" ] } host_unittest_action("JSMetadataTest") { module_out_path = module_output_path sources = [ "js_metadata_test.cpp" ] configs = [ "../../../../:ecma_test_config" ] deps = [ ":copy_metadata_for_test", "$ark_third_party_root/icu/icu4c:shared_icui18n", "$ark_third_party_root/icu/icu4c:shared_icuuc", "../../../../:libark_jsruntime_test", sdk_libc_secshared_dep, ] if (is_ohos && is_standard_system) { metadata_file_path = "/data/test/" } metadata_file_path = rebase_path(metadata_file_path) defines = [ "METADATA_SOURCE_FILE_DIR=\"${metadata_file_path}\"" ] # hiviewdfx libraries external_deps = hiviewdfx_ext_deps external_deps += [ "cJSON:cjson_static" ] deps += hiviewdfx_deps } group("unittest") { testonly = true deps = [ ":HProfTest", ":HeapDumpTest", ":HeapSamplingTest", ":HeapSnapShotTest", ":HeapTrackerFirstTest", ":HeapTrackerSecondTest", ":HeapTrackerThirdTest", ":JSMetadataTest", ":RawHeapTranslateTest", ] } group("host_unittest") { testonly = true deps = [ ":HProfTestAction", ":HeapDumpTestAction", ":HeapSamplingTestAction", ":HeapSnapShotTestAction", ":HeapTrackerFirstTestAction", ":HeapTrackerSecondTestAction", ":HeapTrackerThirdTestAction", ":JSMetadataTestAction", ":RawHeapTranslateTestAction", ] if (is_mac) { deps -= [ ":HProfTestAction", ":HeapDumpTestAction", ":HeapSamplingTestAction", ":HeapSnapShotTestAction", ":HeapTrackerFirstTestAction", ":HeapTrackerSecondTestAction", ":HeapTrackerThirdTestAction", ":JSMetadataTestAction", ":RawHeapTranslateTestAction", ] } }