66executors :
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