13af6ab5fSopenharmony_ci#!/usr/bin/env python3 23af6ab5fSopenharmony_ci# -*- coding: utf-8 -*- 33af6ab5fSopenharmony_ci 43af6ab5fSopenharmony_ci""" 53af6ab5fSopenharmony_ciCopyright (c) 2021-2022 Huawei Device Co., Ltd. 63af6ab5fSopenharmony_ciLicensed under the Apache License, Version 2.0 (the "License"); 73af6ab5fSopenharmony_ciyou may not use this file except in compliance with the License. 83af6ab5fSopenharmony_ciYou may obtain a copy of the License at 93af6ab5fSopenharmony_ci 103af6ab5fSopenharmony_ci http://www.apache.org/licenses/LICENSE-2.0 113af6ab5fSopenharmony_ci 123af6ab5fSopenharmony_ciUnless required by applicable law or agreed to in writing, software 133af6ab5fSopenharmony_cidistributed under the License is distributed on an "AS IS" BASIS, 143af6ab5fSopenharmony_ciWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 153af6ab5fSopenharmony_ciSee the License for the specific language governing permissions and 163af6ab5fSopenharmony_cilimitations under the License. 173af6ab5fSopenharmony_ci 183af6ab5fSopenharmony_ciDescription: Execute 262 test suite configuration file 193af6ab5fSopenharmony_ci""" 203af6ab5fSopenharmony_ci 213af6ab5fSopenharmony_ci 223af6ab5fSopenharmony_ciimport os 233af6ab5fSopenharmony_ciimport sys 243af6ab5fSopenharmony_ciimport platform 253af6ab5fSopenharmony_cifrom multiprocessing import cpu_count 263af6ab5fSopenharmony_ci 273af6ab5fSopenharmony_ciIS_LINUX_ARM64 = (sys.platform == "linux" and platform.machine().lower() == "aarch64") 283af6ab5fSopenharmony_ciCLANG_TOOLCHAIN = "clang_arm64" if IS_LINUX_ARM64 else "clang_x64" 293af6ab5fSopenharmony_ci 303af6ab5fSopenharmony_ciDATA_DIR = os.path.join("test262", "data") 313af6ab5fSopenharmony_ciESHOST_DIR = os.path.join("test262", "eshost") 323af6ab5fSopenharmony_ciHARNESS_DIR = os.path.join("test262", "harness") 333af6ab5fSopenharmony_ci 343af6ab5fSopenharmony_ciBASE_OUT_DIR = os.path.join("out", "test262") 353af6ab5fSopenharmony_ci 363af6ab5fSopenharmony_ciCUR_FILE_DIR = os.path.dirname(__file__) 373af6ab5fSopenharmony_ciCODE_ROOT = os.path.abspath(os.path.join(CUR_FILE_DIR, "../../..")) 383af6ab5fSopenharmony_ciif IS_LINUX_ARM64: 393af6ab5fSopenharmony_ci LLVM_DIR = f"{CODE_ROOT}/prebuilts/clang/ohos/linux-aarch64/llvm/lib/" 403af6ab5fSopenharmony_cielse: 413af6ab5fSopenharmony_ci LLVM_DIR = f"{CODE_ROOT}/prebuilts/clang/ohos/linux-x86_64/llvm/lib/" 423af6ab5fSopenharmony_ci 433af6ab5fSopenharmony_ciDEFAULT_MODE = 2 443af6ab5fSopenharmony_ci 453af6ab5fSopenharmony_ciTEST_FULL_DIR = os.path.join(DATA_DIR, "test") 463af6ab5fSopenharmony_ciTEST_ES5_DIR = os.path.join(DATA_DIR, "test_es51") 473af6ab5fSopenharmony_ciTEST_ES2015_DIR = os.path.join(DATA_DIR, "test_es2015") 483af6ab5fSopenharmony_ciTEST_ES2021_DIR = os.path.join(DATA_DIR, "test_es2021") 493af6ab5fSopenharmony_ciTEST_OTHERTESTS_DIR = os.path.join(DATA_DIR, "other_tests") 503af6ab5fSopenharmony_ciTEST_ES2022_DIR = os.path.join(DATA_DIR, "test_es2022") 513af6ab5fSopenharmony_ciTEST_ES2023_DIR = os.path.join(DATA_DIR, "test_es2023") 523af6ab5fSopenharmony_ciTEST_INTL_DIR = os.path.join(DATA_DIR, "test_intl") 533af6ab5fSopenharmony_ciTEST_CI_DIR = os.path.join(DATA_DIR, "test_CI") 543af6ab5fSopenharmony_ciTEST_SENDABLE_DIR = os.path.join(DATA_DIR, "test_sendable") 553af6ab5fSopenharmony_ci 563af6ab5fSopenharmony_ciHISPARK_TAURUS_PRODUCT_NAME = "hispark_taurus" 573af6ab5fSopenharmony_ciRK3568_PRODUCT_NAME = "rk3568" 583af6ab5fSopenharmony_ciDEFAULT_PRODUCT_NAME = HISPARK_TAURUS_PRODUCT_NAME 593af6ab5fSopenharmony_ci 603af6ab5fSopenharmony_ciARGS_PREFIX = f"{CODE_ROOT}/out/" 613af6ab5fSopenharmony_ciARK_DIR_SUFFIX = "clang_x64/arkcompiler/ets_frontend" 623af6ab5fSopenharmony_ciICUI_DIR_SUFFIX = "clang_x64/thirdparty/icu" 633af6ab5fSopenharmony_ciARK_JS_RUNTIME_DIR_SUFFIX = "clang_x64/arkcompiler/ets_runtime" 643af6ab5fSopenharmony_ciZLIB_DIR_SUFFIX = "clang_x64/thirdparty/zlib" 653af6ab5fSopenharmony_ci 663af6ab5fSopenharmony_ciDEFAULT_ARK_DIR = f"{CODE_ROOT}/out/hispark_taurus/clang_x64/arkcompiler/ets_frontend" 673af6ab5fSopenharmony_ciDEFAULT_ICUI_DIR = f"{CODE_ROOT}/out/hispark_taurus/clang_x64/thirdparty/icu" 683af6ab5fSopenharmony_ciDEFAULT_ARK_JS_RUNTIME_DIR = f"{CODE_ROOT}/out/hispark_taurus/clang_x64/arkcompiler/ets_runtime" 693af6ab5fSopenharmony_ciDEFAULT_ZLIB_DIR = f"{CODE_ROOT}/out/hispark_taurus/clang_x64/thirdparty/zlib" 703af6ab5fSopenharmony_ci 713af6ab5fSopenharmony_ciDEFAULT_ARK_TOOL = os.path.join(DEFAULT_ARK_JS_RUNTIME_DIR, "ark_js_vm") 723af6ab5fSopenharmony_ciDEFAULT_LIBS_DIR = f"{DEFAULT_ICUI_DIR}:{LLVM_DIR}:{DEFAULT_ARK_JS_RUNTIME_DIR}:{DEFAULT_ZLIB_DIR}" 733af6ab5fSopenharmony_ciDEFAULT_STUB_FILE = f"" 743af6ab5fSopenharmony_ciDEFAULT_ARK_AOT_TOOL = os.path.join(DEFAULT_ARK_JS_RUNTIME_DIR, "ark_aot_compiler") 753af6ab5fSopenharmony_ci 763af6ab5fSopenharmony_ciDEFAULT_HOST_TYPE = "panda" 773af6ab5fSopenharmony_ciDEFAULT_HOST_PATH = "python3" 783af6ab5fSopenharmony_ciDEFAULT_THREADS = min(cpu_count(), 32) 793af6ab5fSopenharmony_ciDEFAULT_OTHER_ARGS = "--saveCompiledTests" 803af6ab5fSopenharmony_ciTEST262_RUNNER_SCRIPT = os.path.join(HARNESS_DIR, "bin", "run.js") 813af6ab5fSopenharmony_ciDEFAULT_TIMEOUT = 60000 823af6ab5fSopenharmony_ci 833af6ab5fSopenharmony_ciES5_LIST_FILE = os.path.join("test262", "es5_tests.txt") 843af6ab5fSopenharmony_ciES2015_LIST_FILE = os.path.join("test262", "es2015_tests.txt") 853af6ab5fSopenharmony_ciINTL_LIST_FILE = os.path.join("test262", "intl_tests.txt") 863af6ab5fSopenharmony_ciES2021_LIST_FILE = os.path.join("test262", "es2021_tests.txt") 873af6ab5fSopenharmony_ciSENDABLE_LIST_FILE = os.path.join("test262", "sendable_tests.txt") 883af6ab5fSopenharmony_ciOTHER_LIST_FILE = os.path.join("test262", "other_tests.txt") 893af6ab5fSopenharmony_ciES2022_LIST_FILE = os.path.join("test262", "es2022_tests.txt") 903af6ab5fSopenharmony_ciES2023_LIST_FILE = os.path.join("test262", "es2023_tests.txt") 913af6ab5fSopenharmony_ciCI_LIST_FILE = os.path.join("test262", "CI_tests.txt") 923af6ab5fSopenharmony_ciMODULE_LIST = [] 933af6ab5fSopenharmony_ciDYNAMIC_IMPORT_LIST = [] 943af6ab5fSopenharmony_ciwith open(os.path.join("test262", "module_tests.txt")) as m_file: 953af6ab5fSopenharmony_ci MODULE_LIST = m_file.read().splitlines() 963af6ab5fSopenharmony_ciwith open(os.path.join("test262", "dynamicImport_tests.txt")) as d_file: 973af6ab5fSopenharmony_ci DYNAMIC_IMPORT_LIST = d_file.read().splitlines() 983af6ab5fSopenharmony_ci 993af6ab5fSopenharmony_ciSENDABLE_GIT_HASH = "3b438d2b80d14eb7f24d280ceac5030e7a81abd2" 1003af6ab5fSopenharmony_ciTEST262_GIT_HASH = "6f4601d095a3899d6102f2c320b671495cbe8757" 1013af6ab5fSopenharmony_ciHARNESS_GIT_HASH = "9c499f028eb24e67781435c0bb442e00343eb39d" 1023af6ab5fSopenharmony_ciESHOST_GIT_HASH = "fa2d4d27d9d6152002bdef36ee2d17e98b886268" 1033af6ab5fSopenharmony_ciESNEXT_GIT_HASH = "281eb10b2844929a7c0ac04527f5b42ce56509fd" 1043af6ab5fSopenharmony_ci 1053af6ab5fSopenharmony_ciSENDABLE_GIT_URL = "https://gitee.com/ark_standalone_build/test262_sendable.git" 1063af6ab5fSopenharmony_ciTEST262_GIT_URL = "https://gitee.com/hufeng20/test262.git" 1073af6ab5fSopenharmony_ciESHOST_GIT_URL = "https://gitee.com/hufeng20/eshost.git" 1083af6ab5fSopenharmony_ciHARNESS_GIT_URL = "https://gitee.com/hufeng20/test262-harness.git" 1093af6ab5fSopenharmony_ci 1103af6ab5fSopenharmony_ciTEST262_JIT_GIT_URL = "https://gitee.com/lxy0115/test262.git" 1113af6ab5fSopenharmony_ciTEST262_JIT_GIT_HASH = "1c923f96779aabbd4bed35a00e7078054c465334" 1123af6ab5fSopenharmony_ciTEST262_JIT_LABEL = os.path.join("test262", "data", "preheated.txt") 1133af6ab5fSopenharmony_ci 1143af6ab5fSopenharmony_ciSKIP_LIST_FILE = os.path.join("test262", "skip_tests.json") 1153af6ab5fSopenharmony_ciES2ABC_SKIP_LIST_FILE = os.path.join("test262", "es2abc_skip_tests.json") 1163af6ab5fSopenharmony_ciTS2ABC_SKIP_LIST_FILE = os.path.join("test262", "ts2abc_skip_tests.json") 1173af6ab5fSopenharmony_ciINTL_SKIP_LIST_FILE = os.path.join("test262", "intl_skip_tests.json") 1183af6ab5fSopenharmony_ciTS2ABC_SKIP_FORCE_GC_LIST_FILE = os.path.join("test262", "force_gc_skip_tests.json") 1193af6ab5fSopenharmony_ciSKIP_LIST_FILES = [SKIP_LIST_FILE, INTL_SKIP_LIST_FILE] 1203af6ab5fSopenharmony_ciALL_SKIP_TESTS = [] 1213af6ab5fSopenharmony_ciINTL_SKIP_TESTS = [] 1223af6ab5fSopenharmony_ciSKIP_FORCE_GC_LIST_FILES = [] 1233af6ab5fSopenharmony_ciFORCE_GC_SKIP_TESTS = [] 1243af6ab5fSopenharmony_ci 1253af6ab5fSopenharmony_ciARK_FRONTEND_LIST = [ 1263af6ab5fSopenharmony_ci "ts2panda", 1273af6ab5fSopenharmony_ci "es2panda" 1283af6ab5fSopenharmony_ci] 1293af6ab5fSopenharmony_ci 1303af6ab5fSopenharmony_ciARK_FRONTEND_BINARY_LIST = [ 1313af6ab5fSopenharmony_ci os.path.join(DEFAULT_ARK_DIR, "build", "src", "index.js"), 1323af6ab5fSopenharmony_ci os.path.join(DEFAULT_ARK_DIR, "es2abc") 1333af6ab5fSopenharmony_ci] 1343af6ab5fSopenharmony_ci 1353af6ab5fSopenharmony_ciDEFAULT_ARK_FRONTEND = ARK_FRONTEND_LIST[0] 1363af6ab5fSopenharmony_ciDEFAULT_ARK_FRONTEND_BINARY = ARK_FRONTEND_BINARY_LIST[0] 1373af6ab5fSopenharmony_ciDEFAULT_MERGE_ABC_BINARY = os.path.join(DEFAULT_ARK_DIR, "merge_abc") 1383af6ab5fSopenharmony_ci 1393af6ab5fSopenharmony_ciARK_ARCH_LIST = [ 1403af6ab5fSopenharmony_ci "x64", 1413af6ab5fSopenharmony_ci "aarch64", 1423af6ab5fSopenharmony_ci "arm" 1433af6ab5fSopenharmony_ci] 1443af6ab5fSopenharmony_ci 1453af6ab5fSopenharmony_ciDEFAULT_ARK_ARCH = ARK_ARCH_LIST[0] 1463af6ab5fSopenharmony_ciDEFAULT_OPT_LEVEL = 2 1473af6ab5fSopenharmony_ciDEFAULT_ES2ABC_THREAD_COUNT = 0 1483af6ab5fSopenharmony_ciDEFAULT_MERGE_ABC_MODE = 1 1493af6ab5fSopenharmony_ci 1503af6ab5fSopenharmony_ciOHOS_TYPESCRIPT = "ohos-typescript-4.2.3-r2.tgz" 1513af6ab5fSopenharmony_ciOHOS_TYPESCRIPT_TGZ_PATH = f"{CODE_ROOT}/third_party/typescript/build_package/{OHOS_TYPESCRIPT}" 1523af6ab5fSopenharmony_ci 1533af6ab5fSopenharmony_ciDEFAULT_RETRIES = 3 154