Skip to content

Commit d9f8b3c

Browse files
committed
Run metadata tests
1 parent 9fd211f commit d9f8b3c

File tree

5 files changed

+37
-11
lines changed

5 files changed

+37
-11
lines changed

crates/flipperzero/src/furi/log/metadata.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,7 @@ impl PartialOrd<Level> for LevelFilter {
467467
}
468468
}
469469

470-
#[cfg(test)]
470+
#[flipperzero_test::tests]
471471
mod tests {
472472
use super::*;
473473
use core::mem;

crates/flipperzero/src/furi/log/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//! Furi Logging system.
22
3-
mod metadata;
3+
pub(crate) mod metadata;
44
pub use metadata::{Level, LevelFilter};
55

66
/// The standard logging macro.

crates/flipperzero/src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ pub mod __macro_support {
4545

4646
flipperzero_test::tests_runner!(
4747
name = "flipperzero-rs Unit Tests",
48+
stack_size = 4096,
4849
[
50+
crate::furi::log::metadata::tests,
4951
crate::furi::message_queue::tests,
5052
crate::furi::rng::tests,
5153
crate::furi::string::tests,

crates/test/macros/src/deassert.rs

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,33 +55,45 @@ fn expr_macro(m: ExprMacro) -> parse::Result<Expr> {
5555
.into(),
5656
)
5757
} else if m.mac.path.is_ident("assert_eq") {
58-
let (left, right) = binary_macro(m.mac.tokens)?;
58+
let (left, right, msg) = binary_macro(m.mac.tokens)?;
5959
let left_str = quote!(#left).to_string();
6060
let right_str = quote!(#right).to_string();
61+
let msg_str = if let Some(msg) = msg {
62+
quote!(Some(#msg))
63+
} else {
64+
quote!(None)
65+
};
6166
syn::parse(
6267
quote!(
6368
if #left != #right {
6469
return ::core::result::Result::Err(
6570
::flipperzero_test::TestFailure::AssertEq {
6671
left: #left_str,
6772
right: #right_str,
73+
msg: #msg_str,
6874
}
6975
);
7076
}
7177
)
7278
.into(),
7379
)
7480
} else if m.mac.path.is_ident("assert_ne") {
75-
let (left, right) = binary_macro(m.mac.tokens)?;
81+
let (left, right, msg) = binary_macro(m.mac.tokens)?;
7682
let left_str = quote!(#left).to_string();
7783
let right_str = quote!(#right).to_string();
84+
let msg_str = if let Some(msg) = msg {
85+
quote!(Some(#msg))
86+
} else {
87+
quote!(None)
88+
};
7889
syn::parse(
7990
quote!(
8091
if #left == #right {
8192
return ::core::result::Result::Err(
8293
::flipperzero_test::TestFailure::AssertNe {
8394
left: #left_str,
8495
right: #right_str,
96+
msg: #msg_str,
8597
}
8698
);
8799
}
@@ -93,9 +105,9 @@ fn expr_macro(m: ExprMacro) -> parse::Result<Expr> {
93105
}
94106
}
95107

96-
fn binary_macro(tokens: proc_macro2::TokenStream) -> parse::Result<(Expr, Expr)> {
108+
fn binary_macro(tokens: proc_macro2::TokenStream) -> parse::Result<(Expr, Expr, Option<Expr>)> {
97109
let parts: ExprTuple = syn::parse(quote!((#tokens)).into())?;
98-
assert_eq!(parts.elems.len(), 2);
110+
assert!(parts.elems.len() >= 2);
99111
let mut elems = parts.elems.into_iter();
100-
Ok((elems.next().unwrap(), elems.next().unwrap()))
112+
Ok((elems.next().unwrap(), elems.next().unwrap(), elems.next()))
101113
}

crates/test/src/lib.rs

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,12 @@ pub enum TestFailure {
1414
AssertEq {
1515
left: &'static str,
1616
right: &'static str,
17+
msg: Option<&'static str>,
1718
},
1819
AssertNe {
1920
left: &'static str,
2021
right: &'static str,
22+
msg: Option<&'static str>,
2123
},
2224
Str(&'static str),
2325
}
@@ -34,17 +36,27 @@ impl ufmt::uDisplay for TestFailure {
3436
W: ufmt::uWrite + ?Sized,
3537
{
3638
match self {
37-
TestFailure::AssertEq { left, right } => {
39+
TestFailure::AssertEq { left, right, msg } => {
3840
f.write_str("assertion failed: ")?;
3941
f.write_str(left)?;
4042
f.write_str(" == ")?;
41-
f.write_str(right)
43+
f.write_str(right)?;
44+
if let Some(msg) = msg {
45+
f.write_str("\n")?;
46+
f.write_str(msg)?;
47+
}
48+
Ok(())
4249
}
43-
TestFailure::AssertNe { left, right } => {
50+
TestFailure::AssertNe { left, right, msg } => {
4451
f.write_str("assertion failed: ")?;
4552
f.write_str(left)?;
4653
f.write_str(" != ")?;
47-
f.write_str(right)
54+
f.write_str(right)?;
55+
if let Some(msg) = msg {
56+
f.write_str("\n")?;
57+
f.write_str(msg)?;
58+
}
59+
Ok(())
4860
}
4961
TestFailure::Str(s) => f.write_str(s),
5062
}

0 commit comments

Comments
 (0)