bulloak-foundry

A Solidity test generator based on the Branching Tree Technique

1 unstable release

0.8.0 Jul 27, 2024

#269 in Testing

Download history 78/week @ 2024-07-21 56/week @ 2024-07-28 8/week @ 2024-08-04 22/week @ 2024-08-11 14/week @ 2024-08-18 2/week @ 2024-08-25 4/week @ 2024-09-01 1/week @ 2024-09-08 13/week @ 2024-09-15 49/week @ 2024-09-22 21/week @ 2024-09-29

84 downloads per month
Used in bulloak

MIT/Apache

250KB
5.5K SLoC

bulloak-foundry

bulloak-foundry is a Rust crate that serves as a backend for generating Foundry tests from bulloak-syntax Abstract Syntax Trees (ASTs). It provides functionality to scaffold Solidity test files and check existing tests against specifications.

Features

  • Generate .t.sol files with scaffolded Foundry tests from bulloak-syntax ASTs.
  • Check existing Solidity test files against .tree specifications.
  • Implement and enforce custom rules for test structure and content.
  • Automatic fixing of certain rule violations.

Usage

To use bulloak-foundry in your project, add it to your Cargo.toml:

[dependencies]
bulloak-foundry = "0.1.0"  # Replace with the actual version

Scaffolding Tests

use bulloak_foundry::scaffold;

fn main() -> anyhow::Result<()> {
    let tree_spec = "Your .tree specification here";
    let foundry_test = scaffold::scaffold(tree_spec)?;

    // Write foundry_test to a .t.sol file

    Ok(())
}

Violation Checking

bulloak-foundry includes a system for defining and checking rules against Solidity test files. Violations can be of different kinds, as defined in the ViolationKind enum.

License

This project is licensed under either of:

Dependencies

~27–44MB
~743K SLoC