@@ -5689,33 +5689,24 @@ def test_warn_dylibs(self):
5689
5689
'wasm2js_2': [2],
5690
5690
})
5691
5691
def test_symbol_map(self, opts, wasm):
5692
- def get_symbols_lines(symbols_file):
5693
- self.assertTrue(os.path.isfile(symbols_file), "Symbols file %s isn't created" % symbols_file)
5694
- # check that the map is correct
5692
+ def read_symbol_map(symbols_file):
5695
5693
symbols = read_file(symbols_file)
5696
- lines = [line.split(':') for line in symbols.strip().split('\n' )]
5694
+ lines = [line.split(':') for line in symbols.splitlines( )]
5697
5695
return lines
5698
5696
5699
5697
def get_minified_middle(symbols_file):
5700
- minified_middle = None
5701
- for minified, full in get_symbols_lines(symbols_file):
5702
- # handle both fastcomp and wasm backend notation
5698
+ for minified, full in read_symbol_map(symbols_file):
5703
5699
if full == 'middle':
5704
- minified_middle = minified
5705
- break
5706
- return minified_middle
5700
+ return minified
5701
+ return None
5707
5702
5708
- def guess_symbols_file_type (symbols_file):
5709
- for _minified, full in get_symbols_lines (symbols_file):
5703
+ def is_js_symbol_map (symbols_file):
5704
+ for _minified, full in read_symbol_map (symbols_file):
5710
5705
# define symbolication file by JS specific entries
5711
5706
if full in ['FUNCTION_TABLE', 'HEAP32']:
5712
- return 'js'
5713
- return 'wasm'
5707
+ return True
5708
+ return False
5714
5709
5715
- UNMINIFIED_HEAP8 = 'var HEAP8 = new '
5716
- UNMINIFIED_MIDDLE = 'function middle'
5717
-
5718
- self.clear()
5719
5710
create_file('src.c', r'''
5720
5711
#include <emscripten.h>
5721
5712
@@ -5756,20 +5747,21 @@ def guess_symbols_file_type(symbols_file):
5756
5747
5757
5748
# Ensure symbols file type according to `-sWASM=` mode
5758
5749
if wasm == 0:
5759
- self.assertEqual(guess_symbols_file_type ('a.out.js.symbols'), 'js' , 'Primary symbols file should store JS mappings')
5750
+ self.assertTrue(is_js_symbol_map ('a.out.js.symbols'), 'Primary symbols file should store JS mappings')
5760
5751
elif wasm == 1:
5761
- self.assertEqual(guess_symbols_file_type ('a.out.js.symbols'), 'wasm' , 'Primary symbols file should store Wasm mappings')
5752
+ self.assertFalse(is_js_symbol_map ('a.out.js.symbols'), 'Primary symbols file should store Wasm mappings')
5762
5753
elif wasm == 2:
5763
5754
# special case when both JS and Wasm targets are created
5764
5755
minified_middle_2 = get_minified_middle('a.out.wasm.js.symbols')
5765
5756
self.assertNotEqual(minified_middle_2, None, "Missing minified 'middle' function")
5766
- self.assertEqual(guess_symbols_file_type('a.out.js.symbols'), 'wasm', 'Primary symbols file should store Wasm mappings')
5767
- self.assertEqual(guess_symbols_file_type('a.out.wasm.js.symbols'), 'js', 'Secondary symbols file should store JS mappings')
5768
- return
5757
+ self.assertFalse(is_js_symbol_map('a.out.js.symbols'), 'Primary symbols file should store Wasm mappings')
5758
+ self.assertTrue(is_js_symbol_map('a.out.wasm.js.symbols'), 'Secondary symbols file should store JS mappings')
5769
5759
5770
5760
# check we don't keep unnecessary debug info with wasm2js when emitting
5771
5761
# a symbol map
5772
- if wasm == 0 and '-O' in str(opts):
5762
+ if wasm == 0:
5763
+ UNMINIFIED_HEAP8 = 'var HEAP8 = new '
5764
+ UNMINIFIED_MIDDLE = 'function middle'
5773
5765
js = read_file('a.out.js')
5774
5766
self.assertNotContained(UNMINIFIED_HEAP8, js)
5775
5767
self.assertNotContained(UNMINIFIED_MIDDLE, js)
0 commit comments