repeated-assert

Build Status Windows build status Crate version Documentation

An assertion macro that tries to assert expressions multiple times

repeated_assert! re-tries to assert expressions until either all expressions are true or the maximum amount of repetitions has been reached. The current thread will be blocked between tries.

repeated_assert! is useful when waiting for events from another thread (or process). Waiting for a short time might result in a failing test, while waiting too long is a waste of time.

Examples

Wait for a file to appear, calculate the checksum and then assert the checksum is to equal to 1234 (re-try up to 10 times, wait 50 ms between tries)

rust repeated_assert!{ 10, Duration::from_millis(50); if Path::new("should_appear_soon.txt").exists(); let checksum = crc("should_appear_soon.txt"); eq checksum, 1234; };