Open
Description
We should enable a pair of APIs which looks like:
@tsffs.iface.tsffs.set_testcase_handler(testcase_handler)
Where testcase_handler
is a Callable[[bytes], None]
which is called with the testcase input. testcase_handler
is then responsible for dispatching the testcase wherever is appropriate. In particular, it should not attempt to start/stop the fuzzing loop, it should only handle the testcase. This has the effect of separating the testcase handling logic from the fuzz loop logic, but requires a "blind start" API to be enabled.
@tsffs.iface.tsffs.start()
This API would take a snapshot through the TSFFS snapshot handling sequence, without handling testcases or buffers at all. When a new testcase is generated, it will be passed to the testcase handler.