Skip to content

Fuzztesting (v2) - #135

Open
ikripaka wants to merge 9 commits into
devfrom
feat/fuzztest
Open

Fuzztesting (v2)#135
ikripaka wants to merge 9 commits into
devfrom
feat/fuzztest

Conversation

@ikripaka

@ikripaka ikripaka commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator
  • This PR suggests a bug fix and I've added the necessary tests.
  • This PR introduces a new feature and I've discussed the update in an Issue or with the team.
  • This PR is just a minor change like a typo fix.

  • Rebase fuzz-testing work from #90 onto current dev
  • Add reusable fuzz engine with random arguments and witnesses
  • Support transaction targets, post-injection hooks, signing, and execution checks
  • Add fuzz fixtures, generated UI tests, and just workflows
  • Add a just file for simplifying local checks

Closes #90

@ikripaka
ikripaka marked this pull request as ready for review August 26, 2026 08:37
@ikripaka
ikripaka requested a review from Arvolear as a code owner August 26, 2026 08:37
@ikripaka
ikripaka force-pushed the feat/fuzztest branch 2 times, most recently from 4ec712f to b333eed Compare August 27, 2026 07:48
Comment thread crates/test/src/fuzz/args_strategy/mod.rs
pub(crate) fn prepare_transaction(
&self,
program: &Program,
script: &Script,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do you need script when there is program.get_script_pubkey()?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, but it requires a SimplicityNetwork, which I retrieve from the config, so I need to insert it before invoking it.

    pub fn get_script_pubkey(&self, network: &SimplicityNetwork) -> Script {

Comment thread fixtures/tests/prop_testing.rs Outdated
Comment thread justfile Outdated
Comment thread crates/test/src/fuzz/engine.rs
* add randomness implementation
* add fuzz macro implementation
* add fuzzing impelmentation, which can generate arguments and witness to inject values into program
* edit interface for program creation (we have Into<Arguments> and Into<WitnessValues> instead of Box<dyn ...>)
* extend ui tests to include randomness
* continue work onto this pr from b2c4bfd to simplify rebasing
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

Successfully merging this pull request may close these issues.

2 participants