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