文件最后提交记录最后更新时间
Add AGENTS.md for es2panda3 个月前
update test262 for ICU update5 个月前
Descriptor: 部件化整改 ark -> arkcompiler3 年前
fix copyright & typo error4 年前
update test262 for ICU update5 个月前
Support dynamic import feature3 年前
Fix async function's related testcases of [Test262]'s language3 年前
添加接口BuiltinsObject::GetOwnPropertyDescriptors的262测试例子2 年前
support top-level await for module2 年前
description:修改增加TypedArray toSorted测试用例2 年前
Add 262 cases1 年前
Add international access control, add a separate test international module3 年前
Remove data race in async execution in eshost1 年前
reason:add unForceGc list3 年前
test262: support --test-list1 年前
Title: Update kfl lists 202603122 个月前
clean nightly job kfl1 年前
clean nightly job kfl1 年前
Remove data race in async execution in eshost1 年前
Title: Update kfl lists 202603122 个月前
Title: Update kfl lists 202603122 个月前
Title: Update kfl lists 202603122 个月前
update test262 for ICU update5 个月前
Title: Update kfl lists 202510027 个月前
update test262 for ICU update5 个月前
Title: Update kfl lists 202603122 个月前
update test262 for ICU update5 个月前
Title: Update kfl lists 202603122 个月前
disable error expected usecases6 个月前
Title: Update kfl lists 202603122 个月前
Title: Update kfl lists 202603122 个月前
Title: Update kfl lists 202603122 个月前
disable error expected usecases6 个月前
disable error expected usecases6 个月前
Title: Update kfl lists 202603122 个月前
disable error expected usecases6 个月前
Title: Update kfl lists 202603122 个月前
disable error expected usecases6 个月前
disable error expected usecases6 个月前
disable error expected usecases6 个月前
Title: Update kfl lists 202603122 个月前
Title: Update kfl lists 202603122 个月前
clean nightly job kfl1 年前
clean nightly job kfl1 年前
Title: Update kfl lists 202603122 个月前
update test262 for ICU update5 个月前
Title: Update kfl lists 202410041 年前
clean nightly job kfl1 年前
Title: Update kfl lists 202410041 年前
clean nightly job kfl1 年前
屏蔽由于ICU 版本更新导致用例失败1 年前
update test262 for ICU update5 个月前
Fix codecheck1 年前
support top-level await for module2 年前
update test262 for ICU update5 个月前
修复ide预览器预览错误4 个月前
update test262 for ICU update5 个月前
Up KFL1 年前
Up KFL1 年前
Up KFL1 年前
Add multi-context option for test11 个月前
Add multi-context option for test11 个月前
add test262 test cases and hash mumber1 年前
add skip list1 年前
Add skip list1 年前
Add skip list for test2621 年前
Add skip list for test2621 年前
add skip list1 年前
add skip list1 年前
decodeURIComponent 262 debug timeout1 年前
split test1 年前
split test1 年前
split test1 年前
split test1 年前
split test1 年前
split test1 年前
split test1 年前
split test1 年前
Enable tests after fixing ub1 年前
Title: Update kfl lists 202408261 年前
README.md

File overview:

es5_tests.txt:  This file contains a list of ES5 test cases. If useful cases are found missing, you can add them as needed.
es2015_tests.txt:  This file contains a full list of use cases of ES2015 except those filtered out with'es6id'. If useful cases are found missing, you can add them as needed.
es2021_tests.txt:  This file contains a full list of use cases of ES2021 except those filtered out with'es6id'. If useful cases are found missing, you can add them as needed.
intl_tests.txt:  This file contains a list of internationalization test cases. If you find useful cases missing, you can add them as needed.
skip_tests.json: This file contains a list of use cases that do not meet the requirements. If useful cases are found missing, you can add them according to the specified format.
intl_skip_tests.json: This file contains a list of non-compliant internationalization use cases. If useful cases are found to be missing, they can be added in the specified format.

1. Compile ts2abc and ark_js_vm project

./build.sh --product-name hispark_taurus_standard --build-target ark_js_vm --build-target ark_ts2abc_build

2 Run test cases

2.1 Options

usage: run_test262.py [-h] [--dir DIR] [--file FILE] [--mode [{1,2,3}]]
                      [--es51] [--es2015 [{all,only}]] [--esnext]
                      [--engine FILE] [--babel] [--timeout TIMEOUT]
                      [--threads THREADS] [--hostArgs HOSTARGS]
                      [--ark-aot]
                      [--ark-aot-tool ARK_AOT_TOOL]
                      [--ark-tool ARK_TOOL]
                      [--ark-frontend-tool ARK_FRONTEND_TOOL]
                      [--libs-dir LIBS_DIR]
                      [--ark-frontend [{ts2panda,es2panda}]]

optional arguments:
  -h, --help            Show this help message and exit
  --dir DIR             Directory to test
  --file FILE           File to test
  --mode [{1,2,3}]      selection information as: 1: only default 2:
                        only strict mode 3: both default and strict mode
  --es51                Run test262 ES5.1 version
  --es2015 [{all,only}]
                        Run test262 - ES2015. all: Contains all use cases for
                        ES5 and ES2015, only: Only include use cases for
                        ES2015
  --esnext              Run test262 - ES.next.
  --engine FILE         Other engine binarys to run tests with
                        (as:d8,hermes,jsc,qjs...)
  --babel               Whether to use Babel conversion
  --timeout TIMEOUT     Set a custom test timeout in milliseconds !!!
  --threads THREADS     Run this many tests in parallel. Note that the browser
                        runners don't work great with t > 1.
  --hostArgs HOSTARGS   command-line arguments to pass to eshost host
  --ark-aot             Run test262 with aot
  --ark-aot-tool ARK_AOT_TOOL
                        ark's aot tool
  --ark-tool ARK_TOOL   ark's binary tool
  --ark-frontend-tool ARK_FRONTEND_TOOL
                        ark frontend conversion tool
  --libs-dir LIBS_DIR   The path collection of dependent so, divided by':'
  --ark-frontend [{ts2panda,es2panda}]
                        Choose one of them

