Skip to content

test: implement property-based fuzz tests for all Soroban contracts#33

Closed
bbkenny wants to merge 1 commit into
wraith-protocol:mainfrom
bbkenny:fix/property-fuzz-tests-issue-5
Closed

test: implement property-based fuzz tests for all Soroban contracts#33
bbkenny wants to merge 1 commit into
wraith-protocol:mainfrom
bbkenny:fix/property-fuzz-tests-issue-5

Conversation

@bbkenny
Copy link
Copy Markdown

@bbkenny bbkenny commented May 29, 2026

This PR adds property-based fuzz tests to all Stellar Soroban contracts in the workspace using the proptest framework.

Key changes:

  • Integrated proptest into the workspace and individual contract crates.
  • Added test_announce_fuzz to stealth-announcer to verify event emission integrity with arbitrary inputs.
  • Added test_registry_fuzz to stealth-registry to verify data persistence for arbitrary schemes and meta-addresses.
  • Added test_names_fuzz to wraith-names to verify name registration and reverse lookup logic.

These tests help ensure the robustness of the protocol contracts against edge cases and malformed inputs.

Closes #5

@bbkenny
Copy link
Copy Markdown
Author

bbkenny commented May 29, 2026

Hi @wraith-protocol, I've implemented the property-based fuzz tests for all Soroban contracts as requested in issue #5. These tests use the proptest framework to verify contract invariants against arbitrary inputs, significantly improving the robustness of the protocol. Ready for review!

@drips-wave
Copy link
Copy Markdown

drips-wave Bot commented May 29, 2026

@bbkenny Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@truthixify
Copy link
Copy Markdown
Contributor

Closing this one — issue #5 was already addressed by #13 which landed first and went a bit broader (dedicated tests/properties.rs per crate, a WRAITH_PROPTEST_CASES env knob, and the nightly CI matrix at 16k cases). Your approach (proptests inline in the lib.rs #[cfg(test)] modules) is also valid — sorry the duplication happened, that's on us for not making the assignment-tracking more visible.

Definitely don't want this to be a wasted effort though. A few open issues that would slot in nicely with the same proptest muscle:

Thanks for picking this up @bbkenny — pick any of those (or another open Stellar Wave issue) and I'll prioritize the review.

@truthixify truthixify closed this Jun 1, 2026
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.

Property-based fuzz tests for all Stellar Soroban contracts

2 participants