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