2.2 Run all the test cases

python3 test262/run_test262.py
python3 test262/run_test262.py --es51

After the execution finished, a directory named test_es51 is created under directory test262/data , which is used to store all es51 cases.

2.4.1 only include use cases for ES2015

python3 test262/run_test262.py --es2015 only

2.4.2 Contains all use cases for ES5 and ES2015

python3 test262/run_test262.py --es2015 all

2.5 Run single test case

python3 test262/run_test262.py --file test262/data/test_es5/language/statements/break/12.8-1.js

2.6 Run all the test cases under specified directory

python3 test262/run_test262.py --dir test262/data/test_es5/language/statements

2.7 Run single test case with other engines. Take d8 as an example

 python3 test262/run_test262.py --engine="/home/share/v8-code/v8/out.gn/x64.release/d8" --file test262/data/test_es5/language/statements/break/12.8-1.js

2.8 Run single test case with babel conversion

python3 test262/run_test262.py  --babel --file test262/data/test_es5/language/statements/break/12.8-1.js

2.9 Get test result

take the following code as an example:

zgy@lfgphicprd23154:/home/share/OpenHarmony2.0_20210604/ark/ts2abc$ python3 -B test262/run_test262.py --file test262/data/test_es51/language/statements/break/12.8-1.js

Wait a moment..........

07-30 16:56:03.857383 D:>>>       command: npm install | dir: /home/share/OpenHarmony2.0_20210604/out/ohos-arm-release/clang_x64/arkcompiler/ets_frontend/build/src/..
npm WARN ts2panda@1.0.0 No description
npm WARN ts2panda@1.0.0 No repository field.
npm WARN ts2panda@1.0.0 No license field.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

up to date in 2.225s

28 packages are looking for funding
  run `npm fund` for details

07-30 16:56:06.746184 D:>>>       command: npm install | dir: test262/eshost
up to date in 1.446s

1 package is looking for funding
  run `npm fund` for details

07-30 16:56:08.767037 D:>>>       command: npm install | dir: test262/harness
up to date in 2.412s
07-30 16:56:11.836409 D:>>>       command: git checkout -- . | dir: test262/data
07-30 16:56:12.012115 D:>>>       command: git checkout 9ca13b12728b7e0089c7eb03fa2bd17f8abe297f | dir: test262/data
HEAD is now at 9ca13b1272 Fix typo in BigIntArray property descriptor test
07-30 16:56:12.275768 D:>>>       command: git checkout -- . | dir: test262/eshost
07-30 16:56:12.280134 D:>>>       command: git apply ../eshost.patch | dir: test262/eshost
07-30 16:56:12.283263 D:>>>       command: git checkout -- . | dir: test262/harness
07-30 16:56:12.288134 D:>>>       command: git apply ../harness.patch | dir: test262/harness
Test command:
        node
        test262/harness/bin/run.js
        --hostType=panda
        --hostPath=python3
        --hostArgs='-B test262/run_sunspider.py --ark-tool=/home/share/OpenHarmony2.0_20210604/out/ohos-arm-release/clang_x64/arkcompiler/ets_runtime/ark_js_vm --ark-frontend-tool=/home/share/OpenHarmony2.0_20210604/out/ohos-arm-release/clang_x64/arkcompiler/ets_frontend/build/src/index.js --libs-dir=/home/share/OpenHarmony2.0_20210604/out/ohos-arm-release/clang_x64/arkcompiler/ets_runtime:/home/share/OpenHarmony2.0_20210604/out/ohos-arm-release/clang_x64/global/i18n_standard:/home/share/OpenHarmony2.0_20210604/prebuilts/clang/ohos/linux-x86_64/llvm/lib/ --ark-frontend=ts2panda '
        --threads=15
        --mode=only strict mode
        --timeout=60000
        --tempDir=out/test262
        --test262Dir=test262/data
        --saveCompiledTests
        test262/data/test_es51/language/statements/break/12.8-1.js

FAIL test262/data/test_es51/language/statements/break/12.8-1.js (strict mode)

Ran 1 tests
0 passed
1 failed
used time is: 0:00:13.303865
  • default indicates non-strict mode; strict mode indicates the strict mode.

  • After the execution finished, the following files are generated under directory out/test262/ (you can specified it in test262/config.py):

-rw-rw-r-- 1 zgy zgy 7583 Nov 21 18:18 12.8-1-default.abc
-rw-rw-r-- 1 zgy zgy 415 Nov 21 18:18 12.8-1.js.panda.default.err
-rw-rw-r-- 1 zgy zgy 4389 Nov 21 18:18 12.8-1.js.panda.default.fail
-rw-rw-r-- 1 zgy zgy 415 Nov 21 18:18 12.8-1.js.panda.strict.err
-rw-rw-r-- 1 zgy zgy 4403 Nov 21 18:18 12.8-1.js.panda.strict.fail
-rw-rw-r-- 1 zgy zgy 7601 Nov 21 18:18 12.8-1-strict.abc

.abc indicates the generated binary abc file.

.err indicates that an error occurred during the test.

.fail/.pass is the file saved after js file has been preprocessed.

The result.txt file is generated under directory out/test262 to save statistics after the test finished.