diff --git a/.circleci/config.yml b/.circleci/config.yml index 4b9e1b8f6a94e..4510ff19da18f 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -108,7 +108,7 @@ commands: description: "install latest version of node" steps: - install-node-version: - node_version: "19.0.0" + node_version: "24.1.0" install-node-canary: description: "install canary version of node" steps: @@ -525,6 +525,7 @@ jobs: executor: focal environment: EMTEST_SKIP_NODE_CANARY: "1" + EMTEST_SKIP_ESM_INTEGRATION: "1" steps: - run-tests-linux: test_targets: "core0" @@ -533,6 +534,7 @@ jobs: environment: EMTEST_BROWSER: "node" EMTEST_SKIP_NODE_CANARY: "1" + EMTEST_SKIP_ESM_INTEGRATION: "1" steps: - run-tests-linux: # also run a few asan tests. Run these with frozen_cache disabled @@ -578,6 +580,7 @@ jobs: executor: focal environment: EMTEST_SKIP_NODE_CANARY: "1" + EMTEST_SKIP_ESM_INTEGRATION: "1" steps: - run-tests-linux: frozen_cache: false @@ -657,6 +660,7 @@ jobs: executor: focal environment: EMTEST_SKIP_NODE_CANARY: "1" + EMTEST_SKIP_ESM_INTEGRATION: "1" steps: - run-tests-linux: test_targets: "instance" @@ -670,7 +674,7 @@ jobs: # hardcodes /root into its launcher scripts so we need to reinstall v8. - run: rm -rf $HOME/.jsvu - install-v8 - - install-node-canary + - install-node-latest - run-tests: title: "esm_integration" test_targets: "esm_integration" @@ -678,6 +682,7 @@ jobs: test-wasm2js1: environment: EMTEST_SKIP_NODE_CANARY: "1" + EMTEST_SKIP_ESM_INTEGRATION: "1" executor: focal steps: - run-tests-linux: @@ -692,7 +697,7 @@ jobs: # hardcodes /root into its launcher scripts so we need to reinstall v8. - run: rm -rf $HOME/.jsvu - install-v8 - - install-node-canary + - install-node-latest # When running wasm64 tests we need to make sure we use the testing # version of node (node canary) when running the compiler output (e.g. # in configure tests. @@ -717,7 +722,7 @@ jobs: # hardcodes /root into its launcher scripts so we need to reinstall v8. - run: rm -rf $HOME/.jsvu - install-v8 - - install-node-canary + - install-node-latest # When running wasm64 tests we need to make sure we use the testing # version of node (node canary) when running the compiler output (e.g. # in configure tests. @@ -921,6 +926,7 @@ jobs: executor: focal environment: EMTEST_SKIP_NODE_CANARY: "1" + EMTEST_SKIP_ESM_INTEGRATION: "1" EMTEST_SKIP_RUST: "1" EMTEST_SKIP_WASM64: "1" EMTEST_SKIP_NEW_CMAKE: "1" @@ -998,6 +1004,7 @@ jobs: environment: EMTEST_LACKS_WEBGPU: "1" EMTEST_SKIP_NODE_CANARY: "1" + EMTEST_SKIP_ESM_INTEGRATION: "1" steps: - run-tests-chrome: title: "browser64_4gb" @@ -1070,6 +1077,7 @@ jobs: EMTEST_SKIP_SCONS: "1" EMTEST_SKIP_RUST: "1" EMTEST_SKIP_NODE_CANARY: "1" + EMTEST_SKIP_ESM_INTEGRATION: "1" EMTEST_BROWSER: "0" steps: - checkout diff --git a/test/test_core.py b/test/test_core.py index c4aff27b1fb8b..72d4e2f309a25 100644 --- a/test/test_core.py +++ b/test/test_core.py @@ -26,7 +26,7 @@ from common import RunnerCore, path_from_root, requires_native_clang, test_file, create_file from common import skip_if, no_windows, no_mac, is_slow_test, parameterized, parameterize from common import env_modify, with_env_modify, disabled, flaky, node_pthreads, also_with_wasm_bigint -from common import read_file, read_binary, requires_v8, requires_node, requires_dev_dependency, requires_wasm2js, requires_node_canary +from common import read_file, read_binary, requires_v8, requires_node, requires_dev_dependency, requires_wasm2js from common import compiler_for, crossplatform, no_4gb, no_2gb, also_with_minimal_runtime, also_with_modularize from common import with_all_fs, also_with_nodefs, also_with_nodefs_both, also_with_noderawfs, also_with_wasmfs from common import with_all_eh_sjlj, with_all_sjlj, also_with_standalone_wasm, can_do_standalone, no_wasm64, requires_wasm_eh, requires_jspi @@ -409,7 +409,11 @@ def should_use_closure(self): return all(f not in self.emcc_args for f in prohibited) and any(f in self.emcc_args for f in required) def setup_esm_integration(self): - self.require_node_canary() + if not self.try_require_node_version(24): + if 'EMTEST_SKIP_ESM_INTEGRATION' in os.environ: + self.skipTest(f'test requires node v24 and EMTEST_SKIP_ESM_INTEGRATION is set') + else: + self.fail(f'node v24 required to run this test. Use EMTEST_SKIP_ESM_INTEGRATION to skip') self.node_args += ['--experimental-wasm-modules', '--no-warnings'] self.set_setting('WASM_ESM_INTEGRATION') self.emcc_args += ['-Wno-experimental'] @@ -8397,7 +8401,6 @@ def test_asyncify_main_module(self): self.do_core_test('test_hello_world.c') # Test that pthread_join works correctly with asyncify. - @requires_node_canary @node_pthreads def test_pthread_join_and_asyncify(self): # TODO Test with ASYNCIFY=1 https://github.com/emscripten-core/emscripten/issues/17552