Skip to content

Commit 40ec62c

Browse files
committed
[test] Extract try_require_node_version helper function. NFC
1 parent 765098c commit 40ec62c

File tree

1 file changed

+24
-31
lines changed

1 file changed

+24
-31
lines changed

test/common.py

Lines changed: 24 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1038,12 +1038,8 @@ def require_wasm64(self):
10381038
if self.is_browser_test():
10391039
return
10401040

1041-
nodejs = self.get_nodejs()
1042-
if nodejs:
1043-
version = shared.get_node_version(nodejs)
1044-
if version >= (24, 0, 0):
1045-
self.js_engines = [nodejs]
1046-
return
1041+
if self.try_require_node_version(24):
1042+
return
10471043

10481044
if config.V8_ENGINE and config.V8_ENGINE in self.js_engines:
10491045
self.emcc_args.append('-sENVIRONMENT=shell')
@@ -1055,16 +1051,23 @@ def require_wasm64(self):
10551051
else:
10561052
self.fail('either d8 or node >= 24 required to run wasm64 tests. Use EMTEST_SKIP_WASM64 to skip')
10571053

1054+
def try_require_node_version(self, major, minor = 0, revision = 0):
1055+
nodejs = self.get_nodejs()
1056+
if not nodejs:
1057+
self.skipTest('Test requires nodejs to run')
1058+
version = shared.get_node_version(nodejs)
1059+
if version < (major, minor, revision):
1060+
return False
1061+
1062+
self.js_engines = [nodejs]
1063+
return True
1064+
10581065
def require_simd(self):
10591066
if self.is_browser_test():
10601067
return
10611068

1062-
nodejs = self.get_nodejs()
1063-
if nodejs:
1064-
version = shared.get_node_version(nodejs)
1065-
if version >= (16, 0, 0):
1066-
self.js_engines = [nodejs]
1067-
return
1069+
if self.try_require_node_version(16):
1070+
return
10681071

10691072
if config.V8_ENGINE and config.V8_ENGINE in self.js_engines:
10701073
self.emcc_args.append('-sENVIRONMENT=shell')
@@ -1078,12 +1081,8 @@ def require_simd(self):
10781081

10791082
def require_wasm_legacy_eh(self):
10801083
self.set_setting('WASM_LEGACY_EXCEPTIONS')
1081-
nodejs = self.get_nodejs()
1082-
if nodejs:
1083-
version = shared.get_node_version(nodejs)
1084-
if version >= (17, 0, 0):
1085-
self.js_engines = [nodejs]
1086-
return
1084+
if self.try_require_node_version(17):
1085+
return
10871086

10881087
if config.V8_ENGINE and config.V8_ENGINE in self.js_engines:
10891088
self.emcc_args.append('-sENVIRONMENT=shell')
@@ -1097,12 +1096,9 @@ def require_wasm_legacy_eh(self):
10971096

10981097
def require_wasm_eh(self):
10991098
self.set_setting('WASM_LEGACY_EXCEPTIONS', 0)
1100-
nodejs = self.get_nodejs()
1101-
if nodejs:
1102-
if self.node_is_canary(nodejs):
1103-
self.js_engines = [nodejs]
1104-
self.node_args.append('--experimental-wasm-exnref')
1105-
return
1099+
if self.try_require_node_version(24):
1100+
self.node_args.append('--experimental-wasm-exnref')
1101+
return
11061102

11071103
if self.is_browser_test():
11081104
return
@@ -1132,13 +1128,10 @@ def require_jspi(self):
11321128
return
11331129

11341130
exp_args = ['--experimental-wasm-stack-switching', '--experimental-wasm-type-reflection']
1135-
nodejs = self.get_nodejs()
1136-
if nodejs:
1137-
# Support for JSPI came earlier than 22, but the new API changes are not yet in any node
1138-
if self.node_is_canary(nodejs):
1139-
self.js_engines = [nodejs]
1140-
self.node_args += exp_args
1141-
return
1131+
# Support for JSPI came earlier than 22, but the new API changes require v24
1132+
if self.try_require_node_version(24):
1133+
self.node_args += exp_args
1134+
return
11421135

11431136
if config.V8_ENGINE and config.V8_ENGINE in self.js_engines:
11441137
self.emcc_args.append('-sENVIRONMENT=shell')

0 commit comments

Comments
 (0)