@@ -137,6 +137,13 @@ def test_nontrapping_fptoint(self):
137137 self .check_features (filename , ['nontrapping-float-to-int' ])
138138 self .assertIn ('i32.trunc_sat_f32_u' , self .disassemble (filename ))
139139
140+ def test_mutable_globals (self ):
141+ filename = 'mutable_globals_target_feature.wasm'
142+ self .roundtrip (filename )
143+ self .check_features (filename , ['mutable-globals' ])
144+ self .assertIn ('(import "env" "global-mut" (global $gimport$0 (mut i32)))' ,
145+ self .disassemble (filename ))
146+
140147 def test_sign_ext (self ):
141148 filename = 'signext_target_feature.wasm'
142149 self .roundtrip (filename )
@@ -173,3 +180,20 @@ def test_incompatible_features_forced(self):
173180 def test_explicit_detect_features (self ):
174181 self .check_features ('signext_target_feature.wasm' , ['sign-ext' , 'simd' ],
175182 opts = ['-mvp' , '--detect-features' , '--enable-simd' ])
183+
184+ def test_emit_all_features (self ):
185+ p = run_process (WASM_OPT + ['--emit-target-features' , '-all' , '-o' , '-' ],
186+ input = "(module)" , check = False , capture_output = True )
187+ self .assertEqual (p .returncode , 0 )
188+ p2 = run_process (WASM_OPT + ['--print-features' , '-o' , os .devnull ],
189+ input = p .stdout , check = False , capture_output = True )
190+ self .assertEqual (p2 .returncode , 0 )
191+ self .assertEqual (p2 .stdout .split (), [
192+ '--enable-threads' ,
193+ '--enable-bulk-memory' ,
194+ '--enable-exception-handling' ,
195+ '--enable-mutable-globals' ,
196+ '--enable-nontrapping-float-to-int' ,
197+ '--enable-sign-ext' ,
198+ '--enable-simd' ,
199+ ])
0 commit comments