fail-rs

Build Status Build status Crates.io

Documentation

A fail point implementation for Rust.

Fail point is a code point that are used to inject errors by users at runtime. This crate is inspired by FreeBSD's failpoints.

Usage

First, add this to your Cargo.toml:

toml [dependencies] fail = "0.1"

Next, add the following code to your crate:

```rust

[macro_use]

extern crate fail; ```

Define the fail points:

``` fn functionreturntuple() { fail_point!("name1"); }

fn functionreturnothers() -> u64 { failpoint!("name2", |r| r.mapor(2, |e| e.parse().unwrap())); 0 }

fn functionconditional(enable: bool) { failpoint!("name3", enable, |_| {}); } ```

Trigger a fail point via the environment variable:

$ FAILPOINTS=bar::foo=panic cargo run

In unit tests:

```

[test]

fn test_foo() { fail::cfg("bar::foo", "panic"); foo(); } ```

To DO

Triggering a fail point via the HTTP API is planned but not implemented yet.