Skip to content

Yare v3.0.0

Latest
Compare
Choose a tag to compare
@foresterre foresterre released this 08 Mar 05:24
· 5 commits to main since this release

What's Changed

Added

  • Parameterized tests now parse and regenerate the const, async, unsafe and extern function qualifiers for test functions.

Example

use yare::parameterized;

// NB: The underlying test macro also must support these qualifiers. For example, the default `#[test]` doesn't support async and unsafe.

#[parameterized(
    purple = { &[128, 0, 128] },
    orange = { &[255, 127, 0] },
)]
const extern "C" fn has_reds(streamed_color: &[u8]) {
    assert!(streamed_color.first().is_some());
}
  • It is now possible to specify a custom test macro with #[test_macro(...)], which replaces the default #[test] attribute for a parameterized test.

Example

use yare::parameterized;

#[parameterized(
    zero_wait = { 0, 0 },
    show_paused = { 500, 0 },
)]
#[test_macro(tokio::test(start_paused = true))]
async fn test(wait: u64, time_elapsed: u128) {
    let start = std::time::Instant::now();
    tokio::time::sleep(tokio::time::Duration::from_millis(wait)).await;

    assert_eq!(time_elapsed, start.elapsed().as_millis());
}

Full Changelog: v2.0.0...v3.0.0