7个版本 (4个破坏性版本)

0.11.2 2024年6月10日
0.11.1 2024年6月8日
0.10.0 2023年9月28日
0.9.0 2023年3月21日
0.7.0 2022年5月24日

测试分类中排名#658

Download history • Rust 包仓库 724/week @ 2024-04-23 • Rust 包仓库 893/week @ 2024-04-30 • Rust 包仓库 1318/week @ 2024-05-07 • Rust 包仓库 1326/week @ 2024-05-14 • Rust 包仓库 3581/week @ 2024-05-21 • Rust 包仓库 4504/week @ 2024-05-28 • Rust 包仓库 3240/week @ 2024-06-04 • Rust 包仓库 3271/week @ 2024-06-11 • Rust 包仓库 3293/week @ 2024-06-18 • Rust 包仓库 3523/week @ 2024-06-25 • Rust 包仓库 6480/week @ 2024-07-02 • Rust 包仓库 6071/week @ 2024-07-09 • Rust 包仓库 8809/week @ 2024-07-16 • Rust 包仓库 2929/week @ 2024-07-23 • Rust 包仓库 4374/week @ 2024-07-30 • Rust 包仓库 2648/week @ 2024-08-06 • Rust 包仓库

每月下载量20,037
25个crate中使用(通过bolero

MIT许可证

21KB
469 代码行

bolero

Build Status Latest version Documentation License

Rust的模糊测试和属性测试前端

书籍

Bolero书籍的副本可以在以下位置找到:http://camshaft.github.io/bolero

快速入门

  1. 安装子命令并添加依赖项

    $ cargo add --dev bolero
    $ cargo install -f cargo-bolero
    
  2. 使用bolero::check!宏编写测试

    pub fn buggy_add(x: u32, y: u32) -> u32 {
        if x == 12976 && y == 14867 {
            return x.wrapping_sub(y);
        }
        return x.wrapping_add(y);
    }
    
    #[test]
    fn fuzz_add() {
        bolero::check!()
            .with_type()
            .cloned()
            .for_each(|(a, b)| buggy_add(a, b) == a.wrapping_add(b));
    }
    
  3. 使用cargo bolero运行测试

    $ cargo bolero test fuzz_add
    
    # ... some moments later ...
    
    ======================== Test Failure ========================
    
    Input:
    (
        12976,
        14867,
    )
    
    Error:
    test returned `false`
    
    ==============================================================
    

Linux安装

cargo-bolero需要安装几个库来编译。如果这些库不可用,可以通过执行以下命令来放宽要求:cargo install cargo-bolero --no-default-features -f

Debian/Ubuntu

$ sudo apt install binutils-dev libunwind-dev

依赖项

~0–1MB
~22K SLoC