1#!/usr/bin/env python3 2# -*- coding: utf-8 -*- 3 4""" 5Copyright (c) 2021-2022 Huawei Device Co., Ltd. 6Licensed under the Apache License, Version 2.0 (the "License"); 7you may not use this file except in compliance with the License. 8You may obtain a copy of the License at 9 10 http://www.apache.org/licenses/LICENSE-2.0 11 12Unless required by applicable law or agreed to in writing, software 13distributed under the License is distributed on an "AS IS" BASIS, 14WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15See the License for the specific language governing permissions and 16limitations under the License. 17 18Description: Execute 262 test suite configuration file 19""" 20 21 22import os 23import sys 24import platform 25from multiprocessing import cpu_count 26 27IS_LINUX_ARM64 = (sys.platform == "linux" and platform.machine().lower() == "aarch64") 28CLANG_TOOLCHAIN = "clang_arm64" if IS_LINUX_ARM64 else "clang_x64" 29 30DATA_DIR = os.path.join("test262", "data") 31ESHOST_DIR = os.path.join("test262", "eshost") 32HARNESS_DIR = os.path.join("test262", "harness") 33 34BASE_OUT_DIR = os.path.join("out", "test262") 35 36CUR_FILE_DIR = os.path.dirname(__file__) 37CODE_ROOT = os.path.abspath(os.path.join(CUR_FILE_DIR, "../../..")) 38if IS_LINUX_ARM64: 39 LLVM_DIR = f"{CODE_ROOT}/prebuilts/clang/ohos/linux-aarch64/llvm/lib/" 40else: 41 LLVM_DIR = f"{CODE_ROOT}/prebuilts/clang/ohos/linux-x86_64/llvm/lib/" 42 43DEFAULT_MODE = 2 44 45TEST_FULL_DIR = os.path.join(DATA_DIR, "test") 46TEST_ES5_DIR = os.path.join(DATA_DIR, "test_es51") 47TEST_ES2015_DIR = os.path.join(DATA_DIR, "test_es2015") 48TEST_ES2021_DIR = os.path.join(DATA_DIR, "test_es2021") 49TEST_OTHERTESTS_DIR = os.path.join(DATA_DIR, "other_tests") 50TEST_ES2022_DIR = os.path.join(DATA_DIR, "test_es2022") 51TEST_ES2023_DIR = os.path.join(DATA_DIR, "test_es2023") 52TEST_INTL_DIR = os.path.join(DATA_DIR, "test_intl") 53TEST_CI_DIR = os.path.join(DATA_DIR, "test_CI") 54TEST_SENDABLE_DIR = os.path.join(DATA_DIR, "test_sendable") 55 56HISPARK_TAURUS_PRODUCT_NAME = "hispark_taurus" 57RK3568_PRODUCT_NAME = "rk3568" 58DEFAULT_PRODUCT_NAME = HISPARK_TAURUS_PRODUCT_NAME 59 60ARGS_PREFIX = f"{CODE_ROOT}/out/" 61ARK_DIR_SUFFIX = "clang_x64/arkcompiler/ets_frontend" 62ICUI_DIR_SUFFIX = "clang_x64/thirdparty/icu" 63ARK_JS_RUNTIME_DIR_SUFFIX = "clang_x64/arkcompiler/ets_runtime" 64ZLIB_DIR_SUFFIX = "clang_x64/thirdparty/zlib" 65 66DEFAULT_ARK_DIR = f"{CODE_ROOT}/out/hispark_taurus/clang_x64/arkcompiler/ets_frontend" 67DEFAULT_ICUI_DIR = f"{CODE_ROOT}/out/hispark_taurus/clang_x64/thirdparty/icu" 68DEFAULT_ARK_JS_RUNTIME_DIR = f"{CODE_ROOT}/out/hispark_taurus/clang_x64/arkcompiler/ets_runtime" 69DEFAULT_ZLIB_DIR = f"{CODE_ROOT}/out/hispark_taurus/clang_x64/thirdparty/zlib" 70 71DEFAULT_ARK_TOOL = os.path.join(DEFAULT_ARK_JS_RUNTIME_DIR, "ark_js_vm") 72DEFAULT_LIBS_DIR = f"{DEFAULT_ICUI_DIR}:{LLVM_DIR}:{DEFAULT_ARK_JS_RUNTIME_DIR}:{DEFAULT_ZLIB_DIR}" 73DEFAULT_STUB_FILE = f"" 74DEFAULT_ARK_AOT_TOOL = os.path.join(DEFAULT_ARK_JS_RUNTIME_DIR, "ark_aot_compiler") 75 76DEFAULT_HOST_TYPE = "panda" 77DEFAULT_HOST_PATH = "python3" 78DEFAULT_THREADS = min(cpu_count(), 32) 79DEFAULT_OTHER_ARGS = "--saveCompiledTests" 80TEST262_RUNNER_SCRIPT = os.path.join(HARNESS_DIR, "bin", "run.js") 81DEFAULT_TIMEOUT = 60000 82 83ES5_LIST_FILE = os.path.join("test262", "es5_tests.txt") 84ES2015_LIST_FILE = os.path.join("test262", "es2015_tests.txt") 85INTL_LIST_FILE = os.path.join("test262", "intl_tests.txt") 86ES2021_LIST_FILE = os.path.join("test262", "es2021_tests.txt") 87SENDABLE_LIST_FILE = os.path.join("test262", "sendable_tests.txt") 88OTHER_LIST_FILE = os.path.join("test262", "other_tests.txt") 89ES2022_LIST_FILE = os.path.join("test262", "es2022_tests.txt") 90ES2023_LIST_FILE = os.path.join("test262", "es2023_tests.txt") 91CI_LIST_FILE = os.path.join("test262", "CI_tests.txt") 92MODULE_LIST = [] 93DYNAMIC_IMPORT_LIST = [] 94with open(os.path.join("test262", "module_tests.txt")) as m_file: 95 MODULE_LIST = m_file.read().splitlines() 96with open(os.path.join("test262", "dynamicImport_tests.txt")) as d_file: 97 DYNAMIC_IMPORT_LIST = d_file.read().splitlines() 98 99SENDABLE_GIT_HASH = "3b438d2b80d14eb7f24d280ceac5030e7a81abd2" 100TEST262_GIT_HASH = "6f4601d095a3899d6102f2c320b671495cbe8757" 101HARNESS_GIT_HASH = "9c499f028eb24e67781435c0bb442e00343eb39d" 102ESHOST_GIT_HASH = "fa2d4d27d9d6152002bdef36ee2d17e98b886268" 103ESNEXT_GIT_HASH = "281eb10b2844929a7c0ac04527f5b42ce56509fd" 104 105SENDABLE_GIT_URL = "https://gitee.com/ark_standalone_build/test262_sendable.git" 106TEST262_GIT_URL = "https://gitee.com/hufeng20/test262.git" 107ESHOST_GIT_URL = "https://gitee.com/hufeng20/eshost.git" 108HARNESS_GIT_URL = "https://gitee.com/hufeng20/test262-harness.git" 109 110TEST262_JIT_GIT_URL = "https://gitee.com/lxy0115/test262.git" 111TEST262_JIT_GIT_HASH = "1c923f96779aabbd4bed35a00e7078054c465334" 112TEST262_JIT_LABEL = os.path.join("test262", "data", "preheated.txt") 113 114SKIP_LIST_FILE = os.path.join("test262", "skip_tests.json") 115ES2ABC_SKIP_LIST_FILE = os.path.join("test262", "es2abc_skip_tests.json") 116TS2ABC_SKIP_LIST_FILE = os.path.join("test262", "ts2abc_skip_tests.json") 117INTL_SKIP_LIST_FILE = os.path.join("test262", "intl_skip_tests.json") 118TS2ABC_SKIP_FORCE_GC_LIST_FILE = os.path.join("test262", "force_gc_skip_tests.json") 119SKIP_LIST_FILES = [SKIP_LIST_FILE, INTL_SKIP_LIST_FILE] 120ALL_SKIP_TESTS = [] 121INTL_SKIP_TESTS = [] 122SKIP_FORCE_GC_LIST_FILES = [] 123FORCE_GC_SKIP_TESTS = [] 124 125ARK_FRONTEND_LIST = [ 126 "ts2panda", 127 "es2panda" 128] 129 130ARK_FRONTEND_BINARY_LIST = [ 131 os.path.join(DEFAULT_ARK_DIR, "build", "src", "index.js"), 132 os.path.join(DEFAULT_ARK_DIR, "es2abc") 133] 134 135DEFAULT_ARK_FRONTEND = ARK_FRONTEND_LIST[0] 136DEFAULT_ARK_FRONTEND_BINARY = ARK_FRONTEND_BINARY_LIST[0] 137DEFAULT_MERGE_ABC_BINARY = os.path.join(DEFAULT_ARK_DIR, "merge_abc") 138 139ARK_ARCH_LIST = [ 140 "x64", 141 "aarch64", 142 "arm" 143] 144 145DEFAULT_ARK_ARCH = ARK_ARCH_LIST[0] 146DEFAULT_OPT_LEVEL = 2 147DEFAULT_ES2ABC_THREAD_COUNT = 0 148DEFAULT_MERGE_ABC_MODE = 1 149 150OHOS_TYPESCRIPT = "ohos-typescript-4.2.3-r2.tgz" 151OHOS_TYPESCRIPT_TGZ_PATH = f"{CODE_ROOT}/third_party/typescript/build_package/{OHOS_TYPESCRIPT}" 152 153DEFAULT_RETRIES = 3 154