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" 70DEFAULT_ICU_PATH = f"{CODE_ROOT}/third_party/icu/ohos_icu4j/data" 71 72DEFAULT_ARK_TOOL = os.path.join(DEFAULT_ARK_JS_RUNTIME_DIR, "ark_js_vm") 73DEFAULT_LIBS_DIR = f"{DEFAULT_ICUI_DIR}:{LLVM_DIR}:{DEFAULT_ARK_JS_RUNTIME_DIR}:{DEFAULT_ZLIB_DIR}" 74DEFAULT_STUB_FILE = f"" 75DEFAULT_ARK_AOT_TOOL = os.path.join(DEFAULT_ARK_JS_RUNTIME_DIR, "ark_aot_compiler") 76 77DEFAULT_HOST_TYPE = "panda" 78DEFAULT_HOST_PATH = "python3" 79DEFAULT_THREADS = min(cpu_count(), 32) 80DEFAULT_OTHER_ARGS = "--saveCompiledTests" 81TEST262_RUNNER_SCRIPT = os.path.join(HARNESS_DIR, "bin", "run.js") 82DEFAULT_TIMEOUT = 60000 83 84ES5_LIST_FILE = os.path.join("test262", "es5_tests.txt") 85ES2015_LIST_FILE = os.path.join("test262", "es2015_tests.txt") 86INTL_LIST_FILE = os.path.join("test262", "intl_tests.txt") 87ES2021_LIST_FILE = os.path.join("test262", "es2021_tests.txt") 88SENDABLE_LIST_FILE = os.path.join("test262", "sendable_tests.txt") 89OTHER_LIST_FILE = os.path.join("test262", "other_tests.txt") 90ES2022_LIST_FILE = os.path.join("test262", "es2022_tests.txt") 91ES2023_LIST_FILE = os.path.join("test262", "es2023_tests.txt") 92CI_LIST_FILE = os.path.join("test262", "CI_tests.txt") 93MODULE_LIST = [] 94DYNAMIC_IMPORT_LIST = [] 95with open(os.path.join("test262", "module_tests.txt")) as m_file: 96 MODULE_LIST = m_file.read().splitlines() 97with open(os.path.join("test262", "dynamicImport_tests.txt")) as d_file: 98 DYNAMIC_IMPORT_LIST = d_file.read().splitlines() 99 100SENDABLE_GIT_HASH = "a0fa6f3636ffd11120d5465193b9d38455dcd102" 101TEST262_GIT_HASH = "6f4601d095a3899d6102f2c320b671495cbe8757" 102HARNESS_GIT_HASH = "9c499f028eb24e67781435c0bb442e00343eb39d" 103ESHOST_GIT_HASH = "fa2d4d27d9d6152002bdef36ee2d17e98b886268" 104ESNEXT_GIT_HASH = "281eb10b2844929a7c0ac04527f5b42ce56509fd" 105 106SENDABLE_GIT_URL = "https://gitee.com/arkcompiler_sendable/test262_sendable.git" 107TEST262_GIT_URL = "https://gitee.com/hufeng20/test262.git" 108ESHOST_GIT_URL = "https://gitee.com/hufeng20/eshost.git" 109HARNESS_GIT_URL = "https://gitee.com/hufeng20/test262-harness.git" 110 111TEST262_JIT_GIT_URL = "https://gitee.com/lxy0115/test262.git" 112TEST262_JIT_GIT_HASH = "1c923f96779aabbd4bed35a00e7078054c465334" 113TEST262_JIT_LABEL = os.path.join("test262", "data", "preheated.txt") 114 115SKIP_LIST_FILE = os.path.join("test262", "skip_tests.json") 116ES2ABC_SKIP_LIST_FILE = os.path.join("test262", "es2abc_skip_tests.json") 117TS2ABC_SKIP_LIST_FILE = os.path.join("test262", "ts2abc_skip_tests.json") 118INTL_SKIP_LIST_FILE = os.path.join("test262", "intl_skip_tests.json") 119TS2ABC_SKIP_FORCE_GC_LIST_FILE = os.path.join("test262", "force_gc_skip_tests.json") 120SKIP_LIST_FILES = [SKIP_LIST_FILE, INTL_SKIP_LIST_FILE] 121ALL_SKIP_TESTS = [] 122INTL_SKIP_TESTS = [] 123SKIP_FORCE_GC_LIST_FILES = [] 124FORCE_GC_SKIP_TESTS = [] 125 126ARK_FRONTEND_LIST = [ 127 "ts2panda", 128 "es2panda" 129] 130 131ARK_FRONTEND_BINARY_LIST = [ 132 os.path.join(DEFAULT_ARK_DIR, "build", "src", "index.js"), 133 os.path.join(DEFAULT_ARK_DIR, "es2abc") 134] 135 136DEFAULT_ARK_FRONTEND = ARK_FRONTEND_LIST[0] 137DEFAULT_ARK_FRONTEND_BINARY = ARK_FRONTEND_BINARY_LIST[0] 138DEFAULT_MERGE_ABC_BINARY = os.path.join(DEFAULT_ARK_DIR, "merge_abc") 139 140ARK_ARCH_LIST = [ 141 "x64", 142 "aarch64", 143 "arm" 144] 145 146DEFAULT_ARK_ARCH = ARK_ARCH_LIST[0] 147DEFAULT_OPT_LEVEL = 2 148DEFAULT_ES2ABC_THREAD_COUNT = 0 149DEFAULT_MERGE_ABC_MODE = 1 150 151OHOS_TYPESCRIPT = "ohos-typescript-4.2.3-r2.tgz" 152OHOS_TYPESCRIPT_TGZ_PATH = f"{CODE_ROOT}/third_party/typescript/build_package/{OHOS_TYPESCRIPT}" 153 154DEFAULT_RETRIES = 3 155