Run test262 tests for Linux, macOS and Cosmopolitan
Add a Makefile `test2-bootstrap` helper to clone and patch test262 tests at
a particular commit. Running with the latest commit noticed a few tests were
failing and added them to the errors list.
The CI environment, especially for macOS, was a bit more unpredictable and was
failing in atomics tests due to lower timeouts in the `atomicsHelper` so double
the timeouts. The time didn't worsen too much. It still takes about 2-3 min.
- name: Run microbench
run: |
make microbench
+ - name: Run test262
+ run: |
+ make test2-bootstrap
+ make test2
linux-lto:
name: Linux LTO
submodules: true
- name: Install gcc-multilib
run: |
+ sudo apt update
sudo apt install -y gcc-multilib
- name: Build
run: |
- name: Run built-in tests
run: |
make CONFIG_M32=y test
+ - name: Run test262
+ run: |
+ make test2-bootstrap
+ make CONFIG_M32=y test2
linux-asan:
runs-on: ubuntu-latest
- name: Run built-in tests
run: |
make test
+ - name: Run test262
+ run: |
+ make test2-bootstrap
+ make test2
macos-asan:
runs-on: macos-latest
uses: vmactions/freebsd-vm@v1
with:
usesh: true
+ copyback: false
+ mem: 16384
prepare: |
pkg install -y gmake
run: |
- name: Run built-in tests
run: |
make CONFIG_COSMO=y test
+ - name: Run test262
+ run: |
+ make test2-bootstrap
+ make CONFIG_COSMO=y test2
mingw-windows:
name: MinGW Windows target
# use UB sanitizer
#CONFIG_UBSAN=y
+# TEST262 bootstrap config: commit id and shallow "since" parameter
+TEST262_COMMIT?=a5e69a1534de88d1eb29b76657d84c8541b72df7
+TEST262_SINCE?=2025-09-01
+
OBJDIR=.obj
ifdef CONFIG_ASAN
microbench: qjs$(EXE)
$(WINE) ./qjs$(EXE) --std tests/microbench.js
+ifeq ($(wildcard test262/features.txt),)
+test2-bootstrap:
+ git clone --single-branch --shallow-since=$(TEST262_SINCE) https://github.com/tc39/test262.git
+ (cd test262 && git checkout -q $(TEST262_COMMIT) && patch -p1 < ../tests/test262.patch && cd ..)
+else
+test2-bootstrap:
+ (cd test262 && git fetch && git reset --hard $(TEST262_COMMIT) && patch -p1 < ../tests/test262.patch && cd ..)
+endif
+
ifeq ($(wildcard test262o/tests.txt),)
test2o test2o-update:
@echo test262o tests not installed
generators
globalThis
hashbang
+immutable-arraybuffer=skip
import-attributes
import-defer=skip
import.meta
+// small: 200,
+// long: 1000,
+// huge: 10000,
-+ yield: 20,
-+ small: 20,
-+ long: 100,
++ yield: 40,
++ small: 40,
++ long: 200,
+ huge: 1000,
};