summaryrefslogtreecommitdiff
path: root/auto_update_tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'auto_update_tests.py')
-rwxr-xr-xauto_update_tests.py200
1 files changed, 0 insertions, 200 deletions
diff --git a/auto_update_tests.py b/auto_update_tests.py
deleted file mode 100755
index 240fcbda2..000000000
--- a/auto_update_tests.py
+++ /dev/null
@@ -1,200 +0,0 @@
-#!/usr/bin/env python3
-#
-# Copyright 2015 WebAssembly Community Group participants
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-import os
-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_example_tests():
- print('\n[ checking example testcases... ]\n')
- for src in shared.get_tests(shared.get_test_dir('example')):
- basename = os.path.basename(src)
- output_file = os.path.join(shared.options.binaryen_bin, 'example')
- libdir = os.path.join(shared.BINARYEN_INSTALL_DIR, 'lib')
- cmd = ['-I' + os.path.join(shared.options.binaryen_root, 'src'), '-g', '-pthread', '-o', output_file]
- if not src.endswith(('.c', '.cpp')):
- continue
- expected = os.path.splitext(src)[0] + '.txt'
- # windows + gcc will need some work
- if shared.skip_if_on_windows('gcc'):
- return
- # build the C file separately
- extra = [os.environ.get('CC') or 'gcc',
- src, '-c', '-o', 'example.o',
- '-I' + os.path.join(shared.options.binaryen_root, 'src'), '-g', '-L' + libdir, '-pthread']
- print('build: ', ' '.join(extra))
- if src.endswith('.cpp'):
- extra += ['-std=c++' + str(shared.cxx_standard)]
- print(os.getcwd())
- subprocess.check_call(extra)
- # Link against the binaryen C library DSO, using rpath
- cmd = ['example.o', '-L' + libdir, '-lbinaryen', '-Wl,-rpath,' + os.path.abspath(libdir)] + cmd
- print(' ', basename, src, expected)
- if os.environ.get('COMPILER_FLAGS'):
- for f in os.environ.get('COMPILER_FLAGS').split(' '):
- cmd.append(f)
- cmd = [os.environ.get('CXX') or 'g++', '-std=c++' + str(shared.cxx_standard)] + cmd
- try:
- print('link: ', ' '.join(cmd))
- subprocess.check_call(cmd)
- print('run...', output_file)
- proc = subprocess.Popen([output_file], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- actual, err = proc.communicate()
- assert proc.returncode == 0, [proc.returncode, actual, err]
- with open(expected, 'wb') as o:
- o.write(actual)
- finally:
- os.remove(output_file)
-
-
-def update_wasm_dis_tests():
- print('\n[ checking wasm-dis on provided binaries... ]\n')
- for t in shared.get_tests(shared.options.binaryen_test, ['.wasm']):
- print('..', os.path.basename(t))
- cmd = shared.WASM_DIS + [t]
- if os.path.isfile(t + '.map'):
- cmd += ['--source-map', t + '.map']
- actual = support.run_command(cmd)
-
- open(t + '.fromBinary', 'w').write(actual)
-
-
-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']):
- print('..', os.path.basename(t))
- ctors = open(t + '.ctors').read().strip()
- cmd = shared.WASM_CTOR_EVAL + [t, '-all', '-o', 'a.wast', '-S', '--ctors', ctors]
- if 'ignore-external-input' in t:
- cmd += ['--ignore-external-input']
- if 'results' in t:
- cmd += ['--kept-exports', 'test1,test3']
- support.run_command(cmd)
- actual = open('a.wast').read()
- out = t + '.out'
- with open(out, 'w') as o:
- o.write(actual)
-
-
-def update_metadce_tests():
- print('\n[ checking wasm-metadce... ]\n')
- for t in shared.get_tests(shared.get_test_dir('metadce'), ['.wast', '.wasm']):
- print('..', os.path.basename(t))
- graph = t + '.graph.txt'
- cmd = shared.WASM_METADCE + [t, '--graph-file=' + graph, '-o', 'a.wast', '-S', '-all']
- stdout = support.run_command(cmd)
- actual = open('a.wast').read()
- out = t + '.dced'
- with open(out, 'w') as o:
- o.write(actual)
- with open(out + '.stdout', 'w') as o:
- o.write(stdout)
-
-
-def update_reduce_tests():
- print('\n[ checking wasm-reduce ]\n')
- for t in shared.get_tests(shared.get_test_dir('reduce'), ['.wast']):
- print('..', os.path.basename(t))
- # convert to wasm
- support.run_command(shared.WASM_AS + [t, '-o', 'a.wasm', '-all'])
- print(support.run_command(shared.WASM_REDUCE + ['a.wasm', '--command=%s b.wasm --fuzz-exec -all' % shared.WASM_OPT[0], '-t', 'b.wasm', '-w', 'c.wasm']))
- expected = t + '.txt'
- support.run_command(shared.WASM_DIS + ['c.wasm', '-o', expected])
-
-
-def update_spec_tests():
- print('\n[ updating wasm-shell spec testcases... ]\n')
-
- for t in shared.options.spec_tests:
- print('..', os.path.basename(t))
-
- cmd = shared.WASM_SHELL + [t]
- expected = os.path.join(shared.get_test_dir('spec'), 'expected-output', os.path.basename(t) + '.log')
- if os.path.isfile(expected):
- stdout = support.run_command(cmd, stderr=subprocess.PIPE)
- # filter out binaryen interpreter logging that the spec suite
- # doesn't expect
- filtered = [line for line in stdout.splitlines() if not line.startswith('[trap')]
- stdout = '\n'.join(filtered) + '\n'
- with open(expected, 'w') as o:
- o.write(stdout)
-
-
-def update_lit_tests():
- print('\n[ updating lit testcases... ]\n')
- script = os.path.join(shared.options.binaryen_root,
- 'scripts',
- 'update_lit_checks.py')
- lit_dir = shared.get_test_dir('lit')
- subprocess.check_output([sys.executable,
- script,
- '--binaryen-bin=' + shared.options.binaryen_bin,
- os.path.join(lit_dir, '**', '*.wast'),
- os.path.join(lit_dir, '**', '*.wat')])
-
- # Update the help lit tests
- script = os.path.join(shared.options.binaryen_root,
- 'scripts',
- 'update_help_checks.py')
- subprocess.check_output([sys.executable,
- script,
- '--binaryen-bin=' + shared.options.binaryen_bin])
-
-
-TEST_SUITES = OrderedDict([
- ('wasm-opt', wasm_opt.update_wasm_opt_tests),
- ('wasm-dis', update_wasm_dis_tests),
- ('example', update_example_tests),
- ('ctor-eval', update_ctor_eval_tests),
- ('wasm-metadce', update_metadce_tests),
- ('wasm-reduce', update_reduce_tests),
- ('spec', update_spec_tests),
- ('lld', lld.update_lld_tests),
- ('wasm2js', wasm2js.update_wasm2js_tests),
- ('binaryenjs', binaryenjs.update_binaryen_js_tests),
- ('lit', update_lit_tests),
-])
-
-
-def main():
- all_suites = TEST_SUITES.keys()
- skip_by_default = ['binaryenjs']
-
- if shared.options.list_suites:
- for suite in all_suites:
- print(suite)
- return 0
-
- if not shared.requested:
- shared.requested = [s for s in all_suites if s not in skip_by_default]
-
- for test in shared.requested:
- TEST_SUITES[test]()
-
- print('\n[ success! ]')
-
-
-if __name__ == '__main__':
- sys.exit(main())