diff options
Diffstat (limited to 'auto_update_tests.py')
-rwxr-xr-x | auto_update_tests.py | 111 |
1 files changed, 4 insertions, 107 deletions
diff --git a/auto_update_tests.py b/auto_update_tests.py index c2bcf47df..86f47def3 100755 --- a/auto_update_tests.py +++ b/auto_update_tests.py @@ -20,10 +20,12 @@ import subprocess import sys from collections import OrderedDict +from scripts.test import binaryenjs from scripts.test import lld from scripts.test import shared from scripts.test import support from scripts.test import wasm2js +from scripts.test import wasm_opt def update_asm_js_tests(): @@ -71,79 +73,6 @@ def update_asm_js_tests(): support.run_command(cmd) -def update_wasm_opt_tests(): - print('\n[ checking wasm-opt -o notation... ]\n') - wast = os.path.join(shared.options.binaryen_test, 'hello_world.wat') - cmd = shared.WASM_OPT + [wast, '-o', 'a.wast', '-S'] - support.run_command(cmd) - open(wast, 'w').write(open('a.wast').read()) - - print('\n[ checking wasm-opt parsing & printing... ]\n') - for t in shared.get_tests(shared.get_test_dir('print'), ['.wast']): - print('..', os.path.basename(t)) - wasm = t.replace('.wast', '') - cmd = shared.WASM_OPT + [t, '--print', '-all'] - print(' ', ' '.join(cmd)) - actual = subprocess.check_output(cmd) - print(cmd, actual) - with open(wasm + '.txt', 'wb') as o: - o.write(actual) - cmd = shared.WASM_OPT + [t, '--print-minified', '-all'] - print(' ', ' '.join(cmd)) - actual = subprocess.check_output(cmd) - with open(wasm + '.minified.txt', 'wb') as o: - o.write(actual) - - print('\n[ checking wasm-opt passes... ]\n') - for t in shared.get_tests(shared.get_test_dir('passes'), ['.wast', '.wasm']): - print('..', os.path.basename(t)) - binary = t.endswith('.wasm') - base = os.path.basename(t).replace('.wast', '').replace('.wasm', '') - passname = base - passes_file = os.path.join(shared.get_test_dir('passes'), passname + '.passes') - if os.path.exists(passes_file): - passname = open(passes_file).read().strip() - opts = [('--' + p if not p.startswith('O') and p != 'g' else '-' + p) for p in passname.split('_')] - actual = '' - for module, asserts in support.split_wast(t): - assert len(asserts) == 0 - support.write_wast('split.wast', module) - cmd = shared.WASM_OPT + opts + ['split.wast'] - if 'noprint' not in t: - cmd.append('--print') - actual += support.run_command(cmd) - with open(os.path.join(shared.options.binaryen_test, 'passes', base + ('.bin' if binary else '') + '.txt'), 'w') as o: - o.write(actual) - if 'emit-js-wrapper' in t: - with open('a.js') as i: - with open(t + '.js', 'w') as o: - o.write(i.read()) - if 'emit-spec-wrapper' in t: - with open('a.wat') as i: - with open(t + '.wat', 'w') as o: - o.write(i.read()) - - print('\n[ checking wasm-opt testcases... ]\n') - for t in shared.get_tests(shared.options.binaryen_test, ['.wast']): - print('..', os.path.basename(t)) - f = t + '.from-wast' - cmd = shared.WASM_OPT + [t, '--print', '-all'] - actual = support.run_command(cmd) - actual = actual.replace('printing before:\n', '') - open(f, 'w').write(actual) - - print('\n[ checking wasm-opt debugInfo read-write... ]\n') - for t in shared.get_tests(shared.options.binaryen_test, ['.fromasm']): - if 'debugInfo' not in t: - continue - print('..', os.path.basename(t)) - f = t + '.read-written' - support.run_command(shared.WASM_AS + [t, '--source-map=a.map', '-o', 'a.wasm', '-g']) - support.run_command(shared.WASM_OPT + ['a.wasm', '--input-source-map=a.map', '-o', 'b.wasm', '--output-source-map=b.map', '-g']) - actual = support.run_command(shared.WASM_DIS + ['b.wasm', '--source-map=b.map']) - open(f, 'w').write(actual) - - def update_bin_fmt_tests(): print('\n[ checking binary format testcases... ]\n') for wast in shared.get_tests(shared.options.binaryen_test, ['.wast']): @@ -238,38 +167,6 @@ def update_wasm_dis_tests(): open(t + '.fromBinary', 'w').write(actual) -def update_binaryen_js_tests(): - if not (shared.MOZJS or shared.NODEJS): - print('no vm to run binaryen.js tests') - return - - if not os.path.exists(shared.BINARYEN_JS): - print('no binaryen.js build to test') - return - - print('\n[ checking binaryen.js testcases... ]\n') - node_has_wasm = shared.NODEJS and support.node_has_webassembly(shared.NODEJS) - for s in shared.get_tests(shared.get_test_dir('binaryen.js'), ['.js']): - basename = os.path.basename(s) - print(basename) - f = open('a.js', 'w') - f.write(open(shared.BINARYEN_JS).read()) - test_src = open(s).read() - f.write(support.js_test_wrap().replace('%TEST%', test_src)) - f.close() - if shared.MOZJS or node_has_wasm or 'WebAssembly.' not in test_src: - cmd = [shared.MOZJS or shared.NODEJS, 'a.js'] - if 'fatal' not in basename: - out = support.run_command(cmd, stderr=subprocess.STDOUT) - else: - # expect an error - the specific error code will depend on the vm - out = support.run_command(cmd, stderr=subprocess.STDOUT, expected_status=None) - with open(s + '.txt', 'w') as o: - o.write(out) - else: - print('Skipping ' + basename + ' because WebAssembly might not be supported') - - def update_ctor_eval_tests(): print('\n[ checking wasm-ctor-eval... ]\n') for t in shared.get_tests(shared.get_test_dir('ctor-eval'), ['.wast', '.wasm']): @@ -326,7 +223,7 @@ def update_spec_tests(): TEST_SUITES = OrderedDict([ - ('wasm-opt', update_wasm_opt_tests), + ('wasm-opt', wasm_opt.update_wasm_opt_tests), ('asm2wasm', update_asm_js_tests), ('wasm-dis', update_wasm_dis_tests), ('example', update_example_tests), @@ -337,7 +234,7 @@ TEST_SUITES = OrderedDict([ ('lld', lld.update_lld_tests), ('wasm2js', wasm2js.update_wasm2js_tests), ('binfmt', update_bin_fmt_tests), - ('binaryenjs', update_binaryen_js_tests), + ('binaryenjs', binaryenjs.update_binaryen_js_tests), ]) |