Enable callback-oriented harness API
- Dominant language
- Rust
- Stars
- 331
- Forks
- 26
- Avg merge
- 1d 5h
- Merged PRs (30d)
- 2
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.
Contributor guide
Assessment
This issue has not been assessed yet.