Skip to content

Commit cd763dc

Browse files
authored
Merge branch 'main' into tsgen-enable-assertions
2 parents 0483145 + d5fba03 commit cd763dc

File tree

1,247 files changed

+134636
-58934
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,247 files changed

+134636
-58934
lines changed

.circleci/config.yml

Lines changed: 69 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,20 @@ orbs:
66
executors:
77
linux-node:
88
docker:
9-
- image: circleci/node:stretch
9+
- image: cimg/node:18.20.3
1010
linux-python:
1111
docker:
1212
- image: cimg/python:3.10.7
1313
bionic:
1414
docker:
15-
- image: emscripten/emscripten-ci
15+
- image: emscripten/emscripten-ci:focal
1616
environment:
1717
LANG: "C.UTF-8"
1818
EMCC_CORES: "4"
1919
EMSDK_NOTTY: "1"
2020
EMTEST_WASI_SYSROOT: "~/wasi-sdk/wasi-sysroot"
2121
EMTEST_BUILD_VERBOSE: "2"
2222
EMTEST_DETECT_TEMPFILE_LEAKS: "1"
23-
mac:
24-
environment:
25-
EMSDK_NOTTY: "1"
26-
macos:
27-
xcode: "13.4.1"
28-
resource_class: macos.x86.medium.gen2
2923
mac-arm64:
3024
environment:
3125
EMSDK_NOTTY: "1"
@@ -41,7 +35,7 @@ commands:
4135
name: download chrome
4236
command: |
4337
# TODO: Make these part of the base image
44-
apt-get install libu2f-udev libvulkan1
38+
apt-get install -q -y libu2f-udev libvulkan1 xdg-utils
4539
# wget -O ~/chrome.deb https://dl.google.com/linux/direct/google-chrome-beta_current_amd64.deb
4640
# If that download link breaks, temporarily use this URL instead:
4741
# wget -O ~/chrome.deb https://storage.googleapis.com/webassembly/chrome/google-chrome-stable_current_amd64.deb
@@ -112,7 +106,7 @@ commands:
112106
description: "install canary version of node"
113107
steps:
114108
- install-node-version:
115-
node_version: "22.0.0-v8-canary20231108ff311d5a39"
109+
node_version: "23.0.0-v8-canary20240819f52f1c2f1c"
116110
canary: true
117111
install-v8:
118112
description: "install v8 using jsvu"
@@ -170,7 +164,7 @@ commands:
170164
command: |
171165
./emcc --clear-cache
172166
- pip-install
173-
- run: apt-get install ninja-build
167+
- run: apt-get install -q -y ninja-build
174168
- run:
175169
name: embuilder build ALL
176170
command: |
@@ -318,17 +312,16 @@ commands:
318312
# PIC version of libSDL which is used by test_sdl2_misc_main_module
319313
export EM_FROZEN_CACHE=""
320314
test/runner << parameters.test_targets >>
315+
- upload-test-results
321316
setup-macos:
322317
steps:
323318
- run:
324319
name: Install brew package dependencies
325320
environment:
326321
HOMEBREW_NO_AUTO_UPDATE: "1"
327322
command: |
328-
brew list cmake || brew install cmake
329-
brew list ninja || brew install ninja
330-
brew list python3 || brew install python3
331-
brew list pkg-config || brew install pkg-config
323+
brew update
324+
brew install cmake ninja python3 pkg-config
332325
- checkout
333326
- run:
334327
name: submodule update
@@ -344,7 +337,6 @@ commands:
344337
type: string
345338
default: ""
346339
steps:
347-
- prepare-for-tests
348340
- run:
349341
name: download firefox
350342
command: |
@@ -367,6 +359,7 @@ commands:
367359
# TODO: Do GL testing when https://bugzil.la/1375585 (lack of WebGL
368360
# support in headless mode) resolves
369361
EMTEST_LACKS_GRAPHICS_HARDWARE: "1"
362+
EMTEST_LACKS_WEBGPU: "1"
370363
EMTEST_LACKS_SOUND_HARDWARE: "1"
371364
# OffscreenCanvas support is not yet done in Firefox.
372365
EMTEST_LACKS_OFFSCREEN_CANVAS: "1"
@@ -522,6 +515,7 @@ jobs:
522515
asan.test_externref_emjs_dynlink
523516
asan.test_asyncify_longjmp
524517
asan.test_pthread_run_on_main_thread
518+
lsan.test_dylink_dso_needed
525519
lsan.test_stdio_locking
526520
lsan.test_dlfcn_basic
527521
lsan.test_pthread_create
@@ -607,7 +601,7 @@ jobs:
607601
wasmfs.test_stat
608602
wasmfs.test_fstatat
609603
wasmfs.test_futimens
610-
wasmfs.test_unistd_links_memfs
604+
wasmfs.test_unistd_links
611605
wasmfs.test_fcntl_open
612606
wasmfs.test_fs_js_api
613607
wasmfs.test_fs_llseek
@@ -620,17 +614,6 @@ jobs:
620614
steps:
621615
- run-tests-linux:
622616
test_targets: "wasm2js1"
623-
test-wasm64l:
624-
environment:
625-
EMTEST_SKIP_NODE_CANARY: "1"
626-
executor: bionic
627-
steps:
628-
- run-tests-linux:
629-
frozen_cache: false
630-
# On older versions of node wasm64l.test_bigswitch uses a lot (~3.5Gb)
631-
# of memory, so skip it here, but run it in test-wasm64 instead which
632-
# has node canary installed.
633-
test_targets: "wasm64l skip:wasm64l.test_bigswitch"
634617
test-wasm64:
635618
# We don't use `bionic` here since its tool old to run recent node versions:
636619
# `/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found`
@@ -642,12 +625,19 @@ jobs:
642625
- run: rm -rf $HOME/.jsvu
643626
- install-v8
644627
- install-node-canary
628+
# When running wasm64 tests we need to make sure we use the testing
629+
# version of node (node canary) when running the compiler output (e.g.
630+
# in configure tests.
631+
- run:
632+
name: configure node canary
633+
command: echo "NODE_JS = NODE_JS_TEST" >> ~/emsdk/.emscripten
645634
- run-tests:
646635
title: "wasm64"
647636
test_targets: "
648637
wasm64
649638
core_2gb.test_*em_asm*
650639
core_2gb.test_*embind*
640+
wasm64l.test_hello_world
651641
wasm64l.test_bigswitch
652642
other.test_memory64_proxies
653643
other.test_failing_growth_wasm64"
@@ -667,6 +657,12 @@ jobs:
667657
- run: rm -rf $HOME/.jsvu
668658
- install-v8
669659
- install-node-canary
660+
# When running wasm64 tests we need to make sure we use the testing
661+
# version of node (node canary) when running the compiler output (e.g.
662+
# in configure tests.
663+
- run:
664+
name: configure node canary
665+
command: echo "NODE_JS = NODE_JS_TEST" >> ~/emsdk/.emscripten
670666
- run-tests:
671667
title: "wasm64_4gb"
672668
test_targets: "wasm64_4gb"
@@ -720,6 +716,7 @@ jobs:
720716
test_targets: "
721717
core0.test_hello_argc
722718
core2.test_demangle_stacks_symbol_map"
719+
- upload-test-results
723720
test-node-compat:
724721
# We don't use `bionic` here since its too old to run recent node versions:
725722
# `/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found`
@@ -759,7 +756,8 @@ jobs:
759756
other.test_js_optimizer_verbose
760757
other.test_node_unhandled_rejection
761758
other.test_full_js_library*
762-
core2.test_hello_world"
759+
core2.test_hello_world
760+
core2.test_fs_write_rawfs"
763761
# Run a few test with the most recent version of node
764762
# In particular we have some tests that require node flags on older
765763
# versions of node but not with the most recent version.
@@ -786,14 +784,17 @@ jobs:
786784
executor: bionic
787785
environment:
788786
EMTEST_SKIP_NODE_CANARY: "1"
787+
EMTEST_SKIP_WASM64: "1"
789788
steps:
790-
- run: apt-get install ninja-build scons
789+
- run: apt-get install -q -y ninja-build scons
791790
- run-tests-linux:
792791
# some native-dependent tests fail because of the lack of native
793792
# headers on emsdk-bundled clang
794793
test_targets: "other skip:other.test_native_link_error_message"
795794
test-browser-chrome:
796795
executor: bionic
796+
environment:
797+
EMTEST_LACKS_WEBGPU: "1"
797798
steps:
798799
- run-tests-chrome:
799800
title: "browser"
@@ -803,19 +804,31 @@ jobs:
803804
"
804805
test-browser-chrome-wasm64:
805806
executor: bionic
807+
environment:
808+
EMTEST_LACKS_WEBGPU: "1"
806809
steps:
807810
- run-tests-chrome:
808811
title: "browser64"
809-
test_targets: "browser64"
812+
# Skip tests that depend on running the output in node
813+
# (This bot doesn't have node canary installed which is required to
814+
# run wasm64 output).
815+
test_targets: "browser64
816+
skip:browser64.test_worker
817+
skip:browser64.test_2gb_fail
818+
skip:browser64.test_4gb_fail
819+
skip:browser64.test_4gb"
810820
test-browser-chrome-2gb:
811821
executor: bionic
822+
environment:
823+
EMTEST_LACKS_WEBGPU: "1"
812824
steps:
813825
- run-tests-chrome:
814826
title: "browser_2gb"
815827
test_targets: "browser_2gb"
816828
test-browser-chrome-wasm64-4gb:
817829
executor: bionic
818830
environment:
831+
EMTEST_LACKS_WEBGPU: "1"
819832
EMTEST_SKIP_NODE_CANARY: "1"
820833
steps:
821834
- run-tests-chrome:
@@ -824,6 +837,7 @@ jobs:
824837
test-browser-firefox:
825838
executor: bionic
826839
steps:
840+
- prepare-for-tests
827841
- run-tests-firefox:
828842
title: "browser"
829843
# browser.test_sdl2_mouse and/or SDL2 should be fixed. The case happens
@@ -835,7 +849,29 @@ jobs:
835849
# browser.test_webgl_offscreen_canvas_in_mainthread_after_pthread
836850
# are crashing Firefox (bugzil.la/1281796). The former case is
837851
# further blocked by issue #6897.
838-
test_targets: "browser skip:browser.test_sdl2_mouse skip:browser.test_html5_webgl_create_context skip:browser.test_webgl_offscreen_canvas_in_pthread skip:browser.test_webgl_offscreen_canvas_in_mainthread_after_pthread skip:browser.test_glut_glutget"
852+
test_targets: "
853+
browser
854+
skip:browser.test_sdl2_mouse
855+
skip:browser.test_html5_webgl_create_context
856+
skip:browser.test_webgl_offscreen_canvas_in_pthread
857+
skip:browser.test_webgl_offscreen_canvas_in_mainthread_after_pthread
858+
skip:browser.test_glut_glutget
859+
"
860+
test-browser-firefox-wasm64:
861+
executor: bionic
862+
steps:
863+
- checkout
864+
- run:
865+
name: submodule update
866+
command: git submodule update --init
867+
- pip-install
868+
- install-emsdk
869+
- run-tests-firefox:
870+
title: "browser64"
871+
test_targets: "
872+
browser64.test_sdl_image
873+
browser64.test_dylink_many
874+
"
839875
# TODO(sbc): Re-enable once we figure out why the emrun tests are
840876
# locking up.
841877
#test-browser-chrome-emrun:
@@ -891,38 +927,6 @@ jobs:
891927
test_targets: "sockets.test_nodejs_sockets_echo*"
892928
- upload-test-results
893929

