blob: 707633de9e76aea06d2bc9e0d39dddc9c9ffbcda [file]
//! Test use of `rdroidtest` attribute macro.
use rdroidtest::{ignore_if, rdroidtest};
mod raw;
#[rdroidtest]
fn one_plus_one() {
let result = 1 + 1;
assert_eq!(result, 2);
}
#[rdroidtest]
#[ignore_if(feeling_happy())]
fn grumble() {
let result = 1 + 1;
assert_eq!(result, 2);
}
#[rdroidtest]
#[ignore_if(!feeling_happy())]
fn clap_hands() {
let result = 1 + 1;
assert_eq!(result, 3);
}
fn feeling_happy() -> bool {
false
}
#[rdroidtest(my_instances())]
fn is_less_than_five(param: u32) {
assert!(param < 5);
}
#[rdroidtest(my_instances())]
#[ignore_if(feeling_odd)]
fn is_even(param: u32) {
assert_eq!(param % 2, 0);
}
#[rdroidtest(my_instances())]
#[ignore_if(|p| !feeling_odd(p))]
fn is_odd(param: u32) {
assert_eq!(param % 2, 1);
}
fn feeling_odd(param: &u32) -> bool {
*param % 2 == 1
}
fn my_instances() -> Vec<(String, u32)> {
vec![("one".to_string(), 1), ("two".to_string(), 2), ("three".to_string(), 3)]
}
#[rdroidtest(wrapped_instances())]
#[ignore_if(|p| !feeling_odder(p))]
fn is_odder(param: Param) {
assert_eq!(param.0 % 2, 1);
}
fn feeling_odder(param: &Param) -> bool {
param.0 % 2 == 1
}
struct Param(u32);
fn wrapped_instances() -> Vec<(String, Param)> {
vec![
("one".to_string(), Param(1)),
("two".to_string(), Param(2)),
("three".to_string(), Param(3)),
]
}
#[rdroidtest(more_instances())]
#[ignore_if(|p| p != "one")]
fn is_the_one(param: String) {
assert_eq!(param, "one");
}
fn more_instances() -> Vec<(String, String)> {
vec![("one".to_string(), "one".to_string()), ("two".to_string(), "two".to_string())]
}
#[rdroidtest]
#[ignore]
fn ignore_me() {
panic!("shouldn't run!");
}
#[rdroidtest]
#[ignore_if(false)]
#[ignore]
fn ignore_me_too() {
panic!("shouldn't run either -- attribute trumps ignore_if!");
}
#[rdroidtest]
#[ignore]
#[ignore_if(false)]
fn ignore_me_as_well() {
panic!("shouldn't run either -- attribute trumps ignore_if, regardless of order!");
}
#[rdroidtest(my_instances())]
#[ignore]
fn ignore_all(param: u32) {
panic!("parameterized test ({param}) shouldn't run");
}
rdroidtest::test_main!();