Compare commits

...

2 Commits

Author SHA1 Message Date
Nick Vatamaniuc
3b92b72b49
Merge 19d8e521cec1b0692ecf76931ddf815862933a6b into 8807fedec55bc4dbdf7b4780d36bfc4b4fd6e5e2 2025-09-24 23:03:55 +00:00
Nick Vatamaniuc
19d8e521ce
Run test262 tests in CI
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.
2025-09-24 19:03:43 -04:00
4 changed files with 32 additions and 3 deletions

View File

@ -36,6 +36,10 @@ jobs:
- name: Run microbench - name: Run microbench
run: | run: |
make microbench make microbench
- name: Run test262
run: |
make test2-bootstrap
make test2
linux-lto: linux-lto:
name: Linux LTO name: Linux LTO
@ -67,6 +71,7 @@ jobs:
submodules: true submodules: true
- name: Install gcc-multilib - name: Install gcc-multilib
run: | run: |
sudo apt update
sudo apt install -y gcc-multilib sudo apt install -y gcc-multilib
- name: Build - name: Build
run: | run: |
@ -138,6 +143,10 @@ jobs:
- name: Run built-in tests - name: Run built-in tests
run: | run: |
make test make test
- name: Run test262
run: |
make test2-bootstrap
make test2
macos-asan: macos-asan:
runs-on: macos-latest runs-on: macos-latest
@ -173,6 +182,8 @@ jobs:
uses: vmactions/freebsd-vm@v1 uses: vmactions/freebsd-vm@v1
with: with:
usesh: true usesh: true
copyback: false
mem: 16384
prepare: | prepare: |
pkg install -y gmake pkg install -y gmake
run: | run: |
@ -202,6 +213,10 @@ jobs:
- name: Run built-in tests - name: Run built-in tests
run: | run: |
make CONFIG_COSMO=y test make CONFIG_COSMO=y test
- name: Run test262
run: |
make test2-bootstrap
make CONFIG_COSMO=y test2
mingw-windows: mingw-windows:
name: MinGW Windows target name: MinGW Windows target

View File

@ -54,6 +54,10 @@ PREFIX?=/usr/local
# use UB sanitizer # use UB sanitizer
#CONFIG_UBSAN=y #CONFIG_UBSAN=y
# TEST262 bootstrap config: commit id and shallow "since" parameter
TEST262_COMMIT?=af3d908437b0912513a594e7167f17658e72d88b
TEST262_SINCE?=2025-09-14
OBJDIR=.obj OBJDIR=.obj
ifdef CONFIG_ASAN ifdef CONFIG_ASAN
@ -464,6 +468,15 @@ stats: qjs$(EXE)
microbench: qjs$(EXE) microbench: qjs$(EXE)
$(WINE) ./qjs$(EXE) --std tests/microbench.js $(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),) ifeq ($(wildcard test262o/tests.txt),)
test2o test2o-update: test2o test2o-update:
@echo test262o tests not installed @echo test262o tests not installed

View File

@ -116,6 +116,7 @@ for-of
generators generators
globalThis globalThis
hashbang hashbang
immutable-arraybuffer=skip
import-attributes import-attributes
import-defer=skip import-defer=skip
import.meta import.meta

View File

@ -14,9 +14,9 @@ index 9828b15..4a5919d 100644
+// small: 200, +// small: 200,
+// long: 1000, +// long: 1000,
+// huge: 10000, +// huge: 10000,
+ yield: 20, + yield: 40,
+ small: 20, + small: 40,
+ long: 100, + long: 200,
+ huge: 1000, + huge: 1000,
}; };