Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable callback-oriented harness API #59

Open
novafacing opened this issue Jan 18, 2024 · 0 comments
Open

Enable callback-oriented harness API #59

novafacing opened this issue Jan 18, 2024 · 0 comments
Assignees
Labels
enhancement A new feature or enhancement to an existing feature. low-priority Low priority tasks that still need to be completed for an upcoming release. major A major change, bug, or feature requiring significant effort.

Comments

@novafacing
Copy link
Contributor

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.

@novafacing novafacing added major A major change, bug, or feature requiring significant effort. low-priority Low priority tasks that still need to be completed for an upcoming release. enhancement A new feature or enhancement to an existing feature. labels Jan 18, 2024
@novafacing novafacing self-assigned this Jan 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement A new feature or enhancement to an existing feature. low-priority Low priority tasks that still need to be completed for an upcoming release. major A major change, bug, or feature requiring significant effort.
Projects
None yet
Development

No branches or pull requests

1 participant