pub const TEST_ADDRESS: &str = "127.0.0.1:6379";
#[macro_export]
macro_rules! cleanup_keys {
($conn:ident, $first_key:expr, $( $key:expr ),* ) => {
let command = Command::new("DEL").arg(&$first_key)
$(
.arg(&$key)
)*;
$conn.run_command(command).await.unwrap();
};
($conn:ident, $key:expr) => {
let command = Command::new("DEL").arg(&$key);
$conn.run_command(command).await.unwrap();
}
}
#[macro_export]
macro_rules! create_key {
($name:ident) => {
format!(
"darkredis.test.{}.{}.{}",
file!(),
line!(),
stringify!($name)
)
.into_bytes()
};
}
#[macro_export]
macro_rules! redis_test {
($redis:ident, $block:tt, $( $key:ident ),+) => {
use crate::create_key;
use crate::cleanup_keys;
let mut $redis = Connection::connect(TEST_ADDRESS).await.unwrap();
$(
let $key: Vec<u8> = create_key!($key);
)*
cleanup_keys!($redis, $($key),*);
$block
cleanup_keys!($redis, $($key),*);
}
}
#[macro_export]
macro_rules! redis_doc_test {
($redis:ident, $block:tt) => {
let mut $redis = Connection::connect(TEST_ADDRESS, None).await.unwrap();
$block
};
}