[tests] tests for function_name! and function_name_short! macros
This commit is contained in:
parent
e63189514f
commit
11a8868252
98
src/lib.rs
98
src/lib.rs
@ -47,3 +47,101 @@ macro_rules! DBG {
|
||||
println!(concat!("{}():{} ", $fmt), $crate::function_name!(), line!() $(,$arg)*);
|
||||
};
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests_function_name_full_path {
|
||||
|
||||
use super::*;
|
||||
|
||||
trait MyTrait {
|
||||
fn trait_fn_1(&self) -> &'static str {
|
||||
function_name!()
|
||||
}
|
||||
|
||||
fn trait_fn_2(&self) -> &'static str {
|
||||
function_name!()
|
||||
}
|
||||
}
|
||||
|
||||
struct MyStruct;
|
||||
|
||||
impl MyStruct {
|
||||
fn method(&self) -> &'static str {
|
||||
function_name!()
|
||||
}
|
||||
|
||||
fn associated_fn() -> &'static str {
|
||||
function_name!()
|
||||
}
|
||||
}
|
||||
|
||||
impl MyTrait for MyStruct {
|
||||
fn trait_fn_1(&self) -> &'static str {
|
||||
function_name!()
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn full_names() {
|
||||
let h = MyStruct;
|
||||
assert_eq!(
|
||||
"<rustics_dbg::tests_function_name_full_path::MyStruct as rustics_dbg::tests_function_name_full_path::MyTrait>::trait_fn_1",
|
||||
h.trait_fn_1()
|
||||
);
|
||||
assert_eq!(
|
||||
"rustics_dbg::tests_function_name_full_path::MyTrait::trait_fn_2",
|
||||
h.trait_fn_2()
|
||||
);
|
||||
assert_eq!(
|
||||
"rustics_dbg::tests_function_name_full_path::MyStruct::method",
|
||||
h.method()
|
||||
);
|
||||
assert_eq!(
|
||||
"rustics_dbg::tests_function_name_full_path::MyStruct::associated_fn",
|
||||
MyStruct::associated_fn()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests_function_name_short {
|
||||
|
||||
use super::*;
|
||||
|
||||
trait MyTrait {
|
||||
fn trait_fn_1(&self) -> &'static str {
|
||||
function_name_short!()
|
||||
}
|
||||
|
||||
fn trait_fn_2(&self) -> &'static str {
|
||||
function_name_short!()
|
||||
}
|
||||
}
|
||||
|
||||
struct MyStruct;
|
||||
|
||||
impl MyStruct {
|
||||
fn method(&self) -> &'static str {
|
||||
function_name_short!()
|
||||
}
|
||||
|
||||
fn associated_fn() -> &'static str {
|
||||
function_name_short!()
|
||||
}
|
||||
}
|
||||
|
||||
impl MyTrait for MyStruct {
|
||||
fn trait_fn_1(&self) -> &'static str {
|
||||
function_name_short!()
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn full_names() {
|
||||
let h = MyStruct;
|
||||
assert_eq!("trait_fn_1", h.trait_fn_1());
|
||||
assert_eq!("trait_fn_2", h.trait_fn_2());
|
||||
assert_eq!("method", h.method());
|
||||
assert_eq!("associated_fn", MyStruct::associated_fn());
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user