| import subprocess | |
| from scripts.test import shared | |
| from . import utils | |
| class InitialFuzzTest(utils.BinaryenTestCase): | |
| def test_empty_initial(self): | |
| # generate fuzz from random data | |
| data = self.input_path('random_data.txt') | |
| a = shared.run_process(shared.WASM_OPT + ['-ttf', '--print', data], | |
| stdout=subprocess.PIPE).stdout | |
| # generate fuzz from random data with initial empty wasm | |
| empty_wasm = self.input_path('empty.wasm') | |
| b = shared.run_process( | |
| shared.WASM_OPT + ['-ttf', '--print', data, | |
| '--initial-fuzz=' + empty_wasm], | |
| stdout=subprocess.PIPE).stdout | |
| # an empty initial wasm causes no changes | |
| self.assertEqual(a, b) | |
| def test_small_initial(self): | |
| data = self.input_path('random_data.txt') | |
| hello_wat = self.input_path('hello_world.wat') | |
| out = shared.run_process(shared.WASM_OPT + ['-ttf', '--print', data, | |
| '--initial-fuzz=' + hello_wat], | |
| stdout=subprocess.PIPE).stdout | |
| # the function should be there (perhaps with modified contents - don't | |
| # check that) | |
| self.assertIn('(export "add" (func $add))', out) | |
| # there should be other fuzz contents added as well | |
| self.assertGreater(out.count('(export '), 1) |