mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-06-26 10:54:26 +02:00
31 lines
902 B
Rust
31 lines
902 B
Rust
use lazy_static::lazy_static;
|
|
use std::sync::Mutex;
|
|
use tempfile::TempDir;
|
|
|
|
lazy_static! {
|
|
// the C library running the tests is not reentrant, so we use a mutex to ensure that only one
|
|
// test runs at a time.
|
|
static ref MUTEX: Mutex<()> = Mutex::new(());
|
|
}
|
|
|
|
macro_rules! suite(
|
|
{ $s:ident } => {
|
|
#[test]
|
|
fn $s() {
|
|
let tmp_dir = TempDir::new().expect("TempDir failed");
|
|
let (res, output) = {
|
|
let _guard = MUTEX.lock().unwrap();
|
|
// run the tests in the temp dir (NOTE: this must be inside
|
|
// the mutex guard!)
|
|
std::env::set_current_dir(tmp_dir.as_ref()).unwrap();
|
|
integration_tests::bindings_tests::$s()
|
|
};
|
|
println!("{}", output);
|
|
if res != 0 {
|
|
assert!(false, "test failed");
|
|
}
|
|
}
|
|
};
|
|
);
|
|
|
|
include!(concat!(env!("OUT_DIR"), "/bindings_test_suites.rs"));
|