This PR adds a max_len value to the driver::Options struct. This option will limit the amount of bytes generated by the particular driver. As seen in practice, some generators could run forever with unbounded inputs so this tries to avoid that by setting the default value to 4096. Individual tests can override it if larger inputs are desired:
Finally, I've simplified the driver::Rng::gen_from_bytes implementation to avoid branching on DriverMode. This ends up being a lot easier to reason about, since the driver no longer loops to try and provide incrementally larger inputs.
This PR adds a
max_len
value to thedriver::Options
struct. This option will limit the amount of bytes generated by the particular driver. As seen in practice, some generators could run forever with unbounded inputs so this tries to avoid that by setting the default value to 4096. Individual tests can override it if larger inputs are desired:I've also lowered the max_depth from 32 to 5. This should also prevent unbounded input generation and can be raised by the harness:
Finally, I've simplified the
driver::Rng::gen_from_bytes
implementation to avoid branching onDriverMode
. This ends up being a lot easier to reason about, since the driver no longer loops to try and provide incrementally larger inputs.