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)