• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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