Skip to content

Commit 7f216c0

Browse files
committed
Improve strictness of assertions in tests
1 parent 04806aa commit 7f216c0

File tree

1 file changed

+29
-7
lines changed

1 file changed

+29
-7
lines changed

src/lib.rs

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -348,9 +348,11 @@ mod tests {
348348
use std::prelude::v1::*;
349349

350350
macro_rules! t {
351-
($a:expr, $b:expr) => ({
352-
assert_eq!(super::demangle($a).to_string(), $b);
353-
})
351+
($a:expr, $b:expr) => (assert!(ok($a, $b)))
352+
}
353+
354+
macro_rules! t_err {
355+
($a:expr) => (assert!(ok_err($a)))
354356
}
355357

356358
macro_rules! t_nohash {
@@ -359,11 +361,31 @@ mod tests {
359361
})
360362
}
361363

364+
fn ok(sym: &str, expected: &str) -> bool {
365+
match super::try_demangle(sym) {
366+
Ok(s) => s.to_string() == expected,
367+
Err(_) => {
368+
println!("error demangling");
369+
false
370+
}
371+
}
372+
}
373+
374+
fn ok_err(sym: &str) -> bool {
375+
match super::try_demangle(sym) {
376+
Ok(_) => {
377+
println!("succeeded in demangling");
378+
false
379+
}
380+
Err(_) => super::demangle(sym).to_string() == sym,
381+
}
382+
}
383+
362384
#[test]
363385
fn demangle() {
364-
t!("test", "test");
386+
t_err!("test");
365387
t!("_ZN4testE", "test");
366-
t!("_ZN4test", "_ZN4test");
388+
t_err!("_ZN4test");
367389
t!("_ZN4test1a2bcE", "test::a::bc");
368390
}
369391

@@ -451,7 +473,7 @@ mod tests {
451473

452474
#[test]
453475
fn demangle_ignores_suffix_that_doesnt_look_like_a_symbol() {
454-
t!("_ZN3fooE.llvm moocow", "_ZN3fooE.llvm moocow");
476+
t_err!("_ZN3fooE.llvm moocow");
455477
}
456478

457479
#[test]
@@ -468,6 +490,6 @@ mod tests {
468490

469491
#[test]
470492
fn invalid_no_chop() {
471-
t!("_ZNfooE", "_ZNfooE");
493+
t_err!("_ZNfooE");
472494
}
473495
}

0 commit comments

Comments
 (0)