use fluent_test::prelude::*;
use std::sync::atomic::{AtomicUsize, Ordering};
mod attribute_test_module {
use super::*;
static SETUP_COUNT: AtomicUsize = AtomicUsize::new(0);
static TEARDOWN_COUNT: AtomicUsize = AtomicUsize::new(0);
fn print_module_path() {
println!("Current module path: {}", module_path!());
}
#[setup]
fn setup() {
println!("Running setup in {}", module_path!());
SETUP_COUNT.fetch_add(1, Ordering::SeqCst);
let count = SETUP_COUNT.load(Ordering::SeqCst);
println!("Setup count is now: {}", count);
}
#[tear_down]
fn teardown() {
println!("Running teardown in {}", module_path!());
TEARDOWN_COUNT.fetch_add(1, Ordering::SeqCst);
let count = TEARDOWN_COUNT.load(Ordering::SeqCst);
println!("Teardown count is now: {}", count);
}
#[test]
#[with_fixtures]
fn test_with_attribute_fixtures() {
print_module_path();
let setup_count = SETUP_COUNT.load(Ordering::SeqCst);
let teardown_count = TEARDOWN_COUNT.load(Ordering::SeqCst);
println!("In test: setup_count={}, teardown_count={}", setup_count, teardown_count);
expect!(setup_count).to_be_greater_than(0);
std::thread::sleep(std::time::Duration::from_millis(5));
}
}