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

Generator based testing framework #378

Open
1 of 5 tasks
danielSanchezQ opened this issue May 12, 2020 · 1 comment
Open
1 of 5 tasks

Generator based testing framework #378

danielSanchezQ opened this issue May 12, 2020 · 1 comment
Assignees
Labels

Comments

@danielSanchezQ
Copy link
Contributor

danielSanchezQ commented May 12, 2020

Having generators that can deterministically generate can be used to do more complex unit tests.

When we have the ability to generate some of the chain types we would be able to generate more interesting test. For example, we could have a BFT blockchain generator. Conceptually this blockchain could have some specific block configuration and emulate a complex state which we can use to validates.
Another example of a test vector in where we can use this would be a generated blockchain that could be used to test recovery from storage in isolation. We could generate a simulated blockchain that would look like an original one generated by a node running for 10 days.

Ideally, the framework would:

  • Support all the needed types from chain-libs.
  • Be flexible and configurable enough to bend the generated values as needed.

Initial tasks:

  • Support chain-core types
  • Support chain-time types
  • Support chain-addr types
  • Support chain-crypto types
  • Support chain-impl-mockchain types
@danielSanchezQ danielSanchezQ self-assigned this May 12, 2020
@danielSanchezQ danielSanchezQ linked a pull request May 12, 2020 that will close this issue
@mzabaluev
Copy link
Contributor

Consider bolero, an advanced fuzz and property testing framework; it could save us some cycles to not develop similar things from scratch, and it has a number of pluggable adaptive/heuristical fuzzers.

@danielSanchezQ danielSanchezQ linked a pull request May 15, 2020 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
2 participants