Skip to content

Commit 0b923f3

Browse files
authored
Improve test_js_optimizer. NFC (#17407)
- Make it work with --rebase - Skip all the newline mangling
1 parent 0f74f1d commit 0b923f3

7 files changed

+81
-8
lines changed

.circleci/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -499,7 +499,7 @@ jobs:
499499
other.test_bad_triple
500500
other.test_closure_externs
501501
other.test_binaryen_debug
502-
other.test_js_optimizer_parse_error
502+
other.test_js_optimizer*
503503
other.test_output_to_nowhere
504504
other.test_emcc_dev_null
505505
other.test_cmake*

tests/optimizer/AJSDCE-output.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,27 @@ function glue() {
3131
}
3232

3333
glue();
34+
3435
null;
36+
3537
null;
38+
3639
null;
40+
3741
null;
42+
3843
null;
44+
3945
null;
46+
4047
null;
48+
4149
null;
50+
4251
null;
52+
4353
null;
54+
4455
new SomethingUnknownWithSideEffects("utf8");
56+
4557
new TextDecoder(Unknown());

tests/optimizer/applyImportAndExportNameChanges2-output.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,32 @@
11
var Module;
2+
23
if (!Module) Module = "__EMSCRIPTEN_PRIVATE_MODULE_EXPORT_NAME_SUBSTITUTION__";
4+
35
var ENVIRONMENT_IS_NODE = typeof process === "object";
6+
47
if (ENVIRONMENT_IS_NODE) {
58
var fs = require("fs");
69
Module["wasm"] = fs.readFileSync(__dirname + "/a.wasm");
710
}
11+
812
function out(text) {
913
console.log(text);
1014
}
15+
1116
function err(text) {
1217
console.error(text);
1318
}
19+
1420
function ready() {
1521
run();
1622
}
23+
1724
function abort(what) {
1825
throw what;
1926
}
27+
2028
var UTF8Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf8") : undefined;
29+
2130
function UTF8ArrayToString(u8Array, idx, maxBytesToRead) {
2231
var endIdx = idx + maxBytesToRead;
2332
var endPtr = idx;
@@ -53,25 +62,40 @@ function UTF8ArrayToString(u8Array, idx, maxBytesToRead) {
5362
}
5463
return str;
5564
}
65+
5666
function UTF8ToString(ptr, maxBytesToRead) {
5767
return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "";
5868
}
69+
5970
var TOTAL_MEMORY = 16777216, STATIC_BASE = 1024, DYNAMICTOP_PTR = 6016;
71+
6072
var wasmMaximumMemory = TOTAL_MEMORY;
73+
6174
var wasmMemory = new WebAssembly.Memory({
6275
"initial": TOTAL_MEMORY >> 16,
6376
"maximum": wasmMaximumMemory >> 16
6477
});
78+
6579
var buffer = wasmMemory.buffer;
80+
6681
var HEAP8 = new Int8Array(buffer);
82+
6783
var HEAP16 = new Int16Array(buffer);
84+
6885
var HEAP32 = new Int32Array(buffer);
86+
6987
var HEAPU8 = new Uint8Array(buffer);
88+
7089
var HEAPU16 = new Uint16Array(buffer);
90+
7191
var HEAPU32 = new Uint32Array(buffer);
92+
7293
var HEAPF32 = new Float32Array(buffer);
94+
7395
var HEAPF64 = new Float64Array(buffer);
96+
7497
HEAP32[DYNAMICTOP_PTR >> 2] = 5249152;
98+
7599
var SYSCALLS = {
76100
buffers: [ null, [], [] ],
77101
printChar: function(stream, curr) {
@@ -101,6 +125,7 @@ var SYSCALLS = {
101125
SYSCALLS.get();
102126
}
103127
};
128+
104129
function ___syscall140(which, varargs) {
105130
SYSCALLS.varargs = varargs;
106131
try {
@@ -115,6 +140,7 @@ function ___syscall140(which, varargs) {
115140
return -e.errno;
116141
}
117142
}
143+
118144
function ___syscall146(which, varargs) {
119145
SYSCALLS.varargs = varargs;
120146
try {
@@ -134,6 +160,7 @@ function ___syscall146(which, varargs) {
134160
return -e.errno;
135161
}
136162
}
163+
137164
function ___syscall54(which, varargs) {
138165
SYSCALLS.varargs = varargs;
139166
try {
@@ -143,6 +170,7 @@ function ___syscall54(which, varargs) {
143170
return -e.errno;
144171
}
145172
}
173+
146174
function ___syscall6(which, varargs) {
147175
SYSCALLS.varargs = varargs;
148176
try {
@@ -154,15 +182,19 @@ function ___syscall6(which, varargs) {
154182
return -e.errno;
155183
}
156184
}
185+
157186
function _emscripten_get_now() {
158187
abort();
159188
}
189+
160190
function _emscripten_random() {
161191
return Math.random();
162192
}
193+
163194
function _emscripten_memcpy_big(dest, src, num) {
164195
HEAPU8.set(HEAPU8.subarray(src, src + num), dest);
165196
}
197+
166198
if (ENVIRONMENT_IS_NODE) {
167199
_emscripten_get_now = function _emscripten_get_now_actual() {
168200
var t = process["hrtime"]();
@@ -181,6 +213,7 @@ if (ENVIRONMENT_IS_NODE) {
181213
} else {
182214
_emscripten_get_now = Date.now;
183215
}
216+
184217
var asmLibraryArg = {
185218
"b": abort,
186219
"h": ___syscall140,
@@ -191,21 +224,29 @@ var asmLibraryArg = {
191224
"d": _emscripten_memcpy_big,
192225
"c": _emscripten_random
193226
};
227+
194228
function run() {
195229
var ret = _main();
196230
}
231+
197232
function initRuntime(asm) {
198233
asm["i"]();
199234
}
235+
200236
var env = asmLibraryArg;
237+
201238
env["memory"] = wasmMemory;
239+
202240
env["table"] = new WebAssembly.Table({
203241
"initial": 6,
204242
"maximum": 6,
205243
"element": "anyfunc"
206244
});
245+
207246
env["__memory_base"] = STATIC_BASE;
247+
208248
env["__table_base"] = 0;
249+
209250
var imports = {
210251
"env": env,
211252
"global": {
@@ -222,7 +263,9 @@ var imports = {
222263
}
223264
}
224265
};
266+
225267
var ___errno_location, _llvm_bswap_i32, _main, _memcpy, _memset, dynCall_ii, dynCall_iiii;
268+
226269
WebAssembly.instantiate(Module["wasm"], imports).then(function(output) {
227270
var asm = output.instance.exports;
228271
___errno_location = asm["j"];

tests/optimizer/minimal-runtime-applyDCEGraphRemovals-output.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ WebAssembly.instantiate(Module["wasm"], imports).then(function(output) {
1010
expD1 = asm["expD1"];
1111
expD2 = asm["expD2"];
1212
expD3 = asm["expD3"];
13-
1413
initRuntime(asm);
1514
ready();
1615
});
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
[]
2-
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,35 @@
11
a = HEAP8[x];
2+
23
HEAP8[x] = a;
4+
35
a = HEAPU8[x];
6+
47
HEAPU8[x] = a;
8+
59
a = LE_HEAP_LOAD_I16(x * 2);
10+
611
LE_HEAP_STORE_I16(x * 2, a);
12+
713
a = LE_HEAP_LOAD_U16(x * 2);
14+
815
LE_HEAP_STORE_U16(x * 2, a);
16+
917
a = LE_HEAP_LOAD_I32(x * 4);
18+
1019
LE_HEAP_STORE_I32(x * 4, a);
20+
1121
a = LE_HEAP_LOAD_U32(x * 4);
22+
1223
LE_HEAP_STORE_U32(x * 4, a);
24+
1325
a = LE_HEAP_LOAD_F32(x * 4);
26+
1427
LE_HEAP_STORE_F32(x * 4, a);
28+
1529
a = LE_HEAP_LOAD_F64(x * 8);
30+
1631
LE_HEAP_STORE_F64(x * 8, a);
32+
1733
HEAP[x];
34+
1835
HeAp[x];

tests/test_other.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,10 @@
3333
from common import RunnerCore, path_from_root, is_slow_test, ensure_dir, disabled, make_executable
3434
from common import env_modify, no_mac, no_windows, requires_native_clang, with_env_modify
3535
from common import create_file, parameterized, NON_ZERO, node_pthreads, TEST_ROOT, test_file
36-
from common import compiler_for, read_file, read_binary, EMBUILDER, requires_v8, requires_node
36+
from common import compiler_for, EMBUILDER, requires_v8, requires_node
3737
from common import also_with_minimal_runtime, also_with_wasm_bigint, EMTEST_BUILD_VERBOSE, PYTHON
3838
from tools import shared, building, utils, deps_info, response_file
39+
from tools.utils import read_file, write_file, read_binary
3940
import common
4041
import jsrun
4142
import clang_native
@@ -2306,12 +2307,14 @@ def test_extern_prepost(self):
23062307
})
23072308
def test_js_optimizer(self, input, passes):
23082309
input = test_file(input)
2309-
expected = os.path.splitext(input)[0] + '-output.js'
2310-
expected = read_file(expected).replace('\n\n', '\n')
2311-
2310+
expected_file = os.path.splitext(input)[0] + '-output.js'
23122311
# test calling optimizer
23132312
js = self.run_process(config.NODE_JS + [path_from_root('tools/acorn-optimizer.js'), input] + passes, stdin=PIPE, stdout=PIPE).stdout
2314-
self.assertIdentical(expected, js.replace('\r\n', '\n').replace('\n\n', '\n').replace('\n\n', '\n'))
2313+
if common.EMTEST_REBASELINE:
2314+
write_file(expected_file, js)
2315+
else:
2316+
expected = read_file(expected_file)
2317+
self.assertIdentical(expected, js)
23152318

23162319
@parameterized({
23172320
'wasm2js': ('wasm2js', ['minifyNames', 'last']),

0 commit comments

Comments
 (0)