summaryrefslogtreecommitdiff
path: root/auto_update_tests.py
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2017-04-28 14:34:25 -0700
committerGitHub <noreply@github.com>2017-04-28 14:34:25 -0700
commita88d9b83a4629f4bf4c3b210b07d11d2396c594d (patch)
tree0df6fa75b22d4eb5a1590e6ee9fe5e6352ace5e4 /auto_update_tests.py
parent5d4f9eb82226acc0fdb5e2dea1a04e17c340c371 (diff)
downloadbinaryen-a88d9b83a4629f4bf4c3b210b07d11d2396c594d.tar.gz
binaryen-a88d9b83a4629f4bf4c3b210b07d11d2396c594d.tar.bz2
binaryen-a88d9b83a4629f4bf4c3b210b07d11d2396c594d.zip
ctor evaller (#982)
Add wasm-ctor-eval, which evaluates functions at compile time - typically static constructor functions - and applies their effects into memory, saving work at startup. If we encounter something we can't evaluate at compile time in our interpreter, stop there. This is similar to ctor_evaller.py in emscripten (which was for asm.js).
Diffstat (limited to 'auto_update_tests.py')
-rwxr-xr-xauto_update_tests.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/auto_update_tests.py b/auto_update_tests.py
index 76cd02cbb..9eb0fb50c 100755
--- a/auto_update_tests.py
+++ b/auto_update_tests.py
@@ -226,4 +226,17 @@ for s in sorted(os.listdir(os.path.join('test', 'binaryen.js'))):
out = run_command(cmd, stderr=subprocess.STDOUT)
open(os.path.join('test', 'binaryen.js', s + '.txt'), 'w').write(out)
+print '\n[ checking wasm-ctor-eval... ]\n'
+
+for t in os.listdir(os.path.join('test', 'ctor-eval')):
+ if t.endswith(('.wast', '.wasm')):
+ print '..', t
+ t = os.path.join('test', 'ctor-eval', t)
+ ctors = open(t + '.ctors').read().strip()
+ cmd = [os.path.join('bin', 'wasm-ctor-eval'), t, '-o', 'a.wast', '-S', '--ctors', ctors]
+ stdout = run_command(cmd)
+ actual = open('a.wast').read()
+ out = t + '.out'
+ with open(out, 'w') as o: o.write(actual)
+
print '\n[ success! ]'