894-
test-mac:
895-
executor: mac
896-
environment:
897-
# We don't install d8 or modern node on the mac runner so we skip any
898-
# tests that depend on those.
899-
EMTEST_SKIP_V8: "1"
900-
EMTEST_SKIP_EH: "1"
901-
EMTEST_SKIP_WASM64: "1"
902-
EMTEST_SKIP_SCONS: "1"
903-
EMCC_SKIP_SANITY_CHECK: "1"
904-
# test_sse1 (the only @crossplatform native clang test) currently fails
905-
# on the macOS bots).
906-
EMTEST_LACKS_NATIVE_CLANG: "1"
907-
EMTEST_SKIP_NODE_CANARY: "1"
908-
steps:
909-
- setup-macos
910-
- attach_workspace:
911-
at: ~/
912-
- run:
913-
name: Remove Linux binaries
914-
command: |
915-
rm -rf ~/emsdk ~/vms ~/.jsvu
916-
# note we do *not* build all libraries and freeze the cache; as we run
917-
# only limited tests here, it's more efficient to build on demand
918-
- install-emsdk
919-
- pip-install:
920-
python: "$EMSDK_PYTHON"
921-
- run-tests:
922-
title: "crossplatform tests"
923-
test_targets: "--crossplatform-only"
924-
- upload-test-results
925-
926930
test-mac-arm64:
927931
executor: mac-arm64
928932
environment:
@@ -974,9 +978,6 @@ workflows:
974978
- test-wasm64-4gb:
975979
requires:
976980
- build-linux
977-
- test-wasm64l:
978-
requires:
979-
- build-linux
980981
- test-wasm2js1:
981982
requires:
982983
- build-linux
@@ -998,6 +999,7 @@ workflows:
998999
- test-browser-firefox:
9991000
requires:
10001001
- build-linux
1002+
- test-browser-firefox-wasm64
10011003
- test-sockets-chrome:
10021004
requires:
10031005
- build-linux
@@ -1006,9 +1008,3 @@ workflows:
10061008
- test-node-compat
10071009
- test-windows
10081010
- test-mac-arm64
1009-
- test-mac:
1010-
# The mac tester also uses the libraries built on the linux builder to
1011-
# save total build time (this is fine because the libraries are wasm
1012-
# and do not depend on the underlying build platform)
1013-
requires:
1014-
- build-linux

0 commit comments

Comments
 (0)