Skip to content

Commit 6913738

Browse files
authored
Fix core_2gb.test_memprof_requirements (#25807)
This was broken by #25568. This fixes the regression and updates an existing test to catch it.
1 parent 824ec44 commit 6913738

File tree

6 files changed

+27
-22
lines changed

6 files changed

+27
-22
lines changed

test/codesize/test_codesize_hello_O0.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
22
"a.out.js": 24194,
3-
"a.out.js.gz": 8694,
3+
"a.out.js.gz": 8693,
44
"a.out.nodebug.wasm": 15144,
55
"a.out.nodebug.wasm.gz": 7460,
66
"total": 39338,
7-
"total_gz": 16154,
7+
"total_gz": 16153,
88
"sent": [
99
"fd_write"
1010
],

test/codesize/test_codesize_minimal_O0.expected.js

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1329,28 +1329,28 @@ var wasmMemory = makeInvalidEarlyAccess('wasmMemory');
13291329

13301330
function assignWasmExports(wasmExports) {
13311331
assert(typeof wasmExports['add'] != 'undefined', 'missing Wasm export: add');
1332-
_add = Module['_add'] = createExportWrapper('add', 2);
13331332
assert(typeof wasmExports['fflush'] != 'undefined', 'missing Wasm export: fflush');
1334-
_fflush = createExportWrapper('fflush', 1);
13351333
assert(typeof wasmExports['emscripten_stack_init'] != 'undefined', 'missing Wasm export: emscripten_stack_init');
1336-
_emscripten_stack_init = wasmExports['emscripten_stack_init'];
13371334
assert(typeof wasmExports['emscripten_stack_get_free'] != 'undefined', 'missing Wasm export: emscripten_stack_get_free');
1338-
_emscripten_stack_get_free = wasmExports['emscripten_stack_get_free'];
13391335
assert(typeof wasmExports['emscripten_stack_get_base'] != 'undefined', 'missing Wasm export: emscripten_stack_get_base');
1340-
_emscripten_stack_get_base = wasmExports['emscripten_stack_get_base'];
13411336
assert(typeof wasmExports['emscripten_stack_get_end'] != 'undefined', 'missing Wasm export: emscripten_stack_get_end');
1342-
_emscripten_stack_get_end = wasmExports['emscripten_stack_get_end'];
13431337
assert(typeof wasmExports['_emscripten_stack_restore'] != 'undefined', 'missing Wasm export: _emscripten_stack_restore');
1344-
__emscripten_stack_restore = wasmExports['_emscripten_stack_restore'];
13451338
assert(typeof wasmExports['_emscripten_stack_alloc'] != 'undefined', 'missing Wasm export: _emscripten_stack_alloc');
1346-
__emscripten_stack_alloc = wasmExports['_emscripten_stack_alloc'];
13471339
assert(typeof wasmExports['emscripten_stack_get_current'] != 'undefined', 'missing Wasm export: emscripten_stack_get_current');
1348-
_emscripten_stack_get_current = wasmExports['emscripten_stack_get_current'];
13491340
assert(typeof wasmExports['memory'] != 'undefined', 'missing Wasm export: memory');
1350-
memory = wasmMemory = wasmExports['memory'];
13511341
assert(typeof wasmExports['global_val'] != 'undefined', 'missing Wasm export: global_val');
1352-
_global_val = Module['_global_val'] = wasmExports['global_val'].value;
13531342
assert(typeof wasmExports['__indirect_function_table'] != 'undefined', 'missing Wasm export: __indirect_function_table');
1343+
_add = Module['_add'] = createExportWrapper('add', 2);
1344+
_fflush = createExportWrapper('fflush', 1);
1345+
_emscripten_stack_init = wasmExports['emscripten_stack_init'];
1346+
_emscripten_stack_get_free = wasmExports['emscripten_stack_get_free'];
1347+
_emscripten_stack_get_base = wasmExports['emscripten_stack_get_base'];
1348+
_emscripten_stack_get_end = wasmExports['emscripten_stack_get_end'];
1349+
__emscripten_stack_restore = wasmExports['_emscripten_stack_restore'];
1350+
__emscripten_stack_alloc = wasmExports['_emscripten_stack_alloc'];
1351+
_emscripten_stack_get_current = wasmExports['emscripten_stack_get_current'];
1352+
memory = wasmMemory = wasmExports['memory'];
1353+
_global_val = Module['_global_val'] = wasmExports['global_val'].value;
13541354
__indirect_function_table = wasmExports['__indirect_function_table'];
13551355
}
13561356

test/codesize/test_codesize_minimal_O0.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
22
"a.out.js": 19489,
3-
"a.out.js.gz": 7016,
3+
"a.out.js.gz": 7012,
44
"a.out.nodebug.wasm": 1136,
55
"a.out.nodebug.wasm.gz": 659,
66
"total": 20625,
7-
"total_gz": 7675,
7+
"total_gz": 7671,
88
"sent": [],
99
"imports": [],
1010
"exports": [
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
{
22
"hello_world.js": 56928,
3-
"hello_world.js.gz": 17700,
3+
"hello_world.js.gz": 17707,
44
"hello_world.wasm": 15144,
55
"hello_world.wasm.gz": 7460,
66
"no_asserts.js": 26632,
77
"no_asserts.js.gz": 8884,
88
"no_asserts.wasm": 12193,
99
"no_asserts.wasm.gz": 5990,
1010
"strict.js": 54943,
11-
"strict.js.gz": 17045,
11+
"strict.js.gz": 17053,
1212
"strict.wasm": 15144,
1313
"strict.wasm.gz": 7455,
1414
"total": 180984,
15-
"total_gz": 64534
15+
"total_gz": 64549
1616
}

test/test_core.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4625,10 +4625,12 @@ def test_dylink_global_var_export(self):
46254625
46264626
int main(void) {
46274627
void* js_address = EM_ASM_PTR({
4628-
console.log("JS:_my_number:", _my_number, HEAP32[_my_number/4]);
4628+
var value = HEAP32[_my_number/4];
4629+
console.log("JS:_my_number:", _my_number, value);
4630+
assert(value == 123456, value);
46294631
return _my_number;
46304632
});
4631-
printf("C: my_number: %ld %d\n", (long)&my_number, my_number);
4633+
printf("C: my_number: %lu %d\n", (uintptr_t)&my_number, my_number);
46324634
assert(js_address == &my_number);
46334635
return 0;
46344636
}

tools/emscripten.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -957,6 +957,9 @@ def create_receiving(function_exports, other_exports, library_symbols, aliases):
957957

958958
do_module_exports = (settings.MODULARIZE or not settings.MINIMAL_RUNTIME) and settings.MODULARIZE != 'instance'
959959
receiving.append('\nfunction assignWasmExports(wasmExports) {')
960+
if settings.ASSERTIONS:
961+
for sym in exports:
962+
receiving.append(f" assert(typeof wasmExports['{sym}'] != 'undefined', 'missing Wasm export: {sym}');")
960963
for sym, info in exports.items():
961964
is_function = type(info) == webassembly.FuncType
962965
mangled = asmjs_mangle(sym)
@@ -966,8 +969,6 @@ def create_receiving(function_exports, other_exports, library_symbols, aliases):
966969
assignment += f" = dynCalls['{sig_str}']"
967970
if do_module_exports and should_export(mangled):
968971
assignment += f" = Module['{mangled}']"
969-
if settings.ASSERTIONS:
970-
receiving.append(f" assert(typeof wasmExports['{sym}'] != 'undefined', 'missing Wasm export: {sym}');")
971972
if sym in alias_inverse_map:
972973
for target in alias_inverse_map[sym]:
973974
assignment += f" = {target}"
@@ -983,6 +984,8 @@ def create_receiving(function_exports, other_exports, library_symbols, aliases):
983984
value = f"wasmExports['{sym}'].value"
984985
if settings.MEMORY64:
985986
value = f'Number({value})'
987+
elif settings.CAN_ADDRESS_2GB:
988+
value = f'({value}) >>> 0'
986989
receiving.append(f" {assignment} = {value};")
987990
else:
988991
receiving.append(f" {assignment} = wasmExports['{sym}'];")

0 commit comments

Comments
 (0)