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

Fuzzing / proptest support for the soroban-env-host crate #1092

Open
brson opened this issue Oct 3, 2023 · 0 comments
Open

Fuzzing / proptest support for the soroban-env-host crate #1092

brson opened this issue Oct 3, 2023 · 0 comments

Comments

@brson
Copy link
Contributor

brson commented Oct 3, 2023

What problem does your feature solve?

Soroban's fuzzing support is all located in the soroban-sdk crate, end-user focused. It could be desirable for internal testing purposes to have that support in the soroban-env-host crate, or even soroban-env-common, with implementations of SorobanArbitrary for the internal types used by the host but not exposed through the SDK.

What would you like to see?

Extract most of soroban_sdk::arbitrary to soroban_env_host::arbitrary (or soroban_env_common::arbitrary), and reexport from the SDK.

The big complication is that the main SorobanArbitrary type is defined in terms of the Env struct that is defined in the SDK, so not suitable as-is for use in the env crates. It may not be possible to simply move it.

What alternatives are there?

The main desire I think is probably to write proptests for the env crates, and the Arbitrary trait is not strictly necessary for proptests, and using it as intermediary for proptests may even result in lower quality input than just using the proptest traits directly.

It might be desirable to instead write proptest adapters directly, in a similar way to the SorobanArbitrary prototype.

cc @graydon

@brson brson changed the title Fuzzing support for the soroban-env-host crate Fuzzing / proptest support for the soroban-env-host crate Oct 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants
@brson and others