• 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")
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